From 3dba9a8614e15292ef27cf81c202a39a37e4fff7 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 15 Sep 2011 14:04:51 +0000 Subject: 29776: fix case of double quotes in double-quote-style parsing where end character is something else --- ChangeLog | 6 +++++- Src/lex.c | 2 +- Test/D08cmdsubst.ztst | 8 ++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index e05d71c6d..b52361aa6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2011-09-15 Peter Stephenson + * 29776 (modified as noted): Src/lex.c, Test/D08cmdsubst.ztst: + double quotes are not special in double-quote-style parsing + if the end character is something else. + * 29773: Marco Hinz: Completion/Unix/Type/_perl_modules: complete some missed modules. @@ -15413,5 +15417,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.5466 $ +* $Revision: 1.5467 $ ***************************************************** diff --git a/Src/lex.c b/Src/lex.c index 51aaa76ef..90c4effd9 100644 --- a/Src/lex.c +++ b/Src/lex.c @@ -1567,7 +1567,7 @@ dquote_parse(char endchar, int sub) err = (!brct-- && math); break; case '"': - if (intick || ((endchar == ']' || !endchar) && !bct)) + if (intick || (endchar != '"' && !bct)) break; if (bct) { add(Dnull); diff --git a/Test/D08cmdsubst.ztst b/Test/D08cmdsubst.ztst index 9962c6cad..5661b0aaa 100644 --- a/Test/D08cmdsubst.ztst +++ b/Test/D08cmdsubst.ztst @@ -98,3 +98,11 @@ echo `echo $?` 0:Non-empty command substitution inherits status >1 + + echo $(( ##\" )) + echo $(echo \") + echo $((echo \"); echo OK) +0:Handling of backslash double quote in parenthesised substitutions +>34 +>" +>" OK -- cgit 1.4.1