Author: Brian Kearns <bdkea...@gmail.com> Branch: Changeset: r61175:0fa3dc324460 Date: 2013-02-13 06:22 -0500 http://bitbucket.org/pypy/pypy/changeset/0fa3dc324460/
Log: revert this _io change, not worth differing from cpython diff --git a/pypy/module/_io/interp_bufferedio.py b/pypy/module/_io/interp_bufferedio.py --- a/pypy/module/_io/interp_bufferedio.py +++ b/pypy/module/_io/interp_bufferedio.py @@ -260,7 +260,7 @@ raise operationerrfmt(space.w_ValueError, "whence must be between 0 and 2, not %d", whence) self._check_closed(space, "seek of closed file") - if whence != 2 and self.readable and self.read_end != -1: + if whence != 2 and self.readable: # Check if seeking leaves us inside the current buffer, so as to # return quickly if possible. Also, we needn't take the lock in # this fast path. @@ -268,15 +268,16 @@ self._raw_tell(space) current = self.abs_pos available = self._readahead() - if whence == 0: - offset = pos - (current - self._raw_offset()) - else: - offset = pos - if -self.pos <= offset <= available: - newpos = self.pos + offset - assert newpos >= 0 - self.pos = newpos - return space.wrap(current - available + offset) + if available > 0: + if whence == 0: + offset = pos - (current - self._raw_offset()) + else: + offset = pos + if -self.pos <= offset <= available: + newpos = self.pos + offset + assert newpos >= 0 + self.pos = newpos + return space.wrap(current - available + offset) # Fallback: invoke raw seek() method and clear buffer with self.lock: diff --git a/pypy/module/_io/test/test_bufferedio.py b/pypy/module/_io/test/test_bufferedio.py --- a/pypy/module/_io/test/test_bufferedio.py +++ b/pypy/module/_io/test/test_bufferedio.py @@ -153,19 +153,6 @@ assert f.read() == "\nc" f.close() - def test_seek_nocall(self): - # test that when we're at the end of the buffer, - # an in-buffer back seek doesn't produce a raw seek - import _io - raw = _io.FileIO(self.tmpfile) - f = _io.BufferedReader(raw, buffer_size=3) - f.read(1) - f.seek(3, 0) - def failing_seek(*args): - assert False - raw.seek = failing_seek - f.seek(-1, 1) - def test_readlines(self): import _io raw = _io.FileIO(self.tmpfile) @@ -604,7 +591,7 @@ expected[j] = 2 expected[i] = 1 assert raw.getvalue() == str(expected) - + def test_interleaved_read_write(self): import _io as io # Test for issue #12213 _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit