* libc/minires.c (scanline): Fix type in calls to ctype functions
to stay in unsigned char range for char values >= 0x80. * regex/regcomp.c: Ditto, throughout. * regex/regex2.h (ISWORD): Ditto.
This commit is contained in:
parent
e1de7bfabd
commit
eed691a929
|
@ -1,3 +1,10 @@
|
|||
2009-05-06 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* libc/minires.c (scanline): Fix type in calls to ctype functions
|
||||
to stay in unsigned char range for char values >= 0x80.
|
||||
* regex/regcomp.c: Ditto, throughout.
|
||||
* regex/regex2.h (ISWORD): Ditto.
|
||||
|
||||
2009-05-06 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* cygheap.cc (cygheap_init): Set umask to a sane default.
|
||||
|
|
|
@ -43,11 +43,11 @@ static int scanline(char * in, char **list, int * sizes, int maxnum)
|
|||
int i;
|
||||
char * startp;
|
||||
for (i = 0; i < maxnum; i++) {
|
||||
while((*in) && (isspace((unsigned)*in) || *in == ',')) in++;
|
||||
while((*in) && (isspace((unsigned char)*in) || *in == ',')) in++;
|
||||
if (*in == 0)
|
||||
break;
|
||||
startp = in++;
|
||||
while((*in) && !isspace((unsigned)*in) && *in != ',') in++;
|
||||
while((*in) && !isspace((unsigned char)*in) && *in != ',') in++;
|
||||
list[i] = startp;
|
||||
sizes[i] = in - startp + 1;
|
||||
if (*in)
|
||||
|
|
|
@ -311,7 +311,7 @@ register struct parse *p;
|
|||
ordinary(p, c);
|
||||
break;
|
||||
case '{': /* okay as ordinary except if digit follows */
|
||||
REQUIRE(!MORE() || !isdigit((unsigned)PEEK()), REG_BADRPT);
|
||||
REQUIRE(!MORE() || !isdigit((unsigned char)PEEK()), REG_BADRPT);
|
||||
/* FALLTHROUGH */
|
||||
default:
|
||||
ordinary(p, c);
|
||||
|
@ -323,7 +323,7 @@ register struct parse *p;
|
|||
c = PEEK();
|
||||
/* we call { a repetition if followed by a digit */
|
||||
if (!( c == '*' || c == '+' || c == '?' ||
|
||||
(c == '{' && MORE2() && isdigit((unsigned)PEEK2())) ))
|
||||
(c == '{' && MORE2() && isdigit((unsigned char)PEEK2())) ))
|
||||
return; /* no repetition, we're done */
|
||||
NEXT();
|
||||
|
||||
|
@ -352,7 +352,7 @@ register struct parse *p;
|
|||
case '{':
|
||||
count = p_count(p);
|
||||
if (EAT(',')) {
|
||||
if (isdigit((unsigned)PEEK())) {
|
||||
if (isdigit((unsigned char)PEEK())) {
|
||||
count2 = p_count(p);
|
||||
REQUIRE(count <= count2, REG_BADBR);
|
||||
} else /* single number with comma */
|
||||
|
@ -373,7 +373,7 @@ register struct parse *p;
|
|||
return;
|
||||
c = PEEK();
|
||||
if (!( c == '*' || c == '+' || c == '?' ||
|
||||
(c == '{' && MORE2() && isdigit((unsigned)PEEK2())) ) )
|
||||
(c == '{' && MORE2() && isdigit((unsigned char)PEEK2())) ) )
|
||||
return;
|
||||
SETERROR(REG_BADRPT);
|
||||
}
|
||||
|
@ -530,7 +530,7 @@ int starordinary; /* is a leading * an ordinary character? */
|
|||
} else if (EATTWO('\\', '{')) {
|
||||
count = p_count(p);
|
||||
if (EAT(',')) {
|
||||
if (MORE() && isdigit((unsigned)PEEK())) {
|
||||
if (MORE() && isdigit((unsigned char)PEEK())) {
|
||||
count2 = p_count(p);
|
||||
REQUIRE(count <= count2, REG_BADBR);
|
||||
} else /* single number with comma */
|
||||
|
@ -561,7 +561,7 @@ register struct parse *p;
|
|||
register int count = 0;
|
||||
register int ndigits = 0;
|
||||
|
||||
while (MORE() && isdigit((unsigned)PEEK()) && count <= DUPMAX) {
|
||||
while (MORE() && isdigit((unsigned char)PEEK()) && count <= DUPMAX) {
|
||||
count = count*10 + (GETNEXT() - '0');
|
||||
ndigits++;
|
||||
}
|
||||
|
@ -728,7 +728,7 @@ register cset *cs;
|
|||
register const char *u;
|
||||
register char c;
|
||||
|
||||
while (MORE() && isalpha((unsigned)PEEK()))
|
||||
while (MORE() && isalpha((unsigned char)PEEK()))
|
||||
NEXT();
|
||||
len = p->next - sp;
|
||||
for (cp = cclasses; cp->name != NULL; cp++)
|
||||
|
|
|
@ -131,4 +131,4 @@ struct re_guts {
|
|||
|
||||
/* misc utilities */
|
||||
#define OUT (CHAR_MAX+1) /* a non-character value */
|
||||
#define ISWORD(c) (isalnum((unsigned)c) || (c) == '_')
|
||||
#define ISWORD(c) (isalnum((unsigned char)c) || (c) == '_')
|
||||
|
|
Loading…
Reference in New Issue