• Y
    perf tools: Fix the bash completion problem of 'perf --*' · 7335399a
    Yunlong Song 提交于
    The perf-completion.sh uses a predefined string '--help --version
    --exec-path --html-path --paginate --no-pager --perf-dir --work-tree
    --debugfs-dir' for the bash completion of 'perf --*', which has two
    problems:
    
     Problem 1: If the options of perf are changed (see handle_options() in
     perf.c), the perf-completion.sh has to be changed at the same time. If
     not, the bash completion of 'perf --*' and the options which perf
     really supports will be inconsistent.
    
     Problem 2: When typing another single character after 'perf --', e.g.
     'h', and hit TAB key to get the bash completion of 'perf --h', the
     character 'h' disappears at once. This is not what we want, we wish the
     bash completion can return '--help --html-path' and then we can
     continue to choose one.
    
     To solve this problem, we add '--list-opts' to perf, which now supports
     'perf --list-opts' directly, and its result can be used in bash
     completion now.
    
    Example:
    
     Before this patch:
    
     $ perf --h                 <-- hit TAB key after character 'h'
     $ perf --                  <-- 'h' disappears and no required result
    
     After this patch:
    
     $ perf --h                 <-- hit TAB key after character 'h'
     --help       --html-path   <-- the required result
    Signed-off-by: NYunlong Song <yunlong.song@huawei.com>
    Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/r/1425032491-20224-8-git-send-email-yunlong.song@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    7335399a
perf-completion.sh 3.9 KB