diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | Completion/Base/_arguments | 14 |
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 && |