[fonttools/fonttools] ee6fa5: [mort] Support all metamorphosis subtable types

0 views
Skip to first unread message

Behdad Esfahbod

unread,
Aug 24, 2026, 4:59:12 PM (2 days ago) Aug 24
to fontto...@googlegroups.com
Branch: refs/heads/mort-state-tables
Home: https://github.com/fonttools/fonttools
Commit: ee6fa57916e1163f5ac04587e86ef5ae6a259282
https://github.com/fonttools/fonttools/commit/ee6fa57916e1163f5ac04587e86ef5ae6a259282
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-08-24 (Mon, 24 Aug 2026)

Changed paths:
M Lib/fontTools/ttLib/tables/otConverters.py
M Lib/fontTools/ttLib/tables/otData.py
M Lib/fontTools/ttLib/tables/otTables.py
M NEWS.rst
M Tests/ttLib/tables/_m_o_r_t_test.py

Log Message:
-----------
[mort] Support all metamorphosis subtable types



To unsubscribe from these emails, change your notification settings at https://github.com/fonttools/fonttools/settings/notifications

Behdad Esfahbod

unread,
Aug 25, 2026, 9:55:36 AM (15 hours ago) Aug 25
to fontto...@googlegroups.com
Branch: refs/heads/main
Home: https://github.com/fonttools/fonttools
Commit: ee6fa57916e1163f5ac04587e86ef5ae6a259282
https://github.com/fonttools/fonttools/commit/ee6fa57916e1163f5ac04587e86ef5ae6a259282
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-08-24 (Mon, 24 Aug 2026)

Changed paths:
M Lib/fontTools/ttLib/tables/otConverters.py
M Lib/fontTools/ttLib/tables/otData.py
M Lib/fontTools/ttLib/tables/otTables.py
M NEWS.rst
M Tests/ttLib/tables/_m_o_r_t_test.py

Log Message:
-----------
[mort] Support all metamorphosis subtable types


Commit: e84c83c7a42f2d1e5d608aef0349665a4337037d
https://github.com/fonttools/fonttools/commit/e84c83c7a42f2d1e5d608aef0349665a4337037d
Author: Cosimo Lupo <cos...@anthrotype.com>
Date: 2026-08-25 (Tue, 25 Aug 2026)

Changed paths:
M Tests/ttLib/tables/_m_o_r_t_test.py

Log Message:
-----------
Add mort round-trip regressions

Cover unassigned state-table classes and legacy ligature rebase data.

The fixtures fail before the preservation changes.


Commit: 69ea6b495ac7d605050a9d824d6e40b6ce8bce79
https://github.com/fonttools/fonttools/commit/69ea6b495ac7d605050a9d824d6e40b6ce8bce79
Author: Cosimo Lupo <cos...@anthrotype.com>
Date: 2026-08-25 (Tue, 25 Aug 2026)

Changed paths:
M Lib/fontTools/ttLib/tables/otConverters.py
M Tests/ttLib/tables/_m_o_r_t_test.py

Log Message:
-----------
Preserve mort state-table round trips

Keep legacy ligature component rebase information in the model and TTX so zero offsets retain their original interpretation.

Infer the number of state-table classes from serialized transitions as well as glyph assignments.


Commit: a659d9936c633a82d8786ba4f69637a9d93df633
https://github.com/fonttools/fonttools/commit/a659d9936c633a82d8786ba4f69637a9d93df633
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)

Changed paths:
M Lib/fontTools/ttLib/tables/otConverters.py
M Tests/ttLib/tables/_m_o_r_t_test.py

Log Message:
-----------
Merge pull request #4159 from fonttools/fix-mort-roundtrips

[mort] Preserve legacy state-table round trips


Commit: 12edc9e091f67515d02917dcf178961b5916d999
https://github.com/fonttools/fonttools/commit/12edc9e091f67515d02917dcf178961b5916d999
Author: Cosimo Lupo <cos...@anthrotype.com>
Date: 2026-08-25 (Tue, 25 Aug 2026)

Changed paths:
M Lib/fontTools/ttLib/tables/otConverters.py
M Tests/ttLib/tables/_m_o_r_t_test.py

Log Message:
-----------
[mort] Decode trimmed contextual substitution windows (#4161)

The classic contextual format resolves a substitution by adding the entry's
word offset (possibly negative) to the glyph ID, so each offset exposes a
per-glyph window rather than a whole lookup table, and real fonts (e.g.
macOS's CharcoalCY, GenevaCY, HelveticaCY) trim those windows to the glyphs
an entry can apply to. Decode only the words that fall inside the
substitution table instead of reading a full per-glyph array and rejecting
offsets that precede it. The window is clamped to the subtable, slightly
stricter than HarfBuzz's blob-wide upper bound.


Commit: e7e00f1b16aef6ede850206df3c100ccde27b2d3
https://github.com/fonttools/fonttools/commit/e7e00f1b16aef6ede850206df3c100ccde27b2d3
Author: Behdad Esfahbod <beh...@behdad.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)

Changed paths:
M Lib/fontTools/ttLib/tables/otConverters.py
M Lib/fontTools/ttLib/tables/otData.py
M Lib/fontTools/ttLib/tables/otTables.py
M NEWS.rst
M Tests/ttLib/tables/_m_o_r_t_test.py

Log Message:
-----------
Merge pull request #4158 from fonttools/mort-state-tables

[mort] Support all metamorphosis subtable types


Compare: https://github.com/fonttools/fonttools/compare/984a5cf614f4...e7e00f1b16ae
Reply all
Reply to author
Forward
0 new messages