-    switch (GetWeight())
-    {
-        default:
-            wxFAIL_MSG(_T("unknown font weight"));
-            // fall through
-            usWeightClass = FWEIGHT_DONT_CARE;
-            break;
-
-        case wxNORMAL:
-            usWeightClass = FWEIGHT_NORMAL;
-            break;
-
-        case wxLIGHT:
-            usWeightClass = FWEIGHT_LIGHT;
-            break;
-
-        case wxBOLD:
-            usWeightClass = FWEIGHT_BOLD;
-            break;
-
-         case wxFONTWEIGHT_MAX:
-            usWeightClass = FWEIGHT_ULTRA_BOLD;
-            break;
-    }
-    M_FONTDATA->m_vFname.usWeightClass = usWeightClass;
-
-    switch (GetStyle())
-    {
-        case wxITALIC:
-        case wxSLANT:
-            fsSelection = FM_SEL_ITALIC;
-            M_FONTDATA->m_vFname.flOptions = FTYPE_ITALIC;
-            break;
-
-        default:
-            wxFAIL_MSG(wxT("unknown font slant"));
-            // fall through
-
-        case wxNORMAL:
-            fsSelection  = 0;
-            break;
-    }
-
-    wxStrncpy(zFontFaceName, sFaceName.c_str(), WXSIZEOF(zFontFaceName));
-    M_FONTDATA->m_nPointSize = GetPointSize();
-    nIndex = 0;
-    for(i = 0, nIs = 0; i < M_FONTDATA->m_nNumFonts; i++)
-    {
-        // Debug code
-        int nPointSize = M_FONTDATA->m_nPointSize;
-        int nEmHeight = 0;
-        int nXHeight  = 0;
-        anDiff[0] = wxGpiStrcmp(M_FONTDATA->m_pFM[i].szFamilyname, zFontFaceName);
-        anDiff[1] = abs(M_FONTDATA->m_pFM[i].lEmHeight - M_FONTDATA->m_nPointSize);
-        anDiff[2] = abs(M_FONTDATA->m_pFM[i].usWeightClass -  usWeightClass);
-        anDiff[3] = abs((M_FONTDATA->m_pFM[i].fsSelection & 0x2f) -  fsSelection);
-        if(anDiff[0] == 0)
-        {
-            nEmHeight = (int)M_FONTDATA->m_pFM[i].lEmHeight;
-            nXHeight  =(int)M_FONTDATA->m_pFM[i].lXHeight;
-            if( (nIs & 0x01) == 0)
-            {
-                nIs = 1;
-                nIndex = i;
-                anMinDiff[1] = anDiff[1];
-                anMinDiff[2] = anDiff[2];
-                anMinDiff[3] = anDiff[3];
-            }
-            else if(anDiff[3] < anMinDiff[3])
-            {
-                nIndex = i;
-                anMinDiff[3] = anDiff[3];
-            }
-            else if(anDiff[2] < anMinDiff[2])
-            {
-                nIndex = i;
-                anMinDiff[2] = anDiff[2];
-            }
-            else if(anDiff[1] < anMinDiff[1])
-            {
-                nIndex = i;
-                anMinDiff[1] = anDiff[1];
-            }
-            anMinDiff[0] = 0;
-        }
-        else if(anDiff[0] < anMinDiff[0])
-        {
-              nIs = 2;
-              nIndex = i;
-              anMinDiff[3] = anDiff[3];
-              anMinDiff[2] = anDiff[2];
-              anMinDiff[1] = anDiff[1];
-              anMinDiff[0] = anDiff[0];
-        }
-        else if(anDiff[0] == anMinDiff[0])
-        {
-            if(anDiff[3] < anMinDiff[3])
-            {
-                nIndex = i;
-                anMinDiff[3] = anDiff[3];
-                nIs = 2;
-            }
-            else if(anDiff[2] < anMinDiff[2])
-            {
-                nIndex = i;
-                anMinDiff[2] = anDiff[2];
-                nIs = 2;
-            }
-            else if(anDiff[1] < anMinDiff[1])
-            {
-                nIndex = i;
-                anMinDiff[1] = anDiff[1];
-                nIs = 2;
-            }
-        }
-    }
-
-    M_FONTDATA->m_vFattrs.usRecordLength = sizeof(FATTRS);                        // sets size of structure
-    M_FONTDATA->m_vFattrs.fsSelection    = M_FONTDATA->m_pFM[nIndex].fsSelection; // uses default selection
-    M_FONTDATA->m_vFattrs.lMatch         = M_FONTDATA->m_pFM[nIndex].lMatch;      // force match
-    M_FONTDATA->m_vFattrs.idRegistry     = M_FONTDATA->m_pFM[nIndex].idRegistry;  // uses default registry
-    M_FONTDATA->m_vFattrs.usCodePage     = M_FONTDATA->m_pFM[nIndex].usCodePage;  // code-page
-    if(M_FONTDATA->m_pFM[nIndex].lMatch)
-    {
-        M_FONTDATA->m_vFattrs.lMaxBaselineExt = M_FONTDATA->m_pFM[nIndex].lMaxBaselineExt; // requested font height
-        M_FONTDATA->m_vFattrs.lAveCharWidth   = M_FONTDATA->m_pFM[nIndex].lAveCharWidth ;  // requested font width
-    }
-    else
-    {
-        M_FONTDATA->m_vFattrs.lMaxBaselineExt = 0;
-        M_FONTDATA->m_vFattrs.lAveCharWidth   = 0;
-    }
-    M_FONTDATA->m_vFattrs.fsType    = 0;// pfm->fsType;              /* uses default type       */
-    M_FONTDATA->m_vFattrs.fsFontUse = 0;