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