summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Completion/Base/_arguments7
-rw-r--r--Completion/Base/_values5
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.