summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/subst.c1
-rw-r--r--Test/D04parameter.ztst5
3 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b1dea8da3..ffe21020b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-08-12 Barton E. Schaefer <schaefer@zsh.org>
+
+ * 39035: Src/subst.c, Test/D04parameter.ztst: ${(A)name=word}
+ should expand as an array even when there is only one element.
+
2016-08-12 Peter Stephenson <p.stephenson@samsung.com>
* 39031: Src/Zle/zle_word.c: Ensure variables are initialised in
diff --git a/Src/subst.c b/Src/subst.c
index 99e1650d0..c61551bf6 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -2897,6 +2897,7 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int pf_flags,
aval = paramvalarr(pm->gsu.h->getfn(pm), hkeys|hvals);
} else
setaparam(idbeg, a);
+ isarr = 1;
} else {
untokenize(val);
setsparam(idbeg, ztrdup(val));
diff --git a/Test/D04parameter.ztst b/Test/D04parameter.ztst
index 460a841c3..37166fa21 100644
--- a/Test/D04parameter.ztst
+++ b/Test/D04parameter.ztst
@@ -82,6 +82,11 @@
>wasnull2d
>wasnull2d
+ unset array
+ print ${#${(A)=array=word}}
+0:${#${(A)=array=word}} counts array elements
+>1
+
(print ${set1:?okhere}; print ${unset1:?exiting1}; print not reached;)
(print ${null1?okhere}; print ${null1:?exiting2}; print not reached;)
1:${...:?...}, ${...?...}