the uncompress buffer and read() goes through more than one readbuffer.
This is partial backport of changeset
028e8e0b03e8.
"""Returns buffered bytes without advancing the position."""
if n > len(self._readbuffer) - self._offset:
chunk = self.read(n)
- self._offset -= len(chunk)
+ if len(chunk) > self._offset:
+ self._readbuffer = chunk + self._readbuffer[self._offset:]
+ self._offset = 0
+ else:
+ self._offset -= len(chunk)
# Return up to 512 bytes to reduce allocation overhead for tight loops.
return self._readbuffer[self._offset: self._offset + 512]
Library
-------
+- Issue #20048: Fixed ZipExtFile.peek() when it is called on the boundary of
+ the uncompress buffer and read() goes through more than one readbuffer.
+
- Issue #20034: Updated alias mapping to most recent locale.alias file
from X.org distribution using makelocalealias.py.