[Fontconfig] any possible trouble by adding lang to the pattern by default

Jjgod Jiang gzjjgod at gmail.com
Wed May 30 04:26:34 PDT 2012


Hi,

On Wed, May 30, 2012 at 4:47 AM, Akira TAGOH <akira at tagoh.org> wrote:
> On Wed, May 30, 2012 at 7:02 AM, Raimund Steger <rs at mytum.de> wrote:
>> LANG (as opposed to FC_LANG) *is* already used to provide a default value
>> dynamically, provided programs use FcDefaultSubstitute which I think they
>> all do.
>>
>> (BTW- Akira- is there a special reason why applying the new string set
>> needed to be done in FcConfigSubstituteWithPat in addition to
>> FcDefaultSubstitute?)
>
> Well, honestly I don't still even have the reasonable answer for that
> though, FcDefaultSubstitute() seems supposed to call after
> FcConfigSubstitute().
>
> https://bugs.freedesktop.org/show_bug.cgi?id=35482#c2
>
> I guess because it may affects too many things on building the
> pattern? Keith or Behdad?
>
> Anyway, so I did it separately to avoid dirty pattern.

I'm struggling to understand how to I specify a preferred font list for
certain languages. Let's say I want to make sure my preferred order for
"zh" font is like this:

   Hiragino Sans GB
   STHeiti
   Adobe Heiti Std
   Droid Sans Fallback
   Microsoft YaHei

But I do *not* want to specify a hardcoded lang in my FcPattern, I'd
rather have FcDefaultSubstitue() to add the default lang for me based
on current environment. If I specify the preferred zh font list like
this:

   <match target="pattern">
      <test name="lang"><string>zh</string></test>
      <edit name="family" mode="append" binding="same">
         <string>Hiragino Sans GB</string>…
      </edit>
   </match>

then this will happen in FcConfigSubstitute() which is (normally)
earlier than FcDefaultSubstitute(), then I don't get the lang set
by FcDefaultSubstitute().

So what's the preferred way to do that?

There are similar questions like
http://lists.freedesktop.org/archives/fontconfig/2004-April/000884.html

- Jiang


More information about the Fontconfig mailing list