about summary refs log tree commit diff
path: root/Src/subst.c
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-04-15 18:21:49 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-04-15 18:21:49 +0000
commit640a840d2e94f0fc245ef8632050c37af23c6b94 (patch)
treebc0835572657666fe6d27cb73ea8a716e683925a /Src/subst.c
parent04a89199d02a3ee6c4b3d89a6c782bdb0a4f1bc8 (diff)
downloadzsh-640a840d2e94f0fc245ef8632050c37af23c6b94.tar.gz
zsh-640a840d2e94f0fc245ef8632050c37af23c6b94.tar.xz
zsh-640a840d2e94f0fc245ef8632050c37af23c6b94.zip
zsh-3.1.5-pws-13 zsh-3.1.5-pws-13
Diffstat (limited to 'Src/subst.c')
-rw-r--r--Src/subst.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/Src/subst.c b/Src/subst.c
index 42e8e36d4..651179b72 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -941,6 +941,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 	} else if ((*s == '#' || *s == Pound) &&
 		   (iident(s[1])
 		    || s[1] == '*' || s[1] == Star || s[1] == '@'
+		    || s[1] == '-' || (s[1] == ':' && s[2] == '-')
 		    || (isstring(s[1]) && (s[2] == Inbrace || s[2] == Inpar))))
 	    getlen = 1 + whichlen, s++;
 	else if (*s == '~' || *s == Tilde) {
@@ -976,7 +977,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 	skipparens(*s, *s == Inpar ? Outpar : Outbrace, &s);
 	sav = *s;
 	*s = 0;
-	if (multsub(&val, (((quoted || aspar) && !nojoin) ? NULL : &aval),
+	if (multsub(&val, ((!aspar && (!quoted || nojoin)) ? &aval : NULL),
 		    &isarr, NULL) &&
 	    quoted) {
 	    isarr = -1;
@@ -1272,7 +1273,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
 	case '-':
 	    if (vunset) {
 		val = dupstring(s);
-		multsub(&val, &aval, &isarr, NULL);
+		multsub(&val, NULL, &isarr, NULL);
 		copied = 1;
 	    }
 	    break;