X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/60d876f374ccfec05f76290234125785298672d4..af498247c5ea024a781d0ef8d30cbbfb44749641:/src/common/intl.cpp diff --git a/src/common/intl.cpp b/src/common/intl.cpp index 97f5046281..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]; @@ -2521,7 +2529,7 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) case wxLOCALE_DECIMAL_POINT: count = ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, buffer, 256); if (!count) - str << "."; + str << wxT("."); else str << buffer; break; @@ -2529,20 +2537,20 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) case wxSYS_LIST_SEPARATOR: count = ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLIST, buffer, 256); if (!count) - str << ","; + str << wxT(","); else str << buffer; break; case wxSYS_LEADING_ZERO: // 0 means no leading zero, 1 means leading zero count = ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ILZERO, buffer, 256); if (!count) - str << "0"; + str << wxT("0"); else str << buffer; break; #endif default: - wxFAIL_MSG("Unknown System String !"); + wxFAIL_MSG(wxT("Unknown System String !")); } return str; } @@ -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; }