From ddbee9675210f5d3158f7b761915ff3998f17c6d Mon Sep 17 00:00:00 2001 From: Dmitry Makarenko Date: Fri, 11 Sep 2026 00:07:07 +0300 Subject: [PATCH] Fix crash when rtrim is called on utf8 string containing cyrillic letters on windows --- framework/global/stringutils.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/framework/global/stringutils.cpp b/framework/global/stringutils.cpp index e4de75bc32..9b215fa799 100644 --- a/framework/global/stringutils.cpp +++ b/framework/global/stringutils.cpp @@ -152,18 +152,16 @@ std::string muse::strings::join(const std::vector& strs, const std: } } +static constexpr const char* TRIM_CHARS = " \t\n\v\f\r"; + void muse::strings::ltrim(std::string& s) { - s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](unsigned char ch) { - return !std::isspace(ch); - })); + s.erase(0, s.find_first_not_of(TRIM_CHARS)); } void muse::strings::rtrim(std::string& s) { - s.erase(std::find_if(s.rbegin(), s.rend(), [](int ch) { - return !std::isspace(ch); - }).base(), s.end()); + s.erase(s.find_last_not_of(TRIM_CHARS) + 1); } void muse::strings::trim(std::string& s)