diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-01-15 09:11:31 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-01-15 09:11:31 +0000 |
commit | ca585f812b02071cc261fb9dbe463bab6f8be602 (patch) | |
tree | e90c1af1169132098b62207ced35fdf83607e910 /Completion/Core/_complete | |
parent | a11115ecee1b5fc02b4b714561ffdbc2d2a3e622 (diff) | |
download | zsh-ca585f812b02071cc261fb9dbe463bab6f8be602.tar.gz zsh-ca585f812b02071cc261fb9dbe463bab6f8be602.tar.xz zsh-ca585f812b02071cc261fb9dbe463bab6f8be602.zip |
add `services', allowing easier re-use of (parts of) completion functions (13346)
Diffstat (limited to 'Completion/Core/_complete')
-rw-r--r-- | Completion/Core/_complete | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Completion/Core/_complete b/Completion/Core/_complete index 809df1fa9..28bb008ca 100644 --- a/Completion/Core/_complete +++ b/Completion/Core/_complete @@ -4,7 +4,7 @@ # a normal completion function, but as one possible value for the # completer style. -local comp name oldcontext ret=1 +local comp name oldcontext ret=1 service typeset -T curcontext="$curcontext" ccarray oldcontext="$curcontext" @@ -95,6 +95,7 @@ fi comp="$_comps[-first-]" if [[ ! -z "$comp" ]]; then + service="${_services[-first-]:--first-}" ccarray[3]=-first- "$comp" && ret=0 if [[ "$_compskip" = all ]]; then @@ -123,6 +124,7 @@ else ccarray[3]="$cname" comp="$_comps[$cname]" + service="${_services[$cname]:-$cname}" # If not, we use default completion, if any. @@ -133,7 +135,8 @@ else fi comp="$_comps[-default-]" fi - [[ -z "$comp" ]] || "$comp" && ret=0 + [[ -z "$comp" ]] || + service="${_services[-default-]:--default-}" && "$comp" && ret=0 fi _compskip= |