Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=461617
--- Comment #13 from Caolan McNamara caolanm@redhat.com 2009-09-29 11:45:41 EDT --- So, on the ttx front I have some findings anyway... upstream .ttf $ ttx -l sazanami-gothic.ttf |grep GDEF tag checksum length offset GDEF 0x00293516 30 3654796 $ od -Ax -j 3654796 -t x1 sazanami-gothic.ttf -N 30 37c48c 00 01 00 00 00 0c 00 00 00 16 00 00 00 02 00 01 37c49c 00 03 35 0f 00 01 00 04 00 00 00 02 00 00 37c4aa
unpacked and repacked with ttx as above and we get... $ ttx -l sazanami-gothic.ttf |grep GDEF tag checksum length offset GDEF 0x00293515 30 7701068 [root@Nom tmp]# od -Ax -j 3804688 -t x1 sazanami-gothic.ttf -N 30 75824c 00 01 00 00 00 0c 00 00 00 16 00 00 00 02 00 01 75825c 00 03 35 0f 00 01 00 04 00 00 00 01 00 00 75826a which also gives the weirdness
If I now tweak the "CoverageFormat" bit (where the two above differ) for the GDEF from Format 1 to Format 2 within ttx then it works fine. e.g.
original .ttf unpacked and repacked with my custom ttx ttx -l sazanami-gothic.ttf |grep GDEF GDEF 0x00293516 30 7701068 od -Ax -j 7701068 -t x1 sazanami-gothic.ttf -N 30 75824c 00 01 00 00 00 0c 00 00 00 16 00 00 00 02 00 01 75825c 00 03 35 0f 00 01 00 04 00 00 00 02 00 00 75826a
So there is likely at least one route to solving this by e.g. extending ttx to support an additional flag like the existing -b which says not to recalculate bounding boxes with another one that says not to recalculate which CoverageFormat is more efficient and turn the changes of bug 196433 into a patch to the .ttx output of ttx. I'll have a poke at this to see if that would work in theory at least.