If lfFaceName == "", then we patch up the names according to lfPitchAndFamily. This is not very pretty I'm afraid...
diff --git a/graphics/x11drv/xfont.c b/graphics/x11drv/xfont.c index dfde60f..64b863e 100644 --- a/graphics/x11drv/xfont.c +++ b/graphics/x11drv/xfont.c
@@ -2618,7 +2618,30 @@ pfm->plf->lfWeight, (pfm->plf->lfItalic) ? "Italic" : "" ); pfm->pfi = NULL; - if( fm.plf->lfFaceName[0] ) + + if( !fm.plf->lfFaceName[0] ) + { + switch(fm.plf->lfPitchAndFamily & 0xf0) + { + case FF_MODERN: + strcpy(fm.plf->lfFaceName, "Courier New"); + break; + case FF_ROMAN: + strcpy(fm.plf->lfFaceName, "Times New Roman"); + break; + case FF_SWISS: + strcpy(fm.plf->lfFaceName, "Arial"); + break; + default: + if((fm.plf->lfPitchAndFamily & 0x0f) == FIXED_PITCH) + strcpy(fm.plf->lfFaceName, "Courier New"); + else + strcpy(fm.plf->lfFaceName, "Arial"); + break; + } + } + + if( fm.plf->lfFaceName[0] ) { fm.pfr = XFONT_FindFIList( start, fm.plf->lfFaceName); if( fm.pfr ) /* match family */