From db5402516165f52f4c97200e95022b6e775bba1b Mon Sep 17 00:00:00 2001 From: Yuka Takahashi <yukatkh@gmail.com> Date: Sat, 15 Jul 2017 09:09:51 +0000 Subject: [PATCH] [Bash-autocompletion] Fixed a bug on bash Summary: Maybe I mismerged when merging previous commits by hand. Differential Revision: https://reviews.llvm.org/D35448 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@308091 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/bash-autocomplete.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/utils/bash-autocomplete.sh b/utils/bash-autocomplete.sh index 1e38bcfcaad..72531b99e3d 100644 --- a/utils/bash-autocomplete.sh +++ b/utils/bash-autocomplete.sh @@ -20,18 +20,21 @@ _clang() cur="${COMP_WORDS[$cword]}" fi - # bash always separates '=' as a token even if there's no space before/after '='. - # On the other hand, '=' is just a regular character for clang options that - # contain '='. For example, "-stdlib=" is defined as is, instead of "-stdlib" and "=". - # So, we need to partially undo bash tokenization here for integrity. w1="${COMP_WORDS[$cword - 1]}" if [[ $cword > 1 ]]; then w2="${COMP_WORDS[$cword - 2]}" + fi + # Clang want to know if -cc1 or -Xclang option is specified or not, because we don't want to show # cc1 options otherwise. if [[ "${COMP_WORDS[1]}" == "-cc1" || "$w1" == "-Xclang" ]]; then arg="#" fi + + # bash always separates '=' as a token even if there's no space before/after '='. + # On the other hand, '=' is just a regular character for clang options that + # contain '='. For example, "-stdlib=" is defined as is, instead of "-stdlib" and "=". + # So, we need to partially undo bash tokenization here for integrity. if [[ "$cur" == -* ]]; then # -foo<tab> arg="$arg$cur" -- GitLab