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"
@ -138,8 +138,9 @@ class TTFont:
On the Mac, if makeSuitcase is true, a suitcase (resource fork)
file will we made instead of a flat .ttf file.
"""
import sfnt
from fontTools.ttLib import sfnt
if type(file) == types.StringType:
closeStream = 1
if os.name == "mac" and makeSuitcase:
import macUtils
file = macUtils.SFNTResourceWriter(file, self)
@ -150,7 +151,8 @@ class TTFont:
fss = macfs.FSSpec(file.name)
fss.SetCreatorType('mdos', 'BINA')
else:
pass # assume "file" is a writable file object
# assume "file" is a writable file object
closeStream = 0
tags = self.keys()
numTables = len(tags)
@ -160,7 +162,7 @@ class TTFont:
for tag in tags:
self._writeTable(tag, writer, done)
writer.close()
writer.close(closeStream)
def saveXML(self, fileOrPath, progress=None,
tables=None, skipTables=None, splitTables=0, disassembleInstructions=1):

View File

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