1#ifndef _REGEX_H_ 2#define _REGEX_H_ /* never again */ 3/* ========= begin header generated by ./mkh ========= */ 4#ifdef __cplusplus 5extern "C" { 6#endif 7 8/* === regex2.h === */ 9typedef long regoff_t; 10typedef 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; 16typedef 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 === */ 23extern 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 (!) */ 54extern size_t regerror(int, const regex_t *, char *, size_t); 55 56 57/* === regexec.c === */ 58extern 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 === */ 68extern void regfree(regex_t *); 69 70#ifdef __cplusplus 71} 72#endif 73/* ========= end header generated by ./mkh ========= */ 74#endif 75