From f62f79eb23b9c21c482746ad78cf41af58413695 Mon Sep 17 00:00:00 2001 From: Cosimo Lupo Date: Fri, 19 Jan 2018 13:25:59 +0000 Subject: [PATCH] otConverters: don't write XML comment if NameID value is 0 == NULL Fixes https://github.com/fonttools/fonttools/issues/1151 --- Lib/fontTools/ttLib/tables/otConverters.py | 19 ++++++++++--------- Tests/ttLib/tables/otConverters_test.py | 9 +++++++++ .../InterpolateLayoutGPOS_size_feat_same.ttx | 2 +- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Lib/fontTools/ttLib/tables/otConverters.py b/Lib/fontTools/ttLib/tables/otConverters.py index 16b86fe4e..f7f71744b 100644 --- a/Lib/fontTools/ttLib/tables/otConverters.py +++ b/Lib/fontTools/ttLib/tables/otConverters.py @@ -285,15 +285,16 @@ class GlyphID(SimpleValue): class NameID(UShort): def xmlWrite(self, xmlWriter, font, value, name, attrs): xmlWriter.simpletag(name, attrs + [("value", value)]) - nameTable = font.get("name") if font else None - if nameTable: - name = nameTable.getDebugName(value) - xmlWriter.write(" ") - if name: - xmlWriter.comment(name) - else: - xmlWriter.comment("missing from name table") - log.warning("name id %d missing from name table" % value) + if font and value: + nameTable = font.get("name") + if nameTable: + name = nameTable.getDebugName(value) + xmlWriter.write(" ") + if name: + xmlWriter.comment(name) + else: + xmlWriter.comment("missing from name table") + log.warning("name id %d missing from name table" % value) xmlWriter.newline() diff --git a/Tests/ttLib/tables/otConverters_test.py b/Tests/ttLib/tables/otConverters_test.py index 7f76d712c..3b9d5e9fc 100644 --- a/Tests/ttLib/tables/otConverters_test.py +++ b/Tests/ttLib/tables/otConverters_test.py @@ -114,6 +114,7 @@ class NameIDTest(unittest.TestCase): def makeFont(self): nameTable = newTable('name') nameTable.setName(u"Demibold Condensed", 0x123, 3, 0, 0x409) + nameTable.setName(u"Copyright 2018", 0, 3, 0, 0x409) return {"name": nameTable} def test_read(self): @@ -148,6 +149,14 @@ class NameIDTest(unittest.TestCase): ' ') + def test_xmlWrite_NULL(self): + writer = makeXMLWriter() + self.converter.xmlWrite(writer, self.makeFont(), 0, + "FooNameID", [("attr", "val")]) + xml = writer.file.getvalue().decode("utf-8").rstrip() + self.assertEqual( + xml, '') + class UInt8Test(unittest.TestCase): font = FakeFont([]) diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_size_feat_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_size_feat_same.ttx index b0f8074bc..773dc594a 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_size_feat_same.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_size_feat_same.ttx @@ -25,7 +25,7 @@ - +