X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e8bd6b2aeca2ac6f97a1c4e8087051edc811c1d..f925e7b4f3d017b33749bd23a64592c1985e8f98:/src/common/intl.cpp?ds=inline diff --git a/src/common/intl.cpp b/src/common/intl.cpp index ecb0166cff..6e9a036564 100644 --- a/src/common/intl.cpp +++ b/src/common/intl.cpp @@ -28,6 +28,12 @@ #pragma option -O1 #endif +#ifdef __EMX__ +// The following define is needed by Innotek's libc to +// make the definition of struct localeconv available. +#define __INTERNAL_DEFS +#endif + // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -1370,7 +1376,7 @@ wxLanguageInfoArray *wxLocale::ms_languagesDB = NULL; } -wxLocale::wxLocale() +void wxLocale::DoCommonInit() { m_pszOldLocale = NULL; m_pMsgCat = NULL; @@ -1418,9 +1424,11 @@ bool wxLocale::Init(const wxChar *szName, // TODO: how to find languageId // SetLocaleInfo(languageId, SORT_DEFAULT, localeName); #else - m_pszOldLocale = wxSetlocale(LC_ALL, szLocale); - if ( m_pszOldLocale ) - m_pszOldLocale = wxStrdup(m_pszOldLocale); + wxMB2WXbuf oldLocale = wxSetlocale(LC_ALL, szLocale); + if ( oldLocale ) + m_pszOldLocale = wxStrdup(oldLocale); + else + m_pszOldLocale = NULL; #endif if ( m_pszOldLocale == NULL ) @@ -2510,7 +2518,7 @@ bool wxLocale::AddCatalog(const wxChar *szDomain) #ifdef __WXMSW__ /* static */ -wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) +wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat)) { wxString str; wxChar buffer[256]; @@ -2559,9 +2567,11 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) switch (index) { case wxLOCALE_THOUSANDS_SEP: - return locale_info->thousands_sep; + return wxString(locale_info->thousands_sep, + *wxConvCurrent); case wxLOCALE_DECIMAL_POINT: - return locale_info->decimal_point; + return wxString(locale_info->decimal_point, + *wxConvCurrent); default: return wxEmptyString; } @@ -2569,9 +2579,11 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) switch (index) { case wxLOCALE_THOUSANDS_SEP: - return locale_info->mon_thousands_sep; + return wxString(locale_info->mon_thousands_sep, + *wxConvCurrent); case wxLOCALE_DECIMAL_POINT: - return locale_info->mon_decimal_point; + return wxString(locale_info->mon_decimal_point, + *wxConvCurrent); default: return wxEmptyString; }