From f87630a7b1017765ae5371fc14a080e37e14e6d7 Mon Sep 17 00:00:00 2001 From: Marc Foley Date: Mon, 10 Oct 2022 15:25:16 +0100 Subject: [PATCH] fix_stat do not drop nameids <= 25 --- Lib/axisregistry/__init__.py | 8 ++++++-- tests/data/OpenSansCondensed-Italic[wght]_STAT.ttx | 4 ++-- tests/data/OpenSansCondensed[wght]_STAT.ttx | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Lib/axisregistry/__init__.py b/Lib/axisregistry/__init__.py index 162240c88..7617da055 100644 --- a/Lib/axisregistry/__init__.py +++ b/Lib/axisregistry/__init__.py @@ -179,17 +179,21 @@ def build_stat(ttFont, sibling_ttFonts=[]): fvar_instance_nameids = set(i.subfamilyNameID for i in fvar.instances) fvar_axis_nameids = set(a.axisNameID for a in fvar.axes) fvar_nameids = fvar_axis_nameids | fvar_instance_nameids + # These NameIDs are required for applications to work correctly so + # they cannot be deleted. + # https://learn.microsoft.com/en-us/typography/opentype/spec/name + keep_nameids = set(range(26)) | fvar_nameids if "STAT" in ttFont: stat = ttFont["STAT"] if stat.table.AxisValueCount > 0: axis_values = stat.table.AxisValueArray.AxisValue for ax in axis_values: - if ax.ValueNameID not in fvar_nameids: + if ax.ValueNameID not in keep_nameids: nametable.removeNames(nameID=ax.ValueNameID) if stat.table.DesignAxisCount > 0: axes = stat.table.DesignAxisRecord.Axis for ax in axes: - if ax.AxisNameID not in fvar_nameids: + if ax.AxisNameID not in keep_nameids: nametable.removeNames(nameID=ax.AxisNameID) del ttFont["STAT"] diff --git a/tests/data/OpenSansCondensed-Italic[wght]_STAT.ttx b/tests/data/OpenSansCondensed-Italic[wght]_STAT.ttx index bd39b5cc8..d0e9f35ca 100644 --- a/tests/data/OpenSansCondensed-Italic[wght]_STAT.ttx +++ b/tests/data/OpenSansCondensed-Italic[wght]_STAT.ttx @@ -88,7 +88,7 @@ - + @@ -105,4 +105,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/tests/data/OpenSansCondensed[wght]_STAT.ttx b/tests/data/OpenSansCondensed[wght]_STAT.ttx index 503f3a4d3..db4d34c73 100644 --- a/tests/data/OpenSansCondensed[wght]_STAT.ttx +++ b/tests/data/OpenSansCondensed[wght]_STAT.ttx @@ -51,7 +51,7 @@ - + @@ -106,4 +106,4 @@ - \ No newline at end of file + \ No newline at end of file