From 40584ad489193b0f8d6b5fd39b0cbedfd847e37d Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 22 Jan 2024 14:20:35 -0800 Subject: [PATCH] [VARC] Adjust XML output based on review feedback --- Lib/fontTools/ttLib/tables/otTables.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Lib/fontTools/ttLib/tables/otTables.py b/Lib/fontTools/ttLib/tables/otTables.py index 9b7444a62..7ac56720f 100644 --- a/Lib/fontTools/ttLib/tables/otTables.py +++ b/Lib/fontTools/ttLib/tables/otTables.py @@ -279,18 +279,24 @@ class VarComponent: writer.begintag("VarComponent", attrs) writer.newline() - def write(name, value): + def write(name, value, attrs=()): if value is not None: - writer.simpletag(name, value=value) + writer.simpletag(name, (("value", value),) + attrs) writer.newline() write("glyphName", self.glyphName) - if self.flags & VarComponentFlags.RESET_UNSPECIFIED_AXES: - write("resetUnspecifiedAxes", True) if self.axisIndicesIndex is not None: write("axisIndicesIndex", self.axisIndicesIndex) - write("axisValues", [float(fl2str(v, 14)) for v in self.axisValues]) + if ( + self.axisIndicesIndex is not None + or self.flags & VarComponentFlags.RESET_UNSPECIFIED_AXES + ): + if self.flags & VarComponentFlags.RESET_UNSPECIFIED_AXES: + attrs = (("resetUnspecifiedAxes", 1),) + else: + attrs = () + write("axisValues", [float(fl2str(v, 14)) for v in self.axisValues], attrs) if self.axisValuesVarIndex != NO_VARIATION_INDEX: write("axisValuesVarIndex", self.axisValuesVarIndex) @@ -319,14 +325,12 @@ class VarComponent: if name == "glyphName": self.glyphName = v - elif name == "resetUnspecifiedAxes": - self.flags = VarComponentFlags.RESET_UNSPECIFIED_AXES if v else 0 - elif name == "flags": - self.flags = safeEval(v) elif name == "axisIndicesIndex": self.axisIndicesIndex = safeEval(v) elif name == "axisValues": self.axisValues = tuple(str2fl(v, 14) for v in safeEval(v)) + if safeEval(attrs.get("resetUnspecifiedAxes", "0")): + self.flags |= VarComponentFlags.RESET_UNSPECIFIED_AXES elif name == "axisValuesVarIndex": self.axisValuesVarIndex = safeEval(v) elif name == "transformVarIndex":