summaryrefslogtreecommitdiffstats
path: root/base/string_split.cc
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-05 00:36:34 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-05 00:36:34 +0000
commit650303702da4b95d7f212637525ff27e6280299c (patch)
treeaef8daa304a11ac0f3a366aaf5b92e77e272d020 /base/string_split.cc
parent883ce72de20ef56c3c332215c12f14886b67bf8e (diff)
downloadchromium_src-650303702da4b95d7f212637525ff27e6280299c.zip
chromium_src-650303702da4b95d7f212637525ff27e6280299c.tar.gz
chromium_src-650303702da4b95d7f212637525ff27e6280299c.tar.bz2
TTF: Re-enable SplitStringIntoKeyValuePairsTest.EmptyString. Fix the case
where an empty pair would cause SplitStringIntoKeyValuePairs to report an error yet add the empty pair to the pairs list. Add more tests. BUG=none TEST=SplitStringIntoKeyValuePairsTest.*, StringUtilTest.SplitString Review URL: http://codereview.chromium.org/1971001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46420 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/string_split.cc')
-rw-r--r--base/string_split.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/base/string_split.cc b/base/string_split.cc
index 4494d25..2b4deb5 100644
--- a/base/string_split.cc
+++ b/base/string_split.cc
@@ -15,7 +15,7 @@ bool SplitStringIntoKeyValues(
key->clear();
values->clear();
- // find the key string
+ // Find the key string.
size_t end_key_pos = line.find_first_of(key_value_delimiter);
if (end_key_pos == std::string::npos) {
DLOG(INFO) << "cannot parse key from line: " << line;
@@ -23,7 +23,7 @@ bool SplitStringIntoKeyValues(
}
key->assign(line, 0, end_key_pos);
- // find the values string
+ // Find the values string.
std::string remains(line, end_key_pos, line.size() - end_key_pos);
size_t begin_values_pos = remains.find_first_not_of(key_value_delimiter);
if (begin_values_pos == std::string::npos) {
@@ -33,7 +33,7 @@ bool SplitStringIntoKeyValues(
std::string values_string(remains, begin_values_pos,
remains.size() - begin_values_pos);
- // construct the values vector
+ // Construct the values vector.
values->push_back(values_string);
return true;
}
@@ -50,6 +50,11 @@ bool SplitStringIntoKeyValuePairs(
bool success = true;
for (size_t i = 0; i < pairs.size(); ++i) {
+ // Empty pair. SplitStringIntoKeyValues is more strict about an empty pair
+ // line, so continue with the next pair.
+ if (pairs[i].empty())
+ continue;
+
std::string key;
std::vector<std::string> value;
if (!SplitStringIntoKeyValues(pairs[i],