X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1774c3c535957de3ba1ca85fce944767d40bdcb2..c7428e0813e34f87b638268625938c7c99aaf844:/src/common/stringops.cpp diff --git a/src/common/stringops.cpp b/src/common/stringops.cpp index ae182c6cfa..d51cce4b68 100644 --- a/src/common/stringops.cpp +++ b/src/common/stringops.cpp @@ -131,7 +131,16 @@ bool wxStringOperationsUtf8::IsValidUtf8String(const char *str, size_t len) if ( !(b >= 0x80 && b <= 0xBF ) ) return false; } - else if ( b <= 0xEF ) // E1..EF + else if ( b == 0xED ) + { + b = *(++c); + if ( !(b >= 0x80 && b <= 0x9F ) ) + return false; + b = *(++c); + if ( !(b >= 0x80 && b <= 0xBF ) ) + return false; + } + else if ( b <= 0xEF ) // E1..EC EE..EF { for ( int i = 0; i < 2; ++i ) { @@ -182,19 +191,11 @@ bool wxStringOperationsUtf8::IsValidUtf8String(const char *str, size_t len) return true; } -#ifdef __WXDEBUG__ -bool wxStringOperationsUtf8::IsValidUtf8LeadByte(unsigned char c) -{ - return (c <= 0x7F) || (c >= 0xC2 && c <= 0xF4); -} -#endif - - // NB: this is in this file and not unichar.cpp to keep all UTF-8 encoding // code in single place wxUniChar::Utf8CharBuffer wxUniChar::AsUTF8() const { - Utf8CharBuffer buf; + Utf8CharBuffer buf = { "" }; // init to avoid g++ 4.1 warning with -O2 char *out = buf.data; value_type code = GetValue();