summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/commands.cc4
-rw-r--r--src/string.hh4
2 files changed, 3 insertions, 5 deletions
diff --git a/src/commands.cc b/src/commands.cc
index 8373bddd..23cf03e8 100644
--- a/src/commands.cc
+++ b/src/commands.cc
@@ -780,9 +780,7 @@ const CommandDesc echo_cmd = {
CommandCompleter{},
[](const ParametersParser& parser, Context& context)
{
- String message;
- for (auto& param : parser)
- message += param + " ";
+ String message = join(parser, ' ', false);
if (parser.has_option("debug"))
write_debug(message);
else
diff --git a/src/string.hh b/src/string.hh
index 54a8b900..62cbe5cc 100644
--- a/src/string.hh
+++ b/src/string.hh
@@ -242,14 +242,14 @@ String escape(StringView str, StringView characters, char escape);
String unescape(StringView str, StringView characters, char escape);
template<typename Container>
-String join(const Container& container, char joiner)
+String join(const Container& container, char joiner, bool esc_joiner = true)
{
String res;
for (const auto& str : container)
{
if (not res.empty())
res += joiner;
- res += escape(str, joiner, '\\');
+ res += esc_joiner ? escape(str, joiner, '\\') : str;
}
return res;
}