Index: base/string_util.cc |
=================================================================== |
--- base/string_util.cc (revision 108864) |
+++ base/string_util.cc (working copy) |
@@ -165,34 +165,49 @@ |
const char kUtf8ByteOrderMark[] = "\xEF\xBB\xBF"; |
template<typename STR> |
-bool RemoveCharsT(const STR& input, |
- const typename STR::value_type remove_chars[], |
- STR* output) { |
+bool ReplaceCharsT(const STR& input, |
+ const typename STR::value_type replace_chars[], |
+ const STR& replace_with, |
+ STR* output) { |
bool removed = false; |
size_t found; |
*output = input; |
- found = output->find_first_of(remove_chars); |
+ found = output->find_first_of(replace_chars); |
while (found != STR::npos) { |
removed = true; |
- output->replace(found, 1, STR()); |
- found = output->find_first_of(remove_chars, found); |
+ output->replace(found, 1, replace_with); |
+ found = output->find_first_of(replace_chars, found); |
} |
return removed; |
} |
+bool ReplaceChars(const string16& input, |
+ const char16 replace_chars[], |
+ const string16& replace_with, |
+ string16* output) { |
+ return ReplaceCharsT(input, replace_chars, replace_with, output); |
+} |
+ |
+bool ReplaceChars(const std::string& input, |
+ const char replace_chars[], |
+ const std::string& replace_with, |
+ std::string* output) { |
+ return ReplaceCharsT(input, replace_chars, replace_with, output); |
+} |
+ |
bool RemoveChars(const string16& input, |
const char16 remove_chars[], |
string16* output) { |
- return RemoveCharsT(input, remove_chars, output); |
+ return ReplaceChars(input, remove_chars, string16(), output); |
} |
bool RemoveChars(const std::string& input, |
const char remove_chars[], |
std::string* output) { |
- return RemoveCharsT(input, remove_chars, output); |
+ return ReplaceChars(input, remove_chars, std::string(), output); |
} |
template<typename STR> |