diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-05 00:36:34 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-05 00:36:34 +0000 |
commit | 650303702da4b95d7f212637525ff27e6280299c (patch) | |
tree | aef8daa304a11ac0f3a366aaf5b92e77e272d020 /base/string_split.cc | |
parent | 883ce72de20ef56c3c332215c12f14886b67bf8e (diff) | |
download | chromium_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.cc | 11 |
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], |