X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/28efe6544f28ba7b37a77c033901fdd6f3978b82..02cecc4dc2c07b3e4b109edf44c4c87a2fed87d9:/include/wx/chartype.h diff --git a/include/wx/chartype.h b/include/wx/chartype.h index a326f0691c..73606a61e0 100644 --- a/include/wx/chartype.h +++ b/include/wx/chartype.h @@ -38,8 +38,8 @@ #endif /* !defined(wxUSE_WCHAR_T) */ /* Unicode support requires wchar_t */ -#if wxUSE_UNICODE && !wxUSE_WCHAR_T - #error "wchar_t must be available in Unicode build" +#if !wxUSE_WCHAR_T + #error "wchar_t must be available" #endif /* Unicode */ /* @@ -145,7 +145,7 @@ typedef char wxChar; typedef signed char wxSChar; typedef unsigned char wxUChar; -#else /* Unicode */ +#else /* VZ: note that VC++ defines _T[SU]CHAR simply as wchar_t and not as */ /* signed/unsigned version of it which (a) makes sense to me (unlike */ /* char wchar_t is always unsigned) and (b) was how the previous */ @@ -214,11 +214,9 @@ #endif /* define char type used by wxString internal representation: */ -#if wxUSE_UNICODE_UTF8 - typedef char wxStringCharType; -#elif wxUSE_UNICODE_WCHAR +#if wxUSE_UNICODE_WCHAR typedef wchar_t wxStringCharType; -#else +#else /* wxUSE_UNICODE_UTF8 || ANSI */ typedef char wxStringCharType; #endif @@ -243,6 +241,18 @@ #endif /* ASCII/Unicode */ #endif /* !defined(_T) */ +/* + wxS ("wx string") macro can be used to create literals using the same + representation as wxString does internally, i.e. wchar_t in Unicode build + under Windows or char in UTF-8-based Unicode builds and (deprecated) ANSI + builds everywhere (see wxStringCharType definition above). + */ +#if wxUSE_UNICODE_WCHAR + #define wxS(x) wxCONCAT_HELPER(L, x) +#else /* wxUSE_UNICODE_UTF8 || ANSI */ + #define wxS(x) x +#endif + /* although global macros with such names are normally bad, we want to have */ /* another name for _T() which should be used to avoid confusion between */ /* _T() and _() in wxWidgets sources */