From f3f8537cfa05414ad14494e809d9ebfeef86ebbc Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 7 Mar 2017 10:43:58 +0000 Subject: 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. --- Src/zsh.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'Src/zsh.h') diff --git a/Src/zsh.h b/Src/zsh.h index f2c279002..10931512d 100644 --- a/Src/zsh.h +++ b/Src/zsh.h @@ -237,6 +237,16 @@ struct mathfunc { #define PATCHARS "#^*()|[]<>?~\\" +/* + * Check for a possibly tokenized dash. + * + * A dash only needs to be a token in a character range, [a-z], but + * it's difficult in general to ensure that. So it's turned into + * a token at the usual point in the lexer. However, we need + * to check for a literal dash at many points. + */ +#define IS_DASH(x) ((x) == '-' || (x) == Dash) + /* * Types of quote. This is used in various places, so care needs * to be taken when changing them. (Oooh, don't you look surprised.) -- cgit 1.4.1