From: Michael Wetherell Date: Fri, 1 Apr 2005 00:00:08 +0000 (+0000) Subject: Use wxMBConvUTF8 when G_FILENAME_ENCODING is UTF-8, and set X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/914955aaa034862c3b9b827463cde26455d06c79?ds=inline Use wxMBConvUTF8 when G_FILENAME_ENCODING is UTF-8, and set G_FILENAME_ENCODING to match the locale encoding when necessary git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/strconv.cpp b/src/common/strconv.cpp index 4741650e15..20ff6f49ef 100644 --- a/src/common/strconv.cpp +++ b/src/common/strconv.cpp @@ -369,26 +369,28 @@ wxConvBrokenFileNames::wxConvBrokenFileNames() // (1) this variable exists for the sole purpose of specifying the encoding // of the filenames for GTK+ programs, so use it if it is set - const wxChar *encName = wxGetenv(_T("G_FILENAME_ENCODING")); - if ( encName ) + wxString encName(wxGetenv(_T("G_FILENAME_ENCODING"))); + encName.MakeUpper(); + if ( !encName.empty() && encName != _T("UTF-8") && encName != _T("UTF8") ) { m_conv = new wxCSConv(encName); } else // no G_FILENAME_ENCODING { + if ( encName.empty() ) + encName = wxLocale::GetSystemEncodingName().Upper(); + // (2) if a non default locale is set, assume that the user wants his // filenames in this locale too - switch ( wxLocale::GetSystemEncoding() ) + if ( !encName.empty() && encName != _T("UTF-8") && encName != _T("UTF8") ) + { + wxSetEnv(_T("G_FILENAME_ENCODING"), encName); + m_conv = new wxMBConvLibc; + } + else { - default: - m_conv = new wxMBConvLibc; - break; - // (3) finally use UTF-8 by default - case wxFONTENCODING_SYSTEM: - case wxFONTENCODING_UTF8: - m_conv = new wxMBConvUTF8(wxMBConvUTF8::MAP_INVALID_UTF8_TO_OCTAL); - break; + m_conv = new wxMBConvUTF8(wxMBConvUTF8::MAP_INVALID_UTF8_TO_OCTAL); } } }