diff options
Diffstat (limited to 'Completion/Core/_tags')
-rw-r--r-- | Completion/Core/_tags | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/Completion/Core/_tags b/Completion/Core/_tags index 6e3966074..b74e70264 100644 --- a/Completion/Core/_tags +++ b/Completion/Core/_tags @@ -50,21 +50,31 @@ if (( $# )); then fi ;; \!*) comptry "${(@)argv:#(${(j:|:)~${=tag[2,-1]}})}";; - ?*) comptry ${=tag};; + ?*) comptry ${${(ps: :)${tag//\\\\ /$'\0'}}//$'\0'/ };; esac done - [[ -z "$nodef" ]] && comptry "$@" + if [[ -z "$nodef" ]]; then + if (( $+_comp_default_tags )); then + for tag in "$_comp_default_tags[@]"; do + comptry "$tag" + done + else + comptry "$@" + fi + fi else - # The first ones give the default behaviour. - - comptry arguments values - comptry options - comptry globbed-files - comptry directories - comptry all-files + # Use default tags... + if (( $+_comp_default_tags )); then + for tag in "$_comp_default_tags[@]"; do + comptry "$tag" + done + else + comptry arguments values + comptry options + fi comptry "$@" fi |