summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2020-03-13 08:08:17 +1100
committerMaxime Coste <mawww@kakoune.org>2020-03-13 08:08:17 +1100
commit8c2ef4965a3f8dafb2a2409e5ea2e10a64d74d7e (patch)
treeeeafd32dd9ce8aceb2d64f537f9c55aa2399f1ed /src
parent83a17227a5ad2a01afa448ac5835a20d650d3453 (diff)
parent7b28e68d6cd3e60f5ff1a454ab52a4316d99b60a (diff)
Merge remote-tracking branch 'lenormf/fix-completion-escaping'
Diffstat (limited to 'src')
-rw-r--r--src/command_manager.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/command_manager.cc b/src/command_manager.cc
index cd9f2879..cbe29779 100644
--- a/src/command_manager.cc
+++ b/src/command_manager.cc
@@ -759,7 +759,9 @@ Completions CommandManager::complete(const Context& context,
if (not (completions.flags & Completions::Flags::Quoted) and token.type == Token::Type::Raw)
{
for (auto& c : completions.candidates)
- c = (not c.empty() and contains("%'\"", c[0]) ? "\\" : "") + escape(c, "; \t", '\\');
+ c = (not c.empty() and c[0] == '%') or
+ any_of(c, [](auto i) { return contains("; \t'\"", i); }) ?
+ format("'{}'", replace(c, "'", "''")) : c;
}
return completions;