diff options
Diffstat (limited to 'Completion/Core/_alternative')
-rw-r--r-- | Completion/Core/_alternative | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Completion/Core/_alternative b/Completion/Core/_alternative index 482e9db51..3267ffeb7 100644 --- a/Completion/Core/_alternative +++ b/Completion/Core/_alternative @@ -50,13 +50,17 @@ while _tags; do # A string in braces is evaluated. - _loop "${def%%:*}" expl "$descr" eval "$action[2,-2]" + while _try "${def%%:*}" expl "$descr"; do + eval "$action[2,-2]" + done elif [[ "$action" = \ * ]]; then # If the action starts with a space, we just call it. eval "action=( $action )" - _loop "${def%%:*}" expl "$descr" "$action[@]" + while _try "${def%%:*}" expl "$descr"; do + "$action[@]" + done else # Otherwise we call it with the description-arguments built above. |