diff options
author | Akira TAGOH <akira@tagoh.org> | 2020-09-21 14:48:43 +0900 |
---|---|---|
committer | Akira TAGOH <akira@tagoh.org> | 2020-09-21 14:55:18 +0900 |
commit | 5a291467a78b59bc9240f2d4ca2f14590e2e936c (patch) | |
tree | 6b2c83900856299069af0ad36e3e6b482d9f6cb7 | |
parent | dbd67ccc63bcf5983e47123d9ec06eb4389e2d1b (diff) | |
download | fontconfig-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.c | 23 |
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; |