[Fontconfig] matching multiple families in <alias> and <test>

Raimund Steger rs at mytum.de
Tue May 15 17:11:53 PDT 2012


Akira TAGOH wrote:
> Thanks for trying.
>
> FWIW I noticed that what I mentioned at Bug#33644 has inconsistency in
> the usage of qual. it is, even though qual="any" and qual="all"
> affects values in<test>, qual="first" and qual="not_first" actually
> affects values in the pattern. I suppose it may be a bug in FcOpComma

You mean comment #8 in that bug
( https://bugs.freedesktop.org/show_bug.cgi?id=33644#c8 )? Well I think 
that suggestion would be a different interpretation than what is 
currently implemented.

I've always found the qual's in fontconfig to behave as I expected, i. 
e. to specify whether the (single) value from <test> should match at:

* first position
* 2nd+ position
* all positions
* any position

in the pattern.
So qual="all" is mostly useful for compare="not_eq", or if the preceding 
rule used mode="assign_replace" to remove all other fallback stuff from 
the element.

Using other qual's than "any" with FcOpComma in <test> should trigger 
some pretty awkward behavior at the moment, because the order of 
FcOpComma operands will decide which one is used to check for the 
position(s) in the pattern, which is totally counter-intuitive (for 
example, I think for qual="all" the last operand would need to get the 
match, while for "first"/"not_first" it's likely different).

But it's not allowed currently anyway ;-)

> This reminds me that we have to restructure the expression rules in
> the configuration, including any possibilities to introduce new syntax
> and we need to discuss first how to build the rules for "A AND B" and
> "A OR B" with/without FcOpComma say and may need to discuss if we
> should make the implicit rules clear in the configuration too, like
> the position of element that<edit>  take effects as we are discussing
> now. we can go back to the alias thing after that because of its
> purpose.

You mean using <or> etc. not only to calculate ordinal FcTypeBool 
values, but also for disjunction of subexpressions in <test>?
But still, as you said, the problem where to apply edits if more than 
one value matched remains...

Raimund


More information about the Fontconfig mailing list