From 1940dfbe0e98cc43b142b7e300999b0f98d40424 Mon Sep 17 00:00:00 2001 From: jvr Date: Fri, 10 May 2002 19:02:04 +0000 Subject: [PATCH] checking in last edits to the old OT support; this stuff will be replaced by brand new code soon. git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@205 4cde692c-a291-49d1-8350-778aa11640f8 --- Lib/fontTools/ttLib/tables/G_S_U_B_.py | 49 ++++++++++++++++++++++++-- Lib/fontTools/ttLib/tables/otCommon.py | 6 ++-- 2 files changed, 49 insertions(+), 6 deletions(-) diff --git a/Lib/fontTools/ttLib/tables/G_S_U_B_.py b/Lib/fontTools/ttLib/tables/G_S_U_B_.py index 515de918f..70e6eafd4 100644 --- a/Lib/fontTools/ttLib/tables/G_S_U_B_.py +++ b/Lib/fontTools/ttLib/tables/G_S_U_B_.py @@ -357,7 +357,13 @@ class ChainContextSubst: self.lookahead = otCommon.unpackCoverageArray(lookaheadCoverage) substCount = reader.readUShort() - self.substitutions = reader.readTableArray(substCount, SubstLookupRecord, otFont) + self.substitutions = [] + for i in range(substCount): + lookupRecord = SubstLookupRecord() + lookupRecord.decompile(reader, otFont) + self.substitutions.append(lookupRecord) + + # print "XXX", [len(x) for x in self.backtrack], self.substitutions def compile(self, writer, otFont): writer.writeUShort(self.format) @@ -391,10 +397,41 @@ class ChainContextSubst: writer.writeTableArray(lookahead, otFont) writer.writeUShort(len(self.substitutions)) - writer.writeTableArray(self.substitutions, otFont) + for lookupRecord in self.substitutions: + lookupRecord.compile(writer, otFont) def toXML(self, xmlWriter, otFont): - xmlWriter.comment("NotImplemented") + # XXXX this is for format 3?! + xmlWriter.begintag("Backtrack") + xmlWriter.newline() + for g in self.backtrack: + xmlWriter.simpletag("glyph", values=",".join(g)) + xmlWriter.newline() + xmlWriter.endtag("Backtrack") + xmlWriter.newline() + + xmlWriter.begintag("Input") + xmlWriter.newline() + for g in self.input: + xmlWriter.simpletag("glyph", values=",".join(g)) + xmlWriter.newline() + xmlWriter.endtag("Input") + xmlWriter.newline() + + xmlWriter.begintag("Lookahead") + xmlWriter.newline() + for g in self.lookahead: + xmlWriter.simpletag("glyph", values=",".join(g)) + xmlWriter.newline() + xmlWriter.endtag("Lookahead") + xmlWriter.newline() + + xmlWriter.begintag("Subst") + xmlWriter.newline() + for subst in self.substitutions: + subst.toXML(xmlWriter, otFont) + xmlWriter.newline() + xmlWriter.endtag("Subst") xmlWriter.newline() @@ -405,6 +442,7 @@ lookupTypeClasses = { 4: LigatureSubst, 5: ContextSubst, 6: ChainContextSubst, +# 7: ExtensionSubst, # ugh... } @@ -421,4 +459,9 @@ class SubstLookupRecord: def compile(self, writer, otFont): writer.writeUShort(self.sequenceIndex) writer.writeUShort(self.lookupListIndex) + + def toXML(self, xmlWriter, otFont): + xmlWriter.simpletag("SubstLookupRecord", + [('sequenceIndex', self.sequenceIndex), + ('lookupListIndex', self.lookupListIndex)]) diff --git a/Lib/fontTools/ttLib/tables/otCommon.py b/Lib/fontTools/ttLib/tables/otCommon.py index 187ce3319..be35be996 100644 --- a/Lib/fontTools/ttLib/tables/otCommon.py +++ b/Lib/fontTools/ttLib/tables/otCommon.py @@ -212,7 +212,9 @@ class LookupList: for i in range(len(self.lookup)): xmlWriter.newline() lookupTable = self.lookup[i] - xmlWriter.begintag("LookupTable", index=i) + xmlWriter.begintag("LookupTable", + [("index", i), ("LookupType", lookupTable.lookupType), + ("LookupFlag", hex(lookupTable.lookupFlag))]) xmlWriter.newline() lookupTable.toXML(xmlWriter, otFont) xmlWriter.endtag("LookupTable") @@ -249,8 +251,6 @@ class LookupTable: return "<%s LookupTable at %x>" % (self.lookupTypeName, id(self)) def toXML(self, xmlWriter, otFont): - xmlWriter.simpletag("LookupFlag", value=hex(self.lookupFlag)) - xmlWriter.newline() for subTable in self.subTables: name = subTable.__class__.__name__ xmlWriter.begintag(name)