summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Option
diff options
context:
space:
mode:
authorYuka Takahashi <yukatkh@gmail.com>2018-03-05 08:54:20 +0000
committerYuka Takahashi <yukatkh@gmail.com>2018-03-05 08:54:20 +0000
commit41789e46a66d22f89fb2a3f38fd7be2b4586f7fd (patch)
treee1eb0d0f86ab2b6bc47ac5fd5eb5dee562478493 /llvm/lib/Option
parent34be1b0288bb9b383e86a28bbd4e2cc6512d7662 (diff)
downloadbcm5719-llvm-41789e46a66d22f89fb2a3f38fd7be2b4586f7fd.tar.gz
bcm5719-llvm-41789e46a66d22f89fb2a3f38fd7be2b4586f7fd.zip
[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=#-<flag they want to complete>`. 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
Diffstat (limited to 'llvm/lib/Option')
-rw-r--r--llvm/lib/Option/OptTable.cpp4
1 files changed, 2 insertions, 2 deletions
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<std::string> 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);
}
}
OpenPOWER on IntegriCloud