improved support for writing to (in memory) streams

git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@119 4cde692c-a291-49d1-8350-778aa11640f8
This commit is contained in:
Just 2000-10-02 07:51:42 +00:00
parent fdea99d265
commit 0f675860ce
2 changed files with 9 additions and 6 deletions

View File

@ -42,7 +42,7 @@ Dumping 'prep' table...
""" """
# #
# $Id: __init__.py,v 1.15 2000-08-23 12:31:52 Just Exp $ # $Id: __init__.py,v 1.16 2000-10-02 07:51:42 Just Exp $
# #
__version__ = "1.0a6" __version__ = "1.0a6"
@ -138,8 +138,9 @@ class TTFont:
On the Mac, if makeSuitcase is true, a suitcase (resource fork) On the Mac, if makeSuitcase is true, a suitcase (resource fork)
file will we made instead of a flat .ttf file. file will we made instead of a flat .ttf file.
""" """
import sfnt from fontTools.ttLib import sfnt
if type(file) == types.StringType: if type(file) == types.StringType:
closeStream = 1
if os.name == "mac" and makeSuitcase: if os.name == "mac" and makeSuitcase:
import macUtils import macUtils
file = macUtils.SFNTResourceWriter(file, self) file = macUtils.SFNTResourceWriter(file, self)
@ -150,7 +151,8 @@ class TTFont:
fss = macfs.FSSpec(file.name) fss = macfs.FSSpec(file.name)
fss.SetCreatorType('mdos', 'BINA') fss.SetCreatorType('mdos', 'BINA')
else: else:
pass # assume "file" is a writable file object # assume "file" is a writable file object
closeStream = 0
tags = self.keys() tags = self.keys()
numTables = len(tags) numTables = len(tags)
@ -160,7 +162,7 @@ class TTFont:
for tag in tags: for tag in tags:
self._writeTable(tag, writer, done) self._writeTable(tag, writer, done)
writer.close() writer.close(closeStream)
def saveXML(self, fileOrPath, progress=None, def saveXML(self, fileOrPath, progress=None,
tables=None, skipTables=None, splitTables=0, disassembleInstructions=1): tables=None, skipTables=None, splitTables=0, disassembleInstructions=1):

View File

@ -105,7 +105,7 @@ class SFNTWriter:
entry.checkSum = calcchecksum(data) entry.checkSum = calcchecksum(data)
self.tables[tag] = entry self.tables[tag] = entry
def close(self): def close(self, closeStream=1):
"""All tables must have been written to disk. Now write the """All tables must have been written to disk. Now write the
directory. directory.
""" """
@ -123,7 +123,8 @@ class SFNTWriter:
self.calcmasterchecksum(directory) self.calcmasterchecksum(directory)
self.file.seek(0) self.file.seek(0)
self.file.write(directory) self.file.write(directory)
self.file.close() if closeStream:
self.file.close()
def calcmasterchecksum(self, directory): def calcmasterchecksum(self, directory):
# calculate checkSumAdjustment # calculate checkSumAdjustment