about summary refs log tree commit diff
path: root/Completion/Builtins/_pids
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-11-04 15:44:55 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-11-04 15:44:55 +0000
commitd9f2398db5cdfe63b0a438197272ee6ce7edb453 (patch)
treee4455552ae2945e1515600b0bc73c821db91b7b0 /Completion/Builtins/_pids
parentcf2aed3500db6942f3fbc59eb35e35603123b44f (diff)
downloadzsh-d9f2398db5cdfe63b0a438197272ee6ce7edb453.tar.gz
zsh-d9f2398db5cdfe63b0a438197272ee6ce7edb453.tar.xz
zsh-d9f2398db5cdfe63b0a438197272ee6ce7edb453.zip
zsh-workers/8537
Diffstat (limited to 'Completion/Builtins/_pids')
-rw-r--r--Completion/Builtins/_pids18
1 files changed, 18 insertions, 0 deletions
diff --git a/Completion/Builtins/_pids b/Completion/Builtins/_pids
new file mode 100644
index 000000000..0ffda900b
--- /dev/null
+++ b/Completion/Builtins/_pids
@@ -0,0 +1,18 @@
+#autoload
+
+# If given the `-m <pattern>' option, this tries to complete only pids
+# of processes whose command line match the `<pattern>'.
+
+local list expl match
+
+if [[ "$1" = -m ]]; then
+  match="${2}*"
+  shift 2
+fi
+
+_description expl 'process ID'
+
+list=("${(@Mr:COLUMNS-1:)${(f@)$(ps ${=compconfig[ps_listargs]:-$=compconfig[ps_args]} 2>/dev/null)}[2,-1]:#[ 	]#${PREFIX}[0-9]#${SUFFIX}[ 	]*${~match}}")
+
+compadd "$expl[@]" "$@" -ld list - \
+  ${${${(M)${(f)"$(ps $=compconfig[ps_args] 2>/dev/null)"}[2,-1]:#*${~match}}## #}%% *}