about summary refs log tree commit diff
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.