diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2001-08-30 17:55:58 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2001-08-30 17:55:58 -0300 |
| commit | 34a09b65f3b6ef5f7699263b09ad088ec087aca2 (patch) | |
| tree | 8c829a064992062bff1ad4e41c5df2c447fc1447 | |
| parent | 29d883b9bd8f35bf65443517371326a6021e20c1 (diff) | |
| download | lua-34a09b65f3b6ef5f7699263b09ad088ec087aca2.tar.gz lua-34a09b65f3b6ef5f7699263b09ad088ec087aca2.tar.bz2 lua-34a09b65f3b6ef5f7699263b09ad088ec087aca2.zip | |
some changes of arguments from char to int
Diffstat (limited to '')
| -rw-r--r-- | lstrlib.c | 44 |
1 files changed, 22 insertions, 22 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lstrlib.c,v 1.68 2001/03/26 14:31:49 roberto Exp roberto $ | 2 | ** $Id: lstrlib.c,v 1.69 2001/07/17 18:46:49 roberto Exp $ |
| 3 | ** Standard library for string operations and pattern-matching | 3 | ** Standard library for string operations and pattern-matching |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -181,26 +181,26 @@ static const l_char *luaI_classend (MatchState *ms, const l_char *p) { | |||
| 181 | } | 181 | } |
| 182 | 182 | ||
| 183 | 183 | ||
| 184 | static int match_class (l_char c, l_char cl) { | 184 | static int match_class (l_charint c, l_charint cl) { |
| 185 | int res; | 185 | int res; |
| 186 | switch (tolower(uchar(cl))) { | 186 | switch (tolower(cl)) { |
| 187 | case l_c('a') : res = isalpha(uchar(c)); break; | 187 | case l_c('a') : res = isalpha(c); break; |
| 188 | case l_c('c') : res = iscntrl(uchar(c)); break; | 188 | case l_c('c') : res = iscntrl(c); break; |
| 189 | case l_c('d') : res = isdigit(uchar(c)); break; | 189 | case l_c('d') : res = isdigit(c); break; |
| 190 | case l_c('l') : res = islower(uchar(c)); break; | 190 | case l_c('l') : res = islower(c); break; |
| 191 | case l_c('p') : res = ispunct(uchar(c)); break; | 191 | case l_c('p') : res = ispunct(c); break; |
| 192 | case l_c('s') : res = isspace(uchar(c)); break; | 192 | case l_c('s') : res = isspace(c); break; |
| 193 | case l_c('u') : res = isupper(uchar(c)); break; | 193 | case l_c('u') : res = isupper(c); break; |
| 194 | case l_c('w') : res = isalnum(uchar(c)); break; | 194 | case l_c('w') : res = isalnum(c); break; |
| 195 | case l_c('x') : res = isxdigit(uchar(c)); break; | 195 | case l_c('x') : res = isxdigit(c); break; |
| 196 | case l_c('z') : res = (c == l_c('\0')); break; | 196 | case l_c('z') : res = (c == 0); break; |
| 197 | default: return (cl == c); | 197 | default: return (cl == c); |
| 198 | } | 198 | } |
| 199 | return (islower(uchar(cl)) ? res : !res); | 199 | return (islower(cl) ? res : !res); |
| 200 | } | 200 | } |
| 201 | 201 | ||
| 202 | 202 | ||
| 203 | static int matchbracketclass (l_char c, const l_char *p, const l_char *ec) { | 203 | static int matchbracketclass (l_charint c, const l_char *p, const l_char *ec) { |
| 204 | int sig = 1; | 204 | int sig = 1; |
| 205 | if (*(p+1) == l_c('^')) { | 205 | if (*(p+1) == l_c('^')) { |
| 206 | sig = 0; | 206 | sig = 0; |
| @@ -214,16 +214,16 @@ static int matchbracketclass (l_char c, const l_char *p, const l_char *ec) { | |||
| 214 | } | 214 | } |
| 215 | else if ((*(p+1) == l_c('-')) && (p+2 < ec)) { | 215 | else if ((*(p+1) == l_c('-')) && (p+2 < ec)) { |
| 216 | p+=2; | 216 | p+=2; |
| 217 | if (uchar(*(p-2)) <= uchar(c) && uchar(c) <= uchar(*p)) | 217 | if (uchar(*(p-2)) <= c && c <= uchar(*p)) |
| 218 | return sig; | 218 | return sig; |
| 219 | } | 219 | } |
| 220 | else if (*p == c) return sig; | 220 | else if (uchar(*p) == c) return sig; |
| 221 | } | 221 | } |
| 222 | return !sig; | 222 | return !sig; |
| 223 | } | 223 | } |
| 224 | 224 | ||
| 225 | 225 | ||
| 226 | static int luaI_singlematch (l_char c, const l_char *p, const l_char *ep) { | 226 | static int luaI_singlematch (l_charint c, const l_char *p, const l_char *ep) { |
| 227 | switch (*p) { | 227 | switch (*p) { |
| 228 | case l_c('.'): /* matches any char */ | 228 | case l_c('.'): /* matches any char */ |
| 229 | return 1; | 229 | return 1; |
| @@ -232,7 +232,7 @@ static int luaI_singlematch (l_char c, const l_char *p, const l_char *ep) { | |||
| 232 | case l_c('['): | 232 | case l_c('['): |
| 233 | return matchbracketclass(c, p, ep-1); | 233 | return matchbracketclass(c, p, ep-1); |
| 234 | default: | 234 | default: |
| 235 | return (*p == c); | 235 | return (uchar(*p) == c); |
| 236 | } | 236 | } |
| 237 | } | 237 | } |
| 238 | 238 | ||
| @@ -263,7 +263,7 @@ static const l_char *matchbalance (MatchState *ms, const l_char *s, | |||
| 263 | static const l_char *max_expand (MatchState *ms, const l_char *s, | 263 | static const l_char *max_expand (MatchState *ms, const l_char *s, |
| 264 | const l_char *p, const l_char *ep) { | 264 | const l_char *p, const l_char *ep) { |
| 265 | sint32 i = 0; /* counts maximum expand for item */ | 265 | sint32 i = 0; /* counts maximum expand for item */ |
| 266 | while ((s+i)<ms->src_end && luaI_singlematch(*(s+i), p, ep)) | 266 | while ((s+i)<ms->src_end && luaI_singlematch(uchar(*(s+i)), p, ep)) |
| 267 | i++; | 267 | i++; |
| 268 | /* keeps trying to match with the maximum repetitions */ | 268 | /* keeps trying to match with the maximum repetitions */ |
| 269 | while (i>=0) { | 269 | while (i>=0) { |
| @@ -281,7 +281,7 @@ static const l_char *min_expand (MatchState *ms, const l_char *s, | |||
| 281 | const l_char *res = match(ms, s, ep+1); | 281 | const l_char *res = match(ms, s, ep+1); |
| 282 | if (res != NULL) | 282 | if (res != NULL) |
| 283 | return res; | 283 | return res; |
| 284 | else if (s<ms->src_end && luaI_singlematch(*s, p, ep)) | 284 | else if (s<ms->src_end && luaI_singlematch(uchar(*s), p, ep)) |
| 285 | s++; /* try with one more repetition */ | 285 | s++; /* try with one more repetition */ |
| 286 | else return NULL; | 286 | else return NULL; |
| 287 | } | 287 | } |
| @@ -354,7 +354,7 @@ static const l_char *match (MatchState *ms, const l_char *s, const l_char *p) { | |||
| 354 | else goto dflt; | 354 | else goto dflt; |
| 355 | default: dflt: { /* it is a pattern item */ | 355 | default: dflt: { /* it is a pattern item */ |
| 356 | const l_char *ep = luaI_classend(ms, p); /* points to what is next */ | 356 | const l_char *ep = luaI_classend(ms, p); /* points to what is next */ |
| 357 | int m = s<ms->src_end && luaI_singlematch(*s, p, ep); | 357 | int m = s<ms->src_end && luaI_singlematch(uchar(*s), p, ep); |
| 358 | switch (*ep) { | 358 | switch (*ep) { |
| 359 | case l_c('?'): { /* optional */ | 359 | case l_c('?'): { /* optional */ |
| 360 | const l_char *res; | 360 | const l_char *res; |
