diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2006-07-10 13:08:22 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2006-07-10 13:08:22 +0000 |
commit | 4a67f2479892fda348546404216270aaaff523ea (patch) | |
tree | 3157f967e4324cdf147aa656c021e55e96f29731 /Src/math.c | |
parent | 272256f5d6f4748aed680256589a67713e517383 (diff) | |
download | zsh-4a67f2479892fda348546404216270aaaff523ea.tar.gz zsh-4a67f2479892fda348546404216270aaaff523ea.tar.xz zsh-4a67f2479892fda348546404216270aaaff523ea.zip |
22544: Improve use of ztype tests for multibyte characters. Add
POSIX_IDENTIFIERS option to control allowability of multibyte alphanumeric characters in parameter and module names.
Diffstat (limited to 'Src/math.c')
-rw-r--r-- | Src/math.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/Src/math.c b/Src/math.c index bd48288ec..fe5f7b74b 100644 --- a/Src/math.c +++ b/Src/math.c @@ -265,11 +265,12 @@ zzlex(void) { int cct = 0; yyval.type = MN_INTEGER; + char *ie; for (;; cct = 0) switch (*ptr++) { case '+': - if (*ptr == '+' && (unary || !ialnum(*ptr))) { + if (*ptr == '+') { ptr++; return (unary) ? PREPLUS : POSTPLUS; } @@ -279,7 +280,7 @@ zzlex(void) } return (unary) ? UPLUS : PLUS; case '-': - if (*ptr == '-' && (unary || !ialnum(*ptr))) { + if (*ptr == '-') { ptr++; return (unary) ? PREMINUS : POSTMINUS; } @@ -469,12 +470,12 @@ zzlex(void) } cct = 1; } - if (iident(*ptr)) { + if ((ie = itype_end(ptr, IIDENT, 0)) != ptr) { int func = 0; char *p; p = ptr; - while (iident(*++ptr)); + ptr = ie; if (*ptr == '[' || (!cct && *ptr == '(')) { char op = *ptr, cp = ((*ptr == '[') ? ']' : ')'); int l; |