From 891d361572f6db01434c21adb9b699d6a82dba80 Mon Sep 17 00:00:00 2001 From: Marlon Richert Date: Fri, 21 May 2021 15:56:42 +0300 Subject: 48891: Fix pgrep/pkill -f completion Old completion produced false positives & took too much screen space. --- Completion/Unix/Command/_pgrep | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'Completion') 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 -- cgit 1.4.1