a5f0fb151d
distributed under your choice of the GPL or a BSD style license. Reviewed by: peter Obtained from: http://home.flash.net/~marknu/less/
35 lines
973 B
C
35 lines
973 B
C
/*
|
|
* Definitions etc. for regexp(3) routines.
|
|
*
|
|
* Caveat: this is V8 regexp(3) [actually, a reimplementation thereof],
|
|
* not the System V one.
|
|
*/
|
|
|
|
#ifndef _REGEXP
|
|
#define _REGEXP 1
|
|
|
|
#define NSUBEXP 10
|
|
typedef struct regexp {
|
|
char *startp[NSUBEXP];
|
|
char *endp[NSUBEXP];
|
|
char regstart; /* Internal use only. */
|
|
char reganch; /* Internal use only. */
|
|
char *regmust; /* Internal use only. */
|
|
int regmlen; /* Internal use only. */
|
|
char program[1]; /* Unwarranted chumminess with compiler. */
|
|
} regexp;
|
|
|
|
#if defined(__STDC__) || defined(__cplusplus)
|
|
# define _ANSI_ARGS_(x) x
|
|
#else
|
|
# define _ANSI_ARGS_(x) ()
|
|
#endif
|
|
|
|
extern regexp *regcomp _ANSI_ARGS_((char *exp));
|
|
extern int regexec _ANSI_ARGS_((regexp *prog, char *string));
|
|
extern int regexec2 _ANSI_ARGS_((regexp *prog, char *string, int notbol));
|
|
extern void regsub _ANSI_ARGS_((regexp *prog, char *source, char *dest));
|
|
extern void regerror _ANSI_ARGS_((char *msg));
|
|
|
|
#endif /* REGEXP */
|