summaryrefslogtreecommitdiff
path: root/Src/subst.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2016-03-07 09:44:54 +0000
committerPeter Stephenson <pws@zsh.org>2016-03-07 09:44:54 +0000
commitdc2397f7548632910267f31bc1c97d45602453c0 (patch)
tree6300eaa8112875aefb4570d169daa9b62d5c4e28 /Src/subst.c
parent17fb014dc7984902a6697c6412b0cca55300542b (diff)
downloadzsh-dc2397f7548632910267f31bc1c97d45602453c0.tar.gz
zsh-dc2397f7548632910267f31bc1c97d45602453c0.zip
users/21352: ensure $'' doesn't get elided.
Assign nulstring to it if empty. Test for all forms of quotation marks.
Diffstat (limited to 'Src/subst.c')
-rw-r--r--Src/subst.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Src/subst.c b/Src/subst.c
index bb1dd8939..f2d0f6553 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -145,8 +145,12 @@ stringsubstquote(char *strstart, char **pstrdpos)
strret = dyncat(strstart, strsub);
} else if (strdpos[len])
strret = dyncat(strsub, strdpos + len);
- else
+ else if (*strsub)
strret = strsub;
+ else {
+ /* This ensures a $'' doesn't get elided. */
+ strret = dupstring(nulstring);
+ }
*pstrdpos = strret + (strdpos - strstart) + strlen(strsub);