diff --git a/Lib/fontTools/ttLib/tables/otData.py b/Lib/fontTools/ttLib/tables/otData.py index 89358e6da..05a5c834f 100644 --- a/Lib/fontTools/ttLib/tables/otData.py +++ b/Lib/fontTools/ttLib/tables/otData.py @@ -1,7 +1,7 @@ otData = [ # - # common (generated from chapter2.htm) + # common # ('ScriptList', [ @@ -106,7 +106,7 @@ otData = [ # - # gpos (generated from gpos.htm) + # gpos # ('GPOS', [ @@ -406,7 +406,7 @@ otData = [ # - # gsub (generated from gsub.htm) + # gsub # ('GSUB', [ @@ -602,7 +602,7 @@ otData = [ ]), # - # gdef (generated from gdef.htm) + # gdef # ('GDEF', [ @@ -653,7 +653,7 @@ otData = [ # - # base (generated from base.htm) + # base # ('BASE', [ @@ -733,7 +733,7 @@ otData = [ # - # jstf (generated from jstf.htm) + # jstf # ('JSTF', [ diff --git a/MetaTools/build_otData.py b/MetaTools/build_otData.py deleted file mode 100755 index a58c677e1..000000000 --- a/MetaTools/build_otData.py +++ /dev/null @@ -1,158 +0,0 @@ -#! /usr/bin/env python - - -"""This script builds the Lib/fontTools/ttLib/tables/otData.py file -from the OpenType HTML documentation. However, it depends on a slightly -patched version the the HTML, as there are some inconsistencies in the -markup and the naming of certain fields. See doco.diff for differences, -but this is probably against a slightly older version of the documentation -than what is currently online. The documentation was taken from this URL: - http://www.microsoft.com/typography/otspec/default.htm -""" - - -from sgmllib import SGMLParser - - -class HTMLParser(SGMLParser): - - def __init__(self): - SGMLParser.__init__(self) - self.data = None - self.currenttable = None - self.lastcaption = None - - def handle_data(self, data): - if self.data is not None: - self.data.append(data) - - def start_i(self, attrs): - if self.currenttable is None: - self.data = [] - def end_i(self): - if self.currenttable is None: - self.lastcaption = " ".join(self.data) - self.data = None - - def start_b(self, attrs): - if self.currenttable is None: - self.data = [] - def end_b(self): - if self.currenttable is None: - self.lastcaption = " ".join(self.data) - self.data = None - - def start_table(self, attrs): - attrs = dict(attrs) - if attrs.get('width') in ('455', '460'): - #print "---", attrs - self.currenttable = [] - else: - self.currenttable = None - def end_table(self): - if self.currenttable is not None and self.lastcaption is not None: - if self.currenttable[0] == ['Type', 'Name', 'Description'] or \ - self.currenttable[0] == ['Value', 'Type', 'Description']: - caption = self.lastcaption.split() - name = caption[0] - if name == "LookupType" or name == "LookupFlag": - self.currenttable = None - return - elif name == "Device": - if "Tables" in caption: - # XXX skip this one - self.currenttable = None - return - buildTable(name, self.currenttable[1:], self.lastcaption) - self.currenttable = None - - def start_tr(self, attrs): - if self.currenttable is not None: - self.currenttable.append([]) - def end_tr(self): - pass - - def start_td(self, attrs): - self.data = [] - def end_td(self): - if self.currenttable is not None and self.data is not None: - self.currenttable[-1].append(" ".join(self.data)) - self.data = None - - -globalDups = {} -localDups = {} -not3 = [] - -def buildTable(name, table, caption): - if globalDups.has_key(name): - globalDups[name].append(caption) - else: - globalDups[name] = [caption] - print "\t(%s, [" % repr(name) - allFields = {} - for row in table: - row = [" ".join(x.split()) for x in row] - if len(row) <> 3: - not3.append(row) - row = makeRow(row) - fieldName = row[1] - if allFields.has_key(fieldName): - key = (name, fieldName) - localDups[key] = 1 - allFields[fieldName] = 1 - print "\t\t%s," % (tuple(row),) - print "\t])," - print - - -def makeRow(rawRow): - tp, name = rawRow[:2] - name = name.strip() - rest = tuple(rawRow[2:]) - if '[' in name: - name, repeat = name.split("[") - name = name.strip() - assert repeat[-1] == "]" - repeat = repeat[:-1].split() - if repeat[1:]: - repeatOffset = int("".join(repeat[1:])) - else: - repeatOffset = 0 - if not repeat: - repeat = "" - else: - repeat = repeat[0] - else: - repeat = None - repeatOffset = None - row = (tp, name, repeat, repeatOffset) + rest - return row - - -if __name__ == "__main__": - import sys, os - if "-" not in sys.argv: - sys.stdout = open("otData.py", "w") - print "otData = [" - for file in ["chapter2.htm", "gpos.htm", "gsub.htm", "gdef.htm", "base.htm", "jstf.htm"]: - name = os.path.splitext(file)[0] - if name == "chapter2": - name = "common" - print - print "\t#" - print "\t# %s (generated from %s)" % (name, file) - print "\t#" - print - p = HTMLParser() - p.feed(open(file).read()) - p.close() - print "]" - print - for k, v in globalDups.items(): - if len(v) > 1: - print "# XXX duplicate table name:", k, v - for (name, fieldName), v in localDups.items(): - print "# XXX duplicate field name '%s' in table '%s'" % (fieldName, name) - for n in not3: - print "#XXX", not3 diff --git a/MetaTools/doco.diff b/MetaTools/doco.diff deleted file mode 100644 index 007ec28fa..000000000 --- a/MetaTools/doco.diff +++ /dev/null @@ -1,108 +0,0 @@ ---- htmlorig/gpos.htm Fri Apr 5 23:55:58 2002 -+++ htmlbak/gpos.htm Tue May 7 09:53:30 2002 -@@ -270,7 +270,7 @@ - -
Example 2 at the end of this chapter shows a SinglePosFormat1 subtable used to adjust the placement of subscript glyphs. - --
SinglePosFormat1 subtable: Single positioning value -+
SinglePosFormat1 subtable: Single positioning value -
- -
uint16 | -PairSetCount | -Number of PairSet tables |
ValueRecord | --PairSet [Offset] |
-+|
Offset | -+PairSet [PairSetCount] |
- Array of offsets to PairSet tables-from beginning of PairPos subtable-ordered by Coverage Index |
Example 9
at the end of this chapter substitutes swash glyphs for two out of three glyphs in a sequence. - --
ChainContextSubstFormat3 subtable: Coverage-based context glyph substitution
-+
ContextSubstFormat3 subtable: Coverage-based context glyph substitution
- -
LookaheadGlyphCount | -Total number of glyphs in the look ahead sequence (number of glyphs to be matched after the input sequence) | ||
GlyphID | --LookAhead [LookAheadGlyphCount] |
-+Lookahead [LookAheadGlyphCount] |
- Array of lookahead GlyphID's (to be matched after the input sequence) |
uint16 | -SubstCount | -@@ -1023,19 +1023,19 @@ -BacktrackGlyphCount | -Number of glyphs in the backtracking sequence |
Offset | --Coverage[BacktrackGlyphCount] | -+BacktrackCoverage[BacktrackGlyphCount] | -Array of offsets to coverage tables in backtracking sequence, in glyph sequence order |
uint16 | -InputGlyphCount | -Number of glyphs in input sequence | |
Offset | --Coverage[InputGlyphCount] | -+InputCoverage[InputGlyphCount] | -Array of offsets to coverage tables in input sequence, in glyph sequence order |
uint16 | -LookaheadGlyphCount | -Number of glyphs in lookahead sequence | |
Offset | --Coverage[LookaheadGlyphCount] | -+LookaheadCoverage[LookaheadGlyphCount] | -Array of offsets to coverage tables in lookahead sequence, in glyph sequence order |
uint16 | -SubstCount |