diff options
| author | jtc <jtc@NetBSD.org> | 1993-11-11 01:16:50 +0000 |
|---|---|---|
| committer | jtc <jtc@NetBSD.org> | 1993-11-11 01:16:50 +0000 |
| commit | 9f78fc2f07151c3eb858a38bf0cab5ca9487a024 (patch) | |
| tree | 29a1c46555d926abdcf4cda4c32516552cb2d574 /include | |
| parent | 8f83a67681ee903dac2f24b6d6e6638144b59763 (diff) | |
Enable Henry Spencer's POSIX.2 compatible regular expression routines.
Disable is earlier V8-style routines.
Diffstat (limited to 'include')
| -rw-r--r-- | include/regex.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/include/regex.h b/include/regex.h new file mode 100644 index 00000000000..a7dbb26cb56 --- /dev/null +++ b/include/regex.h @@ -0,0 +1,74 @@ +#ifndef _REGEX_H_ +#define _REGEX_H_ /* never again */ +/* ========= begin header generated by ./mkh ========= */ +#ifdef __cplusplus +extern "C" { +#endif + +/* === regex2.h === */ +typedef off_t regoff_t; +typedef struct { + int re_magic; + size_t re_nsub; /* number of parenthesized subexpressions */ +const char *re_endp; /* end pointer for REG_PEND */ + struct re_guts *re_g; /* none of your business :-) */ +} regex_t; +typedef struct { + regoff_t rm_so; /* start of match */ + regoff_t rm_eo; /* end of match */ +} regmatch_t; + + +/* === regcomp.c === */ +extern int regcomp __P((regex_t *preg, const char *pattern, int cflags)); +#define REG_BASIC 0000 +#define REG_EXTENDED 0001 +#define REG_ICASE 0002 +#define REG_NOSUB 0004 +#define REG_NEWLINE 0010 +#define REG_NOSPEC 0020 +#define REG_PEND 0040 +#define REG_DUMP 0200 + + +/* === regerror.c === */ +#define REG_NOMATCH 1 +#define REG_BADPAT 2 +#define REG_ECOLLATE 3 +#define REG_ECTYPE 4 +#define REG_EESCAPE 5 +#define REG_ESUBREG 6 +#define REG_EBRACK 7 +#define REG_EPAREN 8 +#define REG_EBRACE 9 +#define REG_BADBR 10 +#define REG_ERANGE 11 +#define REG_ESPACE 12 +#define REG_BADRPT 13 +#define REG_EMPTY 14 +#define REG_ASSERT 15 +#define REG_INVARG 16 +#define REG_ATOI 255 /* convert name to number (!) */ +#define REG_ITOA 0400 /* convert number to name (!) */ +extern size_t regerror __P((int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)); +static char *regatoi __P((const regex_t *preg, char *localbuf)); + + +/* === regexec.c === */ +extern int regexec __P((const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags)); +#define REG_NOTBOL 00001 +#define REG_NOTEOL 00002 +#define REG_STARTEND 00004 +#define REG_TRACE 00400 /* tracing of execution */ +#define REG_LARGE 01000 /* force large representation */ +#define REG_BACKR 02000 /* force use of backref code */ + + +/* === regfree.c === */ +extern void regfree __P((regex_t *preg)); + +#ifdef __cplusplus +} +#endif +/* ========= end header generated by ./mkh ========= */ +#endif |
