From 8b8099e48a61b10d456f728f2a5a979448e31a1c Mon Sep 17 00:00:00 2001 From: Dwayne Boone Date: Tue, 8 Sep 2009 11:59:08 -0230 Subject: Bug 4246 - tolower/toupper on modify ascii --- cpp/src/IceUtil/StringUtil.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'cpp/src/IceUtil/StringUtil.cpp') diff --git a/cpp/src/IceUtil/StringUtil.cpp b/cpp/src/IceUtil/StringUtil.cpp index 567f4143584..b83d6dc8a79 100644 --- a/cpp/src/IceUtil/StringUtil.cpp +++ b/cpp/src/IceUtil/StringUtil.cpp @@ -700,7 +700,14 @@ IceUtilInternal::toLower(const std::string& s) result.reserve(s.size()); for(unsigned int i = 0; i < s.length(); ++i) { - result += tolower(static_cast(s[i])); + if(isascii(s[i])) + { + result += tolower(static_cast(s[i])); + } + else + { + result += s[i]; + } } return result; } @@ -712,7 +719,14 @@ IceUtilInternal::toUpper(const std::string& s) result.reserve(s.size()); for(unsigned int i = 0; i < s.length(); ++i) { - result += toupper(static_cast(s[i])); + if(isascii(s[i])) + { + result += toupper(static_cast(s[i])); + } + else + { + result += s[i]; + } } return result; } -- cgit v1.2.3