py23 Add bytesjoin()
diff --git a/Lib/fontTools/ttLib/tables/_c_m_a_p.py b/Lib/fontTools/ttLib/tables/_c_m_a_p.py
index 224b346..44473be 100644
--- a/Lib/fontTools/ttLib/tables/_c_m_a_p.py
+++ b/Lib/fontTools/ttLib/tables/_c_m_a_p.py
@@ -56,7 +56,7 @@
numSubTables = len(self.tables)
totalOffset = 4 + 8 * numSubTables
data = struct.pack(">HH", self.tableVersion, numSubTables)
- tableData = ""
+ tableData = b""
seen = {} # Some tables are the same object reference. Don't compile them twice.
done = {} # Some tables are different objects, but compile to the same data chunk
for table in self.tables:
diff --git a/Lib/fontTools/ttLib/tables/_g_l_y_f.py b/Lib/fontTools/ttLib/tables/_g_l_y_f.py
index 2be2974..06b12e4 100644
--- a/Lib/fontTools/ttLib/tables/_g_l_y_f.py
+++ b/Lib/fontTools/ttLib/tables/_g_l_y_f.py
@@ -70,7 +70,7 @@
currentLocation = currentLocation + len(glyphData)
dataList.append(glyphData)
locations.append(currentLocation)
- data = ''.join(dataList)
+ data = bytesjoin(dataList)
if 'loca' in ttFont:
ttFont['loca'].set(locations)
ttFont['maxp'].numGlyphs = len(self.glyphs)
diff --git a/Lib/fontTools/ttLib/tables/_h_e_a_d.py b/Lib/fontTools/ttLib/tables/_h_e_a_d.py
index 0d150b6..182f328 100644
--- a/Lib/fontTools/ttLib/tables/_h_e_a_d.py
+++ b/Lib/fontTools/ttLib/tables/_h_e_a_d.py
@@ -127,11 +127,11 @@
def long2bin(v, bytes=8):
mask = int("FF" * bytes, 16)
- data = ""
+ data = b""
while v:
data = bytechr(v & 0xff) + data
v = (v >> 8) & mask
- data = (bytes - len(data)) * "\0" + data
+ data = (bytes - len(data)) * b"\0" + data
assert len(data) == 8, "long too long"
return data
diff --git a/Lib/fontTools/ttLib/tables/_n_a_m_e.py b/Lib/fontTools/ttLib/tables/_n_a_m_e.py
index 3584bfc..36f1f4a 100644
--- a/Lib/fontTools/ttLib/tables/_n_a_m_e.py
+++ b/Lib/fontTools/ttLib/tables/_n_a_m_e.py
@@ -49,7 +49,7 @@
# from the TTX file
self.names = []
self.names.sort() # sort according to the spec; see NameRecord.__lt__()
- stringData = ""
+ stringData = b""
format = 0
n = len(self.names)
stringOffset = 6 + n * sstruct.calcsize(nameRecordFormat)
diff --git a/Lib/fontTools/ttLib/tables/otBase.py b/Lib/fontTools/ttLib/tables/otBase.py
index d43f156..72cbb3b 100644
--- a/Lib/fontTools/ttLib/tables/otBase.py
+++ b/Lib/fontTools/ttLib/tables/otBase.py
@@ -213,7 +213,7 @@
tableData = table.getData()
data.append(tableData)
- return "".join(data)
+ return bytesjoin(data)
def getDataLength(self):
"""Return the length of this table in bytes, without subtables."""
@@ -281,7 +281,7 @@
raise OTLOffsetOverflowError(overflowErrorRecord)
- return "".join(items)
+ return bytesjoin(items)
def __hash__(self):
# only works after self._doneWriting() has been called