mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-29 06:13:20 +00:00
Revert "Use unescape_string_in_place"
This reverts commit 2ef8a9c1af
.
This doesn't work everywhere, not sure why.
This commit is contained in:
parent
292c9d5381
commit
357f49c781
1 changed files with 6 additions and 4 deletions
|
@ -1001,20 +1001,22 @@ 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.
|
||||
unescape_string_in_place(&input, UNESCAPE_SPECIAL | UNESCAPE_INCOMPLETE);
|
||||
wcstring next;
|
||||
unescape_string(input, &next, UNESCAPE_SPECIAL | UNESCAPE_INCOMPLETE);
|
||||
|
||||
if (flags & expand_flag::skip_variables) {
|
||||
for (auto &i : input) {
|
||||
for (auto &i : next) {
|
||||
if (i == VARIABLE_EXPAND) {
|
||||
i = L'$';
|
||||
}
|
||||
}
|
||||
if (!out->add(std::move(input))) {
|
||||
if (!out->add(std::move(next))) {
|
||||
return append_overflow_error(errors);
|
||||
}
|
||||
return expand_result_t::ok;
|
||||
} else {
|
||||
return expand_variables(std::move(input), out, input.size(), ctx.vars, errors);
|
||||
size_t size = next.size();
|
||||
return expand_variables(std::move(next), out, size, ctx.vars, errors);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue