Merge pull request #88 from m4rc1e/keep-ids
fix_stat do not drop nameids <= 25
diff --git a/Lib/axisregistry/__init__.py b/Lib/axisregistry/__init__.py
index 162240c..7617da0 100644
--- a/Lib/axisregistry/__init__.py
+++ b/Lib/axisregistry/__init__.py
@@ -179,17 +179,21 @@
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\133wght\135_STAT.ttx" "b/tests/data/OpenSansCondensed-Italic\133wght\135_STAT.ttx"
index bd39b5c..d0e9f35 100644
--- "a/tests/data/OpenSansCondensed-Italic\133wght\135_STAT.ttx"
+++ "b/tests/data/OpenSansCondensed-Italic\133wght\135_STAT.ttx"
@@ -88,7 +88,7 @@
<AxisValue index="9" Format="1">
<AxisIndex value="2"/>
<Flags value="0"/>
- <ValueNameID value="17"/> <!-- Italic -->
+ <ValueNameID value="2"/> <!-- Italic -->
<Value value="1.0"/>
</AxisValue>
<AxisValue index="10" Format="3">
@@ -105,4 +105,4 @@
<Value value="0.0"/>
</AxisValue>
</AxisValueArray>
-<ElidedFallbackNameID value="2"/> <!-- missing from name table -->
\ No newline at end of file
+<ElidedFallbackNameID value="2"/> <!-- Italic -->
\ No newline at end of file
diff --git "a/tests/data/OpenSansCondensed\133wght\135_STAT.ttx" "b/tests/data/OpenSansCondensed\133wght\135_STAT.ttx"
index 503f3a4..db4d34c 100644
--- "a/tests/data/OpenSansCondensed\133wght\135_STAT.ttx"
+++ "b/tests/data/OpenSansCondensed\133wght\135_STAT.ttx"
@@ -51,7 +51,7 @@
<AxisValue index="3" Format="3">
<AxisIndex value="0"/>
<Flags value="2"/> <!-- ElidableAxisValueName -->
- <ValueNameID value="260"/> <!-- Regular -->
+ <ValueNameID value="2"/> <!-- Regular -->
<Value value="400.0"/>
<LinkedValue value="700.0"/>
</AxisValue>
@@ -106,4 +106,4 @@
<LinkedValue value="1.0"/>
</AxisValue>
</AxisValueArray>
-<ElidedFallbackNameID value="2"/> <!-- missing from name table -->
\ No newline at end of file
+<ElidedFallbackNameID value="2"/> <!-- Regular -->
\ No newline at end of file