From 41789e46a66d22f89fb2a3f38fd7be2b4586f7fd Mon Sep 17 00:00:00 2001 From: Yuka Takahashi Date: Mon, 5 Mar 2018 08:54:20 +0000 Subject: [Bash-autocompletion] Pass all flags in shell command-line to Clang Previously, we passed "#" to --autocomplete to indicate to enable cc1 flags. For example, when -cc1 or -Xclang was passed to bash, bash executed `clang --autocomplete=#-`. However, this was not a good implementation because it depends -Xclang and -cc1 parsing to shell. So I changed this to pass all flags shell has, so that Clang can handle them internally. I had to change many testcases because API spec changed quite a lot. Reviewers: teemperor, v.g.vassilev Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D39342 llvm-svn: 326684 --- llvm/lib/Option/OptTable.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'llvm/lib/Option') diff --git a/llvm/lib/Option/OptTable.cpp b/llvm/lib/Option/OptTable.cpp index dcd1cc46d96..5956764827e 100644 --- a/llvm/lib/Option/OptTable.cpp +++ b/llvm/lib/Option/OptTable.cpp @@ -219,7 +219,7 @@ OptTable::suggestValueCompletions(StringRef Option, StringRef Arg) const { std::vector Result; for (StringRef Val : Candidates) - if (Val.startswith(Arg)) + if (Val.startswith(Arg) && Arg.compare(Val)) Result.push_back(Val); return Result; } @@ -240,7 +240,7 @@ OptTable::findByPrefix(StringRef Cur, unsigned short DisableFlags) const { std::string S = std::string(In.Prefixes[I]) + std::string(In.Name) + "\t"; if (In.HelpText) S += In.HelpText; - if (StringRef(S).startswith(Cur)) + if (StringRef(S).startswith(Cur) && S.compare(std::string(Cur) + "\t")) Ret.push_back(S); } } -- cgit v1.2.3