diff options
author | David Dawes <dawes@xfree86.org> | 2002-12-14 02:03:59 +0000 |
---|---|---|
committer | David Dawes <dawes@xfree86.org> | 2002-12-14 02:03:59 +0000 |
commit | 234397b42976f027df7acc41aae80ec43692d557 (patch) | |
tree | 7969a0ec057795c8608c3a04ccc21b4d059a6d4c /src/fclang.c | |
parent | 45fb31aa9113b597878fc19d1463c078663540d9 (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.c | 15 |
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); |