diff options
Diffstat (limited to 'fontconfig')
-rw-r--r-- | fontconfig/conf.d/30-metric-aliases.conf | 16 | ||||
-rw-r--r-- | fontconfig/src/fcmatch.c | 10 |
2 files changed, 25 insertions, 1 deletions
diff --git a/fontconfig/conf.d/30-metric-aliases.conf b/fontconfig/conf.d/30-metric-aliases.conf index ccc3e246d..f25052a29 100644 --- a/fontconfig/conf.d/30-metric-aliases.conf +++ b/fontconfig/conf.d/30-metric-aliases.conf @@ -15,10 +15,12 @@ Microsoft fonts: Arial + Arial Narrow Times New Roman Courier New Liberation fonts: Liberation Sans + Liberation Sans Narrow Liberation Serif Liberation Mono StarOffice fonts: @@ -93,6 +95,13 @@ </alias> <alias binding="same"> + <family>Liberation Sans Narrow</family> + <default> + <family>Arial Narrow</family> + </default> + </alias> + + <alias binding="same"> <family>Albany</family> <default> <family>Arial</family> @@ -252,6 +261,13 @@ </alias> <alias binding="same"> + <family>Arial Narrow</family> + <accept> + <family>Liberation Sans Narrow</family> + </accept> + </alias> + + <alias binding="same"> <family>Times New Roman</family> <accept> <family>Tinos</family> diff --git a/fontconfig/src/fcmatch.c b/fontconfig/src/fcmatch.c index fa8800a04..23f985a6c 100644 --- a/fontconfig/src/fcmatch.c +++ b/fontconfig/src/fcmatch.c @@ -269,7 +269,8 @@ FcObjectToMatcher (FcObject object, break; } } - if (!_FcMatchers[object].compare || + if (object > FC_MAX_BASE_OBJECT || + !_FcMatchers[object].compare || _FcMatchers[object].strong == -1 || _FcMatchers[object].weak == -1) return NULL; @@ -910,6 +911,13 @@ FcFontSetSort (FcConfig *config FC_UNUSED, } patternLangSat[i] = FcTrue; satisfies = FcTrue; + /* adjust score to ensure it's not more than 10000.0 + * which would means the lang didn't satisfy the requirements + */ + if (nodeps[f]->score[PRI_LANG_STRONG] > 10000.0) + nodeps[f]->score[PRI_LANG_STRONG] = 10000.0; + if (nodeps[f]->score[PRI_LANG_WEAK] > 10000.0) + nodeps[f]->score[PRI_LANG_WEAK] = 10000.0; break; } } |