This is my first try to workaround the problem for fc-match at least.
Not sure if it resolves original problem. I don't see inside fontconfig
structures far enough to find real solution -- let's wait for upstream.

Could you try and let me know?

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
     }
     else
         v = FcValueCanonicalize(&FcPatternEltValues (fe)->value);
+
+        /* This is workaround only!! */
+        if (fe->object == FC_STYLE_OBJECT)
+        {
+          FcPatternElt *le, *sle;
+          FcValue lang, stlang;
+          FcValueList *stlangs, *sts;
+          int l;
+
+          if ((le = FcPatternObjectFindElt(pat, FC_LANG_OBJECT)))
+            lang = FcValueCanonicalize(&FcPatternEltValues(le)->value);
+          else 
+          { /* I think it is not needed. */
+            lang.type = FcTypeString; 
+            lang.u.s = (const FcChar8 *)"en";
+          }
+          sle = FcPatternObjectFindElt(font, FC_STYLELANG_OBJECT);
+          stlangs = FcPatternEltValues(sle);
+          sts = FcPatternEltValues(fe);
+          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)));
+
+          lang = FcValueCanonicalize(&sts->value);
+          v.u.s = lang.u.s;
+        }
+
     FcPatternObjectAdd (new, fe->object, v, FcFalse);
     }
     for (i = 0; i < pat->num; i++)

-- 
Bold, Italics, and Bold Italics not in English on Fonts menu
https://bugs.launchpad.net/bugs/105900
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to