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/zsh.h | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'Src/zsh.h') diff --git a/Src/zsh.h b/Src/zsh.h index 6ee2a9c8d..b83b8bdbb 100644 --- a/Src/zsh.h +++ b/Src/zsh.h @@ -193,29 +193,30 @@ struct mathfunc { #define Qtick ((char) 0x99) #define Comma ((char) 0x9a) #define Dash ((char) 0x9b) /* Only in patterns */ +#define Bang ((char) 0x9c) /* Only in patterns */ /* * Marks the last of the group above. * Remaining tokens are even more special. */ -#define LAST_NORMAL_TOK Dash +#define LAST_NORMAL_TOK Bang /* * Null arguments: placeholders for single and double quotes * and backslashes. */ -#define Snull ((char) 0x9c) -#define Dnull ((char) 0x9d) -#define Bnull ((char) 0x9e) +#define Snull ((char) 0x9d) +#define Dnull ((char) 0x9e) +#define Bnull ((char) 0x9f) /* * Backslash which will be returned to "\" instead of being stripped * when we turn the string into a printable format. */ -#define Bnullkeep ((char) 0x9f) +#define Bnullkeep ((char) 0xa0) /* * Null argument that does not correspond to any character. * This should be last as it does not appear in ztokens and * is used to initialise the IMETA type in inittyptab(). */ -#define Nularg ((char) 0xa0) +#define Nularg ((char) 0xa1) /* * Take care to update the use of IMETA appropriately when adding @@ -226,7 +227,7 @@ struct mathfunc { * Also used in pattern character arrays as guaranteed not to * mark a character in a string. */ -#define Marker ((char) 0xa1) +#define Marker ((char) 0xa2) /* chars that need to be quoted if meant literally */ @@ -1549,6 +1550,7 @@ enum zpc_chars { ZPC_KSH_STAR, /* * for *(...) in KSH_GLOB */ ZPC_KSH_PLUS, /* + for +(...) in KSH_GLOB */ ZPC_KSH_BANG, /* ! for !(...) in KSH_GLOB */ + ZPC_KSH_BANG2, /* ! for !(...) in KSH_GLOB, untokenised */ ZPC_KSH_AT, /* @ for @(...) in KSH_GLOB */ ZPC_COUNT /* Number of special chararacters */ }; -- cgit 1.4.1