perf tools: Check existence of _get_comp_words_by_ref when bash completing
authorNamhyung Kim <namhyung@kernel.org>
Tue, 2 Oct 2012 15:21:32 +0000 (00:21 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 2 Oct 2012 21:36:42 +0000 (18:36 -0300)
The '_get_comp_words_by_ref' function is available from the bash
completion v1.2 so that earlier version emits following warning:

  $ perf re<TAB>_get_comp_words_by_ref: command not found

Use older '_get_cword' method when the above function doesn't exist.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1349191294-6926-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/bash_completion

index 1958fa5..3d48cee 100644 (file)
@@ -1,12 +1,23 @@
 # perf completion
 
+function_exists()
+{
+       declare -F $1 > /dev/null
+       return $?
+}
+
 have perf &&
 _perf()
 {
-       local cur cmd
+       local cur prev cmd
 
        COMPREPLY=()
-       _get_comp_words_by_ref cur prev
+       if function_exists _get_comp_words_by_ref; then
+               _get_comp_words_by_ref cur prev
+       else
+               cur=$(_get_cword)
+               prev=${COMP_WORDS[COMP_CWORD-1]}
+       fi
 
        cmd=${COMP_WORDS[0]}