1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-28 17:10:59 +01:00

37689: ! and ^ need to be tokenised in character sets

This commit is contained in:
Peter Stephenson 2016-01-19 17:24:12 +00:00
parent 8eb9070d67
commit ad16356e19
7 changed files with 110 additions and 42 deletions

View file

@ -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)