diff options
Diffstat (limited to '')
-rw-r--r-- | src/db/upnp/Util.cxx | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/db/upnp/Util.cxx b/src/db/upnp/Util.cxx index 9b223aca9..76710c9ab 100644 --- a/src/db/upnp/Util.cxx +++ b/src/db/upnp/Util.cxx @@ -18,7 +18,6 @@ */ #include "Util.hxx" -#include "util/CharUtil.hxx" #include <string> #include <map> @@ -28,17 +27,19 @@ #include <upnp/ixml.h> /** Get rid of white space at both ends */ -std::string -trimstring(const char *p, size_t length) +void +trimstring(std::string &s, const char *ws) { - while (length > 0 && IsWhitespaceOrNull(p[length - 1])) - --length; - - const char *end = p + length; - while (p != end && IsWhitespaceOrNull(*p)) - ++p; + auto pos = s.find_first_not_of(ws); + if (pos == std::string::npos) { + s.clear(); + return; + } + s.replace(0, pos, std::string()); - return std::string(p, end); + pos = s.find_last_not_of(ws); + if (pos != std::string::npos && pos != s.length()-1) + s.replace(pos + 1, std::string::npos, std::string()); } std::string |