diff options
author | Axel Beckert <abe@deuxchevaux.org> | 2018-04-09 00:42:15 +0200 |
---|---|---|
committer | Axel Beckert <abe@deuxchevaux.org> | 2018-04-09 00:42:15 +0200 |
commit | fe36c1ada77f817dbeeeed5ee70c7ba08eeb1d18 (patch) | |
tree | 0229967da5e73bd29a2d6014c847509b361f3631 /Src/builtin.c | |
parent | 1521c7d0f7e607b789564e819173e228e9475137 (diff) | |
parent | f9e9dce5443f323b340303596406f9d3ce11d23a (diff) | |
download | zsh-fe36c1ada77f817dbeeeed5ee70c7ba08eeb1d18.tar.gz zsh-fe36c1ada77f817dbeeeed5ee70c7ba08eeb1d18.zip |
Merge tag 'zsh-5.5' and hence branch 'upstream' into branch 'debian'
Release 5.5 of zsh
Diffstat (limited to 'Src/builtin.c')
-rw-r--r-- | Src/builtin.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/Src/builtin.c b/Src/builtin.c index fb59738f3..73cfe7ad1 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -695,13 +695,11 @@ bin_set(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) char **a = NULL, **y; int len = arrlen(args); - if (array < 0 && (a = getaparam(arrayname))) { - int al = arrlen(a); - - if (al > len) - len = al; + if (array < 0 && (a = getaparam(arrayname)) && arrlen_gt(a, len)) { + a += len; + len += arrlen(a); } - for (x = y = zalloc((len + 1) * sizeof(char *)); len--; a++) { + for (x = y = zalloc((len + 1) * sizeof(char *)); len--;) { if (!*args) args = a; *y++ = ztrdup(*args++); |