From 80725ca82e3e6da5ebef590817e209cbf1e18bb0 Mon Sep 17 00:00:00 2001 From: Jerome St-Louis Date: Thu, 4 Aug 2016 09:53:26 -0400 Subject: [PATCH] ecere/gfx/fontManagement: Fixed non-fixed pitch listing --- ecere/src/gfx/fontManagement.ec | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/ecere/src/gfx/fontManagement.ec b/ecere/src/gfx/fontManagement.ec index d811a60..2b3f714 100644 --- a/ecere/src/gfx/fontManagement.ec +++ b/ecere/src/gfx/fontManagement.ec @@ -458,24 +458,23 @@ public Map ListAvailableFonts() for(i = 0; i < fontSet->nfont; i++) { FcPattern * font = fontSet->fonts[i]; - String family; - int spacing; - FcCharSet * charSet; + String family = null; + int spacing = 0; + FcCharSet * charSet = null; + + FcPatternGetString(font, FC_FAMILY, 0, (byte **)&family); + FcPatternGetInteger(font, FC_SPACING, 0, &spacing); + FcPatternGetCharSet(font, FC_CHARSET, 0, &charSet); - if(FcPatternGetString(font, FC_FAMILY, 0, (byte **)&family) == FcResultMatch && - FcPatternGetInteger(font, FC_SPACING, 0, &spacing) == FcResultMatch && - FcPatternGetCharSet(font, FC_CHARSET, 0, &charSet) == FcResultMatch) + if(family && !it.Index(family, true)) { - if(!it.Index(family, true)) + it.data = { - it.data = - { - fixedPitch = spacing == FC_MONO, - defaultOrAnsiCharSet = - FcCharSetHasChar(charSet, '[') && FcCharSetHasChar(charSet, '{') && - FcCharSetHasChar(charSet, 'a') && FcCharSetHasChar(charSet, 'Z'); - }; - } + fixedPitch = spacing == FC_MONO, + defaultOrAnsiCharSet = + FcCharSetHasChar(charSet, '[') && FcCharSetHasChar(charSet, '{') && + FcCharSetHasChar(charSet, 'a') && FcCharSetHasChar(charSet, 'Z'); + }; } } } -- 1.8.3.1