From c8f591ea8af4decb0bf87a19eea472a771d5929c Mon Sep 17 00:00:00 2001 From: Cosimo Lupo Date: Tue, 28 Apr 2020 18:30:50 +0100 Subject: [PATCH] subset: remove FeatureVariations table and downgrade to version 0x10000 when empty https://github.com/fonttools/fonttools/issues/1881#issuecomment-620719882 --- Lib/fontTools/subset/__init__.py | 8 ++++---- Tests/subset/subset_test.py | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Lib/fontTools/subset/__init__.py b/Lib/fontTools/subset/__init__.py index 096f345301..0119a92bd7 100644 --- a/Lib/fontTools/subset/__init__.py +++ b/Lib/fontTools/subset/__init__.py @@ -1631,11 +1631,11 @@ def prune_post_subset(self, font, options): #if table.ScriptList and not table.ScriptList.ScriptRecord: # table.ScriptList = None - if not table.FeatureList and hasattr(table, 'FeatureVariations'): - table.FeatureVariations = None + if hasattr(table, 'FeatureVariations'): + if not (table.FeatureList and table.FeatureVariations.FeatureVariationRecord): + table.FeatureVariations = None - if hasattr(table, 'FeatureVariations') and not table.FeatureVariations: - if table.Version == 0x00010001: + if not table.FeatureVariations and table.Version == 0x00010001: table.Version = 0x00010000 return True diff --git a/Tests/subset/subset_test.py b/Tests/subset/subset_test.py index 639561b9ef..2493daff10 100644 --- a/Tests/subset/subset_test.py +++ b/Tests/subset/subset_test.py @@ -793,7 +793,8 @@ def test_subset_feature_variations_drop_all(featureVarsTestFont): assert "rvrn" not in featureTags assert glyphs == {".notdef", "f", "dollar"} # all FeatureVariationRecords were dropped - assert not font["GSUB"].table.FeatureVariations.FeatureVariationRecord + assert font["GSUB"].table.FeatureVariations is None + assert font["GSUB"].table.Version == 0x00010000 # TODO test_subset_feature_variations_drop_from_end_empty_records