diff options
| author | Oliver Kiddle <opk@zsh.org> | 2014-08-13 16:48:00 +0200 |
|---|---|---|
| committer | Oliver Kiddle <opk@zsh.org> | 2014-08-13 16:59:57 +0200 |
| commit | 2af8b0e2a7b8720d6e0d678d3e186f30c891e2a9 (patch) | |
| tree | d4fa997117d8572fe1f7cdcd5efae53e10140640 /Completion/Unix | |
| parent | unposted: 5.0.5-dev-2 (diff) | |
| download | zsh-2af8b0e2a7b8720d6e0d678d3e186f30c891e2a9.tar zsh-2af8b0e2a7b8720d6e0d678d3e186f30c891e2a9.tar.gz zsh-2af8b0e2a7b8720d6e0d678d3e186f30c891e2a9.tar.bz2 zsh-2af8b0e2a7b8720d6e0d678d3e186f30c891e2a9.tar.lz zsh-2af8b0e2a7b8720d6e0d678d3e186f30c891e2a9.tar.xz zsh-2af8b0e2a7b8720d6e0d678d3e186f30c891e2a9.tar.zst zsh-2af8b0e2a7b8720d6e0d678d3e186f30c891e2a9.zip | |
32893: move use of _call_program inside the _tags loop to allow processes to be separated
Diffstat (limited to 'Completion/Unix')
| -rw-r--r-- | Completion/Unix/Type/_pids | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/Completion/Unix/Type/_pids b/Completion/Unix/Type/_pids index 3f99dfdf0..3c6a76561 100644 --- a/Completion/Unix/Type/_pids +++ b/Completion/Unix/Type/_pids @@ -20,25 +20,30 @@ else nm="$compstate[nmatches]" fi -out=( "${(@f)$(_call_program processes ps 2>/dev/null)}" ) -desc="$out[1]" -out=( "${(@M)out[2,-1]:#${~match}}" ) +while _tags; do + if _requested processes; then + while _next_label processes expl 'process ID'; do + out=( "${(@f)$(_call_program $curtag ps 2>/dev/null)}" ) + desc="$out[1]" + out=( "${(@M)out[2,-1]:#${~match}}" ) -if [[ "$desc" = (#i)(|*[[:blank:]])pid(|[[:blank:]]*) ]]; then - pids=( "${(@)${(@M)out#${(l.${#desc[1,(r)(#i)[[:blank:]]pid]}..?.)~:-}[^[:blank:]]#}##*[[:blank:]]}" ) -else - pids=( "${(@)${(@M)out##[^0-9]#[0-9]#}##*[[:blank:]]}" ) -fi - -if zstyle -T ":completion:${curcontext}:processes" verbose; then - list=( "${(@Mr:COLUMNS-1:)out}" ) - desc=(-ld list) -else - desc=() -fi + if [[ "$desc" = (#i)(|*[[:blank:]])pid(|[[:blank:]]*) ]]; then + pids=( "${(@)${(@M)out#${(l.${#desc[1,(r)(#i)[[:blank:]]pid]}..?.)~:-}[^[:blank:]]#}##*[[:blank:]]}" ) + else + pids=( "${(@)${(@M)out##[^0-9]#[0-9]#}##*[[:blank:]]}" ) + fi -_wanted -V processes expl 'process ID' \ - compadd "$@" "$desc[@]" "$all[@]" -a - pids && ret=0 + if zstyle -T ":completion:${curcontext}:$curtag" verbose; then + list=( "${(@Mr:COLUMNS-1:)out}" ) + desc=(-ld list) + else + desc=() + fi + compadd "$@" "$expl[@]" "$desc[@]" "$all[@]" -a pids && ret=0 + done + fi + (( ret )) || break +done if [[ -n "$all" ]]; then zstyle -s ":completion:${curcontext}:processes" insert-ids out || out=menu |
