]> granicus.if.org Git - python/commitdiff
Fix bug reported by Harri Pasanen: gzip + cPickle doesn't work. The
authorJeremy Hylton <jeremy@alum.mit.edu>
Wed, 13 May 1998 21:49:58 +0000 (21:49 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Wed, 13 May 1998 21:49:58 +0000 (21:49 +0000)
problem was a couple of bugs in the readline implementation.

1. Include the '\n' in the string returned by readline
2. Bug calculating new buffer size in _unread

Also remove unncessary import of StringIO

Lib/gzip.py

index 9c5ff0c6f3b583dc1c753a2bcc0e1f07a9cd1f17..fda112180a710d6a761a00c26293d01c3f462039 100644 (file)
@@ -1,7 +1,6 @@
 import time
 import string
 import zlib
-import StringIO
 import __builtin__
 
 # implements a python function that reads and writes a gzipped file
@@ -157,7 +156,7 @@ class GzipFile:
     def writelines(self,lines):
         self.write(string.join(lines))
 
-    def read(self,size=None):
+    def read(self, size=None):
         if self.extrasize <= 0 and self.fileobj is None:
             return ''
 
@@ -185,7 +184,7 @@ class GzipFile:
 
     def _unread(self, buf):
         self.extrabuf = buf + self.extrabuf
-        self.extrasize = len(buf) + self.extrasize
+        self.extrasize = len(self.extrabuf)
 
     def _read(self, size=1024):
         try:
@@ -250,7 +249,7 @@ class GzipFile:
             c = self.read(readsize)
             i = string.find(c, '\n')
             if i >= 0 or c == '':
-                bufs.append(c[:i])
+                bufs.append(c[:i+1])
                 self._unread(c[i+1:])
                 return string.join(bufs, '')
             bufs.append(c)