summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorartemp <artem@mapnik.org>2014-11-17 11:22:47 +0100
committerartemp <artem@mapnik.org>2014-11-17 11:22:47 +0100
commit66d64c7c12648b3f15181eb9d64e55d1a23ade34 (patch)
treea2f218b55cc644940a3b31f94d02c01316e408fa /platform
parentc8dea1024d6aa43749d5f8c0f2141a7010b5c3fb (diff)
downloadqtlocation-mapboxgl-66d64c7c12648b3f15181eb9d64e55d1a23ade34.tar.gz
use nunicode conditional case mapping (lowercase)
Diffstat (limited to 'platform')
-rw-r--r--platform/default/string_stdlib.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/platform/default/string_stdlib.cpp b/platform/default/string_stdlib.cpp
index 9639cd7b99..3b89a45043 100644
--- a/platform/default/string_stdlib.cpp
+++ b/platform/default/string_stdlib.cpp
@@ -31,19 +31,22 @@ std::string uppercase(const std::string& str)
std::string lowercase(const std::string& str)
{
- boost::u8_to_u32_iterator<std::string::const_iterator> itr(str.begin());
- boost::u8_to_u32_iterator<std::string::const_iterator> end(str.end());
std::string output;
- char buf[5];
- for (; itr!=end; ++itr)
+ char lo[5];
+ char const* itr = str.c_str();
+ char const* end = itr + str.length();
+ char const* buf = 0;
+ uint32_t code_point;
+ for ( ; itr!=end;)
{
- char const* lo = nu_tolower(*itr);
- if (lo != 0) output.append(lo);
+
+ itr = _nu_tolower(itr, end, nu_utf8_read, &code_point, &buf, 0);
+ if (buf != 0) output.append(buf);
else
{
- std::memset(buf, 0, 5);
- nu_utf8_write(*itr, buf);
- output.append(buf);
+ std::memset(lo, 0, 5);
+ nu_utf8_write(code_point, lo);
+ output.append(lo);
}
}
return output;