X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e36e6f95aa6ef7174a35bf2ee29ecab80deeaa5d..c47d0f2eb1fa40b287ad8bd16b593e3f6daa96e4:/src/common/intl.cpp diff --git a/src/common/intl.cpp b/src/common/intl.cpp index ee598103ea..7153596262 100644 --- a/src/common/intl.cpp +++ b/src/common/intl.cpp @@ -28,6 +28,8 @@ #pragma hdrstop #endif +#if wxUSE_INTL + // standard headers #include #include @@ -46,9 +48,40 @@ // simple types // ---------------------------------------------------------------------------- -// FIXME adjust if necessary +// this should *not* be wxChar, this type must have exactly 8 bits! typedef unsigned char size_t8; -typedef unsigned long size_t32; + +#ifdef __WXMSW__ + #if defined(__WIN16__) + typedef unsigned long size_t32; + #elif defined(__WIN32__) + typedef unsigned int size_t32; + #else + // Win64 will have different type sizes + #error "Please define a 32 bit type" + #endif +#else // !Windows + // SIZEOF_XXX are defined by configure + #if defined(SIZEOF_INT) && (SIZEOF_INT == 4) + typedef unsigned int size_t32; + #elif defined(SIZEOF_LONG) && (SIZEOF_LONG == 4) + typedef unsigned long size_t32; + #else + // assume sizeof(int) == 4 - what else can we do + typedef unsigned int size_t32; + + // ... but at least check it during run time + static class IntSizeChecker + { + public: + IntSizeChecker() + { + wxASSERT_MSG( sizeof(int) == 4, + "size_t32 is incorrectly defined!" ); + } + } intsizechecker; + #endif +#endif // Win/!Win // ---------------------------------------------------------------------------- // constants @@ -615,3 +648,6 @@ wxLocale *wxSetLocale(wxLocale *pLocale) g_pLocale = pLocale; return pOld; } + +#endif // wxUSE_INTL +