Move string_split to base/strings.

[email protected]


Review URL: https://chromiumcodereview.appspot.com/12218059

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181380 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/base/base.gyp b/base/base.gyp
index 1ae1d3b..ca3e0e40 100644
--- a/base/base.gyp
+++ b/base/base.gyp
@@ -527,10 +527,10 @@
         'stl_util_unittest.cc',
         'string16_unittest.cc',
         'string_piece_unittest.cc',
-        'string_split_unittest.cc',
         'string_util_unittest.cc',
         'stringprintf_unittest.cc',
         'strings/string_number_conversions_unittest.cc',
+        'strings/string_split_unittest.cc',
         'strings/string_tokenizer_unittest.cc',
         'strings/stringize_macros_unittest.cc',
         'strings/sys_string_conversions_mac_unittest.mm',
diff --git a/base/base.gypi b/base/base.gypi
index f766141..9f588c8 100644
--- a/base/base.gypi
+++ b/base/base.gypi
@@ -386,7 +386,6 @@
           'stl_util.h',
           'string_piece.cc',
           'string_piece.h',
-          'string_split.cc',
           'string_split.h',
           'string_util.cc',
           'string_util.h',
@@ -396,6 +395,8 @@
           'string16.h',
           'stringprintf.cc',
           'stringprintf.h',
+          'strings/string_split.cc',
+          'strings/string_split.h',
           'strings/string_number_conversions.cc',
           'strings/string_number_conversions.h',
           'strings/string_tokenizer.h',
diff --git a/base/command_line.cc b/base/command_line.cc
index f4553ea..b366165 100644
--- a/base/command_line.cc
+++ b/base/command_line.cc
@@ -10,8 +10,8 @@
 #include "base/basictypes.h"
 #include "base/file_path.h"
 #include "base/logging.h"
-#include "base/string_split.h"
 #include "base/string_util.h"
+#include "base/strings/string_split.h"
 #include "base/utf_string_conversions.h"
 #include "build/build_config.h"
 
diff --git a/base/nix/mime_util_xdg.cc b/base/nix/mime_util_xdg.cc
index 329102a..63760bd 100644
--- a/base/nix/mime_util_xdg.cc
+++ b/base/nix/mime_util_xdg.cc
@@ -16,8 +16,8 @@
 #include "base/memory/scoped_ptr.h"
 #include "base/memory/singleton.h"
 #include "base/nix/xdg_util.h"
-#include "base/string_split.h"
 #include "base/string_util.h"
+#include "base/strings/string_split.h"
 #include "base/synchronization/lock.h"
 #include "base/third_party/xdg_mime/xdgmime.h"
 #include "base/threading/thread_restrictions.h"
diff --git a/base/process_linux.cc b/base/process_linux.cc
index fcec287..09fb9eb 100644
--- a/base/process_linux.cc
+++ b/base/process_linux.cc
@@ -11,7 +11,7 @@
 #include "base/lazy_instance.h"
 #include "base/logging.h"
 #include "base/stringprintf.h"
-#include "base/string_split.h"
+#include "base/strings/string_split.h"
 #include "base/synchronization/lock.h"
 
 namespace {
diff --git a/base/process_util_freebsd.cc b/base/process_util_freebsd.cc
index 8ff1ba9..3be93c2 100644
--- a/base/process_util_freebsd.cc
+++ b/base/process_util_freebsd.cc
@@ -19,10 +19,10 @@
 
 #include "base/file_util.h"
 #include "base/logging.h"
-#include "base/string_split.h"
 #include "base/string_tokenizer.h"
 #include "base/string_util.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
 #include "base/sys_info.h"
 
 namespace base {
diff --git a/base/process_util_linux.cc b/base/process_util_linux.cc
index 31660b0..92e7c47 100644
--- a/base/process_util_linux.cc
+++ b/base/process_util_linux.cc
@@ -12,9 +12,9 @@
 
 #include "base/file_util.h"
 #include "base/logging.h"
-#include "base/string_split.h"
 #include "base/string_util.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
 #include "base/strings/string_tokenizer.h"
 #include "base/sys_info.h"
 #include "base/threading/thread_restrictions.h"
diff --git a/base/process_util_openbsd.cc b/base/process_util_openbsd.cc
index 3e2402c..328f45b 100644
--- a/base/process_util_openbsd.cc
+++ b/base/process_util_openbsd.cc
@@ -20,10 +20,10 @@
 
 #include "base/file_util.h"
 #include "base/logging.h"
-#include "base/string_split.h"
 #include "base/string_tokenizer.h"
 #include "base/string_util.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
 #include "base/sys_info.h"
 #include "base/threading/thread_restrictions.h"
 
diff --git a/base/string_split.h b/base/string_split.h
index f8022e3..748bcc4 100644
--- a/base/string_split.h
+++ b/base/string_split.h
@@ -1,81 +1,12 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2013 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
 #ifndef BASE_STRING_SPLIT_H_
 #define BASE_STRING_SPLIT_H_
 
-#include <string>
-#include <utility>
-#include <vector>
+// TODO(tfarina) remove this file when all callers are updated to the new
+// location.
+#include "base/strings/string_split.h"
 
-#include "base/base_export.h"
-#include "base/string16.h"
-
-namespace base {
-
-// Splits |str| into a vector of strings delimited by |s|, placing the results
-// in |r|. If several instances of |s| are contiguous, or if |str| begins with
-// or ends with |s|, then an empty string is inserted.
-//
-// Every substring is trimmed of any leading or trailing white space.
-// NOTE: |c| must be in BMP (Basic Multilingual Plane)
-BASE_EXPORT void SplitString(const string16& str,
-                             char16 c,
-                             std::vector<string16>* r);
-// |str| should not be in a multi-byte encoding like Shift-JIS or GBK in which
-// the trailing byte of a multi-byte character can be in the ASCII range.
-// UTF-8, and other single/multi-byte ASCII-compatible encodings are OK.
-// Note: |c| must be in the ASCII range.
-BASE_EXPORT void SplitString(const std::string& str,
-                             char c,
-                             std::vector<std::string>* r);
-
-BASE_EXPORT bool SplitStringIntoKeyValues(
-    const std::string& line,
-    char key_value_delimiter,
-    std::string* key, std::vector<std::string>* values);
-
-BASE_EXPORT bool SplitStringIntoKeyValuePairs(
-    const std::string& line,
-    char key_value_delimiter,
-    char key_value_pair_delimiter,
-    std::vector<std::pair<std::string, std::string> >* kv_pairs);
-
-// The same as SplitString, but use a substring delimiter instead of a char.
-BASE_EXPORT void SplitStringUsingSubstr(const string16& str,
-                                        const string16& s,
-                                        std::vector<string16>* r);
-BASE_EXPORT void SplitStringUsingSubstr(const std::string& str,
-                                        const std::string& s,
-                                        std::vector<std::string>* r);
-
-// The same as SplitString, but don't trim white space.
-// NOTE: |c| must be in BMP (Basic Multilingual Plane)
-BASE_EXPORT void SplitStringDontTrim(const string16& str,
-                                     char16 c,
-                                     std::vector<string16>* r);
-// |str| should not be in a multi-byte encoding like Shift-JIS or GBK in which
-// the trailing byte of a multi-byte character can be in the ASCII range.
-// UTF-8, and other single/multi-byte ASCII-compatible encodings are OK.
-// Note: |c| must be in the ASCII range.
-BASE_EXPORT void SplitStringDontTrim(const std::string& str,
-                                     char c,
-                                     std::vector<std::string>* r);
-
-// WARNING: this uses whitespace as defined by the HTML5 spec. If you need
-// a function similar to this but want to trim all types of whitespace, then
-// factor this out into a function that takes a string containing the characters
-// that are treated as whitespace.
-//
-// Splits the string along whitespace (where whitespace is the five space
-// characters defined by HTML 5). Each contiguous block of non-whitespace
-// characters is added to result.
-BASE_EXPORT void SplitStringAlongWhitespace(const string16& str,
-                                            std::vector<string16>* result);
-BASE_EXPORT void SplitStringAlongWhitespace(const std::string& str,
-                                            std::vector<std::string>* result);
-
-}  // namespace base
-
-#endif  // BASE_STRING_SPLIT_H
+#endif  // BASE_STRING_SPLIT_H_
diff --git a/base/string_split.cc b/base/strings/string_split.cc
similarity index 98%
rename from base/string_split.cc
rename to base/strings/string_split.cc
index e5befcf..f5f19e9 100644
--- a/base/string_split.cc
+++ b/base/strings/string_split.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/string_split.h"
+#include "base/strings/string_split.h"
 
 #include "base/logging.h"
 #include "base/string_util.h"
diff --git a/base/strings/string_split.h b/base/strings/string_split.h
new file mode 100644
index 0000000..2ce2585
--- /dev/null
+++ b/base/strings/string_split.h
@@ -0,0 +1,81 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_STRINGS_STRING_SPLIT_H_
+#define BASE_STRINGS_STRING_SPLIT_H_
+
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "base/base_export.h"
+#include "base/string16.h"
+
+namespace base {
+
+// Splits |str| into a vector of strings delimited by |s|, placing the results
+// in |r|. If several instances of |s| are contiguous, or if |str| begins with
+// or ends with |s|, then an empty string is inserted.
+//
+// Every substring is trimmed of any leading or trailing white space.
+// NOTE: |c| must be in BMP (Basic Multilingual Plane)
+BASE_EXPORT void SplitString(const string16& str,
+                             char16 c,
+                             std::vector<string16>* r);
+// |str| should not be in a multi-byte encoding like Shift-JIS or GBK in which
+// the trailing byte of a multi-byte character can be in the ASCII range.
+// UTF-8, and other single/multi-byte ASCII-compatible encodings are OK.
+// Note: |c| must be in the ASCII range.
+BASE_EXPORT void SplitString(const std::string& str,
+                             char c,
+                             std::vector<std::string>* r);
+
+BASE_EXPORT bool SplitStringIntoKeyValues(const std::string& line,
+                                          char key_value_delimiter,
+                                          std::string* key,
+                                          std::vector<std::string>* values);
+
+BASE_EXPORT bool SplitStringIntoKeyValuePairs(
+    const std::string& line,
+    char key_value_delimiter,
+    char key_value_pair_delimiter,
+    std::vector<std::pair<std::string, std::string> >* kv_pairs);
+
+// The same as SplitString, but use a substring delimiter instead of a char.
+BASE_EXPORT void SplitStringUsingSubstr(const string16& str,
+                                        const string16& s,
+                                        std::vector<string16>* r);
+BASE_EXPORT void SplitStringUsingSubstr(const std::string& str,
+                                        const std::string& s,
+                                        std::vector<std::string>* r);
+
+// The same as SplitString, but don't trim white space.
+// NOTE: |c| must be in BMP (Basic Multilingual Plane)
+BASE_EXPORT void SplitStringDontTrim(const string16& str,
+                                     char16 c,
+                                     std::vector<string16>* r);
+// |str| should not be in a multi-byte encoding like Shift-JIS or GBK in which
+// the trailing byte of a multi-byte character can be in the ASCII range.
+// UTF-8, and other single/multi-byte ASCII-compatible encodings are OK.
+// Note: |c| must be in the ASCII range.
+BASE_EXPORT void SplitStringDontTrim(const std::string& str,
+                                     char c,
+                                     std::vector<std::string>* r);
+
+// WARNING: this uses whitespace as defined by the HTML5 spec. If you need
+// a function similar to this but want to trim all types of whitespace, then
+// factor this out into a function that takes a string containing the characters
+// that are treated as whitespace.
+//
+// Splits the string along whitespace (where whitespace is the five space
+// characters defined by HTML 5). Each contiguous block of non-whitespace
+// characters is added to result.
+BASE_EXPORT void SplitStringAlongWhitespace(const string16& str,
+                                            std::vector<string16>* result);
+BASE_EXPORT void SplitStringAlongWhitespace(const std::string& str,
+                                            std::vector<std::string>* result);
+
+}  // namespace base
+
+#endif  // BASE_STRINGS_STRING_SPLIT_H_
diff --git a/base/string_split_unittest.cc b/base/strings/string_split_unittest.cc
similarity index 99%
rename from base/string_split_unittest.cc
rename to base/strings/string_split_unittest.cc
index a4412e4..a950cac 100644
--- a/base/string_split_unittest.cc
+++ b/base/strings/string_split_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/string_split.h"
+#include "base/strings/string_split.h"
 
 #include "base/utf_string_conversions.h"
 #include "testing/gmock/include/gmock/gmock.h"
diff --git a/base/test/test_file_util_win.cc b/base/test/test_file_util_win.cc
index 41d69ea..daaa414 100644
--- a/base/test/test_file_util_win.cc
+++ b/base/test/test_file_util_win.cc
@@ -13,9 +13,9 @@
 #include "base/file_path.h"
 #include "base/file_util.h"
 #include "base/logging.h"
-#include "base/string_split.h"
-#include "base/win/scoped_handle.h"
+#include "base/strings/string_split.h"
 #include "base/threading/platform_thread.h"
+#include "base/win/scoped_handle.h"
 
 namespace file_util {
 
diff --git a/base/version.cc b/base/version.cc
index 2364c6d..f7587334 100644
--- a/base/version.cc
+++ b/base/version.cc
@@ -7,9 +7,9 @@
 #include <algorithm>
 
 #include "base/logging.h"
-#include "base/string_split.h"
 #include "base/string_util.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
 
 namespace {
 
diff --git a/base/vlog.cc b/base/vlog.cc
index 3fc0f08..9465054 100644
--- a/base/vlog.cc
+++ b/base/vlog.cc
@@ -6,8 +6,8 @@
 
 #include "base/basictypes.h"
 #include "base/logging.h"
-#include "base/string_split.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
 
 namespace logging {