harfbuzz/test/shaping/fonts/sha1sum
Behdad Esfahbod 86c68c7a2c [GPOS] Fix interaction of mark attachments and cursive chaining
Fixes https://github.com/behdad/harfbuzz/issues/211

What happens in that bug is that a mark is attached to base first,
then a second mark is cursive-chained to the first mark.  This only
"works" because it's in the Indic shaper where mark advances are
not zeroed.

Before, we didn't allow cursive to run on marks at all.  Fix that.
We also where updating mark major offsets at the end of GPOS, such
that changes in advance of base will not change the mark attachment
position.  That was superior to the alternative (which is what Uniscribe
does BTW), but made it hard to apply cursive to the mark after it
was positioned.  We could track major-direction offset changes and
apply that to cursive in the post process, but that's a much trickier
thing to do than the fix here, which is to immediately apply the
major-direction advance-width offsets...  Ie.:

https://github.com/behdad/harfbuzz/issues/211#issuecomment-183194739

If this breaks any fonts, the font should be fixed to do mark attachment
after all the advances are set up first (kerning, etc).

Finally, this, still doesn't make us match Uniscribe, for I explained
in that bug.  Looks like Uniscribe applies minor-direction cursive
adjustment immediate as well.  We don't, and we like it our way, at
least for now.  Eg. the sequence in the test case does this:

- The first subscript attaches with mark-to-base, moving in x only,
- The second subscript attaches with cursive attachment to first subscript
  moving in x only,
- A final context rule moves the first subscript up by 104 units.

The way we do, the final shift-up, also shifts up the second subscript
mark because it's cursively-attached.  Uniscribe doesn't.  We get:

[ttaorya=0+1307|casubscriptorya=0@-242,104+-231|casubscriptnarroworya=0@20,104+507]

while Uniscribe gets:

[ttaorya=0+1307|casubscriptorya=0@-242,104+-211|casubscriptnarroworya=0+487]

note the different y-offset of the last glyph.  In our view, after cursive,
things move together, period.
2016-02-16 16:07:20 +07:00
..
1a6f1687b7a221f9f2c834b0b360d3c8463b6daf.ttf Add test for previous fix 2015-10-09 12:34:02 -04:00
1c2c3fc37b2d4c3cb2ef726c6cdaaabd4b7f3eb9.ttf Normalize various spaces to space if font doesn't support 2015-11-04 15:51:41 -08:00
1c2fb74c1b2aa173262734c1f616148f1648cfd6.ttf Fix flaky test 2015-12-25 18:18:23 +01:00
1c04a16f32a39c26c851b7fc014d2e8d298ba2b8.ttf Add tests for hyphen fallback 2015-11-04 17:39:26 -08:00
4cce528e99f600ed9c25a2b69e32eb94a03b4ae8.ttf Add test suite for shaping results 2013-10-14 18:54:51 +02:00
5a5daf5eb5a4db77a2baa3ad9c7a6ed6e0655fa8.ttf Add test for ee9b0b6cb5 2015-10-11 21:41:04 -04:00
7a37dc4d5bf018456aea291cee06daf004c0221c.ttf [tests] Add tests for Thai mark zeroing 2016-02-10 18:24:32 +07:00
7e14e7883ed152baa158b80e207b66114c823a8b.ttf [hangul] Don't apply 'calt' 2014-07-31 18:54:43 -04:00
8a9fea2a7384f2116e5b84a9b31f83be7850ce21.ttf [arabic] Apply init/medi/isol/fini/... in separate stages 2014-07-17 15:50:13 -04:00
43ef465752be9af900745f72fe29cb853a1401a5.ttf [tests] Add Hebrew test for normalization under cluster-level=1 2015-09-01 16:12:44 +01:00
49c9f7485c1392fa09a1b801bc2ffea79275f22e.ttf Add tests for previous commit 2015-11-26 18:48:30 -05:00
051d92f8bc6ff724511b296c27623f824de256e9.ttf Add test case for deleting default ignorables with positioning 2015-07-22 18:44:59 +01:00
56cfd0e18d07f41c38e9598545a6d369127fc6f9.ttf [tests] Fix fonts in cc4a78bf22 2016-02-10 18:39:59 +07:00
57a9d9f83020155cbb1d2be1f43d82388cbecc88.ttf [indic] Handle old-spec Malayalam reordering with final Halant 2014-07-23 16:53:03 -04:00
226bc2deab3846f1a682085f70c67d0421014144.ttf [indic] Don't reorder reph/pref if ligature was expanded 2014-06-05 20:36:01 -04:00
270b89df543a7e48e206a2d830c0e10e5265c630.ttf [indic] Handle old-spec Malayalam reordering with final Halant 2014-07-23 16:53:03 -04:00
298c9e1d955f10f6f72c6915c3c6ff9bf9695cec.ttf [test] Add test for cursive-positioning with mixed directions 2015-08-25 20:29:36 +01:00
375d6ae32a3cbe52fbf81a4e5777e3377675d5a3.ttf Add tests for a couple of fixed issues found by libFuzzer 2015-10-15 12:56:19 -03:00
0509e80afb379d16560e9e47bdd7d888bebdebc6.ttf Add test for previous commit 2015-10-13 00:33:59 -04:00
641bd9db850193064d17575053ae2bf8ec149ddc.ttf Add tests for a couple of fixed issues found by libFuzzer 2015-10-15 12:56:19 -03:00
706c5d7b625f207bc0d874c67237aad6f1e9cd6f.ttf [GPOS] Fix interaction of mark attachments and cursive chaining 2016-02-16 16:07:20 +07:00
757ebd573617a24aa9dfbf0b885c54875c6fe06b.ttf [hangul] Don't apply 'calt' 2014-07-31 18:54:43 -04:00
813c2f8e5512187fd982417a7fb4286728e6f4a8.ttf [arabic] Apply init/medi/isol/fini/... in separate stages 2014-07-17 15:50:13 -04:00
3511ff5c1647150595846ac414c595cccac34f18.ttf [fuzzing] Add test case for OOM 2015-11-06 00:01:24 -08:00
5028afb650b1bb718ed2131e872fbcce57828fff.ttf [indic] Allow ZWJ/ZWNJ before SM 2014-12-10 12:05:24 -08:00
6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf [tests] Add test for fallback positioning with cluster_level > 0 2015-08-08 18:03:16 +02:00
8454d22037f892e76614e1645d066689a0200e61.ttf [hebrew] Zero mark advance by GDEF late 2014-07-26 20:34:01 -04:00
37033cc5cf37bb223d7355153016b6ccece93b28.ttf Fix Mongolian Variation Selectors for fonts without GDEF 2014-07-16 13:30:26 -04:00
43979b90b2dd929723cf4fe1715990bcb9c9a56b.ttf Add tests for previous two commits 2015-11-18 23:09:13 -08:00
45855bc8d46332b39c4ab9e2ee1a26b1f896da6b.ttf [tests] Add tests for Thai mark zeroing 2016-02-10 18:24:32 +07:00
191826b9643e3f124d865d617ae609db6a2ce203.ttf [test] Add tests for improved 'vert' feature 2015-07-23 12:50:48 +01:00
8240789f6d12d4cfc4b5e8e6f246c3701bcf861f.ttf [ot-font] Fix hmtx table length checking, *again* 2015-11-03 12:15:12 -08:00
8099955657a54e9ee38a6ba1d6f950ce58e3cc25.ttf [tests] Add tests for Thai mark zeroing 2016-02-10 18:24:32 +07:00
MANIFEST [GPOS] Fix interaction of mark attachments and cursive chaining 2016-02-16 16:07:20 +07:00
a98e908e2ed21b22228ea59ebcc0f05034c86f2e.ttf [tests] Add test for advance zeroing of an ASCII letter marked as mark in GDEF 2016-02-11 12:15:38 +07:00
a919b33197965846f21074b24e30250d67277bce.ttf [arabic] Apply init/medi/isol/fini/... in separate stages 2014-07-17 15:50:13 -04:00
b9e2aaa0d75fcef6971ec3a96d806ba4a6b31fe2.ttf Add tests for previous two commits 2015-11-18 23:09:13 -08:00
bb0c53752e85c3d28973ebc913287b8987d3dfe8.ttf [tests] Add tests for Thai mark zeroing 2016-02-10 18:24:32 +07:00
bb29ce50df2bdba2d10726427c6b7609bf460e04.ttf [test] Add more Mongolian variation selector tests 2014-07-18 14:37:49 -04:00
bb9473d2403488714043bcfb946c9f78b86ad627.ttf Add old-Myanmar shaper 2014-07-26 19:18:59 -04:00
c4e48b0886ef460f532fb49f00047ec92c432ec0.ttf [test] Add test for cursive-positioning with mixed directions 2015-08-25 20:29:36 +01:00
cc5f3d2d717fb6bd4dfae1c16d48a2cb8e12233b.ttf [tests] Fix fonts in cc4a78bf22 2016-02-10 18:39:59 +07:00
d629e7fedc0b350222d7987345fe61613fa3929a.ttf Add test suite for shaping results 2013-10-14 18:54:51 +02:00
df768b9c257e0c9c35786c47cae15c46571d56be.ttf [arabic] Fix fallback shaping regression 2014-08-05 14:19:36 -04:00
e207635780b42f898d58654b65098763e340f5c7.ttf Fix base-position when 'pref' is NOT formed 2014-06-12 17:10:35 -04:00
ef86fe710cfea877bbe0dbb6946a1f88d0661031.ttf Another try to fix Mongolian free variation selectors 2014-07-17 14:28:04 -04:00
f499fbc23865022234775c43503bba2e63978fe1.ttf Add test suite for shaping results 2013-10-14 18:54:51 +02:00
fab39d60d758cb586db5a504f218442cd1395725.ttf Do not allow recursiving to same position and same lookup 2015-11-19 12:39:09 -08:00
fbb6c84c9e1fe0c39e152fbe845e51fd81f6748e.ttf [use] Fix halant detection 2015-12-17 11:59:15 +00:00
fcdcffbdf1c4c97c05308d7600e4c283eb47dbca.ttf [tests] Add tests for Latin mark zeroing 2016-02-10 18:24:35 +07:00
ffa0f5d2d9025486d8469d8b1fdd983e7632499b.ttf [tests] Fix fonts in cc4a78bf22 2016-02-10 18:39:59 +07:00