perf completion: Introduce a layer of indirection
authorRamkumar Ramachandra <artagnon@gmail.com>
Sun, 17 Nov 2013 16:13:23 +0000 (21:43 +0530)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 27 Nov 2013 17:58:35 +0000 (14:58 -0300)
Define the variables cur, words, cword, and prev outside the main
completion function so that we have a chance to override it when we
introduce zsh support.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Link: http://lkml.kernel.org/r/1384704807-15779-2-git-send-email-artagnon@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/bash_completion

index 62e157db2e2b01e9400f9348d671fd9ba7267104..3efdc84f112c7e55a6a51036b55da270415487c9 100644 (file)
@@ -89,15 +89,12 @@ __ltrim_colon_completions()
        fi
 }
 
-type perf &>/dev/null &&
-_perf()
+__perf_main ()
 {
-       local cur words cword prev cmd
-
-       COMPREPLY=()
-       _get_comp_words_by_ref -n =: cur words cword prev
+       local cmd
 
        cmd=${words[0]}
+       COMPREPLY=()
 
        # List perf subcommands or long options
        if [ $cword -eq 1 ]; then
@@ -120,6 +117,14 @@ _perf()
                opts=$($cmd $subcmd --list-opts)
                COMPREPLY=( $( compgen -W '$opts' -- "$cur" ) )
        fi
+}
+
+type perf &>/dev/null &&
+_perf()
+{
+       local cur words cword prev
+       _get_comp_words_by_ref -n =: cur words cword prev
+       __perf_main
 } &&
 
 complete -o bashdefault -o default -o nospace -F _perf perf 2>/dev/null \