diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-11-03 10:48:39 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-11-03 10:48:39 +0000 |
commit | 4777e2acd41ad06d172ff06e2ff989fdeee3e19b (patch) | |
tree | 53c0ec7aab30f9e1ad6cf618be54f0223e608c00 /Completion/Builtins/_jobs | |
parent | 438a49c8d7a105b5e0b24eb3f658cad14df841c4 (diff) | |
download | zsh-4777e2acd41ad06d172ff06e2ff989fdeee3e19b.tar.gz zsh-4777e2acd41ad06d172ff06e2ff989fdeee3e19b.tar.xz zsh-4777e2acd41ad06d172ff06e2ff989fdeee3e19b.zip |
zsh-workers/8515
Diffstat (limited to 'Completion/Builtins/_jobs')
-rw-r--r-- | Completion/Builtins/_jobs | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/Completion/Builtins/_jobs b/Completion/Builtins/_jobs index c17b73c92..869aeeb8a 100644 --- a/Completion/Builtins/_jobs +++ b/Completion/Builtins/_jobs @@ -1,3 +1,27 @@ -#compdef disown fg jobs +#autoload + +local expl disp jobs job jids + +if [[ "$1" = -r ]]; then + jids=( "${(@k)jobstates[(R)running*]}" ) + shift + _description expl 'running job' +elif [[ "$1" = -s ]]; then + jids=( "${(@k)jobstates[(R)running*]}" ) + shift + _description expl 'suspended job' +else + [[ "$1" = - ]] && shift + jids=( "${(@k)jobtexts}" ) + _description expl job +fi + +disp=() +jobs=() +for job in "$jids[@]"; do + disp=( "$disp[@]" "${(l:3:: ::%:)job} -- ${jobtexts[$job]}" ) + jobs=( "$jobs[@]" "$job" ) +done + +compadd "$@" "$expl[@]" -ld disp - "%$^jobs[@]" -_job -P '%' |