behdad/harfbuzz — pull request #39 by jfkthame (2014-04-27 12:46:17+00:00)
Title: rework handling of requiredFeature

See mozilla bug https://bugzilla.mozilla.org/show_bug.cgi?id=986802.

Testcase for this is to use arial.ttf from Windows XP, and disable the 'liga' feature; the lam-alef ligature should still happen, because requiredFeature points to the 'rlig' feature, but this will only work if it is processed at the proper stage, not if its lookups are inserted before all others.

Expected result:
$ ./test/shaping/hb-unicode-encode 644,627 | BUILD/util/hb-shape arial-winxp.ttf --features liga=0
[afii62840=0+1114]

Without this patch, we get:
$ ./test/shaping/hb-unicode-encode 644,627 | BUILD/util/hb-shape arial-winxp.ttf --features liga=0
[afii62760=1+470|afii62817=0+424]

because the 'rlig' lookup is applied too early, before the basic joining forms.