Index: base/strings/string_util.h |
diff --git a/base/strings/string_util.h b/base/strings/string_util.h |
index 01dc3fcdddf1584f669ad29d8a32be81a771252c..3ec74a5207f49e4bdac5d3283ad3764e0a62709d 100644 |
--- a/base/strings/string_util.h |
+++ b/base/strings/string_util.h |
@@ -93,16 +93,30 @@ BASE_EXPORT bool IsWprintfFormatPortable(const wchar_t* format); |
// ASCII-specific tolower. The standard library's tolower is locale sensitive, |
// so we don't want to use it here. |
-template <class Char> inline Char ToLowerASCII(Char c) { |
+inline char ToLowerASCII(char c) { |
+ return (c >= 'A' && c <= 'Z') ? (c + ('a' - 'A')) : c; |
+} |
+inline char16 ToLowerASCII(char16 c) { |
return (c >= 'A' && c <= 'Z') ? (c + ('a' - 'A')) : c; |
} |
// ASCII-specific toupper. The standard library's toupper is locale sensitive, |
// so we don't want to use it here. |
-template <class Char> inline Char ToUpperASCII(Char c) { |
+inline char ToUpperASCII(char c) { |
+ return (c >= 'a' && c <= 'z') ? (c + ('A' - 'a')) : c; |
+} |
+inline char16 ToUpperASCII(char16 c) { |
return (c >= 'a' && c <= 'z') ? (c + ('A' - 'a')) : c; |
} |
+// Converts the given string to it's ASCII-lowercase equivalent. |
+BASE_EXPORT std::string ToLowerASCII(StringPiece str); |
+BASE_EXPORT string16 ToLowerASCII(StringPiece16 str); |
+ |
+// Converts the given string to it's ASCII-uppercase equivalent. |
+BASE_EXPORT std::string ToUpperASCII(StringPiece str); |
+BASE_EXPORT string16 ToUpperASCII(StringPiece16 str); |
+ |
// Functor for case-insensitive ASCII comparisons for STL algorithms like |
// std::search. |
// |
@@ -291,11 +305,13 @@ BASE_EXPORT bool IsStringASCII(const std::wstring& str); |
// Converts the elements of the given string. This version uses a pointer to |
// clearly differentiate it from the non-pointer variant. |
+// TODO(brettw) remove this. Callers should use base::ToLowerASCII above. |
template <class str> inline void StringToLowerASCII(str* s) { |
for (typename str::iterator i = s->begin(); i != s->end(); ++i) |
*i = ToLowerASCII(*i); |
} |
+// TODO(brettw) remove this. Callers should use base::ToLowerASCII above. |
template <class str> inline str StringToLowerASCII(const str& s) { |
// for std::string and std::wstring |
str output(s); |
@@ -303,20 +319,6 @@ template <class str> inline str StringToLowerASCII(const str& s) { |
return output; |
} |
-// Converts the elements of the given string. This version uses a pointer to |
-// clearly differentiate it from the non-pointer variant. |
-template <class str> inline void StringToUpperASCII(str* s) { |
- for (typename str::iterator i = s->begin(); i != s->end(); ++i) |
- *i = ToUpperASCII(*i); |
-} |
- |
-template <class str> inline str StringToUpperASCII(const str& s) { |
- // for std::string and std::wstring |
- str output(s); |
- StringToUpperASCII(&output); |
- return output; |
-} |
- |
// Compare the lower-case form of the given string against the given |
// previously-lower-cased ASCII string (typically a constant). |
BASE_EXPORT bool LowerCaseEqualsASCII(StringPiece str, |