X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9677a8f01734bddbf5597affab27504bc4569f0f..ab67e8874db324fab5223cc8d5dff8a8de3e2b77:/include/wx/wxcrt.h diff --git a/include/wx/wxcrt.h b/include/wx/wxcrt.h index aa398aea5f..2dc22cd2a2 100644 --- a/include/wx/wxcrt.h +++ b/include/wx/wxcrt.h @@ -39,26 +39,16 @@ inline bool wxIsEmpty(const wxCStrData& s) { return s.AsString().empty(); } /* multibyte to wide char conversion functions and macros */ -#if wxUSE_WCHAR_T - /* multibyte<->widechar conversion */ - WXDLLIMPEXP_BASE size_t wxMB2WC(wchar_t *buf, const char *psz, size_t n); - WXDLLIMPEXP_BASE size_t wxWC2MB(char *buf, const wchar_t *psz, size_t n); - - #if wxUSE_UNICODE - #define wxMB2WX wxMB2WC - #define wxWX2MB wxWC2MB - #define wxWC2WX wxStrncpy - #define wxWX2WC wxStrncpy - #else - #define wxMB2WX wxStrncpy - #define wxWX2MB wxStrncpy - #define wxWC2WX wxWC2MB - #define wxWX2WC wxMB2WC - #endif -#else /* !wxUSE_UNICODE */ - /* No wxUSE_WCHAR_T: we have to do something (JACS) */ - #define wxMB2WC wxStrncpy - #define wxWC2MB wxStrncpy +/* multibyte<->widechar conversion */ +WXDLLIMPEXP_BASE size_t wxMB2WC(wchar_t *buf, const char *psz, size_t n); +WXDLLIMPEXP_BASE size_t wxWC2MB(char *buf, const wchar_t *psz, size_t n); + +#if wxUSE_UNICODE + #define wxMB2WX wxMB2WC + #define wxWX2MB wxWC2MB + #define wxWC2WX wxStrncpy + #define wxWX2WC wxStrncpy +#else #define wxMB2WX wxStrncpy #define wxWX2MB wxStrncpy #define wxWC2WX wxWC2MB @@ -477,7 +467,7 @@ WX_STRCMP_FUNC(wxStricmp, wxCRT_StricmpA, wxCRT_StricmpW, wxStricmp_String) // forward-declare the template and implement it below WX_STRCMP_FUNC. OTOH, // this fails to compile with VC6, so don't do it for VC. It also causes // problems with GCC visibility in newer GCC versions. -#if !(defined(__VISUALC__) || wxCHECK_GCC_VERSION(3,5)) +#if !(defined(__VISUALC__) || (wxCHECK_GCC_VERSION(3,5) && !wxCHECK_GCC_VERSION(4,7))) || defined(__clang__) #define wxNEEDS_DECL_BEFORE_TEMPLATE #endif @@ -889,7 +879,7 @@ inline double wxStrtod(const wxCStrData& nptr, T endptr) inline rettype name(const wchar_t *nptr, wchar_t **endptr, int base) \ { return implW(nptr, endptr, base); } \ template \ - inline rettype name(const wxScopedCharTypeBuffer& nptr, T **endptr, int base)\ + inline rettype name(const wxScopedCharTypeBuffer& nptr, T **endptr, int)\ { return name(nptr.data(), endptr); } \ template \ inline rettype name(const wxString& nptr, T endptr, int base) \