[Python-3000-checkins] r55565 - python/branches/py3k-struni/Lib/binhex.py

guido.van.rossum python-3000-checkins at python.org
Fri May 25 00:05:20 CEST 2007


Author: guido.van.rossum
Date: Fri May 25 00:05:19 2007
New Revision: 55565

Modified:
   python/branches/py3k-struni/Lib/binhex.py
Log:
This is the last time I fix binhex.  If it breaks again it goes in the dustbin.


Modified: python/branches/py3k-struni/Lib/binhex.py
==============================================================================
--- python/branches/py3k-struni/Lib/binhex.py	(original)
+++ python/branches/py3k-struni/Lib/binhex.py	Fri May 25 00:05:19 2007
@@ -53,7 +53,7 @@
         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')
@@ -172,11 +172,11 @@
         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
@@ -253,7 +253,7 @@
     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)
@@ -371,7 +371,7 @@
 class HexBin:
     def __init__(self, ifp):
         if isinstance(ifp, basestring):
-            ifp = open(ifp)
+            ifp = io.open(ifp, 'rb')
         #
         # Find initial colon.
         #
@@ -381,12 +381,10 @@
                 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)
@@ -480,7 +478,7 @@
         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)


More information about the Python-3000-checkins mailing list