1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
From 8fd0ed60a62cb7f36b2ade1bd16a66671eaf79da Mon Sep 17 00:00:00 2001
From: Akira TAGOH <akira@tagoh.org>
Date: Mon, 01 Apr 2013 09:16:28 +0000
Subject: Bug 62980 - matching native fonts with even :lang=en
Fix the matcher modified by 4eab908c8679a797ac7016b77a93ee41bb11b0fc
to deal with both strong and weak of FC_LANG as the same location in the score
---
diff --git a/src/fcmatch.c b/src/fcmatch.c
index 68f39ae..2d7b798 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -227,9 +227,10 @@ typedef enum _FcMatcherPriorityDummy {
#undef FC_OBJECT
#undef PRI1
-#define PRI1(n) \
- PRI_ ## n ## _STRONG, \
- PRI_ ## n ## _WEAK
+#define PRI1(n) \
+ PRI_ ## n, \
+ PRI_ ## n ## _STRONG = PRI_ ## n, \
+ PRI_ ## n ## _WEAK = PRI_ ## n
typedef enum _FcMatcherPriority {
PRI1(HASH),
@@ -237,9 +238,8 @@ typedef enum _FcMatcherPriority {
PRI1(FOUNDRY),
PRI1(CHARSET),
PRI_FAMILY_STRONG,
- PRI_LANG_STRONG,
PRI_POSTSCRIPT_NAME_STRONG,
- PRI_LANG_WEAK,
+ PRI1(LANG),
PRI_FAMILY_WEAK,
PRI_POSTSCRIPT_NAME_WEAK,
PRI1(SPACING),
@@ -910,8 +910,7 @@ FcFontSetSort (FcConfig *config FC_UNUSED,
* If this node matches any language, go check
* which ones and satisfy those entries
*/
- if (nodeps[f]->score[PRI_LANG_STRONG] < 2000 ||
- nodeps[f]->score[PRI_LANG_WEAK] < 2000)
+ if (nodeps[f]->score[PRI_LANG] < 2000)
{
for (i = 0; i < nPatternLang; i++)
{
@@ -935,13 +934,6 @@ 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;
}
}
@@ -949,8 +941,7 @@ FcFontSetSort (FcConfig *config FC_UNUSED,
}
if (!satisfies)
{
- nodeps[f]->score[PRI_LANG_STRONG] = 10000.0;
- nodeps[f]->score[PRI_LANG_WEAK] = 10000.0;
+ nodeps[f]->score[PRI_LANG] = 10000.0;
}
}
--
cgit v0.9.0.2-2-gbebe
|