+// wxConvBrokenFileNames
+// ----------------------------------------------------------------------------
+
+wxConvBrokenFileNames::wxConvBrokenFileNames()
+{
+ // decide which conversion to use for the file names
+
+ // (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
+ 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
+ if ( !encName.empty() && encName != _T("UTF-8") && encName != _T("UTF8") )
+ {
+ wxSetEnv(_T("G_FILENAME_ENCODING"), encName);
+ m_conv = new wxMBConvLibc;
+ }
+ else
+ {
+ // (3) finally use UTF-8 by default
+ m_conv = new wxMBConvUTF8(wxMBConvUTF8::MAP_INVALID_UTF8_TO_OCTAL);
+ }
+ }
+}
+
+size_t
+wxConvBrokenFileNames::MB2WC(wchar_t *outputBuf,
+ const char *psz,
+ size_t outputSize) const
+{
+ return m_conv->MB2WC( outputBuf, psz, outputSize );
+}
+
+size_t
+wxConvBrokenFileNames::WC2MB(char *outputBuf,
+ const wchar_t *psz,
+ size_t outputSize) const
+{
+ return m_conv->WC2MB( outputBuf, psz, outputSize );
+}
+
+#endif
+
+// ----------------------------------------------------------------------------
+// UTF-7