* not the System V one.
*/
-/* $Header: regexp.h,v 2.0 88/06/05 00:10:53 root Exp $
+/* $RCSfile: regexp.h,v $$Revision: 4.0.1.2 $$Date: 91/11/05 18:24:31 $
*
* $Log: regexp.h,v $
- * Revision 2.0 88/06/05 00:10:53 root
- * Baseline version 2.0.
+ * Revision 4.0.1.2 91/11/05 18:24:31 lwall
+ * patch11: minimum match length calculation in regexp is now cumulative
+ * patch11: initial .* in pattern had dependency on value of $*
+ *
+ * Revision 4.0.1.1 91/06/07 11:51:18 lwall
+ * patch4: new copyright notice
+ * patch4: // wouldn't use previous pattern if it started with a null character
+ * patch4: $` was busted inside s///
+ *
+ * Revision 4.0 91/03/20 01:39:23 lwall
+ * 4.0 baseline.
*
*/
-#define ALIGN
-
-#define NSUBEXP 10
-
typedef struct regexp {
- char *startp[NSUBEXP];
- char *endp[NSUBEXP];
+ char **startp;
+ char **endp;
STR *regstart; /* Internal use only. */
char *regstclass;
STR *regmust; /* Internal use only. */
int regback; /* Can regmust locate first try? */
+ int minlen; /* mininum possible length of $& */
+ int prelen; /* length of precomp */
char *precomp; /* pre-compilation regular expression */
char *subbase; /* saved string so \digit works forever */
+ char *subbeg; /* same, but not responsible for allocation */
+ char *subend; /* end of subbase */
char reganch; /* Internal use only. */
char do_folding; /* do case-insensitive match? */
char lastparen; /* last paren matched */
char program[1]; /* Unwarranted chumminess with compiler. */
} regexp;
-extern regexp *regcomp();
-extern int regexec();
-extern void regsub();
-extern void regerror();
+#define ROPT_ANCH 1
+#define ROPT_SKIP 2
+#define ROPT_IMPLICIT 4
+
+regexp *regcomp();
+int regexec();