Fix bug reported by Harri Pasanen: gzip + cPickle doesn't work. The

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
This commit is contained in:
Jeremy Hylton 1998-05-13 21:49:58 +00:00
parent ed7adcff73
commit ee918cb487
1 changed files with 3 additions and 4 deletions

View 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 @@ def write(self,data):
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 @@ def read(self,size=None):
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 @@ def readline(self):
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)