summaryrefslogtreecommitdiffstats
path: root/base/string_split.cc
diff options
context:
space:
mode:
authortfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-02 02:01:48 +0000
committertfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-02 02:01:48 +0000
commite8478ae4ef8bd1dbb83cd46e8af060d5331ba2df (patch)
treef1b969244d1ffa41c32242429e9218ccd4955fb8 /base/string_split.cc
parentee940fc4997e1e0369f8e9fd1cce24311e1945a0 (diff)
downloadchromium_src-e8478ae4ef8bd1dbb83cd46e8af060d5331ba2df.zip
chromium_src-e8478ae4ef8bd1dbb83cd46e8af060d5331ba2df.tar.gz
chromium_src-e8478ae4ef8bd1dbb83cd46e8af060d5331ba2df.tar.bz2
base: Move SplitStringUsingSubstr functions from string_util.h to string_split.h
BUG=None TEST=trybots Review URL: http://codereview.chromium.org/3284005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58300 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/string_split.cc')
-rw-r--r--base/string_split.cc34
1 files changed, 34 insertions, 0 deletions
diff --git a/base/string_split.cc b/base/string_split.cc
index dc7e7ad..b2b70ea 100644
--- a/base/string_split.cc
+++ b/base/string_split.cc
@@ -71,4 +71,38 @@ bool SplitStringIntoKeyValuePairs(
return success;
}
+template <typename STR>
+static void SplitStringUsingSubstrT(const STR& str,
+ const STR& s,
+ std::vector<STR>* r) {
+ typename STR::size_type begin_index = 0;
+ while (true) {
+ const typename STR::size_type end_index = str.find(s, begin_index);
+ if (end_index == STR::npos) {
+ const STR term = str.substr(begin_index);
+ STR tmp;
+ TrimWhitespace(term, TRIM_ALL, &tmp);
+ r->push_back(tmp);
+ return;
+ }
+ const STR term = str.substr(begin_index, end_index - begin_index);
+ STR tmp;
+ TrimWhitespace(term, TRIM_ALL, &tmp);
+ r->push_back(tmp);
+ begin_index = end_index + s.size();
+ }
+}
+
+void SplitStringUsingSubstr(const string16& str,
+ const string16& s,
+ std::vector<string16>* r) {
+ SplitStringUsingSubstrT(str, s, r);
+}
+
+void SplitStringUsingSubstr(const std::string& str,
+ const std::string& s,
+ std::vector<std::string>* r) {
+ SplitStringUsingSubstrT(str, s, r);
+}
+
} // namespace base