Skip to content

Commit

Permalink
This is the last time I fix binhex. If it breaks again it goes in the…
Browse files Browse the repository at this point in the history
… dustbin.
  • Loading branch information
gvanrossum committed May 24, 2007
1 parent 5c2fab6 commit 34a042d
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions Lib/binhex.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def getfileinfo(name):
finfo = FSSpec(name).FSpGetFInfo()
dir, file = os.path.split(name)
# XXX Get resource/data sizes
fp = open(name, 'rb')
fp = io.open(name, 'rb')
fp.seek(0, 2)
dlen = fp.tell()
fp = openrf(name, '*rb')
Expand Down Expand Up @@ -172,11 +172,11 @@ def __init__(self, name_finfo_dlen_rlen, ofp):
name, finfo, dlen, rlen = name_finfo_dlen_rlen
if isinstance(ofp, basestring):
ofname = ofp
ofp = open(ofname, 'w')
ofp = io.open(ofname, 'wb')
if os.name == 'mac':
fss = FSSpec(ofname)
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)
self.ofp = _Rlecoderengine(hqxer)
self.crc = 0
Expand Down Expand Up @@ -253,7 +253,7 @@ def binhex(inp, out):
finfo = getfileinfo(inp)
ofp = BinHex(finfo, out)

ifp = open(inp, 'rb')
ifp = io.open(inp, 'rb')
# XXXX Do textfile translation on non-mac systems
while 1:
d = ifp.read(128000)
Expand Down Expand Up @@ -371,7 +371,7 @@ def close(self):
class HexBin:
def __init__(self, ifp):
if isinstance(ifp, basestring):
ifp = open(ifp)
ifp = io.open(ifp, 'rb')
#
# Find initial colon.
#
Expand All @@ -381,12 +381,10 @@ def __init__(self, ifp):
raise Error, "No binhex data found"
# Cater for \r\n terminated lines (which show up as \n\r, hence
# all lines start with \r)
if ch == '\r':
if ch == b'\r':
continue
if ch == ':':
if ch == b':':
break
if ch != '\n':
dummy = ifp.readline()

hqxifp = _Hqxdecoderengine(ifp)
self.ifp = _Rledecoderengine(hqxifp)
Expand Down Expand Up @@ -480,7 +478,7 @@ def hexbin(inp, out):
ofss = FSSpec(out)
out = ofss.as_pathname()

ofp = open(out, 'wb')
ofp = io.open(out, 'wb')
# XXXX Do translation on non-mac systems
while 1:
d = ifp.read(128000)
Expand Down

0 comments on commit 34a042d

Please sign in to comment.