summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Completion/Base/_arguments14
2 files changed, 9 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 80bc5ea58..17de62c48 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2000-05-29 Sven Wischnowsky <wischnow@zsh.org>
+ * 11631: Completion/Base/_arguments: keep information about things
+ to complete in _arguments
+
* 11624: Completion/Base/_arguments, Completion/Builtins/_zpty,
Doc/Zsh/compsys.yo, Src/Zle/computil.c: fixes for _arguments with
sets; make _zpty not use sets
diff --git a/Completion/Base/_arguments b/Completion/Base/_arguments
index 44895d9d3..5581e5bd9 100644
--- a/Completion/Base/_arguments
+++ b/Completion/Base/_arguments
@@ -168,7 +168,7 @@ zstyle -s ":completion:${curcontext}:options" auto-description autod
if (( $# )) && comparguments -i "$autod" "$@"; then
local action noargs aret expl local tried
local next direct odirect equal single matcher matched ws tmp1 tmp2 tmp3
- local opts subc tc prefix suffix descrs actions subcs
+ local opts subc tc prefix suffix descrs actions subcs anum
local origpre="$PREFIX" origipre="$IPREFIX" nm="$compstate[nmatches]"
if comparguments -D descrs actions subcs; then
@@ -203,11 +203,12 @@ if (( $# )) && comparguments -i "$autod" "$@"; then
while true; do
while _tags; do
- while (( $#descrs )); do
+ anum=1
+ while [[ anum -le $#descrs ]]; do
- action="$actions[1]"
- descr="$descrs[1]"
- subc="$subcs[1]"
+ action="$actions[anum]"
+ descr="$descrs[anum]"
+ subc="$subcs[anum++]"
if [[ -n "$matched" ]] || _requested "$subc"; then
@@ -293,9 +294,6 @@ if (( $# )) && comparguments -i "$autod" "$@"; then
fi
fi
fi
- shift descrs
- shift actions
- shift subcs
done
if [[ -z "$matched$hasopts" ]] && _requested options &&