cvs: /php3 ChangeLog /php3/regex cclass.h cname.h engine.c engine.ih regcomp.c regcomp.ih regerror.c regerror.ih regex.h regex2.h regexec.c utils.h

From: Date: Fri, 12 Nov 1999 20:57:50 +0000
Subject: cvs: /php3 ChangeLog /php3/regex cclass.h cname.h engine.c engine.ih regcomp.c regcomp.ih regerror.c regerror.ih regex.h regex2.h regexec.c utils.h
Groups: php.dev 
Request: Send a blank email to php-dev+get-12405@lists.php.net to get a copy of this message
sas Fri Nov 12 15:57:50 1999 EDT Modified files: /php3 ChangeLog /php3/regex cclass.h cname.h engine.c engine.ih regcomp.c regcomp.ih regerror.c regerror.ih regex.h regex2.h regexec.c utils.h Log: Upgrade regex library to alpha3.8 Index: php3/ChangeLog diff -u php3/ChangeLog:1.790 php3/ChangeLog:1.791 --- php3/ChangeLog:1.790 Thu Nov 11 08:46:50 1999 +++ php3/ChangeLog Fri Nov 12 15:57:48 1999 @@ -2,6 +2,7 @@ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Nov 15, 1999, Version 3.0.13 +- Upgraded regex library to alpha3.8 (Sascha) - RFC-854 fix for internal FTP-Code. Commands have to end in "\r\n" (Thies) - GD-1.7.x detection (Rasmus) - added patch to functions/mime.c so that form submit with lynx and old IE Index: php3/regex/cclass.h diff -u php3/regex/cclass.h:1.5 php3/regex/cclass.h:1.6 --- php3/regex/cclass.h:1.5 Mon Dec 28 04:44:01 1998 +++ php3/regex/cclass.h Fri Nov 12 15:57:49 1999 @@ -1,32 +1,32 @@ -/* $Id: cclass.h,v 1.5 1998/12/28 09:44:01 sas Exp $ +/* $Id: cclass.h,v 1.6 1999/11/12 20:57:49 sas Exp $ character-class table */ static struct cclass { char *name; char *chars; char *multis; } cclasses[] = { - { "alnum", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ -0123456789", "" }, - { "alpha", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", - "" }, - { "blank", " \t", "" }, - { "cntrl", "\007\b\t\n\v\f\r\1\2\3\4\5\6\16\17\20\21\22\23\24\ -\25\26\27\30\31\32\33\34\35\36\37\177", "" }, - { "digit", "0123456789", "" }, - { "graph", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ + "alnum", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ +0123456789", "", + "alpha", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", + "", + "blank", " \t", "", + "cntrl", "\007\b\t\n\v\f\r\1\2\3\4\5\6\16\17\20\21\22\23\24\ +\25\26\27\30\31\32\33\34\35\36\37\177", "", + "digit", "0123456789", "", + "graph", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ 0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", - "" }, - { "lower", "abcdefghijklmnopqrstuvwxyz", - "" }, - { "print", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ + "", + "lower", "abcdefghijklmnopqrstuvwxyz", + "", + "print", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ 0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ", - "" }, - { "punct", "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", - "" }, - { "space", "\t\n\v\f\r ", "" }, - { "upper", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", - "" }, - { "xdigit", "0123456789ABCDEFabcdef", - "" }, - { NULL, 0, "" } + "", + "punct", "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", + "", + "space", "\t\n\v\f\r ", "", + "upper", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", + "", + "xdigit", "0123456789ABCDEFabcdef", + "", + NULL, 0, "" }; Index: php3/regex/cname.h diff -u php3/regex/cname.h:1.5 php3/regex/cname.h:1.6 --- php3/regex/cname.h:1.5 Mon Dec 28 04:44:01 1998 +++ php3/regex/cname.h Fri Nov 12 15:57:49 1999 @@ -1,103 +1,103 @@ -/* $Id: cname.h,v 1.5 1998/12/28 09:44:01 sas Exp $ +/* $Id: cname.h,v 1.6 1999/11/12 20:57:49 sas Exp $ character-name table */ static struct cname { char *name; char code; } cnames[] = { - { "NUL", '\0' }, - { "SOH", '\001' }, - { "STX", '\002' }, - { "ETX", '\003' }, - { "EOT", '\004' }, - { "ENQ", '\005' }, - { "ACK", '\006' }, - { "BEL", '\007' }, - { "alert", '\007' }, - { "BS", '\010' }, - { "backspace", '\b' }, - { "HT", '\011' }, - { "tab", '\t' }, - { "LF", '\012' }, - { "newline", '\n' }, - { "VT", '\013' }, - { "vertical-tab", '\v' }, - { "FF", '\014' }, - { "form-feed", '\f' }, - { "CR", '\015' }, - { "carriage-return", '\r' }, - { "SO", '\016' }, - { "SI", '\017' }, - { "DLE", '\020' }, - { "DC1", '\021' }, - { "DC2", '\022' }, - { "DC3", '\023' }, - { "DC4", '\024' }, - { "NAK", '\025' }, - { "SYN", '\026' }, - { "ETB", '\027' }, - { "CAN", '\030' }, - { "EM", '\031' }, - { "SUB", '\032' }, - { "ESC", '\033' }, - { "IS4", '\034' }, - { "FS", '\034' }, - { "IS3", '\035' }, - { "GS", '\035' }, - { "IS2", '\036' }, - { "RS", '\036' }, - { "IS1", '\037' }, - { "US", '\037' }, - { "space", ' ' }, - { "exclamation-mark", '!' }, - { "quotation-mark", '"' }, - { "number-sign", '#' }, - { "dollar-sign", '$' }, - { "percent-sign", '%' }, - { "ampersand", '&' }, - { "apostrophe", '\'' }, - { "left-parenthesis", '(' }, - { "right-parenthesis", ')' }, - { "asterisk", '*' }, - { "plus-sign", '+' }, - { "comma", ',' }, - { "hyphen", '-' }, - { "hyphen-minus", '-' }, - { "period", '.' }, - { "full-stop", '.' }, - { "slash", '/' }, - { "solidus", '/' }, - { "zero", '0' }, - { "one", '1' }, - { "two", '2' }, - { "three", '3' }, - { "four", '4' }, - { "five", '5' }, - { "six", '6' }, - { "seven", '7' }, - { "eight", '8' }, - { "nine", '9' }, - { "colon", ':' }, - { "semicolon", ';' }, - { "less-than-sign", '<' }, - { "equals-sign", '=' }, - { "greater-than-sign", '>' }, - { "question-mark", '?' }, - { "commercial-at", '@' }, - { "left-square-bracket", '[' }, - { "backslash", '\\' }, - { "reverse-solidus", '\\' }, - { "right-square-bracket", ']' }, - { "circumflex", '^' }, - { "circumflex-accent", '^' }, - { "underscore", '_' }, - { "low-line", '_' }, - { "grave-accent", '`' }, - { "left-brace", '{' }, - { "left-curly-bracket", '{' }, - { "vertical-line", '|' }, - { "right-brace", '}' }, - { "right-curly-bracket", '}' }, - { "tilde", '~' }, - { "DEL", '\177' }, - { NULL, 0 } + "NUL", '\0', + "SOH", '\001', + "STX", '\002', + "ETX", '\003', + "EOT", '\004', + "ENQ", '\005', + "ACK", '\006', + "BEL", '\007', + "alert", '\007', + "BS", '\010', + "backspace", '\b', + "HT", '\011', + "tab", '\t', + "LF", '\012', + "newline", '\n', + "VT", '\013', + "vertical-tab", '\v', + "FF", '\014', + "form-feed", '\f', + "CR", '\015', + "carriage-return", '\r', + "SO", '\016', + "SI", '\017', + "DLE", '\020', + "DC1", '\021', + "DC2", '\022', + "DC3", '\023', + "DC4", '\024', + "NAK", '\025', + "SYN", '\026', + "ETB", '\027', + "CAN", '\030', + "EM", '\031', + "SUB", '\032', + "ESC", '\033', + "IS4", '\034', + "FS", '\034', + "IS3", '\035', + "GS", '\035', + "IS2", '\036', + "RS", '\036', + "IS1", '\037', + "US", '\037', + "space", ' ', + "exclamation-mark", '!', + "quotation-mark", '"', + "number-sign", '#', + "dollar-sign", '$', + "percent-sign", '%', + "ampersand", '&', + "apostrophe", '\'', + "left-parenthesis", '(', + "right-parenthesis", ')', + "asterisk", '*', + "plus-sign", '+', + "comma", ',', + "hyphen", '-', + "hyphen-minus", '-', + "period", '.', + "full-stop", '.', + "slash", '/', + "solidus", '/', + "zero", '0', + "one", '1', + "two", '2', + "three", '3', + "four", '4', + "five", '5', + "six", '6', + "seven", '7', + "eight", '8', + "nine", '9', + "colon", ':', + "semicolon", ';', + "less-than-sign", '<', + "equals-sign", '=', + "greater-than-sign", '>', + "question-mark", '?', + "commercial-at", '@', + "left-square-bracket", '[', + "backslash", '\\', + "reverse-solidus", '\\', + "right-square-bracket", ']', + "circumflex", '^', + "circumflex-accent", '^', + "underscore", '_', + "low-line", '_', + "grave-accent", '`', + "left-brace", '{', + "left-curly-bracket", '{', + "vertical-line", '|', + "right-brace", '}', + "right-curly-bracket", '}', + "tilde", '~', + "DEL", '\177', + NULL, 0, }; Index: php3/regex/engine.c diff -u php3/regex/engine.c:1.6 php3/regex/engine.c:1.7 --- php3/regex/engine.c:1.6 Mon Dec 28 04:44:01 1998 +++ php3/regex/engine.c Fri Nov 12 15:57:49 1999 @@ -5,7 +5,7 @@ * of code. */ -/* $Id: engine.c,v 1.6 1998/12/28 09:44:01 sas Exp $ */ +/* $Id: engine.c,v 1.7 1999/11/12 20:57:49 sas Exp $ */ #ifdef SNAMES #define matcher smatcher @@ -73,12 +73,12 @@ int eflags; { register char *endp; - register unsigned int i; + register int i; struct match mv; register struct match *m = &mv; register char *dp; - register const sopno gf = g->firststate+1; /* +1 for OEND */ - register const sopno gl = g->laststate; + const register sopno gf = g->firststate+1; /* +1 for OEND */ + const register sopno gl = g->laststate; char *start; char *stop; @@ -615,7 +615,7 @@ /* "can't happen" */ assert(nope); /* NOTREACHED */ - return( NULL ); + return((char *)NULL); /* dummy */ } /* @@ -824,7 +824,7 @@ register sopno pc; register onestate here; /* note, macros know this name */ register sopno look; - register int i; + register long i; for (pc = start, INIT(here, pc); pc != stop; pc++, INC(here)) { s = g->strip[pc]; Index: php3/regex/engine.ih diff -u php3/regex/engine.ih:1.9 php3/regex/engine.ih:1.10 --- php3/regex/engine.ih:1.9 Mon Sep 20 11:39:06 1999 +++ php3/regex/engine.ih Fri Nov 12 15:57:49 1999 @@ -1,9 +1,9 @@ -/* ========= begin header generated by ./mkh ========= */ +/* ========= begin header generated by ../../php3/regex/mkh ========= */ #ifdef __cplusplus extern "C" { #endif -/* === engine.c === */ +/* === ../../php3/regex/engine.c === */ static int matcher(register struct re_guts *g, char *string, size_t nmatch, regmatch_t pmatch[], int eflags); static char *dissect(register struct match *m, char *start, char *stop, sopno startst, sopno stopst); static char *backref(register struct match *m, char *start, char *stop, sopno startst, sopno stopst, sopno lev); @@ -32,4 +32,4 @@ #ifdef __cplusplus } #endif -/* ========= end header generated by ./mkh ========= */ +/* ========= end header generated by ../../php3/regex/mkh ========= */ Index: php3/regex/regcomp.c diff -u php3/regex/regcomp.c:1.6 php3/regex/regcomp.c:1.7 --- php3/regex/regcomp.c:1.6 Mon Dec 28 04:44:01 1998 +++ php3/regex/regcomp.c Fri Nov 12 15:57:49 1999 @@ -1,4 +1,4 @@ -/* $Id: regcomp.c,v 1.6 1998/12/28 09:44:01 sas Exp $ */ +/* $Id: regcomp.c,v 1.7 1999/11/12 20:57:49 sas Exp $ */ #include <sys/types.h> #include <stdio.h> @@ -46,14 +46,14 @@ #define MORE2() (p->next+1 < p->end) #define SEE(c) (MORE() && PEEK() == (c)) #define SEETWO(a, b) (MORE() && MORE2() && PEEK() == (a) && PEEK2() == (b)) -#define EAT(c) ((SEE(c)) ? (NEXT1(), 1) : 0) +#define EAT(c) ((SEE(c)) ? (NEXT(), 1) : 0) #define EATTWO(a, b) ((SEETWO(a, b)) ? (NEXT2(), 1) : 0) -#define NEXT1() (p->next++) +#define NEXT() (p->next++) #define NEXT2() (p->next += 2) #define NEXTn(n) (p->next += (n)) #define GETNEXT() (*p->next++) #define SETERROR(e) seterr(p, (e)) -#define REQUIRE(co, e) ((void)((co) || SETERROR(e))) +#define REQUIRE(co, e) ((co) || SETERROR(e)) #define MUSTSEE(c, e) (REQUIRE(MORE() && PEEK() == (c), e)) #define MUSTEAT(c, e) (REQUIRE(MORE() && GETNEXT() == (c), e)) #define MUSTNOTSEE(c, e) (REQUIRE(!MORE() || PEEK() != (c), e)) @@ -326,7 +326,7 @@ if (!( c == '*' || c == '+' || c == '?' || (c == '{' && MORE2() && isdigit(PEEK2())) )) return; /* no repetition, we're done */ - NEXT1(); + NEXT(); REQUIRE(!wascaret, REG_BADRPT); switch (c) { @@ -363,7 +363,7 @@ repeat(p, pos, count, count2); if (!EAT('}')) { /* error heuristics */ while (MORE() && PEEK() != '}') - NEXT1(); + NEXT(); REQUIRE(MORE(), REG_EBRACE); SETERROR(REG_BADBR); } @@ -518,7 +518,7 @@ REQUIRE(starordinary, REG_BADRPT); /* FALLTHROUGH */ default: - ordinary(p, c &~ BACKSL); + ordinary(p, (char)c); /* takes off BACKSL, if any */ break; } @@ -541,7 +541,7 @@ repeat(p, pos, count, count2); if (!EATTWO('\\', '}')) { /* error heuristics */ while (MORE() && !SEETWO('\\', '}')) - NEXT1(); + NEXT(); REQUIRE(MORE(), REG_EBRACE); SETERROR(REG_BADBR); } @@ -699,7 +699,7 @@ start = p_b_symbol(p); if (SEE('-') && MORE2() && PEEK2() != ']') { /* range */ - NEXT1(); + NEXT(); if (EAT('-')) finish = '-'; else @@ -730,7 +730,7 @@ register char c; while (MORE() && isalpha(PEEK())) - NEXT1(); + NEXT(); len = p->next - sp; for (cp = cclasses; cp->name != NULL; cp++) if (strncmp(cp->name, sp, len) == 0 && cp->name[len] == '\0') @@ -799,7 +799,7 @@ register int len; while (MORE() && !SEETWO(endc, ']')) - NEXT1(); + NEXT(); if (!MORE()) { SETERROR(REG_EBRACK); return(0); @@ -1056,7 +1056,7 @@ register struct parse *p; register cset *cs; { - register unsigned int i; + register int i; register cset *top = &p->g->sets[p->g->ncsets]; register size_t css = (size_t)p->g->csetsize; @@ -1082,7 +1082,7 @@ register cset *cs; { register uch h = cs->hash; - register unsigned int i; + register int i; register cset *top = &p->g->sets[p->g->ncsets]; register cset *cs2; register size_t css = (size_t)p->g->csetsize; @@ -1115,7 +1115,7 @@ register struct parse *p; register cset *cs; { - register unsigned int i; + register int i; register size_t css = (size_t)p->g->csetsize; for (i = 0; i < css; i++) @@ -1134,7 +1134,7 @@ register struct parse *p; register cset *cs; { - register unsigned int i; + register int i; register size_t css = (size_t)p->g->csetsize; register int n = 0; @@ -1171,6 +1171,63 @@ cs->multis[cs->smultis - 1] = '\0'; } +/* + - mcsub - subtract a collating element from a cset + == static void mcsub(register cset *cs, register char *cp); + */ +static void +mcsub(cs, cp) +register cset *cs; +register char *cp; +{ + register char *fp = mcfind(cs, cp); + register size_t len = strlen(fp); + + assert(fp != NULL); + (void) memmove(fp, fp + len + 1, + cs->smultis - (fp + len + 1 - cs->multis)); + cs->smultis -= len; + + if (cs->smultis == 0) { + free(cs->multis); + cs->multis = NULL; + return; + } + + cs->multis = realloc(cs->multis, cs->smultis); + assert(cs->multis != NULL); +} + +/* + - mcin - is a collating element in a cset? + == static int mcin(register cset *cs, register char *cp); + */ +static int +mcin(cs, cp) +register cset *cs; +register char *cp; +{ + return(mcfind(cs, cp) != NULL); +} + +/* + - mcfind - find a collating element in a cset + == static char *mcfind(register cset *cs, register char *cp); + */ +static char * +mcfind(cs, cp) +register cset *cs; +register char *cp; +{ + register char *p; + + if (cs->multis == NULL) + return(NULL); + for (p = cs->multis; *p != '\0'; p += strlen(p) + 1) + if (strcmp(cp, p) == 0) + return(p); + return(NULL); +} /* - mcinvert - invert the list of collating elements in a cset Index: php3/regex/regcomp.ih diff -u php3/regex/regcomp.ih:1.10 php3/regex/regcomp.ih:1.11 --- php3/regex/regcomp.ih:1.10 Mon Sep 20 11:39:06 1999 +++ php3/regex/regcomp.ih Fri Nov 12 15:57:49 1999 @@ -28,6 +28,9 @@ static int firstch(register struct parse *p, register cset *cs); static int nch(register struct parse *p, register cset *cs); static void mcadd(register struct parse *p, register cset *cs, register char *cp); +static void mcsub(register cset *cs, register char *cp); +static int mcin(register cset *cs, register char *cp); +static char *mcfind(register cset *cs, register char *cp); static void mcinvert(register struct parse *p, register cset *cs); static void mccase(register struct parse *p, register cset *cs); static int isinsets(register struct re_guts *g, int c); Index: php3/regex/regerror.c diff -u php3/regex/regerror.c:1.5 php3/regex/regerror.c:1.6 --- php3/regex/regerror.c:1.5 Mon Dec 28 04:44:01 1998 +++ php3/regex/regerror.c Fri Nov 12 15:57:49 1999 @@ -1,4 +1,4 @@ -/* $Id: regerror.c,v 1.5 1998/12/28 09:44:01 sas Exp $ */ +/* $Id: regerror.c,v 1.6 1999/11/12 20:57:49 sas Exp $ */ #include <sys/types.h> #include <stdio.h> @@ -12,6 +12,7 @@ #include "regerror.ih" /* + = #define REG_OKAY 0 = #define REG_NOMATCH 1 = #define REG_BADPAT 2 = #define REG_ECOLLATE 3 @@ -36,28 +37,29 @@ char *name; char *explain; } rerrs[] = { - { REG_NOMATCH, "REG_NOMATCH", "regexec() failed to match" }, - { REG_BADPAT, "REG_BADPAT", "invalid regular expression" }, - { REG_ECOLLATE, "REG_ECOLLATE", "invalid collating element" }, - { REG_ECTYPE, "REG_ECTYPE", "invalid character class" }, - { REG_EESCAPE, "REG_EESCAPE", "trailing backslash (\\)" }, - { REG_ESUBREG, "REG_ESUBREG", "invalid backreference number" }, - { REG_EBRACK, "REG_EBRACK", "brackets ([ ]) not balanced" }, - { REG_EPAREN, "REG_EPAREN", "parentheses not balanced" }, - { REG_EBRACE, "REG_EBRACE", "braces not balanced" }, - { REG_BADBR, "REG_BADBR", "invalid repetition count(s)" }, - { REG_ERANGE, "REG_ERANGE", "invalid character range" }, - { REG_ESPACE, "REG_ESPACE", "out of memory" }, - { REG_BADRPT, "REG_BADRPT", "repetition-operator operand invalid" }, - { REG_EMPTY, "REG_EMPTY", "empty (sub)expression" }, - { REG_ASSERT, "REG_ASSERT", "\"can't happen\" -- you found a bug" }, - { REG_INVARG, "REG_INVARG", "invalid argument to regex routine" }, - { 0, "", "*** unknown regexp error code ***" } + REG_OKAY, "REG_OKAY", "no errors detected", + REG_NOMATCH, "REG_NOMATCH", "regexec() failed to match", + REG_BADPAT, "REG_BADPAT", "invalid regular expression", + REG_ECOLLATE, "REG_ECOLLATE", "invalid collating element", + REG_ECTYPE, "REG_ECTYPE", "invalid character class", + REG_EESCAPE, "REG_EESCAPE", "trailing backslash (\\)", + REG_ESUBREG, "REG_ESUBREG", "invalid backreference number", + REG_EBRACK, "REG_EBRACK", "brackets ([ ]) not balanced", + REG_EPAREN, "REG_EPAREN", "parentheses not balanced", + REG_EBRACE, "REG_EBRACE", "braces not balanced", + REG_BADBR, "REG_BADBR", "invalid repetition count(s)", + REG_ERANGE, "REG_ERANGE", "invalid character range", + REG_ESPACE, "REG_ESPACE", "out of memory", + REG_BADRPT, "REG_BADRPT", "repetition-operator operand invalid", + REG_EMPTY, "REG_EMPTY", "empty (sub)expression", + REG_ASSERT, "REG_ASSERT", "\"can't happen\" -- you found a bug", + REG_INVARG, "REG_INVARG", "invalid argument to regex routine", + -1, "", "*** unknown regexp error code ***", }; /* - regerror - the interface to error numbers - = API_EXPORT(size_t) regerror(int, const regex_t *, char *, size_t); + = extern API_EXPORT(size_t) regerror(int, const regex_t *, char *, size_t); */ /* ARGSUSED */ API_EXPORT(size_t) @@ -76,12 +78,12 @@ if (errcode == REG_ATOI) s = regatoi(preg, convbuf); else { - for (r = rerrs; r->code != 0; r++) + for (r = rerrs; r->code >= 0; r++) if (r->code == target) break; if (errcode&REG_ITOA) { - if (r->code != 0) + if (r->code >= 0) (void) strcpy(convbuf, r->name); else sprintf(convbuf, "REG_0x%x", target); @@ -115,10 +117,10 @@ { register struct rerr *r; - for (r = rerrs; r->code != 0; r++) + for (r = rerrs; r->code >= 0; r++) if (strcmp(r->name, preg->re_endp) == 0) break; - if (r->code == 0) + if (r->code < 0) return("0"); sprintf(localbuf, "%d", r->code); Index: php3/regex/regerror.ih diff -u php3/regex/regerror.ih:1.9 php3/regex/regerror.ih:1.10 --- php3/regex/regerror.ih:1.9 Mon Sep 20 11:39:06 1999 +++ php3/regex/regerror.ih Fri Nov 12 15:57:49 1999 @@ -1,12 +1,12 @@ -/* ========= begin header generated by ./mkh ========= */ +/* ========= begin header generated by ../../php3/regex/mkh ========= */ #ifdef __cplusplus extern "C" { #endif -/* === regerror.c === */ +/* === ../../php3/regex/regerror.c === */ static char *regatoi(const regex_t *preg, char *localbuf); #ifdef __cplusplus } #endif -/* ========= end header generated by ./mkh ========= */ +/* ========= end header generated by ../../php3/regex/mkh ========= */ Index: php3/regex/regex.h diff -u php3/regex/regex.h:1.6 php3/regex/regex.h:1.7 --- php3/regex/regex.h:1.6 Mon Mar 29 15:26:11 1999 +++ php3/regex/regex.h Fri Nov 12 15:57:49 1999 @@ -38,6 +38,7 @@ /* === regerror.c === */ +#define REG_OKAY 0 #define REG_NOMATCH 1 #define REG_BADPAT 2 #define REG_ECOLLATE 3 Index: php3/regex/regex2.h diff -u php3/regex/regex2.h:1.5 php3/regex/regex2.h:1.6 --- php3/regex/regex2.h:1.5 Mon Dec 28 04:44:02 1998 +++ php3/regex/regex2.h Fri Nov 12 15:57:49 1999 @@ -1,5 +1,5 @@ /* - * $Id: regex2.h,v 1.5 1998/12/28 09:44:02 sas Exp $ + * $Id: regex2.h,v 1.6 1999/11/12 20:57:49 sas Exp $ * * First, the stuff that ends up in the outside-world include file = #ifdef WIN32 @@ -44,11 +44,11 @@ * In state representations, an operator's bit is on to signify a state * immediately *preceding* "execution" of that operator. */ -typedef unsigned long sop; /* strip operator */ +typedef long sop; /* strip operator */ typedef long sopno; -#define OPRMASK 0xf8000000 -#define OPDMASK 0x07ffffff -#define OPSHIFT ((unsigned)27) +#define OPRMASK 0x7c000000 +#define OPDMASK 0x03ffffff +#define OPSHIFT (26) #define OP(n) ((n)&OPRMASK) #define OPND(n) ((n)&OPDMASK) #define SOP(op, opnd) ((op)|(opnd)) @@ -69,11 +69,11 @@ #define OLPAREN (13<<OPSHIFT) /* ( fwd to ) */ #define ORPAREN (14<<OPSHIFT) /* ) back to ( */ #define OCH_ (15<<OPSHIFT) /* begin choice fwd to OOR2 */ -#define OOR1 (16u<<OPSHIFT) /* | pt. 1 back to OOR1 or OCH_ */ -#define OOR2 (17u<<OPSHIFT) /* | pt. 2 fwd to OOR2 or O_CH */ -#define O_CH (18u<<OPSHIFT) /* end choice back to OOR1 */ -#define OBOW (19u<<OPSHIFT) /* begin word - */ -#define OEOW (20u<<OPSHIFT) /* end word - */ +#define OOR1 (16<<OPSHIFT) /* | pt. 1 back to OOR1 or OCH_ */ +#define OOR2 (17<<OPSHIFT) /* | pt. 2 fwd to OOR2 or O_CH */ +#define O_CH (18<<OPSHIFT) /* end choice back to OOR1 */ +#define OBOW (19<<OPSHIFT) /* begin word - */ +#define OEOW (20<<OPSHIFT) /* end word - */ /* * Structure for [] character-set representation. Character sets are @@ -99,6 +99,8 @@ #define CHsub(cs, c) ((cs)->ptr[(uch)(c)] &= ~(cs)->mask, (cs)->hash -= (c)) #define CHIN(cs, c) ((cs)->ptr[(uch)(c)] & (cs)->mask) #define MCadd(p, cs, cp) mcadd(p, cs, cp) /* regcomp() internal fns */ +#define MCsub(p, cs, cp) mcsub(p, cs, cp) +#define MCin(p, cs, cp) mcin(p, cs, cp) /* stuff for character categories */ typedef unsigned char cat_t; Index: php3/regex/regexec.c diff -u php3/regex/regexec.c:1.5 php3/regex/regexec.c:1.6 --- php3/regex/regexec.c:1.5 Mon Dec 28 04:44:02 1998 +++ php3/regex/regexec.c Fri Nov 12 15:57:49 1999 @@ -5,7 +5,7 @@ * macros that code uses. This lets the same code operate on two different * representations for state sets. * - * $Id: regexec.c,v 1.5 1998/12/28 09:44:02 sas Exp $ + * $Id: regexec.c,v 1.6 1999/11/12 20:57:49 sas Exp $ */ #include <sys/types.h> @@ -19,24 +19,22 @@ #include "utils.h" #include "regex2.h" -#ifndef NDEBUG static int nope = 0; /* for use in asserts; shuts lint up */ -#endif /* macros for manipulating states, small version */ -#define states long -#define states1 states /* for later use in regexec() decision */ +#define states unsigned +#define states1 unsigned /* for later use in regexec() decision */ #define CLEAR(v) ((v) = 0) -#define SET0(v, n) ((v) &= ~(1 << (n))) -#define SET1(v, n) ((v) |= 1 << (n)) -#define ISSET(v, n) ((v) & (1 << (n))) +#define SET0(v, n) ((v) &= ~((unsigned)1 << (n))) +#define SET1(v, n) ((v) |= (unsigned)1 << (n)) +#define ISSET(v, n) ((v) & ((unsigned)1 << (n))) #define ASSIGN(d, s) ((d) = (s)) #define EQ(a, b) ((a) == (b)) #define STATEVARS int dummy /* dummy version */ #define STATESETUP(m, n) /* nothing */ #define STATETEARDOWN(m) /* nothing */ #define SETUP(v) ((v) = 0) -#define onestate int +#define onestate unsigned #define INIT(o, n) ((o) = (unsigned)1 << (n)) #define INC(o) ((o) <<= 1) #define ISSTATEIN(v, o) ((v) & (o)) Index: php3/regex/utils.h diff -u php3/regex/utils.h:1.6 php3/regex/utils.h:1.7 --- php3/regex/utils.h:1.6 Mon Dec 28 04:44:02 1998 +++ php3/regex/utils.h Fri Nov 12 15:57:49 1999 @@ -1,11 +1,11 @@ -/* $Id: utils.h,v 1.6 1998/12/28 09:44:02 sas Exp $ */ +/* $Id: utils.h,v 1.7 1999/11/12 20:57:49 sas Exp $ */ /* utility definitions */ -#ifndef _POSIX2_RE_DUP_MAX -#define _POSIX2_RE_DUP_MAX 255 +#ifdef _POSIX2_RE_DUP_MAX +#define DUPMAX _POSIX2_RE_DUP_MAX +#else +#define DUPMAX 255 #endif - -#define DUPMAX _POSIX2_RE_DUP_MAX /* xxx is this right? */ #define INFINITY (DUPMAX + 1) #define NC (CHAR_MAX - CHAR_MIN + 1) typedef unsigned char uch;

« previous php.dev (#12405) next »