Bug 62980 - matching native fonts with even :lang=en
Fix the matcher modified by 4eab908c86
to deal with both strong and weak of FC_LANG as the same location in the score
This commit is contained in:
parent
73fa326d1e
commit
8fd0ed60a6
|
@ -227,9 +227,10 @@ typedef enum _FcMatcherPriorityDummy {
|
||||||
#undef FC_OBJECT
|
#undef FC_OBJECT
|
||||||
|
|
||||||
#undef PRI1
|
#undef PRI1
|
||||||
#define PRI1(n) \
|
#define PRI1(n) \
|
||||||
PRI_ ## n ## _STRONG, \
|
PRI_ ## n, \
|
||||||
PRI_ ## n ## _WEAK
|
PRI_ ## n ## _STRONG = PRI_ ## n, \
|
||||||
|
PRI_ ## n ## _WEAK = PRI_ ## n
|
||||||
|
|
||||||
typedef enum _FcMatcherPriority {
|
typedef enum _FcMatcherPriority {
|
||||||
PRI1(HASH),
|
PRI1(HASH),
|
||||||
|
@ -237,9 +238,8 @@ typedef enum _FcMatcherPriority {
|
||||||
PRI1(FOUNDRY),
|
PRI1(FOUNDRY),
|
||||||
PRI1(CHARSET),
|
PRI1(CHARSET),
|
||||||
PRI_FAMILY_STRONG,
|
PRI_FAMILY_STRONG,
|
||||||
PRI_LANG_STRONG,
|
|
||||||
PRI_POSTSCRIPT_NAME_STRONG,
|
PRI_POSTSCRIPT_NAME_STRONG,
|
||||||
PRI_LANG_WEAK,
|
PRI1(LANG),
|
||||||
PRI_FAMILY_WEAK,
|
PRI_FAMILY_WEAK,
|
||||||
PRI_POSTSCRIPT_NAME_WEAK,
|
PRI_POSTSCRIPT_NAME_WEAK,
|
||||||
PRI1(SPACING),
|
PRI1(SPACING),
|
||||||
|
@ -910,8 +910,7 @@ FcFontSetSort (FcConfig *config FC_UNUSED,
|
||||||
* If this node matches any language, go check
|
* If this node matches any language, go check
|
||||||
* which ones and satisfy those entries
|
* which ones and satisfy those entries
|
||||||
*/
|
*/
|
||||||
if (nodeps[f]->score[PRI_LANG_STRONG] < 2000 ||
|
if (nodeps[f]->score[PRI_LANG] < 2000)
|
||||||
nodeps[f]->score[PRI_LANG_WEAK] < 2000)
|
|
||||||
{
|
{
|
||||||
for (i = 0; i < nPatternLang; i++)
|
for (i = 0; i < nPatternLang; i++)
|
||||||
{
|
{
|
||||||
|
@ -935,13 +934,6 @@ FcFontSetSort (FcConfig *config FC_UNUSED,
|
||||||
}
|
}
|
||||||
patternLangSat[i] = FcTrue;
|
patternLangSat[i] = FcTrue;
|
||||||
satisfies = 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;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -949,8 +941,7 @@ FcFontSetSort (FcConfig *config FC_UNUSED,
|
||||||
}
|
}
|
||||||
if (!satisfies)
|
if (!satisfies)
|
||||||
{
|
{
|
||||||
nodeps[f]->score[PRI_LANG_STRONG] = 10000.0;
|
nodeps[f]->score[PRI_LANG] = 10000.0;
|
||||||
nodeps[f]->score[PRI_LANG_WEAK] = 10000.0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue