diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-12-13 12:37:39 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-12-13 12:37:39 +0000 |
commit | 27daaed7b0c1d5df43eb5671200a4ee9af8285d1 (patch) | |
tree | 9ab604ed12b01202709525d600a38cb9b259dbb7 /Completion/Builtins/_pids | |
parent | 79e1686a12e7ed0a3a2ae7372e4a3320ebd5f901 (diff) | |
download | zsh-27daaed7b0c1d5df43eb5671200a4ee9af8285d1.tar.gz zsh-27daaed7b0c1d5df43eb5671200a4ee9af8285d1.tar.xz zsh-27daaed7b0c1d5df43eb5671200a4ee9af8285d1.zip |
zsh-workers/9018
Diffstat (limited to 'Completion/Builtins/_pids')
-rw-r--r-- | Completion/Builtins/_pids | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/Completion/Builtins/_pids b/Completion/Builtins/_pids index af88a5920..8b5d27bc5 100644 --- a/Completion/Builtins/_pids +++ b/Completion/Builtins/_pids @@ -3,7 +3,7 @@ # If given the `-m <pattern>' option, this tries to complete only pids # of processes whose command line match the `<pattern>'. -local list expl match desc listargs args +local out list expl match desc listargs args _wanted processes expl 'process ID' || return 1 @@ -12,12 +12,18 @@ if [[ "$1" = -m ]]; then shift 2 fi -zstyle -a ":completion${curcontext}:ps" list-arguments listargs zstyle -a ":completion${curcontext}:ps" arguments args -(( $#listargs )) || listargs=( "$args[@]" ) + +out="$(command ps $args 2>/dev/null)" if zstyle -t ":completion${curcontext}:processes" verbose; then - list=("${(@Mr:COLUMNS-1:)${(f@)$(command ps $listargs 2>/dev/null)}[2,-1]:#[ ]#${PREFIX}[0-9]#${SUFFIX}[ ]*${~match}}") + zstyle -a ":completion${curcontext}:ps" list-arguments listargs + (( $#listargs )) || listargs=( "$args[@]" ) + if [[ "$listargs" = "$args" ]]; then + list=("${(@Mr:COLUMNS-1:)${(f@)out}[2,-1]:#[ ]#${PREFIX}[0-9]#${SUFFIX}[ ]*${~match}}") + else + list=("${(@Mr:COLUMNS-1:)${(f@)$(command ps $listargs 2>/dev/null)}[2,-1]:#[ ]#${PREFIX}[0-9]#${SUFFIX}[ ]*${~match}}") + fi desc=(-ld list) else desc=() |