private:
- static value_type From8bit(char c);
- static char To8bit(value_type c);
+ // notice that we implement these functions inline for 7-bit ASCII
+ // characters purely for performance reasons
+ static value_type From8bit(char c)
+ {
+ if ( (unsigned char)c < 0x80 )
+ return c;
+
+ return FromHi8bit(c);
+ }
+
+ static char To8bit(value_type c)
+ {
+ if ( c < 0x80 )
+ return c;
+
+ return ToHi8bit(c);
+ }
+
+ // helpers of the functions above called to deal with non-ASCII chars
+ static value_type FromHi8bit(char c);
+ static char ToHi8bit(value_type c);
private:
value_type m_value;
// ---------------------------------------------------------------------------
/* 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( "invalid UTF-8 character" );
return wxT('?'); // FIXME-UTF8: what to use as failure character?
}
/* 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( "character cannot be converted to single UTF-8 byte" );
return '?'; // FIXME-UTF8: what to use as failure character?