1 #ifndef _REGEX_H_ 2 #define _REGEX_H_ /* never again */ 3 /* ========= begin header generated by ./mkh ========= */ 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 /* === regex2.h === */ 9 typedef long regoff_t; 10 typedef struct { 11 int re_magic; 12 size_t re_nsub; /* number of parenthesized subexpressions */ 13 const char *re_endp; /* end pointer for REG_PEND */ 14 struct re_guts *re_g; /* none of your business :-) */ 15 } regex_t; 16 typedef struct { 17 regoff_t rm_so; /* start of match */ 18 regoff_t rm_eo; /* end of match */ 19 } regmatch_t; 20 21 22 /* === regcomp.c === */ 23 extern int regcomp(regex_t *, const char *, int); 24 #define REG_BASIC 0000 25 #define REG_EXTENDED 0001 26 #define REG_ICASE 0002 27 #define REG_NOSUB 0004 28 #define REG_NEWLINE 0010 29 #define REG_NOSPEC 0020 30 #define REG_PEND 0040 31 #define REG_DUMP 0200 32 33 34 /* === regerror.c === */ 35 #define REG_OKAY 0 36 #define REG_NOMATCH 1 37 #define REG_BADPAT 2 38 #define REG_ECOLLATE 3 39 #define REG_ECTYPE 4 40 #define REG_EESCAPE 5 41 #define REG_ESUBREG 6 42 #define REG_EBRACK 7 43 #define REG_EPAREN 8 44 #define REG_EBRACE 9 45 #define REG_BADBR 10 46 #define REG_ERANGE 11 47 #define REG_ESPACE 12 48 #define REG_BADRPT 13 49 #define REG_EMPTY 14 50 #define REG_ASSERT 15 51 #define REG_INVARG 16 52 #define REG_ATOI 255 /* convert name to number (!) */ 53 #define REG_ITOA 0400 /* convert number to name (!) */ 54 extern size_t regerror(int, const regex_t *, char *, size_t); 55 56 57 /* === regexec.c === */ 58 extern int regexec(const regex_t *, const char *, size_t, regmatch_t [], int); 59 #define REG_NOTBOL 00001 60 #define REG_NOTEOL 00002 61 #define REG_STARTEND 00004 62 #define REG_TRACE 00400 /* tracing of execution */ 63 #define REG_LARGE 01000 /* force large representation */ 64 #define REG_BACKR 02000 /* force use of backref code */ 65 66 67 /* === regfree.c === */ 68 extern void regfree(regex_t *); 69 70 #ifdef __cplusplus 71 } 72 #endif 73 /* ========= end header generated by ./mkh ========= */ 74 #endif 75