From 0e6a9f6890c8bc9388bb813d4b30cc397a0edf00 Mon Sep 17 00:00:00 2001 From: Dennis Oberst Date: Thu, 27 Mar 2025 19:13:39 +0100 Subject: [PATCH] tools [utils]: implement trim as part of ltrim & rtrim This is the only logical solution for this code... As a drive-by make asciiSpacing constexpr and adjust capitalization. Change-Id: I2cda5006a9eec94b80701d71e5c4000c3c852bf3 Pick-to: 6.9 6.8 Reviewed-by: Alexey Edelev --- src/tools/qtprotoccommon/utils.cpp | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/tools/qtprotoccommon/utils.cpp b/src/tools/qtprotoccommon/utils.cpp index 0ce0d335..7f788b27 100644 --- a/src/tools/qtprotoccommon/utils.cpp +++ b/src/tools/qtprotoccommon/utils.cpp @@ -12,7 +12,7 @@ #include namespace { -const std::string_view asciiSpacing = " \t\n\r\f\v"; +constexpr std::string_view AsciiSpacing = " \t\n\r\f\v"; } namespace qtprotoccommon::utils { @@ -129,30 +129,21 @@ std::string deCapitalizeAsciiName(std::string_view name) std::string &rtrim(std::string &s) { - const size_t cut = s.find_last_not_of(asciiSpacing); + const size_t cut = s.find_last_not_of(AsciiSpacing); s.erase(cut != std::string::npos ? cut + 1 : 0); return s; } std::string <rim(std::string &s) { - const size_t cut = s.find_first_not_of(asciiSpacing); + const size_t cut = s.find_first_not_of(AsciiSpacing); s.erase(0, cut == std::string::npos ? s.size() : cut); return s; } std::string &trim(std::string &s) { - const size_t lastKept = s.find_last_not_of(asciiSpacing); - if (lastKept == std::string::npos) { // true, in particular, if empty - s.erase(0); - return s; - } - const size_t firstKept = s.find_first_not_of(asciiSpacing); - assert(firstKept != std::string::npos); - assert(firstKept <= lastKept); - s = s.substr(firstKept, lastKept + 1 - firstKept); - return s; + return ltrim(rtrim(s)); } bool HeaderComparator::operator()(const std::string &lhs, const std::string &rhs) const