1*9a747e4fSDavid du Colombier /* 2*9a747e4fSDavid du Colombier * Definitions etc. for regexp(3) routines. 3*9a747e4fSDavid du Colombier * 4*9a747e4fSDavid du Colombier * Caveat: this is V8 regexp(3) [actually, a reimplementation thereof], 5*9a747e4fSDavid du Colombier * not the System V one. 6*9a747e4fSDavid du Colombier */ 7*9a747e4fSDavid du Colombier 8*9a747e4fSDavid du Colombier #ifndef _PAX_REGEXP_H 9*9a747e4fSDavid du Colombier #define _PAX_REGEXP_H 10*9a747e4fSDavid du Colombier 11*9a747e4fSDavid du Colombier #define NSUBEXP 10 12*9a747e4fSDavid du Colombier typedef struct regexp { 13*9a747e4fSDavid du Colombier char *startp[NSUBEXP]; 14*9a747e4fSDavid du Colombier char *endp[NSUBEXP]; 15*9a747e4fSDavid du Colombier char regstart; /* Internal use only. */ 16*9a747e4fSDavid du Colombier char reganch; /* Internal use only. */ 17*9a747e4fSDavid du Colombier char *regmust; /* Internal use only. */ 18*9a747e4fSDavid du Colombier int regmlen; /* Internal use only. */ 19*9a747e4fSDavid du Colombier char program[1]; /* Unwarranted chumminess with compiler. */ 20*9a747e4fSDavid du Colombier } regexp; 21*9a747e4fSDavid du Colombier 22*9a747e4fSDavid du Colombier 23*9a747e4fSDavid du Colombier /* 24*9a747e4fSDavid du Colombier * The first byte of the regexp internal "program" is actually this magic 25*9a747e4fSDavid du Colombier * number; the start node begins in the second byte. 26*9a747e4fSDavid du Colombier */ 27*9a747e4fSDavid du Colombier #define MAGIC 0234 28*9a747e4fSDavid du Colombier 29*9a747e4fSDavid du Colombier extern regexp *regcomp(); 30*9a747e4fSDavid du Colombier extern int regexec(); 31*9a747e4fSDavid du Colombier extern void regsub(); 32*9a747e4fSDavid du Colombier extern void regerror(); 33*9a747e4fSDavid du Colombier 34*9a747e4fSDavid du Colombier #endif /* _PAX_REGEXP_H */ 35