diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-11-03 13:47:39 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-11-03 13:47:39 +0000 |
commit | 97f02ffe63909c84cb9771d20a73ebec55f49589 (patch) | |
tree | 997db6027bc486992bdab800ed53404512446919 /Completion/Builtins | |
parent | 3eeb83f1a0a01a16f137cef2dfc2c9d8c1626875 (diff) | |
download | zsh-97f02ffe63909c84cb9771d20a73ebec55f49589.tar.gz zsh-97f02ffe63909c84cb9771d20a73ebec55f49589.tar.xz zsh-97f02ffe63909c84cb9771d20a73ebec55f49589.zip |
zsh-workers/8520
Diffstat (limited to 'Completion/Builtins')
-rw-r--r-- | Completion/Builtins/_kill | 23 | ||||
-rw-r--r-- | Completion/Builtins/_wait | 22 |
2 files changed, 30 insertions, 15 deletions
diff --git a/Completion/Builtins/_kill b/Completion/Builtins/_kill index 2af168f3f..a3efbef41 100644 --- a/Completion/Builtins/_kill +++ b/Completion/Builtins/_kill @@ -6,14 +6,21 @@ if compset -P 1 -; then _description expl signal compadd "$expl[@]" $signals[1,-3] else - local ret=1 - - _jobs && ret=0 - - list=("${(@M)${(f@)$(ps ${=compconfig[ps_listargs]:-$=compconfig[ps_args]} 2>/dev/null)}[2,-1]:#[ ]#${PREFIX}[0-9]#${SUFFIX}[ ]*}") - _description expl 'process ID' - compadd "$expl[@]" -ld list - ${${${(f)"$(ps $=compconfig[ps_args] 2>/dev/null)"}[2,-1]## #}%% *} && - ret=0 + local prios tags ret=1 + + _tags job process + + while _tags; do + [[ "$tags" = *:job:* ]] && _jobs && ret=0 + if [[ "$tags" = *:process:* ]]; then + list=("${(@M)${(f@)$(ps ${=compconfig[ps_listargs]:-$=compconfig[ps_args]} 2>/dev/null)}[2,-1]:#[ ]#${PREFIX}[0-9]#${SUFFIX}[ ]*}") + _description expl 'process ID' + compadd "$expl[@]" -ld list - \ + ${${${(f)"$(ps $=compconfig[ps_args] 2>/dev/null)"}[2,-1]## #}%% *} && + ret=0 + fi + (( ret )) || break + done return ret fi diff --git a/Completion/Builtins/_wait b/Completion/Builtins/_wait index b659532e7..0f096355f 100644 --- a/Completion/Builtins/_wait +++ b/Completion/Builtins/_wait @@ -1,11 +1,19 @@ #compdef wait -local list ret=1 expl - -_jobs && ret=0 - -list=("${(@M)${(f)$(ps ${=compconfig[ps_listargs]:-$=compconfig[ps_args]} 2>/dev/null)}[2,-1]:#[ ]#${PREFIX}[0-9]#${SUFFIX}[ ]*}") -_description expl 'process ID' -compadd "$expl[@]" -ld list - ${${${(f)"$(ps $=compconfig[ps_args] 2>/dev/null)"}[2,-1]## #}%% *} && ret=0 +local prios tags list ret=1 expl + +_tags job process + +while _tags; do + [[ "$tags" = *:job:* ]] && _jobs && ret=0 + if [[ "$tags" = *:process:* ]]; then + list=("${(@M)${(f@)$(ps ${=compconfig[ps_listargs]:-$=compconfig[ps_args]} 2>/dev/null)}[2,-1]:#[ ]#${PREFIX}[0-9]#${SUFFIX}[ ]*}") + _description expl 'process ID' + compadd "$expl[@]" -ld list - \ + ${${${(f)"$(ps $=compconfig[ps_args] 2>/dev/null)"}[2,-1]## #}%% *} && + ret=0 + fi + (( ret )) || break +done return ret |