summaryrefslogtreecommitdiff
path: root/Completion/Unix
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix')
-rw-r--r--Completion/Unix/Command/_pgrep11
1 files changed, 9 insertions, 2 deletions
diff --git a/Completion/Unix/Command/_pgrep b/Completion/Unix/Command/_pgrep
index 51a4883df..5b1853e6b 100644
--- a/Completion/Unix/Command/_pgrep
+++ b/Completion/Unix/Command/_pgrep
@@ -166,8 +166,15 @@ case $state in
ispat=""
fi
if (( ${+opt_args[-f]} )); then
- _wanted process-args expl $ispat'process command line' \
- compadd ${${(f)"$(_call_program process-args ps -A -o args=)"}% *}
+ local -a matches=( ${(f)"$(
+ _call_program process-args pgrep -lf ${${:-$PREFIX$SUFFIX}:-.\*}
+ )"} )
+ local -a displ=( "${${matches[@]//':'/'\:'}[@]/ /:}" )
+ matches=( "${matches[@]##<-> }" )
+
+ local desc=$ispat'process command line'
+ _description process-args expl "$desc"
+ _describe -t process-args "$desc" displ matches "$@" -U "$expl[@]"
else
_wanted processes-names expl $ispat'process name' _process_names -a -t
fi