summaryrefslogtreecommitdiff
path: root/Src/builtin.c
diff options
context:
space:
mode:
authorAxel Beckert <abe@deuxchevaux.org>2018-04-09 00:42:15 +0200
committerAxel Beckert <abe@deuxchevaux.org>2018-04-09 00:42:15 +0200
commitfe36c1ada77f817dbeeeed5ee70c7ba08eeb1d18 (patch)
tree0229967da5e73bd29a2d6014c847509b361f3631 /Src/builtin.c
parent1521c7d0f7e607b789564e819173e228e9475137 (diff)
parentf9e9dce5443f323b340303596406f9d3ce11d23a (diff)
downloadzsh-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.c10
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++);