From d55416a649346e1d1d40c03284d5bd6f6c0a6384 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Wed, 1 May 2013 17:02:09 +0000 Subject: [PATCH] StringUtils: Fixed StringSplit to work with multiple delimiters git-svn-id: http://mc-server.googlecode.com/svn/trunk@1438 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/StringUtils.cpp | 5 +++-- source/StringUtils.h | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/source/StringUtils.cpp b/source/StringUtils.cpp index f3450f620..0143bb8c4 100644 --- a/source/StringUtils.cpp +++ b/source/StringUtils.cpp @@ -106,7 +106,7 @@ AStringVector StringSplit(const AString & str, const AString & delim) while ((cutAt = str.find_first_of(delim, Prev)) != str.npos) { results.push_back(str.substr(Prev, cutAt - Prev)); - Prev = cutAt + delim.length(); + Prev = cutAt + 1; } if (Prev < str.length()) { @@ -118,6 +118,7 @@ AStringVector StringSplit(const AString & str, const AString & delim) + AStringVector StringSplitAndTrim(const AString & str, const AString & delim) { AStringVector results; @@ -126,7 +127,7 @@ AStringVector StringSplitAndTrim(const AString & str, const AString & delim) while ((cutAt = str.find_first_of(delim, Prev)) != str.npos) { results.push_back(TrimString(str.substr(Prev, cutAt - Prev))); - Prev = cutAt + delim.length(); + Prev = cutAt + 1; } if (Prev < str.length()) { diff --git a/source/StringUtils.h b/source/StringUtils.h index 06bf77035..995ecab1f 100644 --- a/source/StringUtils.h +++ b/source/StringUtils.h @@ -33,10 +33,10 @@ extern AString Printf(const char * format, ...); /// Add the formatted string to the existing data in the string extern AString & AppendPrintf (AString & str, const char * format, ...); -/// Split the string at delimiters, return as a stringvector +/// Split the string at any of the listed delimiters, return as a stringvector extern AStringVector StringSplit(const AString & str, const AString & delim); -/// Split the string at delimiters and trim each value, return as a stringvector +/// Split the string at any of the listed delimiters and trim each value, return as a stringvector extern AStringVector StringSplitAndTrim(const AString & str, const AString & delim); /// Trime whitespace at both ends of the string