diff options
-rw-r--r-- | Lib/test/test_StringIO.py | 3 | ||||
-rw-r--r-- | Misc/NEWS | 7 | ||||
-rw-r--r-- | Modules/cStringIO.c | 1 |
3 files changed, 9 insertions, 2 deletions
diff --git a/Lib/test/test_StringIO.py b/Lib/test/test_StringIO.py index c318eaa..6842c5e 100644 --- a/Lib/test/test_StringIO.py +++ b/Lib/test/test_StringIO.py @@ -49,9 +49,10 @@ class TestGenericStringIO(unittest.TestCase): f.seek(10) f.truncate() eq(f.getvalue(), 'abcdefghij') - f.seek(0) f.truncate(5) eq(f.getvalue(), 'abcde') + f.write('xyz') + eq(f.getvalue(), 'abcdexyz') f.close() self.assertRaises(ValueError, f.write, 'frobnitz') @@ -41,6 +41,11 @@ Core and builtins Extension modules ----------------- +- Patch 1012740: truncate() on a writeable cStringIO now resets the + position to the end of the stream. This is consistent with the original + StringIO module and avoids inadvertently resurrecting data that was + supposed to have been truncated away. + - Added socket.socketpair(). Library @@ -59,7 +64,7 @@ Library - A new function tkFont.nametofont was added to return an existing font. The Font class constructor now has an additional exists argument which, if True, requests to return/configure an existing font, rather - than creating a new one. + than creating a new one. - Updated the decimal package's min() and max() methods to match the latest revision of the General Decimal Arithmetic Specification. diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c index 7e75879..b7333fd 100644 --- a/Modules/cStringIO.c +++ b/Modules/cStringIO.c @@ -289,6 +289,7 @@ IO_truncate(IOobject *self, PyObject *args) { if (pos < 0) pos = self->pos; if (self->string_size > pos) self->string_size = pos; + self->pos = self->string_size; Py_INCREF(Py_None); return Py_None; |