diff options
-rw-r--r-- | Lib/gzip.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/Lib/gzip.py b/Lib/gzip.py index fda1121..e25464c 100644 --- a/Lib/gzip.py +++ b/Lib/gzip.py @@ -174,7 +174,8 @@ class GzipFile: self._read(readsize) readsize = readsize * 2 except EOFError: - pass + if size > self.extrasize: + size = self.extrasize chunk = self.extrabuf[:size] self.extrabuf = self.extrabuf[size:] @@ -184,7 +185,7 @@ class GzipFile: def _unread(self, buf): self.extrabuf = buf + self.extrabuf - self.extrasize = len(self.extrabuf) + self.extrasize = len(buf) + self.extrasize def _read(self, size=1024): try: @@ -257,7 +258,12 @@ class GzipFile: def readlines(self): buf = self.read() - return string.split(buf, '\n') + lines = string.split(buf, '\n') + for i in range(len(lines)-1): + lines[i] = lines[i] + '\n' + if lines and not lines[-1]: + del lines[-1] + return lines def writelines(self, L): for line in L: |