summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2011-09-15 14:04:51 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2011-09-15 14:04:51 +0000
commit3dba9a8614e15292ef27cf81c202a39a37e4fff7 (patch)
treecf2a137cfcbe6cbfb20e3c0ef37477820a563c37
parenta0700c54400fdfbed7244354f2c207414558745b (diff)
downloadzsh-3dba9a8614e15292ef27cf81c202a39a37e4fff7.tar.gz
zsh-3dba9a8614e15292ef27cf81c202a39a37e4fff7.zip
29776: fix case of double quotes in double-quote-style
parsing where end character is something else
-rw-r--r--ChangeLog6
-rw-r--r--Src/lex.c2
-rw-r--r--Test/D08cmdsubst.ztst8
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 <pws@csr.com>
+ * 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