Branch: refs/heads/main
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