From: Jerome St-Louis Date: Thu, 4 Aug 2016 13:53:26 +0000 (-0400) Subject: ecere/gfx/fontManagement: Fixed non-fixed pitch listing X-Git-Tag: 0.44.15~15 X-Git-Url: https://ecere.com/cgi-bin/gitweb.cgi?p=sdk;a=commitdiff_plain;h=80725ca82e3e6da5ebef590817e209cbf1e18bb0 ecere/gfx/fontManagement: Fixed non-fixed pitch listing --- 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'); + }; } } }