From 1c2d7262d0261925eb64ae61b2feb37a1128246e Mon Sep 17 00:00:00 2001 From: Dennis Felsing Date: Wed, 24 Jul 2024 15:23:05 +0200 Subject: [PATCH] Also trim search strings in highlights --- src/game/client/components/menus_browser.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/game/client/components/menus_browser.cpp b/src/game/client/components/menus_browser.cpp index 0fd4c2fc1..3bbb9f2fc 100644 --- a/src/game/client/components/menus_browser.cpp +++ b/src/game/client/components/menus_browser.cpp @@ -1784,21 +1784,24 @@ bool CMenus::PrintHighlighted(const char *pName, F &&PrintFn) { const char *pStr = g_Config.m_BrFilterString; char aFilterStr[sizeof(g_Config.m_BrFilterString)]; + char aFilterStrTrimmed[sizeof(g_Config.m_BrFilterString)]; while((pStr = str_next_token(pStr, IServerBrowser::SEARCH_EXCLUDE_TOKEN, aFilterStr, sizeof(aFilterStr)))) { + str_copy(aFilterStrTrimmed, str_utf8_skip_whitespaces(aFilterStr)); + str_utf8_trim_right(aFilterStrTrimmed); // highlight the parts that matches const char *pFilteredStr; - int FilterLen = str_length(aFilterStr); - if(aFilterStr[0] == '"' && aFilterStr[FilterLen - 1] == '"') + int FilterLen = str_length(aFilterStrTrimmed); + if(aFilterStrTrimmed[0] == '"' && aFilterStrTrimmed[FilterLen - 1] == '"') { - aFilterStr[FilterLen - 1] = '\0'; - pFilteredStr = str_comp(pName, &aFilterStr[1]) == 0 ? pName : nullptr; + aFilterStrTrimmed[FilterLen - 1] = '\0'; + pFilteredStr = str_comp(pName, &aFilterStrTrimmed[1]) == 0 ? pName : nullptr; FilterLen -= 2; } else { const char *pFilteredStrEnd; - pFilteredStr = str_utf8_find_nocase(pName, aFilterStr, &pFilteredStrEnd); + pFilteredStr = str_utf8_find_nocase(pName, aFilterStrTrimmed, &pFilteredStrEnd); if(pFilteredStr != nullptr && pFilteredStrEnd != nullptr) FilterLen = pFilteredStrEnd - pFilteredStr; }