command_manager: only remove last eol in %sh{} expansions

This makes it possible to keep significant EOL in shell expansions (e.g.
for use with clipboard helpers).
This commit is contained in:
Cole Helbling 2021-01-02 19:45:31 -08:00
parent 958a943121
commit 7cde146807
No known key found for this signature in database
GPG Key ID: B37E0F2371016A4C

View File

@ -323,14 +323,9 @@ expand_token(const Token& token, const Context& context, const ShellContext& she
content, context, {}, ShellManager::Flags::WaitForStdout,
shell_context).first;
int trailing_eol_count = 0;
for (auto c : str | reverse())
{
if (c != '\n')
break;
++trailing_eol_count;
}
str.resize(str.length() - trailing_eol_count, 0);
if (str.back() == '\n')
str.resize(str.length() - 1, 0);
return {str};
}
case Token::Type::RegisterExpand: