From 0a88c244ed49aa67543e3fc9b9a5b213e229472d Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Sun, 13 Dec 2015 14:45:22 +0000 Subject: Uncontroversial Changes from Mikael's bcf975a2ea3ebc6ba1ed8150b376bef45e527cda: - paramsubst: Change setting of 'ziplen' --- Src/builtin.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'Src/builtin.c') diff --git a/Src/builtin.c b/Src/builtin.c index 6f07fc678..6bd9c2729 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -672,11 +672,9 @@ bin_set(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) if (array) { /* create an array with the specified elements */ char **a = NULL, **y; - int len = arrlen(args); - - if (array < 0 && (a = getaparam(arrayname))) { - int al = arrlen(a); + int len = arrlen(args), al; + if (array < 0 && (a = getaparam(arrayname, &al))) { if (al > len) len = al; } @@ -5012,7 +5010,7 @@ bin_shift(char *name, char **argv, Options ops, UNUSED(int func)) /* optional argument can be either numeric or an array */ queue_signals(); - if (*argv && !getaparam(*argv)) + if (*argv && !getaparam(*argv, NULL)) num = mathevali(*argv++); if (num < 0) { @@ -5022,9 +5020,10 @@ bin_shift(char *name, char **argv, Options ops, UNUSED(int func)) } if (*argv) { + int len = 0; for (; *argv; argv++) - if ((s = getaparam(*argv))) { - if (num > arrlen(s)) { + if ((s = getaparam(*argv, &len))) { + if (num > len) { zwarnnam(name, "shift count must be <= $#"); ret++; continue; @@ -5032,7 +5031,7 @@ bin_shift(char *name, char **argv, Options ops, UNUSED(int func)) if (OPT_ISSET(ops,'p')) { char **s2, **src, **dst; int count; - l = arrlen(s); + l = len; src = s; dst = s2 = (char **)zalloc((l - num + 1) * sizeof(char *)); for (count = l - num; count; count--) -- cgit 1.4.1