[Bash-completion] Fixed a bug that file doesn't autocompleted after =

Summary:
File path wasn't autocompleted after `-fmodule-cache-path=[tab]`, so
fixed this bug by checking if $flags contains only a newline or not.

Differential Revision: https://reviews.llvm.org/D35763

llvm-svn: 309112
This commit is contained in:
Yuka Takahashi 2017-07-26 13:30:36 +00:00
parent d3077a94a8
commit 8c000110cf
1 changed files with 7 additions and 3 deletions

View File

@ -65,10 +65,14 @@ _clang()
return
fi
if [[ "$cur" == '=' ]]; then
COMPREPLY=( $( compgen -W "$flags" -- "") )
elif [[ "$flags" == "" || "$arg" == "" ]]; then
# When clang does not emit any possible autocompletion, or user pushed tab after " ",
# just autocomplete files.
if [[ "$flags" == "$(echo -e '\n')" || "$arg" == "" ]]; then
# If -foo=<tab> and there was no possible values, autocomplete files.
[[ "$cur" == '=' || "$cur" == -*= ]] && cur=""
_clang_filedir
elif [[ "$cur" == '=' ]]; then
COMPREPLY=( $( compgen -W "$flags" -- "") )
else
# Bash automatically appends a space after '=' by default.
# Disable it so that it works nicely for options in the form of -foo=bar.