summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira TAGOH <akira@tagoh.org>2020-09-21 14:48:43 +0900
committerAkira TAGOH <akira@tagoh.org>2020-09-21 14:55:18 +0900
commit5a291467a78b59bc9240f2d4ca2f14590e2e936c (patch)
tree6b2c83900856299069af0ad36e3e6b482d9f6cb7
parentdbd67ccc63bcf5983e47123d9ec06eb4389e2d1b (diff)
downloadfontconfig-5a291467a78b59bc9240f2d4ca2f14590e2e936c.tar.gz
Add Regular style when no meta data available to guess a style
This makes sure that fullname can be constructed at least even if a style is missing and "Regular" is omitted for fullname so this change won't affect in that case. Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/259
-rw-r--r--src/fcfreetype.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index 0001f38..3bdf92b 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -1625,13 +1625,26 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
++nfamily;
}
- if (!variable && !nstyle && face->style_name &&
- FcStrCmpIgnoreBlanksAndCase ((FcChar8 *) face->style_name, (FcChar8 *) "") != 0)
+ if (!variable && !nstyle)
{
- if (FcDebug () & FC_DBG_SCANV)
- printf ("using FreeType style \"%s\"\n", face->style_name);
+ const FcChar8 *style_regular = (const FcChar8 *) "Regular";
+ const FcChar8 *ss;
- if (!FcPatternObjectAddString (pat, FC_STYLE_OBJECT, (FcChar8 *) face->style_name))
+ if (face->style_name &&
+ FcStrCmpIgnoreBlanksAndCase ((FcChar8 *) face->style_name, (FcChar8 *) "") != 0)
+ {
+ if (FcDebug () & FC_DBG_SCANV)
+ printf ("using FreeType style \"%s\"\n", face->style_name);
+
+ ss = (const FcChar8 *) face->style_name;
+ }
+ else
+ {
+ if (FcDebug () & FC_DBG_SCANV)
+ printf ("applying default style Regular\n");
+ ss = style_regular;
+ }
+ if (!FcPatternObjectAddString (pat, FC_STYLE_OBJECT, ss))
goto bail1;
if (!FcPatternObjectAddString (pat, FC_STYLELANG_OBJECT, (FcChar8 *) "en"))
goto bail1;