summary refs log tree commit diff
path: root/Completion/Base
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Base')
-rw-r--r--Completion/Base/_arguments7
-rw-r--r--Completion/Base/_values5
2 files changed, 7 insertions, 5 deletions
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.