diff options
author | Peter Stephenson <pws@zsh.org> | 2017-03-07 10:43:58 +0000 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2017-03-07 10:43:58 +0000 |
commit | f3f8537cfa05414ad14494e809d9ebfeef86ebbc (patch) | |
tree | cfb02314dd129609ef3d6fc85ce75fc63b8c9582 /Src/math.c | |
parent | a8345a40b1a79bb3a5c524ccf5fedf78040ae40e (diff) | |
download | zsh-f3f8537cfa05414ad14494e809d9ebfeef86ebbc.tar.gz zsh-f3f8537cfa05414ad14494e809d9ebfeef86ebbc.tar.xz zsh-f3f8537cfa05414ad14494e809d9ebfeef86ebbc.zip |
40760: Always tokenize unquoted - to Dash.
This fixes use of pattern match character ranges in unusual contexts. Attempt to detect a tokenized - in cases where we don't care.
Diffstat (limited to 'Src/math.c')
-rw-r--r-- | Src/math.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Src/math.c b/Src/math.c index f19c0ed61..f9613001a 100644 --- a/Src/math.c +++ b/Src/math.c @@ -463,7 +463,7 @@ lexconstant(void) char *nptr; nptr = ptr; - if (*nptr == '-') + if (IS_DASH(*nptr)) nptr++; if (*nptr == '0') { @@ -527,7 +527,7 @@ lexconstant(void) } if (*nptr == 'e' || *nptr == 'E') { nptr++; - if (*nptr == '+' || *nptr == '-') + if (*nptr == '+' || IS_DASH(*nptr)) nptr++; while (idigit(*nptr) || *nptr == '_') nptr++; @@ -599,7 +599,8 @@ zzlex(void) } return (unary) ? UPLUS : PLUS; case '-': - if (*ptr == '-') { + case Dash: + if (IS_DASH(*ptr)) { ptr++; return (unary) ? PREMINUS : POSTMINUS; } |