From 9567112eb7af9e40f2d942ec73faa42b3182bf3f Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Sun, 13 Dec 2009 17:34:05 +0000 Subject: [PATCH] Merged revisions 76798-76799 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r76798 | benjamin.peterson | 2009-12-13 11:29:16 -0600 (Sun, 13 Dec 2009) | 1 line make StringIO like other file objects in that readline(-1) has no effect #7348 ........ r76799 | benjamin.peterson | 2009-12-13 11:31:31 -0600 (Sun, 13 Dec 2009) | 1 line add NEWS note ........ --- Lib/StringIO.py | 2 +- Lib/test/test_StringIO.py | 2 ++ Misc/NEWS | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Lib/StringIO.py b/Lib/StringIO.py index 232009fb93..300dd5a242 100644 --- a/Lib/StringIO.py +++ b/Lib/StringIO.py @@ -158,7 +158,7 @@ class StringIO: newpos = self.len else: newpos = i+1 - if length is not None: + if length is not None and length > 0: if self.pos + length < newpos: newpos = self.pos + length r = self.buf[self.pos:newpos] diff --git a/Lib/test/test_StringIO.py b/Lib/test/test_StringIO.py index 58cbec06f8..81f81e58ae 100644 --- a/Lib/test/test_StringIO.py +++ b/Lib/test/test_StringIO.py @@ -28,6 +28,8 @@ class TestGenericStringIO(unittest.TestCase): eq(self._fp.read(10), self._line[:10]) eq(self._fp.readline(), self._line[10:] + '\n') eq(len(self._fp.readlines(60)), 2) + self._fp.seek(0) + eq(self._fp.readline(-1), self._line + '\n') def test_writes(self): f = self.MODULE.StringIO() diff --git a/Misc/NEWS b/Misc/NEWS index d9cb038f81..a933f62584 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -35,6 +35,9 @@ Core and Builtins Library ------- +- Issue #7348: StringIO.StringIO.readline(-1) now acts as if it got no argument + like other file objects. + - Issue #5949: fixed IMAP4_SSL hang when the IMAP server response is missing proper end-of-line termination. -- 2.50.1