diff options
author | Daniel Shahaf <d.s@daniel.shahaf.name> | 2015-12-13 14:45:22 +0000 |
---|---|---|
committer | Mikael Magnusson <mikachu@gmail.com> | 2016-05-08 21:57:05 +0200 |
commit | 0a88c244ed49aa67543e3fc9b9a5b213e229472d (patch) | |
tree | e0b0642e18e5b0c7ab0f7254591cf794bf048f3b /Src/builtin.c | |
parent | a5cff664765fa9abaccd15e42e39438ccce18404 (diff) | |
download | zsh-0a88c244ed49aa67543e3fc9b9a5b213e229472d.tar.gz zsh-0a88c244ed49aa67543e3fc9b9a5b213e229472d.tar.xz zsh-0a88c244ed49aa67543e3fc9b9a5b213e229472d.zip |
Uncontroversial
Changes from Mikael's bcf975a2ea3ebc6ba1ed8150b376bef45e527cda: - paramsubst: Change setting of 'ziplen'
Diffstat (limited to 'Src/builtin.c')
-rw-r--r-- | Src/builtin.c | 15 |
1 files changed, 7 insertions, 8 deletions
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--) |