write(): Special case the common situation of a stream that's only
being used to dump output (no seeks), so we can avoid a lot
of extra checks being made.
diff --git a/Lib/StringIO.py b/Lib/StringIO.py
index 7c4b6c7..79ab7e1 100644
--- a/Lib/StringIO.py
+++ b/Lib/StringIO.py
@@ -152,6 +152,10 @@
# Force s to be a string or unicode
if not isinstance(s, basestring):
s = str(s)
+ if self.pos == self.len:
+ self.buflist.append(s)
+ self.len = self.pos = self.pos + len(s)
+ return
if self.pos > self.len:
self.buflist.append('\0'*(self.pos - self.len))
self.len = self.pos