diff options
| author | Peter Stephenson <pws@zsh.org> | 2017-03-07 10:43:58 +0000 |
|---|---|---|
| committer | Peter Stephenson <pws@zsh.org> | 2017-03-07 10:43:58 +0000 |
| commit | f3f8537cfa05414ad14494e809d9ebfeef86ebbc (patch) | |
| tree | cfb02314dd129609ef3d6fc85ce75fc63b8c9582 /Src/cond.c | |
| parent | 40780: Don't use =~ for simple prefix match (diff) | |
| download | zsh-f3f8537cfa05414ad14494e809d9ebfeef86ebbc.tar zsh-f3f8537cfa05414ad14494e809d9ebfeef86ebbc.tar.gz zsh-f3f8537cfa05414ad14494e809d9ebfeef86ebbc.tar.bz2 zsh-f3f8537cfa05414ad14494e809d9ebfeef86ebbc.tar.lz zsh-f3f8537cfa05414ad14494e809d9ebfeef86ebbc.tar.xz zsh-f3f8537cfa05414ad14494e809d9ebfeef86ebbc.tar.zst 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/cond.c')
| -rw-r--r-- | Src/cond.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Src/cond.c b/Src/cond.c index 8ab019307..9b739f6c1 100644 --- a/Src/cond.c +++ b/Src/cond.c @@ -138,13 +138,13 @@ evalcond(Estate state, char *fromtest) strs = arrdup(sbuf); l = 2; } - if (name && name[0] == '-') + if (name && IS_DASH(name[0])) errname = name; - else if (strs[0] && *strs[0] == '-') + else if (strs[0] && IS_DASH(*strs[0])) errname = strs[0]; else errname = "<null>"; - if (name && name[0] == '-' && + if (name && IS_DASH(name[0]) && (cd = getconddef((ctype == COND_MODI), name + 1, 1))) { if (ctype == COND_MOD && (l < cd->min || (cd->max >= 0 && l > cd->max))) { @@ -171,7 +171,7 @@ evalcond(Estate state, char *fromtest) strs[0] = dupstring(name); name = s; - if (name && name[0] == '-' && + if (name && IS_DASH(name[0]) && (cd = getconddef(0, name + 1, 1))) { if (l < cd->min || (cd->max >= 0 && l > cd->max)) { zwarnnam(fromtest, "unknown condition: %s", |
