From 112968b31ea926a40a640921f53b71a7f57c0f52 Mon Sep 17 00:00:00 2001 From: Marlon Richert Date: Fri, 21 May 2021 15:56:42 +0300 Subject: [PATCH] Fix pgrep/pkill -f completion Old completion produced false positives & took too much screen space. --- Completion/Unix/Command/_pgrep | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Completion/Unix/Command/_pgrep b/Completion/Unix/Command/_pgrep index 51a4883df..22871dd20 100644 --- a/Completion/Unix/Command/_pgrep +++ b/Completion/Unix/Command/_pgrep @@ -166,9 +166,16 @@ 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=)"}% *} - else + 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 ;; -- 2.31.1