summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--Completion/Base/_arguments8
2 files changed, 8 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 45e7122da..167f2e1dc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2000-05-28 Bart Schaefer <schaefer@zsh.org>
+
+ * 11618: Completion/Base/_arguments: Fix bad shift.
+
2000-05-28 Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
* 11616: Src/Modules/zftp.c: configure test for netinet/in_systm.h
diff --git a/Completion/Base/_arguments b/Completion/Base/_arguments
index b605605da..11c62705f 100644
--- a/Completion/Base/_arguments
+++ b/Completion/Base/_arguments
@@ -285,7 +285,7 @@ if (( $# )) && comparguments -i "$autod" "$@"; then
# Otherwise we call it with the description-arguments.
- eval "action=( $action )"
+ set -A action ${=~action}
while _next_label "$subc" expl "$descr"; do
"$action[1]" "$subopts[@]" "$expl[@]" "${(@)action[2,-1]}"
done
@@ -293,9 +293,9 @@ if (( $# )) && comparguments -i "$autod" "$@"; then
fi
fi
fi
- shift 1 descrs
- shift 1 actions
- shift 1 subcs
+ shift "${#descrs} ? 1 : 0" descrs
+ shift "${#actions} ? 1 : 0" actions
+ shift "${#subcs} ? 1 : 0" subcs
done
if [[ -z "$matched$hasopts" ]] && _requested options &&