From 4d315892af7fa92ab0526d23b434a948630f3a03 Mon Sep 17 00:00:00 2001 From: Masaya Nakamura Date: Thu, 16 Feb 2017 10:57:56 +0900 Subject: [PATCH] [subset] Set the correct glyph width for blank .notdef `font.FDSelect[i]` returns a GID, not an index of `font.FDArray`. Before this commit `.notdef` might have wrong glyph width in CharStrings, if its fdSelectIndex is not 0 in the input font. --- Lib/fontTools/subset/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/fontTools/subset/__init__.py b/Lib/fontTools/subset/__init__.py index b2aac6c05..e02e3f6b8 100644 --- a/Lib/fontTools/subset/__init__.py +++ b/Lib/fontTools/subset/__init__.py @@ -1844,9 +1844,9 @@ def prune_pre_subset(self, font, options): if options.notdef_glyph and not options.notdef_outline: for fontname in cff.keys(): font = cff[fontname] - c,sel = font.CharStrings.getItemAndSelector('.notdef') + c, fdSelectIndex = font.CharStrings.getItemAndSelector('.notdef') if hasattr(font, 'FDArray') and font.FDArray is not None: - private = font.FDArray[font.FDSelect[sel]].Private + private = font.FDArray[fdSelectIndex].Private else: private = font.Private dfltWdX = private.defaultWidthX