]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/fontmap.cpp
1. undid my wrong fix to wxWindowBase::Centre
[wxWidgets.git] / src / common / fontmap.cpp
index 3222cf0f616a8d44981970909bc1bd7ec962e255..09880ab43fb8f1cf4a463a6bbfbee70332f67f15 100644 (file)
@@ -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) )