X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7beba2fc73283f5b750227459da57e66bcd475f5..270a909e20a2c652fd816ad14407113ad0319c9d:/src/common/fontmap.cpp diff --git a/src/common/fontmap.cpp b/src/common/fontmap.cpp index 3222cf0f61..4f1e9bd0cb 100644 --- a/src/common/fontmap.cpp +++ b/src/common/fontmap.cpp @@ -46,10 +46,10 @@ // ---------------------------------------------------------------------------- // the config paths we use -static const char* FONTMAPPER_ROOT_PATH = _T("FontMapper"); -static const char* FONTMAPPER_CHARSET_PATH = _T("Charsets"); -static const char* FONTMAPPER_CHARSET_ALIAS_PATH = _T("Aliases"); -static const char* FONTMAPPER_FONT_FROM_ENCODING_PATH = _T("Encodings"); +static const wxChar* FONTMAPPER_ROOT_PATH = wxT("FontMapper"); +static const wxChar* FONTMAPPER_CHARSET_PATH = wxT("Charsets"); +static const wxChar* FONTMAPPER_CHARSET_ALIAS_PATH = wxT("Aliases"); +static const wxChar* FONTMAPPER_FONT_FROM_ENCODING_PATH = wxT("Encodings"); // encodings supported by GetEncodingDescription static wxFontEncoding gs_encodings[] = @@ -112,30 +112,30 @@ static const wxChar* gs_encodingDescs[] = // and the internal names static const wxChar* gs_encodingNames[] = { - "iso8859-1", - "iso8859-2", - "iso8859-3", - "iso8859-4", - "iso8859-5", - "iso8859-6", - "iso8859-7", - "iso8859-8", - "iso8859-9", - "iso8859-10", - "iso8859-11", - "iso8859-12", - "iso8859-13", - "iso8859-14", - "iso8859-15", - "koi8-r", - "windows1250", - "windows1251", - "windows1252", - "windows1253", - "windows1254", - "windows1255", - "windows1256", - "windows1257", + wxT( "iso8859-1" ), + wxT( "iso8859-2" ), + wxT( "iso8859-3" ), + wxT( "iso8859-4" ), + wxT( "iso8859-5" ), + wxT( "iso8859-6" ), + wxT( "iso8859-7" ), + wxT( "iso8859-8" ), + wxT( "iso8859-9" ), + wxT( "iso8859-10" ), + wxT( "iso8859-11" ), + wxT( "iso8859-12" ), + wxT( "iso8859-13" ), + wxT( "iso8859-14" ), + wxT( "iso8859-15" ), + wxT( "koi8-r" ), + wxT( "windows1250" ), + wxT( "windows1251" ), + wxT( "windows1252" ), + wxT( "windows1253" ), + wxT( "windows1254" ), + wxT( "windows1255" ), + wxT( "windows1256" ), + wxT( "windows1257" ), }; // ---------------------------------------------------------------------------- @@ -395,7 +395,7 @@ wxFontEncoding wxFontMapper::CharsetToEncoding(const wxString& charset, else if ( cs.Left(8) == _T("WINDOWS-") ) { int value; - if ( wxSscanf(cs.c_str() + 8, "%u", &value) == 1 ) + if ( wxSscanf(cs.c_str() + 8, wxT("%u"), &value) == 1 ) { if ( value >= 1250 ) { @@ -438,9 +438,9 @@ wxFontEncoding wxFontMapper::CharsetToEncoding(const wxString& charset, wxString *encodingNamesTranslated = new wxString[count]; - for ( size_t n = 0; n < count; n++ ) + for ( size_t i = 0; i < count; i++ ) { - encodingNamesTranslated[n] = wxGetTranslation(gs_encodingDescs[n]); + encodingNamesTranslated[i] = wxGetTranslation(gs_encodingDescs[i]); } // the parent window @@ -501,6 +501,22 @@ bool wxFontMapper::GetAltForEncoding(wxFontEncoding encoding, { wxCHECK_MSG( info, FALSE, _T("bad pointer in GetAltForEncoding") ); + if ( encoding == wxFONTENCODING_DEFAULT ) + { + encoding = wxFont::GetDefaultEncoding(); + } + + // if we failed to load the system default encoding, something is really + // wrong and we'd better stop now - otherwise we will go into endless + // recursion trying to create the font in the msg box with the error + // message + if ( encoding == wxFONTENCODING_SYSTEM ) + { + wxFatalError(_("can't load any font, aborting")); + + // wxFatalError doesn't return + } + wxString configEntry = GetEncodingName(encoding); // do we have a font spec for this encoding? @@ -564,8 +580,7 @@ bool wxFontMapper::GetAltForEncoding(wxFontEncoding encoding, wxFontData retData = dialog.GetFontData(); wxFont font = retData.GetChosenFont(); - info->xregistry = retData.EncodingInfo().xregistry; - info->xencoding = retData.EncodingInfo().xencoding; + *info = retData.EncodingInfo(); // remember this in the config if ( ChangePath(FONTMAPPER_FONT_FROM_ENCODING_PATH, &pathOld) )