summaryrefslogtreecommitdiff
path: root/Src/math.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2017-03-07 10:43:58 +0000
committerPeter Stephenson <pws@zsh.org>2017-03-07 10:43:58 +0000
commitf3f8537cfa05414ad14494e809d9ebfeef86ebbc (patch)
treecfb02314dd129609ef3d6fc85ce75fc63b8c9582 /Src/math.c
parenta8345a40b1a79bb3a5c524ccf5fedf78040ae40e (diff)
downloadzsh-f3f8537cfa05414ad14494e809d9ebfeef86ebbc.tar.gz
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.c7
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;
}