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 -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; }