+ // notice that we implement these functions inline for 7-bit ASCII
+ // characters purely for performance reasons
+ static value_type From8bit(char c)
+ {
+#if wxUSE_UNICODE
+ if ( (unsigned char)c < 0x80 )
+ return c;
+
+ return FromHi8bit(c);
+#else
+ return c;
+#endif
+ }
+
+ static char To8bit(value_type c)
+ {
+#if wxUSE_UNICODE
+ if ( c < 0x80 )
+ return wx_truncate_cast(char, c);
+
+ return ToHi8bit(c);
+#else
+ return c;
+#endif
+ }
+
+ // helpers of the functions above called to deal with non-ASCII chars
+ static value_type FromHi8bit(char c);
+ static char ToHi8bit(value_type v);
+ static bool GetAsHi8bit(value_type v, char *c);