diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2007-09-25 22:29:00 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2007-09-25 22:29:00 +0800 |
commit | 7cfd8be0dc83342b4a71f3a8e5b7efab4670e50c (patch) | |
tree | 58bea2cd50124e8599e4ebdbbd2f622138bdc8c2 /src/parser.h | |
parent | [EXPAND] Do not expand tilde in parameter expansion within quotes (diff) | |
download | dash-7cfd8be0dc83342b4a71f3a8e5b7efab4670e50c.tar.gz dash-7cfd8be0dc83342b4a71f3a8e5b7efab4670e50c.zip |
[EXPAND] Move parse-time quote flag detection to run-time
Because the parser does not recursively parse parameter expansion with respect to quotes, we can't accurately determine quote status at parse time. This patch works around this by moving the quote detection to run-time where we do interpret it recursively. Test case: foo=\\ echo "<${foo#[\\]}>" Old result: <\> New result: <>
Diffstat (limited to 'src/parser.h')
-rw-r--r-- | src/parser.h | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/src/parser.h b/src/parser.h index 76ec839..badbd07 100644 --- a/src/parser.h +++ b/src/parser.h @@ -40,8 +40,6 @@ #define CTLVAR -126 /* variable defn */ #define CTLENDVAR -125 #define CTLBACKQ -124 -#define CTLQUOTE 01 /* ored with CTLBACKQ code if in quotes */ -/* CTLBACKQ | CTLQUOTE == -123 */ #define CTLARI -122 /* arithmetic expression */ #define CTLENDARI -121 #define CTLQUOTEMARK -120 @@ -50,7 +48,6 @@ /* variable substitution byte (follows CTLVAR) */ #define VSTYPE 0x0f /* type of variable substitution */ #define VSNUL 0x10 /* colon--treat the empty string as unset */ -#define VSQUOTE 0x80 /* inside double quotes--suppress splitting */ /* values of VSTYPE field */ #define VSNORMAL 0x1 /* normal variable: $var or ${var} */ |