From 2ef8a9c1af3b30b8d59d917500c25db5bcd55111 Mon Sep 17 00:00:00 2001 From: Fabian Homborg Date: Thu, 28 Oct 2021 17:32:52 +0200 Subject: [PATCH] Use unescape_string_in_place We already get a copy, so we might as well just use it. --- src/expand.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/expand.cpp b/src/expand.cpp index 0666ad907..0c0874418 100644 --- a/src/expand.cpp +++ b/src/expand.cpp @@ -1001,22 +1001,20 @@ expand_result_t expander_t::stage_cmdsubst(wcstring input, completion_receiver_t expand_result_t expander_t::stage_variables(wcstring input, completion_receiver_t *out) { // We accept incomplete strings here, since complete uses expand_string to expand incomplete // strings from the commandline. - wcstring next; - unescape_string(input, &next, UNESCAPE_SPECIAL | UNESCAPE_INCOMPLETE); + unescape_string_in_place(&input, UNESCAPE_SPECIAL | UNESCAPE_INCOMPLETE); if (flags & expand_flag::skip_variables) { - for (auto &i : next) { + for (auto &i : input) { if (i == VARIABLE_EXPAND) { i = L'$'; } } - if (!out->add(std::move(next))) { + if (!out->add(std::move(input))) { return append_overflow_error(errors); } return expand_result_t::ok; } else { - size_t size = next.size(); - return expand_variables(std::move(next), out, size, ctx.vars, errors); + return expand_variables(std::move(input), out, input.size(), ctx.vars, errors); } }