diff options
Diffstat (limited to '')
-rw-r--r-- | src/util/DivideString.cxx | 13 | ||||
-rw-r--r-- | src/util/DivideString.hxx | 6 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/util/DivideString.cxx b/src/util/DivideString.cxx index d30dfaa16..f781d141f 100644 --- a/src/util/DivideString.cxx +++ b/src/util/DivideString.cxx @@ -18,10 +18,11 @@ */ #include "DivideString.hxx" +#include "StringUtil.hxx" #include <string.h> -DivideString::DivideString(const char *s, char separator) +DivideString::DivideString(const char *s, char separator, bool strip) :first(nullptr) { const char *x = strchr(s, separator); @@ -31,6 +32,16 @@ DivideString::DivideString(const char *s, char separator) size_t length = x - s; second = x + 1; + if (strip) + second = StripLeft(second); + + if (strip) { + const char *end = s + length; + s = StripLeft(s); + end = StripRight(s, end); + length = end - s; + } + first = new char[length + 1]; memcpy(first, s, length); first[length] = 0; diff --git a/src/util/DivideString.hxx b/src/util/DivideString.hxx index d8d911691..126aa45d1 100644 --- a/src/util/DivideString.hxx +++ b/src/util/DivideString.hxx @@ -33,7 +33,11 @@ class DivideString { const char *second; public: - DivideString(const char *s, char separator); + /** + * @param strip strip the first part and left-strip the second + * part? + */ + DivideString(const char *s, char separator, bool strip=false); ~DivideString() { delete[] first; |