diff options
-rw-r--r-- | tools/perf/perf-completion.sh | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/tools/perf/perf-completion.sh b/tools/perf/perf-completion.sh index bbb61d0b79cd..01ce841f155b 100644 --- a/tools/perf/perf-completion.sh +++ b/tools/perf/perf-completion.sh | |||
@@ -105,9 +105,12 @@ __perf_prev_skip_opts () | |||
105 | local i cmd_ cmds_ | 105 | local i cmd_ cmds_ |
106 | 106 | ||
107 | let i=cword-1 | 107 | let i=cword-1 |
108 | cmds_=$($cmd --list-cmds) | 108 | cmds_=$($cmd $1 --list-cmds) |
109 | prev_skip_opts=() | 109 | prev_skip_opts=() |
110 | while [ $i -ge 0 ]; do | 110 | while [ $i -ge 0 ]; do |
111 | if [[ ${words[i]} == $1 ]]; then | ||
112 | return | ||
113 | fi | ||
111 | for cmd_ in $cmds_; do | 114 | for cmd_ in $cmds_; do |
112 | if [[ ${words[i]} == $cmd_ ]]; then | 115 | if [[ ${words[i]} == $cmd_ ]]; then |
113 | prev_skip_opts=${words[i]} | 116 | prev_skip_opts=${words[i]} |
@@ -146,7 +149,9 @@ __perf_main () | |||
146 | fi | 149 | fi |
147 | # List long option names | 150 | # List long option names |
148 | if [[ $cur == --* ]]; then | 151 | if [[ $cur == --* ]]; then |
149 | subcmd=${words[1]} | 152 | subcmd=$prev_skip_opts |
153 | __perf_prev_skip_opts $subcmd | ||
154 | subcmd=$subcmd" "$prev_skip_opts | ||
150 | opts=$($cmd $subcmd --list-opts) | 155 | opts=$($cmd $subcmd --list-opts) |
151 | __perfcomp "$opts" "$cur" | 156 | __perfcomp "$opts" "$cur" |
152 | fi | 157 | fi |