Make sure wchar_t CRT functions work on OS X.
In OS X and iOS, wchar_t CRT functions convert to char* and fail under some locales. The safest fix is to set LC_CTYPE to UTF-8 to ensure that they can handle any input. Note that this must be done for any app, Cocoa or console, whether or not it uses wxLocale. See http://stackoverflow.com/questions/11713745/why-does-the-printf-family-of-functions-care-about-locale git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -218,6 +218,18 @@ static void FreeConvertedArgs()
|
|||||||
// initialization which is always done (not customizable) before wxApp creation
|
// initialization which is always done (not customizable) before wxApp creation
|
||||||
static bool DoCommonPreInit()
|
static bool DoCommonPreInit()
|
||||||
{
|
{
|
||||||
|
#if wxUSE_UNICODE && defined(__WXOSX__)
|
||||||
|
// In OS X and iOS, wchar_t CRT functions convert to char* and fail under
|
||||||
|
// some locales. The safest fix is to set LC_CTYPE to UTF-8 to ensure that
|
||||||
|
// they can handle any input.
|
||||||
|
//
|
||||||
|
// Note that this must be done for any app, Cocoa or console, whether or
|
||||||
|
// not it uses wxLocale.
|
||||||
|
//
|
||||||
|
// See http://stackoverflow.com/questions/11713745/why-does-the-printf-family-of-functions-care-about-locale
|
||||||
|
setlocale(LC_CTYPE, "UTF-8");
|
||||||
|
#endif // wxUSE_UNICODE && defined(__WXOSX__)
|
||||||
|
|
||||||
#if wxUSE_LOG
|
#if wxUSE_LOG
|
||||||
// Reset logging in case we were cleaned up and are being reinitialized.
|
// Reset logging in case we were cleaned up and are being reinitialized.
|
||||||
wxLog::DoCreateOnDemand();
|
wxLog::DoCreateOnDemand();
|
||||||
|
Reference in New Issue
Block a user