1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-12-29 16:25:35 +01:00

users/22319: ${ary1:^ary2} should not change isarr state of expansion of ary1

Unless ary1 is made from a scalar, semantics of (@) in double quotes is lost.
This commit is contained in:
Barton E. Schaefer 2017-01-03 14:41:38 -08:00
parent d0f7a3b2d6
commit c4dba4f2e6
2 changed files with 10 additions and 2 deletions

View file

@ -7,6 +7,12 @@
* Paulo Andrade: 40260: Src/prompt.c: Set newly allocated
space in prompt buffer to zero as it may be tested.
2017-01-01 Barton E. Schaefer <schaefer@zsh.org>
* users/22319: Src/subst.c: ${ary1:^ary2} should not change
the isarr state of the expansion of ary1 unless ary1 is made
from a scalar, lest semantics of (@) in double quotes be lost.
2016-12-30 Barton E. Schaefer <schaefer@zsh.org>
* 40248: Src/hist.c: suppress errors from zshaddhistoryhook,

View file

@ -3066,7 +3066,10 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int pf_flags,
if (sval)
zip = hmkarray(sval);
}
if (!isarr) aval = mkarray(val);
if (!isarr) {
aval = mkarray(val);
isarr = 1;
}
if (zip) {
char **out;
int alen, ziplen, outlen, i = 0;
@ -3089,7 +3092,6 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int pf_flags,
out[i*2] = NULL;
aval = out;
copied = 1;
isarr = 1;
}
} else {
if (unset(UNSET)) {