diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Completion/Base/_arguments | 7 | ||||
-rw-r--r-- | Completion/Base/_values | 5 |
3 files changed, 13 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index a9a53289b..f32ad904e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2000-08-01 Sven Wischnowsky <wischnow@zsh.org> + + * 12449: Completion/Base/_arguments, Completion/Base/_values, + Completion/Core/_complete, Doc/Zsh/compsys.yo: make $compcontext + more powerful and easier to use for simple cases + 2000-07-31 Peter Stephenson <pws@csr.com> * Config/version.mk: 3.1.9-dev-4. diff --git a/Completion/Base/_arguments b/Completion/Base/_arguments index 4f33048e0..6d09871df 100644 --- a/Completion/Base/_arguments +++ b/Completion/Base/_arguments @@ -270,8 +270,9 @@ if (( $# )) && comparguments -i "$autod" "$@"; then # Anything inside `(...)' is added directly. - _all_labels "$subc" expl "$descr" \ - compadd "$subopts[@]" - ${=action[2,-2]} + eval ws\=\( "${action[2,-2]}" \) + + _all_labels "$subc" expl "$descr" compadd "$subopts[@]" -a - ws tried=yes elif [[ "$action" = \{*\} ]]; then @@ -294,7 +295,7 @@ if (( $# )) && comparguments -i "$autod" "$@"; then # Otherwise we call it with the description-arguments. - set -A action ${=~action} + eval "action=( $action )" while _next_label "$subc" expl "$descr"; do "$action[1]" "$subopts[@]" "$expl[@]" "${(@)action[2,-1]}" done diff --git a/Completion/Base/_values b/Completion/Base/_values index 39c8df201..cb90ed578 100644 --- a/Completion/Base/_values +++ b/Completion/Base/_values @@ -119,8 +119,9 @@ if compvalues -i "$@"; then # Anything inside `(...)' is added directly. - _all_labels arguments expl "$descr" \ - compadd "$subopts[@]" - ${=action[2,-2]} + eval ws\=\( "${action[2,-2]}" \) + + _all_labels arguments expl "$descr" compadd "$subopts[@]" -a - ws elif [[ "$action" = \{*\} ]]; then # A string in braces is evaluated. |