[Fontconfig] fontconfig: Branch 'master' - 2 commits

Behdad Esfahbod behdad at behdad.org
Tue Jan 1 18:25:01 PST 2013


I pushed out a bunch of fixes for this.

Next thing I really want to do is to make it possible to add custom elements
through FcNameParse.  Something like:

fc-match :testproperty(Integer)=3

The possible types are all of the FcType*.

Thanks for testing!
behdad

On 13-01-01 12:36 PM, Raimund Steger wrote:
> Behdad Esfahbod wrote:
>> New commits:
>> commit 1fbb0b3b15774c187c697a80fb3c89bc1f3e0006
>> Author: Behdad Esfahbod <behdad at behdad.org>
>> Date:   Sun Dec 30 19:08:42 2012 -0600
>>
>>      Don't warn if an unknown element is used in an expression
>>
>>      The type will be resolved at runtime...
> 
>> [...]
> 
>> diff --git a/src/fcxml.c b/src/fcxml.c
>> index d31caf5..cf9c8dd 100644
>> --- a/src/fcxml.c
>> +++ b/src/fcxml.c
>> @@ -594,6 +594,10 @@ FcTypecheckValue (FcConfigParse *parse, FcType value,
>> FcType type)
>>           return;
>>       if (type == (FcType) -1)
>>           return;
>> +    /* It's perfectly fine to use user-define elements in expressions,
>> +     * so don't warn in that case. */
>> +    if (value == (FcType) -1)
>> +        return;
>>       FcConfigMessage (parse, FcSevereWarning, "saw %s, expected %s",
>>                FcTypeName (value), FcTypeName (type));
>>       }
> 
> Hm, while testing this I noticed that FcPatternDuplicate returns 0 if it comes
> across an element where the FcObjectValidType check fails, such as when a
> string was assigned to the 'dpi' property.
> 
> This causes a coredump in fc-match, which probably has been like this forever;
> only, the warning gave a hint previously which it doesn't do now. (fontconfig
> still prints a warning if FC_DEBUG=4096 (FC_DBG_OBJTYPES) is set though.)
> 
> E. g. for the config:
> 
> <match target="font">
>   <edit name="test_string" mode="assign">
>     <string>test_string_value</string>
>   </edit>
>   <edit name="dpi" mode="assign">
>     <name>test_string</name>
>   </edit>
> </match>
> 
> (which is of course invalid anyway) the following happens:
> 
> sun2:fontconfig)FC_DEBUG=4096 fc-match -v
> FC_DEBUG=4096
> FC_DEBUG=4096
> FcPattern object dpi does not accept value  "test_string_value"Null pattern
> zsh: segmentation fault (core dumped)  FC_DEBUG=4096 fc-match -v
> 
> Maybe the FC_DBG_OBJTYPES warnings would be better off as normal warnings?
> Although this would mean that the user sees at least two warnings in the case
> of a direct assignment (without <name>).
> 
> Everything else works just fine AFAICT.
> 
> Raimund
> 
> 
> 

-- 
behdad
http://behdad.org/


More information about the Fontconfig mailing list