[lldb] Return the original path when tilde expansion fails.

Differential revision: https://reviews.llvm.org/D92513
This commit is contained in:
Jonas Devlieghere 2020-12-02 16:00:21 -08:00
parent ea0029f55d
commit dcdd231df6
2 changed files with 7 additions and 3 deletions

View File

@ -75,9 +75,8 @@ bool StandardTildeExpressionResolver::ResolvePartial(StringRef Expr,
bool TildeExpressionResolver::ResolveFullPath(
StringRef Expr, llvm::SmallVectorImpl<char> &Output) {
Output.clear();
if (!Expr.startswith("~")) {
Output.append(Expr.begin(), Expr.end());
Output.assign(Expr.begin(), Expr.end());
return false;
}
@ -85,8 +84,10 @@ bool TildeExpressionResolver::ResolveFullPath(
StringRef Left =
Expr.take_until([](char c) { return path::is_separator(c); });
if (!ResolveExact(Left, Output))
if (!ResolveExact(Left, Output)) {
Output.assign(Expr.begin(), Expr.end());
return false;
}
Output.append(Expr.begin() + Left.size(), Expr.end());
return true;

View File

@ -31,6 +31,9 @@ TEST(TildeExpressionResolver, ResolveFullPath) {
EXPECT_EQ("/lars", Result);
ASSERT_FALSE(Resolver.ResolveFullPath("~Jaso", Result));
EXPECT_EQ("~Jaso", Result);
ASSERT_FALSE(Resolver.ResolveFullPath("", Result));
EXPECT_EQ("", Result);
ASSERT_FALSE(Resolver.ResolveFullPath("Jason", Result));
EXPECT_EQ("Jason", Result);
}