[PATCH 3/3] perf, tools: Fix completion script to handle comma list

From: Andi Kleen
Date: Thu Oct 06 2016 - 15:24:03 EST


From: Andi Kleen <ak@xxxxxxxxxxxxxxx>

The perf event completion script only handled a single event per
-e option. So for "perf stat -e cycles,branches" branches could
not be completed.

Fix that issue by always only using the last suffix for completion.

For some reason it only works in bash currently, but zsh
is the same as before.

v2: Handle conflict with upper case completion patch
Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
---
tools/perf/perf-completion.sh | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/tools/perf/perf-completion.sh b/tools/perf/perf-completion.sh
index 3b5a258a4b7b..819a1346689f 100644
--- a/tools/perf/perf-completion.sh
+++ b/tools/perf/perf-completion.sh
@@ -166,7 +166,11 @@ __perf_main ()
[[:upper:]]*) evts=$($cmd list --raw-dump json | tr a-z A-Z) ;;
*) evts=$($cmd list --raw-dump) ;;
esac
+ old="$cur"
+ cur="${cur/*[,{]/}"
+ prefix=${old%$cur}
__perfcomp_colon "$evts" "$cur"
+ COMPREPLY=("${prefix}${COMPREPLY[0]}")
else
# List subcommands for perf commands
if [[ $prev_skip_opts == @(kvm|kmem|mem|lock|sched|
--
2.5.5