aboutsummaryrefslogtreecommitdiff
path: root/Lib/fontTools/ttLib/tables/_l_t_a_g.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/fontTools/ttLib/tables/_l_t_a_g.py')
-rw-r--r--Lib/fontTools/ttLib/tables/_l_t_a_g.py113
1 files changed, 57 insertions, 56 deletions
diff --git a/Lib/fontTools/ttLib/tables/_l_t_a_g.py b/Lib/fontTools/ttLib/tables/_l_t_a_g.py
index ce3c6b97..24f5e131 100644
--- a/Lib/fontTools/ttLib/tables/_l_t_a_g.py
+++ b/Lib/fontTools/ttLib/tables/_l_t_a_g.py
@@ -4,60 +4,61 @@ import struct
# https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6ltag.html
+
class table__l_t_a_g(DefaultTable.DefaultTable):
- def __init__(self, tag=None):
- DefaultTable.DefaultTable.__init__(self, tag)
- self.version, self.flags = 1, 0
- self.tags = []
-
- def addTag(self, tag):
- """Add 'tag' to the list of langauge tags if not already there.
-
- Returns the integer index of 'tag' in the list of all tags.
- """
- try:
- return self.tags.index(tag)
- except ValueError:
- self.tags.append(tag)
- return len(self.tags) - 1
-
- def decompile(self, data, ttFont):
- self.version, self.flags, numTags = struct.unpack(">LLL", data[:12])
- assert self.version == 1
- self.tags = []
- for i in range(numTags):
- pos = 12 + i * 4
- offset, length = struct.unpack(">HH", data[pos:pos+4])
- tag = data[offset:offset+length].decode("ascii")
- self.tags.append(tag)
-
- def compile(self, ttFont):
- dataList = [struct.pack(">LLL", self.version, self.flags, len(self.tags))]
- stringPool = ""
- for tag in self.tags:
- offset = stringPool.find(tag)
- if offset < 0:
- offset = len(stringPool)
- stringPool = stringPool + tag
- offset = offset + 12 + len(self.tags) * 4
- dataList.append(struct.pack(">HH", offset, len(tag)))
- dataList.append(tobytes(stringPool))
- return bytesjoin(dataList)
-
- def toXML(self, writer, ttFont):
- writer.simpletag("version", value=self.version)
- writer.newline()
- writer.simpletag("flags", value=self.flags)
- writer.newline()
- for tag in self.tags:
- writer.simpletag("LanguageTag", tag=tag)
- writer.newline()
-
- def fromXML(self, name, attrs, content, ttFont):
- if not hasattr(self, "tags"):
- self.tags = []
- if name == "LanguageTag":
- self.tags.append(attrs["tag"])
- elif "value" in attrs:
- value = safeEval(attrs["value"])
- setattr(self, name, value)
+ def __init__(self, tag=None):
+ DefaultTable.DefaultTable.__init__(self, tag)
+ self.version, self.flags = 1, 0
+ self.tags = []
+
+ def addTag(self, tag):
+ """Add 'tag' to the list of langauge tags if not already there.
+
+ Returns the integer index of 'tag' in the list of all tags.
+ """
+ try:
+ return self.tags.index(tag)
+ except ValueError:
+ self.tags.append(tag)
+ return len(self.tags) - 1
+
+ def decompile(self, data, ttFont):
+ self.version, self.flags, numTags = struct.unpack(">LLL", data[:12])
+ assert self.version == 1
+ self.tags = []
+ for i in range(numTags):
+ pos = 12 + i * 4
+ offset, length = struct.unpack(">HH", data[pos : pos + 4])
+ tag = data[offset : offset + length].decode("ascii")
+ self.tags.append(tag)
+
+ def compile(self, ttFont):
+ dataList = [struct.pack(">LLL", self.version, self.flags, len(self.tags))]
+ stringPool = ""
+ for tag in self.tags:
+ offset = stringPool.find(tag)
+ if offset < 0:
+ offset = len(stringPool)
+ stringPool = stringPool + tag
+ offset = offset + 12 + len(self.tags) * 4
+ dataList.append(struct.pack(">HH", offset, len(tag)))
+ dataList.append(tobytes(stringPool))
+ return bytesjoin(dataList)
+
+ def toXML(self, writer, ttFont):
+ writer.simpletag("version", value=self.version)
+ writer.newline()
+ writer.simpletag("flags", value=self.flags)
+ writer.newline()
+ for tag in self.tags:
+ writer.simpletag("LanguageTag", tag=tag)
+ writer.newline()
+
+ def fromXML(self, name, attrs, content, ttFont):
+ if not hasattr(self, "tags"):
+ self.tags = []
+ if name == "LanguageTag":
+ self.tags.append(attrs["tag"])
+ elif "value" in attrs:
+ value = safeEval(attrs["value"])
+ setattr(self, name, value)