X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/49211791f946d63fa9de33ac8fac1787786307d3..refs/heads/master:/src/common/intl.cpp diff --git a/src/common/intl.cpp b/src/common/intl.cpp index ee790a5c07..f8b011a917 100644 --- a/src/common/intl.cpp +++ b/src/common/intl.cpp @@ -5,7 +5,6 @@ // Modified by: Michael N. Filippov // (2003/09/30 - PluralForms support) // Created: 29/01/98 -// RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -206,7 +205,11 @@ wxLanguageInfoArray *wxLocale::ms_languagesDB = NULL; void wxLocale::DoCommonInit() { - m_pszOldLocale = NULL; + // Store the current locale in order to be able to restore it in the dtor. + m_pszOldLocale = wxSetlocale(LC_ALL, NULL); + if ( m_pszOldLocale ) + m_pszOldLocale = wxStrdup(m_pszOldLocale); + m_pOldLocale = wxSetLocale(this); @@ -285,13 +288,7 @@ bool wxLocale::DoInit(const wxString& name, wxS("no locale to set in wxLocale::Init()") ); } - const char *oldLocale = wxSetlocale(LC_ALL, szLocale); - if ( oldLocale ) - m_pszOldLocale = wxStrdup(oldLocale); - else - m_pszOldLocale = NULL; - - if ( m_pszOldLocale == NULL ) + if ( !wxSetlocale(LC_ALL, szLocale) ) { wxLogError(_("locale '%s' cannot be set."), szLocale); } @@ -573,12 +570,14 @@ bool wxLocale::Init(int language, int flags) namespace { +#ifndef __WXOSX__ // Small helper function: get the value of the given environment variable and // return true only if the variable was found and has non-empty value. inline bool wxGetNonEmptyEnvVar(const wxString& name, wxString* value) { return wxGetEnv(name, value) && !value->empty(); } +#endif } // anonymous namespace @@ -593,7 +592,7 @@ inline bool wxGetNonEmptyEnvVar(const wxString& name, wxString* value) #if defined(__UNIX__) // first get the string identifying the language from the environment wxString langFull; -#ifdef __WXMAC__ +#ifdef __WXOSX__ wxCFRef userLocaleRef(CFLocaleCopyCurrent()); // because the locale identifier (kCFLocaleIdentifier) is formatted a little bit differently, eg