This is the last time I fix binhex. If it breaks again it goes in the dustbin.
This commit is contained in:
parent
5c2fab6e23
commit
34a042d301
|
@ -53,7 +53,7 @@ try:
|
||||||
finfo = FSSpec(name).FSpGetFInfo()
|
finfo = FSSpec(name).FSpGetFInfo()
|
||||||
dir, file = os.path.split(name)
|
dir, file = os.path.split(name)
|
||||||
# XXX Get resource/data sizes
|
# XXX Get resource/data sizes
|
||||||
fp = open(name, 'rb')
|
fp = io.open(name, 'rb')
|
||||||
fp.seek(0, 2)
|
fp.seek(0, 2)
|
||||||
dlen = fp.tell()
|
dlen = fp.tell()
|
||||||
fp = openrf(name, '*rb')
|
fp = openrf(name, '*rb')
|
||||||
|
@ -172,11 +172,11 @@ class BinHex:
|
||||||
name, finfo, dlen, rlen = name_finfo_dlen_rlen
|
name, finfo, dlen, rlen = name_finfo_dlen_rlen
|
||||||
if isinstance(ofp, basestring):
|
if isinstance(ofp, basestring):
|
||||||
ofname = ofp
|
ofname = ofp
|
||||||
ofp = open(ofname, 'w')
|
ofp = io.open(ofname, 'wb')
|
||||||
if os.name == 'mac':
|
if os.name == 'mac':
|
||||||
fss = FSSpec(ofname)
|
fss = FSSpec(ofname)
|
||||||
fss.SetCreatorType('BnHq', 'TEXT')
|
fss.SetCreatorType('BnHq', 'TEXT')
|
||||||
ofp.write('(This file must be converted with BinHex 4.0)\n\n:')
|
ofp.write(b'(This file must be converted with BinHex 4.0)\r\r:')
|
||||||
hqxer = _Hqxcoderengine(ofp)
|
hqxer = _Hqxcoderengine(ofp)
|
||||||
self.ofp = _Rlecoderengine(hqxer)
|
self.ofp = _Rlecoderengine(hqxer)
|
||||||
self.crc = 0
|
self.crc = 0
|
||||||
|
@ -253,7 +253,7 @@ def binhex(inp, out):
|
||||||
finfo = getfileinfo(inp)
|
finfo = getfileinfo(inp)
|
||||||
ofp = BinHex(finfo, out)
|
ofp = BinHex(finfo, out)
|
||||||
|
|
||||||
ifp = open(inp, 'rb')
|
ifp = io.open(inp, 'rb')
|
||||||
# XXXX Do textfile translation on non-mac systems
|
# XXXX Do textfile translation on non-mac systems
|
||||||
while 1:
|
while 1:
|
||||||
d = ifp.read(128000)
|
d = ifp.read(128000)
|
||||||
|
@ -371,7 +371,7 @@ class _Rledecoderengine:
|
||||||
class HexBin:
|
class HexBin:
|
||||||
def __init__(self, ifp):
|
def __init__(self, ifp):
|
||||||
if isinstance(ifp, basestring):
|
if isinstance(ifp, basestring):
|
||||||
ifp = open(ifp)
|
ifp = io.open(ifp, 'rb')
|
||||||
#
|
#
|
||||||
# Find initial colon.
|
# Find initial colon.
|
||||||
#
|
#
|
||||||
|
@ -381,12 +381,10 @@ class HexBin:
|
||||||
raise Error, "No binhex data found"
|
raise Error, "No binhex data found"
|
||||||
# Cater for \r\n terminated lines (which show up as \n\r, hence
|
# Cater for \r\n terminated lines (which show up as \n\r, hence
|
||||||
# all lines start with \r)
|
# all lines start with \r)
|
||||||
if ch == '\r':
|
if ch == b'\r':
|
||||||
continue
|
continue
|
||||||
if ch == ':':
|
if ch == b':':
|
||||||
break
|
break
|
||||||
if ch != '\n':
|
|
||||||
dummy = ifp.readline()
|
|
||||||
|
|
||||||
hqxifp = _Hqxdecoderengine(ifp)
|
hqxifp = _Hqxdecoderengine(ifp)
|
||||||
self.ifp = _Rledecoderengine(hqxifp)
|
self.ifp = _Rledecoderengine(hqxifp)
|
||||||
|
@ -480,7 +478,7 @@ def hexbin(inp, out):
|
||||||
ofss = FSSpec(out)
|
ofss = FSSpec(out)
|
||||||
out = ofss.as_pathname()
|
out = ofss.as_pathname()
|
||||||
|
|
||||||
ofp = open(out, 'wb')
|
ofp = io.open(out, 'wb')
|
||||||
# XXXX Do translation on non-mac systems
|
# XXXX Do translation on non-mac systems
|
||||||
while 1:
|
while 1:
|
||||||
d = ifp.read(128000)
|
d = ifp.read(128000)
|
||||||
|
|
Loading…
Reference in New Issue