summaryrefslogtreecommitdiff
blob: 05e9ee90d904878167643a6ff13972af882fa961 (plain)
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