Fallback to Latin script if the font has no other usable scripts
authorBehdad Esfahbod <behdad@behdad.org>
Sun, 22 Jan 2012 20:31:44 +0000 (15:31 -0500)
committerBehdad Esfahbod <behdad@behdad.org>
Sun, 22 Jan 2012 20:31:44 +0000 (15:31 -0500)
commit71632c96daa4ba15e13f4d9e7f2c121d0162614e
tree9fe4086c718df139be531abed6571e5c2e4e3742
parent8f80f93491be73f05eba908591c856339acda51e
Fallback to Latin script if the font has no other usable scripts

Patch and description from Jonathan Kew:

It turns out that some legacy Thai fonts provide OpenType substitution
features to implement mark positioning, but (incorrectly) put those
features/lookups under the 'latn' script tag instead of using 'thai' (or
possibly 'DFLT'). See
https://bugzilla.mozilla.org/show_bug.cgi?id=719366 for an example and
more detailed description.

Although this is really a font bug, I suggest that we could improve the
rendering of such fonts by looking for the 'latn' as a fallback if
neither the requested script nor "default" is found in
hb_ot_layout_table_choose_script. Suggested patch against harfbuzz
master is attached.

This does _not_ affect the other kind of legacy Thai font, where custom
code to support vendor-specific PUA codepoints would be needed. I'm not
keen to go down that path; IMO, such fonts should be ruthlessly stamped
out in favour of standards-based solutions. :)

JK
src/hb-ot-layout.cc