summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Src/utils.c6
-rw-r--r--Test/D04parameter.ztst4
3 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d1143449a..6e02eae27 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-09-17 Barton E. Schaefer <schaefer@zsh.org>
+
+ * unposted: Test/D04parameter.ztst: test for 36552
+
+ * 36552: Src/utils.c: fix Nularg string in quotestring(QT_DOLLARS)
+
2015-09-14 Daniel Shahaf <d.s@daniel.shahaf.name>
* unposted: Doc/Zsh/zle.yo README: docs: Typo fixes
diff --git a/Src/utils.c b/Src/utils.c
index ca68eae32..d5fd88c00 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -5385,6 +5385,12 @@ quotestring(const char *s, char **e, int instring)
u = s;
if (instring == QT_DOLLARS) {
/*
+ * The only way to get Nularg here is when
+ * it is placeholding for the empty string?
+ */
+ if (inull(*u))
+ *u++;
+ /*
* As we test for printability here we need to be able
* to look for multibyte characters.
*/
diff --git a/Test/D04parameter.ztst b/Test/D04parameter.ztst
index c7d506a51..e380e19b8 100644
--- a/Test/D04parameter.ztst
+++ b/Test/D04parameter.ztst
@@ -413,6 +413,10 @@
>$'playing \'stupid\' "games" \\w\\i\\t\\h $quoting.'
>'playing '\'stupid\'' "games" \w\i\t\h $quoting.'
+ print -r ${(qqqq):-""}
+0:workers/36551: literal empty string in ${(qqqq)...}
+>$''
+
x=( a '' '\b' 'c d' '$e' )
print -r ${(q)x}
print -r ${(q-)x}