/* vi:ts=4:sw=4
 * NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
 *
 * This is NOT the original regular expression code as written by
 * Henry Spencer. This code has been modified specifically for use
 * with the VIM editor, and should not be used apart from compiling
 * VIM. If you want a good regular expression library, get the
 * original code. The copyright notice that follows is from the
 * original.
 *
 * NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
 *
 * Definitions etc. for regexp(3) routines.
 *
 * Caveat:	this is V8 regexp(3) [actually, a reimplementation thereof],
 * not the System V one.
 */

#ifndef _REGEXP_H
#define _REGEXP_H

#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;

/*
	redefine regcomp & regexec to avoid name conflict
*/
#define regcomp	RegComp
#define regexec	RegExec

/* regexp.c */
regexp *regcomp __ARGS((char *));
int regexec __ARGS((regexp *, char *, int));
/* int cstrncmp __ARGS((char *, char *, int)); */
char *cstrchr __ARGS((char *, int));

/* regsub.c */
int regsub __ARGS((regexp *, char *, char *, int, int));

/* search.c */
extern void 	regerror __ARGS((char *));

#ifndef ORIGINAL
extern int		reg_ic; 		/* set non-zero to ignore case in searches */
extern int		reg_magic;		/* set zero to disable magicness of .*[~& */
#endif
#endif	/* _REGEXP_H */


syntax highlighted by Code2HTML, v. 0.9.1