diff options
author | Peter Stephenson <pws@zsh.org> | 2016-01-19 17:24:12 +0000 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2016-01-19 17:24:12 +0000 |
commit | ad16356e1923ec1b4daf97b27b10a835cfe73ba7 (patch) | |
tree | 714fe0c1d6c89a32ac5194475402fa6dc3f8d218 /Src/glob.c | |
parent | 8eb9070d6785f423dd9bdbbb0513aa47c8a08d62 (diff) | |
download | zsh-ad16356e1923ec1b4daf97b27b10a835cfe73ba7.tar.gz zsh-ad16356e1923ec1b4daf97b27b10a835cfe73ba7.tar.xz zsh-ad16356e1923ec1b4daf97b27b10a835cfe73ba7.zip |
37689: ! and ^ need to be tokenised in character sets
Diffstat (limited to 'Src/glob.c')
-rw-r--r-- | Src/glob.c | 19 |
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) |