From 3810aa5ecbbb6206637ad35e35ef48e420976e0c9d4212d50cfea468af98868c Mon Sep 17 00:00:00 2001 From: Petr Gajdos Date: Thu, 2 Dec 2010 13:41:46 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/M17N/fontconfig?expand=0&rev=30 --- fontconfig-stylelang.patch | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/fontconfig-stylelang.patch b/fontconfig-stylelang.patch index 13025b6..c27f52c 100644 --- a/fontconfig-stylelang.patch +++ b/fontconfig-stylelang.patch @@ -2,7 +2,7 @@ Index: fontconfig-2.8.0/src/fcmatch.c =================================================================== --- fontconfig-2.8.0.orig/src/fcmatch.c +++ fontconfig-2.8.0/src/fcmatch.c -@@ -413,6 +413,40 @@ FcFontRenderPrepare (FcConfig *confi +@@ -413,6 +413,43 @@ FcFontRenderPrepare (FcConfig *confi } else v = FcValueCanonicalize(&FcPatternEltValues (fe)->value); @@ -11,7 +11,7 @@ Index: fontconfig-2.8.0/src/fcmatch.c + if (fe->object == FC_STYLE_OBJECT) + { + FcPatternElt *le, *sle; -+ FcValue lang, stlang; ++ FcValue lang, stlang, style; + FcValueList *stlangs, *sts; + int l; + @@ -22,22 +22,25 @@ Index: fontconfig-2.8.0/src/fcmatch.c + lang.type = FcTypeString; + lang.u.s = (const FcChar8 *)"en"; + } -+ sle = FcPatternObjectFindElt(font, FC_STYLELANG_OBJECT); -+ stlangs = FcPatternEltValues(sle); + sts = FcPatternEltValues(fe); -+ l = 0; ++ sle = FcPatternObjectFindElt(font, FC_STYLELANG_OBJECT); ++ if (sle) /* style elt can be present, stylelang no (e. g. fc-match Times) */ ++ { /* if so, sts list contain only one value, so we can jump to style = .. */ ++ stlangs = FcPatternEltValues(sle); ++ l = 0; + -+ do -+ { -+ stlang = FcValueCanonicalize(&stlangs->value); -+ if (FcLangCompare(stlang.u.s, lang.u.s) < FcLangDifferentLang) -+ break; -+ sts = FcValueListNext(sts); -+ l++; -+ } while ((stlangs = FcValueListNext(stlangs))); ++ do ++ { ++ stlang = FcValueCanonicalize(&stlangs->value); ++ if (FcLangCompare(stlang.u.s, lang.u.s) < FcLangDifferentLang) ++ break; ++ sts = FcValueListNext(sts); ++ l++; ++ } while ((stlangs = FcValueListNext(stlangs))); ++ } + -+ lang = FcValueCanonicalize(&sts->value); -+ v.u.s = lang.u.s; ++ style = FcValueCanonicalize(&sts->value); ++ v.u.s = style.u.s; + } + FcPatternObjectAdd (new, fe->object, v, FcFalse);