diff --git a/Lib/fontTools/merge/__init__.py b/Lib/fontTools/merge/__init__.py index fcc8a0dda..bbe330fa7 100644 --- a/Lib/fontTools/merge/__init__.py +++ b/Lib/fontTools/merge/__init__.py @@ -87,7 +87,7 @@ class Merger(object): if cffTable: # Rename CFF CharStrings to match the new glyphOrder. # Using cffTable from before reloading the fonts, because reasons. - self._renameCFFCharStrings(glyphOrder, cffTable) + renameCFFCharStrings(self, glyphOrder, cffTable) font['CFF '] = cffTable mega = ttLib.TTFont(sfntVersion=sfntVersion) @@ -129,15 +129,6 @@ class Merger(object): return mega - def _renameCFFCharStrings(self, glyphOrder, cffTable): - """Rename topDictIndex charStrings based on glyphOrder.""" - td = cffTable.cff.topDictIndex[0] - charStrings = {} - for i, v in enumerate(td.CharStrings.charStrings.values()): - glyphName = glyphOrder[i] - charStrings[glyphName] = v - cffTable.cff.topDictIndex[0].CharStrings.charStrings = charStrings - def mergeObjects(self, returnTable, logic, tables): # Right now we don't use self at all. Will use in the future # for options and logging. @@ -244,7 +235,6 @@ class Merger(object): markFilteringSetMap = NonhashableDict(GDEF.table.MarkGlyphSetsDef.Coverage) t.table.LookupList.mapMarkFilteringSets(markFilteringSetMap) - # TODO FeatureParams nameIDs diff --git a/Lib/fontTools/merge/cmap.py b/Lib/fontTools/merge/cmap.py index 69d6e01de..458b34b03 100644 --- a/Lib/fontTools/merge/cmap.py +++ b/Lib/fontTools/merge/cmap.py @@ -113,4 +113,3 @@ def computeMegaCmap(merger, tables): # TODO: Try harder to do something about these. log.warning("Dropped mapping from codepoint %#06X to glyphId '%s'", uni, gid) - diff --git a/Lib/fontTools/merge/util.py b/Lib/fontTools/merge/util.py index 202088361..7ddf51a15 100644 --- a/Lib/fontTools/merge/util.py +++ b/Lib/fontTools/merge/util.py @@ -194,3 +194,12 @@ class NonhashableDict(object): def __delitem__(self, k): del self.d[id(k)] + +def renameCFFCharStrings(merger, glyphOrder, cffTable): + """Rename topDictIndex charStrings based on glyphOrder.""" + td = cffTable.cff.topDictIndex[0] + charStrings = {} + for i, v in enumerate(td.CharStrings.charStrings.values()): + glyphName = glyphOrder[i] + charStrings[glyphName] = v + cffTable.cff.topDictIndex[0].CharStrings.charStrings = charStrings