From b624e0c08e3a605312469143edfbbf6058f5876e Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 8 Jan 2018 10:27:33 +0000 Subject: [PATCH] [varLib.merger] Handle missing PairPos format1/2 subtables in AligningMerger Fixes https://github.com/fonttools/fonttools/issues/1125 The Format2 is still failing in my test case. Investigating. --- Lib/fontTools/varLib/merger.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Lib/fontTools/varLib/merger.py b/Lib/fontTools/varLib/merger.py index 4ada4ba3d..d0562eb9c 100644 --- a/Lib/fontTools/varLib/merger.py +++ b/Lib/fontTools/varLib/merger.py @@ -280,7 +280,11 @@ def _PairPosFormat1_merge(self, lst, merger): # Merge everything else; makes sure Format is the same. merger.mergeObjects(self, lst, exclude=('Coverage', - 'PairSet', 'PairSetCount')) + 'PairSet', 'PairSetCount', + 'ValueFormat1', 'ValueFormat2')) + + self.ValueFormat1 = reduce(int.__or__, [l.ValueFormat1 for l in lst], 0) + self.ValueFormat2 = reduce(int.__or__, [l.ValueFormat2 for l in lst], 0) empty = ot.PairSet() empty.PairValueRecord = [] @@ -435,7 +439,11 @@ def _PairPosFormat2_merge(self, lst, merger): exclude=('Coverage', 'ClassDef1', 'Class1Count', 'ClassDef2', 'Class2Count', - 'Class1Record')) + 'Class1Record', + 'ValueFormat1', 'ValueFormat2')) + + self.ValueFormat1 = reduce(int.__or__, [l.ValueFormat1 for l in lst], 0) + self.ValueFormat2 = reduce(int.__or__, [l.ValueFormat2 for l in lst], 0) # Align coverages glyphs, _ = _merge_GlyphOrders(merger.font,