xref: /freebsd/contrib/less/regexp.h (revision a5f0fb15)
1a5f0fb15SPaul Saab /*
2a5f0fb15SPaul Saab  * Definitions etc. for regexp(3) routines.
3a5f0fb15SPaul Saab  *
4a5f0fb15SPaul Saab  * Caveat:  this is V8 regexp(3) [actually, a reimplementation thereof],
5a5f0fb15SPaul Saab  * not the System V one.
6a5f0fb15SPaul Saab  */
7a5f0fb15SPaul Saab 
8a5f0fb15SPaul Saab #ifndef _REGEXP
9a5f0fb15SPaul Saab #define _REGEXP 1
10a5f0fb15SPaul Saab 
11a5f0fb15SPaul Saab #define NSUBEXP  10
12a5f0fb15SPaul Saab typedef struct regexp {
13a5f0fb15SPaul Saab         char *startp[NSUBEXP];
14a5f0fb15SPaul Saab         char *endp[NSUBEXP];
15a5f0fb15SPaul Saab         char regstart;          /* Internal use only. */
16a5f0fb15SPaul Saab         char reganch;           /* Internal use only. */
17a5f0fb15SPaul Saab         char *regmust;          /* Internal use only. */
18a5f0fb15SPaul Saab         int regmlen;            /* Internal use only. */
19a5f0fb15SPaul Saab         char program[1];        /* Unwarranted chumminess with compiler. */
20a5f0fb15SPaul Saab } regexp;
21a5f0fb15SPaul Saab 
22a5f0fb15SPaul Saab #if defined(__STDC__) || defined(__cplusplus)
23a5f0fb15SPaul Saab #   define _ANSI_ARGS_(x)       x
24a5f0fb15SPaul Saab #else
25a5f0fb15SPaul Saab #   define _ANSI_ARGS_(x)       ()
26a5f0fb15SPaul Saab #endif
27a5f0fb15SPaul Saab 
28a5f0fb15SPaul Saab extern regexp *regcomp _ANSI_ARGS_((char *exp));
29a5f0fb15SPaul Saab extern int regexec _ANSI_ARGS_((regexp *prog, char *string));
30a5f0fb15SPaul Saab extern int regexec2 _ANSI_ARGS_((regexp *prog, char *string, int notbol));
31a5f0fb15SPaul Saab extern void regsub _ANSI_ARGS_((regexp *prog, char *source, char *dest));
32a5f0fb15SPaul Saab extern void regerror _ANSI_ARGS_((char *msg));
33a5f0fb15SPaul Saab 
34a5f0fb15SPaul Saab #endif /* REGEXP */
35