Branch: refs/heads/main
Home:
https://github.com/fonttools/fonttools
Commit: 2727d7e8dcd5a9756ede49f7967e6cc0e7e15867
https://github.com/fonttools/fonttools/commit/2727d7e8dcd5a9756ede49f7967e6cc0e7e15867
Author: Behdad Esfahbod <
beh...@behdad.org>
Date: 2026-10-12 (Mon, 12 Oct 2026)
Changed paths:
M Lib/fontTools/ttLib/tables/otConverters.py
M Tests/ttLib/tables/otTables_test.py
Log Message:
-----------
[ttLib] Preserve FeatureVariations FeatureParams and lazy layout reads (#4278)
* ttLib: preserve FeatureParams in FeatureVariations
* ttLib: preserve empty and lazy FeatureLists with FeatureVariations
* [ttLib] Tolerate alternate features with out-of-range indices
Use an unspecified feature tag when a FeatureVariations substitution index is beyond the original FeatureList. Alternates without FeatureParams can then decompile as they do on main. Only look up a tag during compilation when FeatureParams are present, preserving parameter-type validation.
Add 24 regression cases covering GSUB and GPOS, eager and lazy binary reads, empty FeatureLists, boundary and maximum indices, absent parameter fields, and binary/TTX round trips. All new cases fail before this fix. Validated with 677 related tests passed and nine optional tests skipped; pinned Black 26.3.1 and whitespace checks pass.
Assisted-by: Codex
---------
Co-authored-by: CAOShurong <
170531907+...@users.noreply.github.com>
To unsubscribe from these emails, change your notification settings at
https://github.com/fonttools/fonttools/settings/notifications