summaryrefslogtreecommitdiff
path: root/Src/glob.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2016-01-19 17:24:12 +0000
committerPeter Stephenson <pws@zsh.org>2016-01-19 17:24:12 +0000
commitad16356e1923ec1b4daf97b27b10a835cfe73ba7 (patch)
tree714fe0c1d6c89a32ac5194475402fa6dc3f8d218 /Src/glob.c
parent8eb9070d6785f423dd9bdbbb0513aa47c8a08d62 (diff)
downloadzsh-ad16356e1923ec1b4daf97b27b10a835cfe73ba7.tar.gz
zsh-ad16356e1923ec1b4daf97b27b10a835cfe73ba7.zip
37689: ! and ^ need to be tokenised in character sets
Diffstat (limited to 'Src/glob.c')
-rw-r--r--Src/glob.c19
1 files changed, 4 insertions, 15 deletions
diff --git a/Src/glob.c b/Src/glob.c
index e5d8956e6..c7992813e 100644
--- a/Src/glob.c
+++ b/Src/glob.c
@@ -3476,7 +3476,7 @@ static void
zshtokenize(char *s, int flags)
{
char *t;
- int bslash = 0, seen_brct = 0;
+ int bslash = 0;
for (; *s; s++) {
cont:
@@ -3507,20 +3507,6 @@ zshtokenize(char *s, int flags)
*t = Inang;
*s = Outang;
break;
- case '[':
- if (bslash)
- s[-1] = (flags & ZSHTOK_SUBST) ? Bnullkeep : Bnull;
- else {
- seen_brct = 1;
- *s = Inbrack;
- }
- break;
- case '-':
- if (bslash)
- s[-1] = (flags & ZSHTOK_SUBST) ? Bnullkeep : Bnull;
- else if (seen_brct) /* see corresonding code in lex.c */
- *s = Dash;
- break;
case '(':
case '|':
case ')':
@@ -3531,10 +3517,13 @@ zshtokenize(char *s, int flags)
case '^':
case '#':
case '~':
+ case '[':
case ']':
case '*':
case '?':
case '=':
+ case '-':
+ case '!':
for (t = ztokens; *t; t++) {
if (*t == *s) {
if (bslash)