X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b0c4d5d79272961d6b3f4037454737ee055e94e7..b25c34aae4f8ef394efc04eed23163e8b4837bf4:/src/common/unichar.cpp diff --git a/src/common/unichar.cpp b/src/common/unichar.cpp index b83a0817a3..d75555acd9 100644 --- a/src/common/unichar.cpp +++ b/src/common/unichar.cpp @@ -21,10 +21,11 @@ #ifndef WX_PRECOMP #include "wx/strconv.h" // wxConvLibc + #include "wx/log.h" #endif #include "wx/unichar.h" -#include "wx/stringops.h" +#include "wx/string.h" // =========================================================================== // implementation @@ -35,38 +36,40 @@ // --------------------------------------------------------------------------- /* static */ -wxUniChar::value_type wxUniChar::From8bit(char c) +wxUniChar::value_type wxUniChar::FromHi8bit(char c) { - // all supported charsets have the first 128 characters same as ASCII: - if ( (unsigned char)c < 0x80 ) - return c; - #if wxUSE_UTF8_LOCALE_ONLY - wxFAIL_MSG( _T("invalid UTF-8 character") ); + wxFAIL_MSG( "invalid UTF-8 character" ); + wxUnusedVar(c); + return wxT('?'); // FIXME-UTF8: what to use as failure character? #else wchar_t buf[2]; if ( wxConvLibc.ToWChar(buf, 2, &c, 1) != 2 ) + { + wxFAIL_MSG( "invalid multibyte character" ); return wxT('?'); // FIXME-UTF8: what to use as failure character? + } return buf[0]; #endif } /* static */ -char wxUniChar::To8bit(wxUniChar::value_type c) +char wxUniChar::ToHi8bit(wxUniChar::value_type c) { - // all supported charsets have the first 128 characters same as ASCII: - if ( c < 0x80 ) - return c; - #if wxUSE_UTF8_LOCALE_ONLY - wxFAIL_MSG( _T("character cannot be converted to single UTF-8 byte") ); + wxFAIL_MSG( "character cannot be converted to single UTF-8 byte" ); + wxUnusedVar(c); + return '?'; // FIXME-UTF8: what to use as failure character? #else wchar_t in = c; char buf[2]; if ( wxConvLibc.FromWChar(buf, 2, &in, 1) != 2 ) + { + wxFAIL_MSG( "character cannot be converted to single byte" ); return '?'; // FIXME-UTF8: what to use as failure character? + } return buf[0]; #endif }