From 50d8703c785898d06463513896e37cbe7cedd471 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 28 Jul 2025 12:06:00 +0200 Subject: Move split() to APT::String::Split() This splits based upon contiguous whitespace as separators --- apt-pkg/contrib/strutl.cc | 11 +++++++++++ apt-pkg/contrib/strutl.h | 1 + apt-pkg/init.cc | 17 ++--------------- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc index 651c985bd..b5200831a 100644 --- a/apt-pkg/contrib/strutl.cc +++ b/apt-pkg/contrib/strutl.cc @@ -138,6 +138,17 @@ size_t DisplayLength(string_view str) return len; } +// Splits by whitespace. There may be continuous spans of whitespace - they +// will be considered as one. +std::vector Split(std::string const &s) +{ + std::vector vec; + std::istringstream iss(s); + iss.imbue(std::locale::classic()); + for (std::string current_s; iss >> current_s;) + vec.push_back(current_s); + return vec; +} } } /*}}}*/ diff --git a/apt-pkg/contrib/strutl.h b/apt-pkg/contrib/strutl.h index 79b7c8bfa..c22b2dda2 100644 --- a/apt-pkg/contrib/strutl.h +++ b/apt-pkg/contrib/strutl.h @@ -48,6 +48,7 @@ namespace APT { APT_PUBLIC std::string Join(std::vector list, const std::string_view &sep); // Returns string display length honoring multi-byte characters APT_PUBLIC size_t DisplayLength(std::string_view str); + APT_HIDDEN std::vector Split(std::string const &str); } } diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc index 61d45e37e..531cd258d 100644 --- a/apt-pkg/init.cc +++ b/apt-pkg/init.cc @@ -38,19 +38,6 @@ namespace APT { APT_HIDDEN extern std::unordered_map> ArchToTupleMap; } -// Splits by whitespace. There may be continuous spans of whitespace - they -// will be considered as one. -static std::vector split(std::string const & s) -{ - std::vector vec; - std::istringstream iss(s); - iss.imbue(std::locale::classic()); - for(std::string current_s; iss >> current_s; ) - vec.push_back(current_s); - return vec; -} - - // pkgInitArchTupleMap - Initialize the architecture tuple map /*{{{*/ // --------------------------------------------------------------------- /* This initializes */ @@ -67,7 +54,7 @@ static bool pkgInitArchTupleMap() { if (cpuline[0] == '#' || cpuline[0] == '\0') continue; - auto cpurow = split(cpuline); + auto cpurow = APT::String::Split(cpuline); auto cpu = APT::String::Strip(cpurow.at(0)); cpus.emplace_back(cpu); @@ -90,7 +77,7 @@ static bool pkgInitArchTupleMap() if (tupleline[0] == '#' || tupleline[0] == '\0') continue; - std::vector tuplerow = split(tupleline); + std::vector tuplerow = APT::String::Split(tupleline); auto tuple = APT::String::Strip(tuplerow.at(0)); auto arch = APT::String::Strip(tuplerow.at(1)); -- cgit v1.2.3-70-g09d2