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
This commit is contained in:
jvr 2002-05-10 19:02:04 +00:00
parent 9f1e14bec9
commit 1940dfbe0e
2 changed files with 49 additions and 6 deletions

View File

@ -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...
}
@ -422,3 +460,8 @@ class SubstLookupRecord:
writer.writeUShort(self.sequenceIndex)
writer.writeUShort(self.lookupListIndex)
def toXML(self, xmlWriter, otFont):
xmlWriter.simpletag("SubstLookupRecord",
[('sequenceIndex', self.sequenceIndex),
('lookupListIndex', self.lookupListIndex)])

View File

@ -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)