From ad16356e1923ec1b4daf97b27b10a835cfe73ba7 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 19 Jan 2016 17:24:12 +0000 Subject: 37689: ! and ^ need to be tokenised in character sets --- Src/glob.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) (limited to 'Src/glob.c') 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) -- cgit 1.4.1