summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2004-12-20 23:51:53 (GMT)
committerRaymond Hettinger <python@rcn.com>2004-12-20 23:51:53 (GMT)
commit6065d3232520b52f5196c31738dcbfb355ee9a4c (patch)
tree0edcc1c71bd514598c29e95f69304c0874f4d76f
parent2ccea1785603ad35a05f75f40e9dc7fc82caa346 (diff)
downloadcpython-6065d3232520b52f5196c31738dcbfb355ee9a4c.zip
cpython-6065d3232520b52f5196c31738dcbfb355ee9a4c.tar.gz
cpython-6065d3232520b52f5196c31738dcbfb355ee9a4c.tar.bz2
SF bug #951915: fix bug in StringIO.truncate - length not changed
(Patch by Armin Rigo.)
-rw-r--r--Lib/StringIO.py6
-rw-r--r--Misc/NEWS3
2 files changed, 9 insertions, 0 deletions
diff --git a/Lib/StringIO.py b/Lib/StringIO.py
index 1dfc8b4..5c463fb 100644
--- a/Lib/StringIO.py
+++ b/Lib/StringIO.py
@@ -204,6 +204,7 @@ class StringIO:
elif size < self.pos:
self.pos = size
self.buf = self.getvalue()[:size]
+ self.len = size
def write(self, s):
"""Write a string to the file.
@@ -312,6 +313,11 @@ def test():
print 'File length =', f.tell()
if f.tell() != length:
raise RuntimeError, 'bad length'
+ f.truncate(length/2)
+ f.seek(0, 2)
+ print 'Truncated length =', f.tell()
+ if f.tell() != length/2:
+ raise RuntimeError, 'truncate did not adjust length'
f.close()
if __name__ == '__main__':
diff --git a/Misc/NEWS b/Misc/NEWS
index 570adda..ad0518b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -30,6 +30,9 @@ Extension Modules
Library
-------
+- StringIO.truncate() now correctly adjusts the size attribute.
+ (Bug #951915).
+
- locale.py now uses an updated locale alias table (built using
Tools/i18n/makelocalealias.py, a tool to parse the X11 locale
alias file); the encoding lookup was enhanced to use Python's