fielding 97/02/16 20:52:44
Modified: src CHANGES
src/regex cclass.h cname.h debug.c engine.c main.c
regcomp.c regerror.c regex2.h regexec.c
Log:
Fixed compiler warnings in the regex library.
Submitted by: Dean Gaudet
Reviewed by: Marc Slemko, Roy Fielding
Revision Changes Path
1.165 +2 -0 apache/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apache/src/CHANGES,v
retrieving revision 1.164
retrieving revision 1.165
diff -C3 -r1.164 -r1.165
*** CHANGES 1997/02/17 00:45:06 1.164
--- CHANGES 1997/02/17 04:52:38 1.165
***************
*** 100,105 ****
--- 100,107 ----
*) Fixed http_protocol to correctly output all HTTP/1.1 headers, including
for the special case of a 304 response. [Paul Sutton]
+ *) Fixed compiler warnings in the regex library. [Dean Gaudet]
+
Changes with Apache 1.2b6
*) Allow whitespace in imagemap mapfile coordinates. [Marc Slemko]
1.2 +22 -22 apache/src/regex/cclass.h
Index: cclass.h
===================================================================
RCS file: /export/home/cvs/apache/src/regex/cclass.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C3 -r1.1 -r1.2
*** cclass.h 1996/07/23 22:06:42 1.1
--- cclass.h 1997/02/17 04:52:40 1.2
***************
*** 4,31 ****
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\
0123456789!\"#$%&'()*+,-./:;<=>[EMAIL PROTECTED]|}~",
! "",
! "lower", "abcdefghijklmnopqrstuvwxyz",
! "",
! "print", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
0123456789!\"#$%&'()*+,-./:;<=>[EMAIL PROTECTED]|}~ ",
! "",
! "punct", "!\"#$%&'()*+,-./:;<=>[EMAIL PROTECTED]|}~",
! "",
! "space", "\t\n\v\f\r ", "",
! "upper", "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
! "",
! "xdigit", "0123456789ABCDEFabcdef",
! "",
! NULL, 0, ""
};
--- 4,31 ----
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\
0123456789!\"#$%&'()*+,-./:;<=>[EMAIL PROTECTED]|}~",
! "" },
! { "lower", "abcdefghijklmnopqrstuvwxyz",
! "" },
! { "print", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
0123456789!\"#$%&'()*+,-./:;<=>[EMAIL PROTECTED]|}~ ",
! "" },
! { "punct", "!\"#$%&'()*+,-./:;<=>[EMAIL PROTECTED]|}~",
! "" },
! { "space", "\t\n\v\f\r ", "" },
! { "upper", "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
! "" },
! { "xdigit", "0123456789ABCDEFabcdef",
! "" },
! { NULL, 0, "" }
};
1.2 +96 -96 apache/src/regex/cname.h
Index: cname.h
===================================================================
RCS file: /export/home/cvs/apache/src/regex/cname.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C3 -r1.1 -r1.2
*** cname.h 1996/07/23 22:06:43 1.1
--- cname.h 1997/02/17 04:52:40 1.2
***************
*** 3,102 ****
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,
};
--- 3,102 ----
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 }
};
1.2 +1 -1 apache/src/regex/debug.c
Index: debug.c
===================================================================
RCS file: /export/home/cvs/apache/src/regex/debug.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C3 -r1.1 -r1.2
*** debug.c 1996/07/23 22:06:43 1.1
--- debug.c 1997/02/17 04:52:40 1.2
***************
*** 216,222 ****
fprintf(d, ">");
break;
default:
! fprintf(d, "!%d(%d)!", OP(*s), opnd);
break;
}
if (!done)
--- 216,222 ----
fprintf(d, ">");
break;
default:
! fprintf(d, "!%ld(%ld)!", OP(*s), opnd);
break;
}
if (!done)
1.2 +3 -2 apache/src/regex/engine.c
Index: engine.c
===================================================================
RCS file: /export/home/cvs/apache/src/regex/engine.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C3 -r1.1 -r1.2
*** engine.c 1996/07/23 22:06:44 1.1
--- engine.c 1997/02/17 04:52:40 1.2
***************
*** 75,82 ****
struct match mv;
register struct match *m = &mv;
register char *dp;
! const register sopno gf = g->firststate+1; /* +1 for OEND */
! const register sopno gl = g->laststate;
char *start;
char *stop;
--- 75,82 ----
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;
char *start;
char *stop;
***************
*** 613,618 ****
--- 613,619 ----
/* "can't happen" */
assert(nope);
/* NOTREACHED */
+ return( NULL );
}
/*
1.2 +3 -3 apache/src/regex/main.c
Index: main.c
===================================================================
RCS file: /export/home/cvs/apache/src/regex/main.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C3 -r1.1 -r1.2
*** main.c 1996/07/23 22:06:44 1.1
--- main.c 1997/02/17 04:52:40 1.2
***************
*** 3,8 ****
--- 3,9 ----
#include <sys/types.h>
#include <regex.h>
#include <assert.h>
+ #include <stdlib.h>
#include "main.ih"
***************
*** 23,29 ****
/*
- main - do the simple case, hand off to regress() for regression
*/
! main(argc, argv)
int argc;
char *argv[];
{
--- 24,30 ----
/*
- main - do the simple case, hand off to regress() for regression
*/
! int main(argc, argv)
int argc;
char *argv[];
{
***************
*** 103,109 ****
len = (int)(subs[0].rm_eo - subs[0].rm_so);
if (subs[0].rm_so != -1) {
if (len != 0)
! printf("match `%.*s'\n", len,
argv[optind] + subs[0].rm_so);
else
printf("match `'@%.1s\n",
--- 104,110 ----
len = (int)(subs[0].rm_eo - subs[0].rm_so);
if (subs[0].rm_so != -1) {
if (len != 0)
! printf("match `%.*s'\n", (int)len,
argv[optind] + subs[0].rm_so);
else
printf("match `'@%.1s\n",
***************
*** 499,505 ****
char *name;
{
static char efbuf[100];
- size_t n;
regex_t re;
sprintf(efbuf, "REG_%s", name);
--- 500,505 ----
1.3 +5 -64 apache/src/regex/regcomp.c
Index: regcomp.c
===================================================================
RCS file: /export/home/cvs/apache/src/regex/regcomp.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C3 -r1.2 -r1.3
*** regcomp.c 1997/01/25 22:38:29 1.2
--- regcomp.c 1997/02/17 04:52:41 1.3
***************
*** 51,57 ****
#define NEXTn(n) (p->next += (n))
#define GETNEXT() (*p->next++)
#define SETERROR(e) seterr(p, (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))
--- 51,57 ----
#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 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))
***************
*** 192,199 ****
int stop; /* character this ERE should end at */
{
register char c;
! register sopno prevback;
! register sopno prevfwd;
register sopno conc;
register int first = 1; /* is this the first alternative? */
--- 192,199 ----
int stop; /* character this ERE should end at */
{
register char c;
! register sopno prevback = 0;
! register sopno prevfwd = 0;
register sopno conc;
register int first = 1; /* is this the first alternative? */
***************
*** 580,586 ****
p_bracket(p)
register struct parse *p;
{
- register char c;
register cset *cs = allocset(p);
register int invert = 0;
--- 580,585 ----
***************
*** 796,802 ****
register char *sp = p->next;
register struct cname *cp;
register int len;
- register char c;
while (MORE() && !SEETWO(endc, ']'))
NEXT1();
--- 795,800 ----
***************
*** 1171,1233 ****
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
--- 1169,1174 ----
***************
*** 1497,1504 ****
register struct re_guts *g;
{
register sop *scan;
! sop *start;
! register sop *newstart;
register sopno newlen;
register sop s;
register char *cp;
--- 1438,1445 ----
register struct re_guts *g;
{
register sop *scan;
! sop *start = NULL;
! register sop *newstart = NULL;
register sopno newlen;
register sop s;
register char *cp;
1.2 +17 -19 apache/src/regex/regerror.c
Index: regerror.c
===================================================================
RCS file: /export/home/cvs/apache/src/regex/regerror.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C3 -r1.1 -r1.2
*** regerror.c 1996/07/23 22:06:45 1.1
--- regerror.c 1997/02/17 04:52:41 1.2
***************
*** 34,56 ****
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 ***",
};
/*
--- 34,56 ----
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 ***" }
};
/*
***************
*** 112,119 ****
char *localbuf;
{
register struct rerr *r;
- register size_t siz;
- register char *p;
for (r = rerrs; r->code != 0; r++)
if (strcmp(r->name, preg->re_endp) == 0)
--- 112,117 ----
1.3 +0 -2 apache/src/regex/regex2.h
Index: regex2.h
===================================================================
RCS file: /export/home/cvs/apache/src/regex/regex2.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C3 -r1.2 -r1.3
*** regex2.h 1996/07/24 13:52:27 1.2
--- regex2.h 1997/02/17 04:52:41 1.3
***************
*** 91,98 ****
#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;
--- 91,96 ----
1.2 +2 -0 apache/src/regex/regexec.c
Index: regexec.c
===================================================================
RCS file: /export/home/cvs/apache/src/regex/regexec.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C3 -r1.1 -r1.2
*** regexec.c 1996/07/23 22:06:47 1.1
--- regexec.c 1997/02/17 04:52:41 1.2
***************
*** 16,22 ****
--- 16,24 ----
#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