Akira TAGOH wrote:
Doh. forgot to push it. done.
Confirmed, seems to work.
I've found another problem.
With this config:
<match target="font">
<test name="family">
<string>Bitstream Vera Sans</string>
</test>
<test name="family" target="pattern">
<string>testfamily13</string>
</test>
<edit name="family" mode="assign"><string>testfamily13</string></edit>
</match>
the following command should result in a changed family name of the
selected font, in this case "testfamily13". However, the edit isn't
performed:
sun2:fontconfig)fc-match 'Bitstream Vera Sans,testfamily13'
Vera.ttf: "Bitstream Vera Sans" "Roman"
In comparison:
sun2:fontconfig)/usr/local/dist/stw/fontconfig-2.10.0/bin/fc-match
'Bitstream Vera Sans,testfamily13'
Vera.ttf: "testfamily13" "Roman"
(It works if I remove the second <test> -- the one against the pattern
-- above, or if I exchange the order of the tests.)
-Raimund
On Sat, Aug 24, 2013 at 5:47 AM, Raimund Steger <rs@xxxxxxxx> wrote:
Akira TAGOH wrote:
Gotcha. should be fixed in git now.
There seems to be no update in master... is it on another branch?
Anyway, here's some local variables from yesterday's core:
t@1 (l@1) program terminated by signal SEGV (no mapping at the fault
address)
Current function is FcConfigAdd
1367 sameBinding = position->binding;
(dbx) up
Current function is FcConfigSubstituteWithPat
1660 FcConfigAdd (&elt[object]->values,
thisValue, FcTrue, l, r->u.edit->object);
(dbx) print config->maxObjects, object, nobjs, r->u.edit->object
config->maxObjects = 2
object = 50
nobjs = 50
r->u.edit->object = 1050
(dbx)
-Raimund
On Fri, Aug 23, 2013 at 5:01 PM, Akira TAGOH <akira@xxxxxxxxx> wrote:
Strange. that works for me.
What's config->maxObjects?
On Fri, Aug 23, 2013 at 6:51 AM, Raimund Steger <rs@xxxxxxxx> wrote:
Akira TAGOH wrote:
Thanks for testing. that should works now...
Confirmed.
However, I get occasional coredumps.
Using the snippet:
<match target="font">
<test name="family"><string>Bitstream Vera Sans</string></test>
<edit name="BitstreamVeraSans1"><bool>true</bool></edit>
</match>
<match target="font">
<test name="family"><string>Bitstream Vera Sans</string></test>
<edit name="BitstreamVeraSans2"><bool>true</bool></edit>
</match>
<match target="font">
<test name="family"><string>Bitstream Vera Sans</string></test>
<edit name="BitstreamVeraSans3"><bool>true</bool></edit>
</match>
<match target="font">
<test name="family"><string>Bitstream Vera Sans</string></test>
<edit name="BitstreamVeraSans4"><bool>true</bool></edit>
</match>
<match target="font">
<test name="family"><string>Bitstream Vera Sans</string></test>
<edit name="BitstreamVeraSans5"><bool>true</bool></edit>
</match>
and executing fc-match several times in a row, i. e.
bash-4.1$ (set -e;for i in {1..200};do fc-match "Bitstream Vera
Sans";done)
pretty reproducibly creates coredumps.
In the debugger:
t@1 (l@1) program terminated by signal SEGV (no mapping at the fault
address)
Current function is FcConfigAdd
1367 sameBinding = position->binding;
(dbx) where
current thread: t@1
=>[1] FcConfigAdd(head = 0xe4, position = 0x28, append = 1, new =
0x8068648,
object = 1050), line 1367 in "fccfg.c"
[2] FcConfigSubstituteWithPat(config = 0x8062ee8, p = 0x8065ff0,
p_pat =
0x8062860, kind = FcMatchFont), line 1660 in "fccfg.c"
[3] FcFontRenderPrepare(config = 0x8062ee8, pat = 0x8062860, font =
0xfe1f0088), line 578 in "fcmatch.c"
[4] FcFontMatch(config = 0x8062ee8, p = 0x8062860, result =
0xfeffe460),
line 712 in "fcmatch.c"
[5] main(argc = 3, argv = 0xfeffe4b8), line 192 in "fc-match.c"
(dbx)
-Raimund
On Mon, Aug 5, 2013 at 7:32 AM, Raimund Steger <rs@xxxxxxxx> wrote:
Akira TAGOH wrote:
That should works as expected now. please test as well as usual
matching rule since the logic was somewhat rewritten.
There seems to be a regression.
When testing the following rule:
<match target="pattern">
<test name="family"><string>testfamily2</string></test>
<test name="pixelsize" compare="less"
qual="all"><double>100</double></test>
<edit name="family"
mode="append"><string>testfamily2_append</string></edit>
</match>
with
FC_DEBUG=1 fc-match testfamily2 |grep family:
the <edit> is applied at the wrong position, i. e. the position of the
'family' match isn't retained if another <test> is inbetween.
Raimund
On Mon, Jun 17, 2013 at 9:25 PM, Raimund Steger <rs@xxxxxxxx> wrote:
Hi,
On Tue, June 11, 2013 09:59, Akira TAGOH wrote:
Hi,
If there are not anything else we want to fix before releasing
2.11.0,
please follow up on this mail otherwise I'll make one next week.
Sorry- I know I should have tested this a lot earlier, but the
implementation of https://bugs.freedesktop.org/show_bug.cgi?id=59385
(intermixed <test> and <edit> elements in <match>,
http://cgit.freedesktop.org/fontconfig/commit/?id=d26fb23c41abd87422778bb38eea39f25ba3dc4a)
does not seem to exactly match Behdad's suggestion from his initial
mail:
http://thread.gmane.org/gmane.comp.fonts.fontconfig/4607
The suggestion in the mail is that:
<match>
<test1>
<edit1>
<test2>
<edit2>
</match>
is a shortcut for:
<match>
<test1>
<edit1>
</match>
<match>
<test1>
<test2>
<edit2>
</match>
i. e., test2 is only evaluated if test1 was successful.
However the current implementation in head seems to generate two
unrelated
rules.
If I make an example configuration like this:
<match target="pattern">
<test name="family"
qual="first"><string>Helvetica</string></test>
<edit name="family" mode="append"><string>Helvetica LT
Std</string></edit>
<test name="pixelsize"
compare="less"><double>12</double></test>
<edit name="family" mode="prepend"><string>Lucida
Sans</string></edit>
</match>
so that Helvetica LT Std is always acceptable for Helvetica, but
below
12px Lucida Sans is preferred for the family, fontconfig instead
prepends
"Lucida Sans" to all patterns with a pixelsize below 12. So I'd have
to
write
<match target="pattern">
<test name="family"
qual="first"><string>Helvetica</string></test>
<edit name="family" mode="append"><string>Helvetica LT
Std</string></edit>
<test name="family"
qual="first"><string>Helvetica</string></test>
<test name="pixelsize"
compare="less"><double>12</double></test>
<edit name="family" mode="prepend"
binding="strong"><string>Lucida
Sans</string></edit>
</match>
instead.
(Given I haven't made an error in my test) it's probably still an
improvement over 2.10 though.
Raimund
--
Worringer Str 31 Duesseldorf 40211 DE home: <rs@xxxxxxxx>
+49-179-2981632 icq 16845346 work: <rs@xxxxxxxxxxxxxxx>
--
Worringer Str 31 Duesseldorf 40211 DE home: <rs@xxxxxxxx>
+49-179-2981632 icq 16845346 work: <rs@xxxxxxxxxxxxxxx>
--
Akira TAGOH
--
Worringer Str 31 Duesseldorf 40211 DE home: <rs@xxxxxxxx>
+49-179-2981632 icq 16845346 work: <rs@xxxxxxxxxxxxxxx>
--
Worringer Str 31 Duesseldorf 40211 DE home: <rs@xxxxxxxx>
+49-179-2981632 icq 16845346 work: <rs@xxxxxxxxxxxxxxx>
_______________________________________________
Fontconfig mailing list
Fontconfig@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/fontconfig