summaryrefslogtreecommitdiff
path: root/src/fclang.c
diff options
context:
space:
mode:
authorDavid Dawes <dawes@xfree86.org>2002-12-14 02:03:59 +0000
committerDavid Dawes <dawes@xfree86.org>2002-12-14 02:03:59 +0000
commit234397b42976f027df7acc41aae80ec43692d557 (patch)
tree7969a0ec057795c8608c3a04ccc21b4d059a6d4c /src/fclang.c
parent45fb31aa9113b597878fc19d1463c078663540d9 (diff)
633. Perform country-independent matching for Chinese languages in
fontconfig (#A.1406, Keith Packard).
Diffstat (limited to 'src/fclang.c')
-rw-r--r--src/fclang.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/fclang.c b/src/fclang.c
index 9852ea2..00d2651 100644
--- a/src/fclang.c
+++ b/src/fclang.c
@@ -1,5 +1,5 @@
/*
- * $XFree86: xc/lib/fontconfig/src/fclang.c,v 1.6 2002/08/22 18:53:22 keithp Exp $
+ * $XFree86: xc/lib/fontconfig/src/fclang.c,v 1.7 2002/08/26 23:34:31 keithp Exp $
*
* Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
*
@@ -31,9 +31,6 @@ typedef struct {
#include "../fc-lang/fclang.h"
-#define NUM_LANG_CHAR_SET (sizeof (fcLangCharSets) / sizeof (fcLangCharSets[0]))
-#define NUM_LANG_SET_MAP ((NUM_LANG_CHAR_SET + 31) / 32)
-
struct _FcLangSet {
FcChar32 map[NUM_LANG_SET_MAP];
FcStrSet *extra;
@@ -339,13 +336,21 @@ FcLangSetCompareStrSet (const FcLangSet *ls, FcStrSet *set)
FcLangResult
FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb)
{
- int i;
+ int i, j;
FcLangResult best, r;
for (i = 0; i < NUM_LANG_SET_MAP; i++)
if (lsa->map[i] & lsb->map[i])
return FcLangEqual;
best = FcLangDifferentLang;
+ for (j = 0; j < NUM_COUNTRY_SET; j++)
+ for (i = 0; i < NUM_LANG_SET_MAP; i++)
+ if ((lsa->map[i] & fcLangCountrySets[j][i]) &&
+ (lsb->map[i] & fcLangCountrySets[j][i]))
+ {
+ best = FcLangDifferentCountry;
+ break;
+ }
if (lsa->extra)
{
r = FcLangSetCompareStrSet (lsb, lsa->extra);