[mtiLib] Port SinglePos to otlLib

This commit is contained in:
Behdad Esfahbod 2016-01-22 13:44:27 +01:00
parent 59ee0618d7
commit f8e3ea08fb

View File

@ -231,7 +231,7 @@ def parseLigature(lines, font, _lookupMap=None):
mapping[tuple(line[1:])] = line[0]
return builder.buildLigatureSubst(mapping)
def parseSinglePos(self, lines, font, _lookupMap=None):
def parseSinglePos(lines, font, _lookupMap=None):
values = {}
for line in lines:
assert len(line) == 3, line
@ -243,18 +243,7 @@ def parseSinglePos(self, lines, font, _lookupMap=None):
values[g] = ValueRecord()
assert not hasattr(values[g], w), (g, w)
setattr(values[g], w, v)
self.Coverage = makeCoverage(values.keys(), font)
values = [values[k] for k in self.Coverage.glyphs]
self.ValueFormat = 0
for v in values:
self.ValueFormat |= v.getFormat()
if all(v == values[0] for v in values):
self.Format = 1
self.Value = values[0]
else:
self.Format = 2
self.Value = values
self.ValueCount = len(self.Value)
return builder.buildSinglePosSubtable(values, font.getReverseGlyphMap())
def parsePair(self, lines, font, _lookupMap=None):
self.ValueFormat1 = self.ValueFormat2 = 0
@ -809,7 +798,7 @@ def parseLookup(lines, tableTag, font, lookupMap=None):
'reversechained':(8, parseReverseChainedSubst),
},
'GPOS': {
'single': (1, parseSinglePos),
'single': (0, parseSinglePos),
'pair': (2, parsePair),
'kernset': (2, parseKernset),
'cursive': (0, parseCursive),