diff options
Diffstat (limited to 'Completion/Core/_alternative')
-rw-r--r-- | Completion/Core/_alternative | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Completion/Core/_alternative b/Completion/Core/_alternative index 73292cb52..482e9db51 100644 --- a/Completion/Core/_alternative +++ b/Completion/Core/_alternative @@ -44,24 +44,26 @@ while _tags; do # Anything inside `(...)' is added directly. - compadd "$subopts[@]" "$expl[@]" - ${=action[2,-2]} + _loop "${def%%:*}" expl "$descr" \ + compadd "$subopts[@]" - ${=action[2,-2]} elif [[ "$action" = \{*\} ]]; then # A string in braces is evaluated. - eval "$action[2,-2]" + _loop "${def%%:*}" expl "$descr" eval "$action[2,-2]" elif [[ "$action" = \ * ]]; then # If the action starts with a space, we just call it. eval "action=( $action )" - "$action[@]" + _loop "${def%%:*}" expl "$descr" "$action[@]" else # Otherwise we call it with the description-arguments built above. eval "action=( $action )" - "$action[1]" "$subopts[@]" "$expl[@]" "${(@)action[2,-1]}" + _loop "${def%%:*}" expl "$descr" \ + "$action[1]" "$subopts[@]" "${(@)action[2,-1]}" fi fi done |