Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
authorvng <viktor.govako@gmail.com>2012-08-23 11:24:53 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:42:26 +0300
commit7cf9981c61381384b9668c592e5072382f70f24d (patch)
tree833f9876c428ab2f94c1386f030640fd09e792d0 /base
parent4026da0de7d7e43d855ff7ffcc9cd0cfb9955001 (diff)
Add strings::AsciiToLower fast function.
Diffstat (limited to 'base')
-rw-r--r--base/string_utils.cpp16
-rw-r--r--base/string_utils.hpp3
2 files changed, 19 insertions, 0 deletions
diff --git a/base/string_utils.cpp b/base/string_utils.cpp
index edc2e57d6a..41862ae82a 100644
--- a/base/string_utils.cpp
+++ b/base/string_utils.cpp
@@ -104,6 +104,22 @@ UniString Normalize(UniString const & s)
return result;
}
+namespace
+{
+ char ascii_to_lower(char in)
+ {
+ static char const diff = 'Z'-'z';
+ if (in <= 'Z' && in >= 'A')
+ return (in-diff);
+ return in;
+ }
+}
+
+void AsciiToLower(string & s)
+{
+ transform(s.begin(), s.end(), s.begin(), &ascii_to_lower);
+}
+
bool EqualNoCase(string const & s1, string const & s2)
{
return MakeLowerCase(s1) == MakeLowerCase(s2);
diff --git a/base/string_utils.hpp b/base/string_utils.hpp
index c58228110a..7268b8b0c6 100644
--- a/base/string_utils.hpp
+++ b/base/string_utils.hpp
@@ -28,8 +28,11 @@ public:
UniString MakeLowerCase(UniString const & s);
void MakeLowerCase(UniString & s);
UniString Normalize(UniString const & s);
+/// For implementation @see base/normilize_unicode.cpp
void Normalize(UniString & s);
+void AsciiToLower(string & s);
+
void MakeLowerCase(string & s);
string MakeLowerCase(string const & s);
bool EqualNoCase(string const & s1, string const & s2);