diff options
author | marha <marha@users.sourceforge.net> | 2014-07-28 21:23:36 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-07-28 21:32:18 +0200 |
commit | 777fcfa17aafab62719446e00068f5e61ec946d5 (patch) | |
tree | ca0ed3fea46b207daa6cd5bc05382e2d60a1e87f /fontconfig/src/fccfg.c | |
parent | 61c36feba19d918885022042ea62d068a698c83d (diff) | |
parent | b33b8d8ae86876b50df96881b96074b3fe177cce (diff) | |
download | vcxsrv-777fcfa17aafab62719446e00068f5e61ec946d5.tar.gz vcxsrv-777fcfa17aafab62719446e00068f5e61ec946d5.tar.bz2 vcxsrv-777fcfa17aafab62719446e00068f5e61ec946d5.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
xorg-server/include/servermd.h
Diffstat (limited to 'fontconfig/src/fccfg.c')
-rw-r--r-- | fontconfig/src/fccfg.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/fontconfig/src/fccfg.c b/fontconfig/src/fccfg.c index 6d3259513..f8ee8d20e 100644 --- a/fontconfig/src/fccfg.c +++ b/fontconfig/src/fccfg.c @@ -1546,10 +1546,38 @@ FcConfigSubstituteWithPat (FcConfig *config, FcStrSetDestroy (strs); while (l && (lang = FcStrListNext (l))) { + FcPatternElt *e = FcPatternObjectFindElt (p, FC_LANG_OBJECT); + + if (e) + { + FcValueListPtr ll; + + for (ll = FcPatternEltValues (e); ll; ll = FcValueListNext (ll)) + { + FcValue vv = FcValueCanonicalize (&ll->value); + + if (vv.type == FcTypeLangSet) + { + FcLangSet *ls = FcLangSetCreate (); + FcBool b; + + FcLangSetAdd (ls, lang); + b = FcLangSetContains (vv.u.l, ls); + FcLangSetDestroy (ls); + if (b) + goto bail_lang; + } + else + if (FcStrCmpIgnoreCase (vv.u.s, lang) == 0) + goto bail_lang; + } + } v.type = FcTypeString; v.u.s = lang; + FcPatternObjectAddWithBinding (p, FC_LANG_OBJECT, v, FcValueBindingWeak, FcTrue); } + bail_lang: FcStrListDone (l); } if (FcPatternObjectGet (p, FC_PRGNAME_OBJECT, 0, &v) == FcResultNoMatch) |