Use local variables in StringIO.write().

Makes it easier on the eyes and a bit more snappy.
This commit is contained in:
Raymond Hettinger 2004-09-23 06:43:25 +00:00
parent 7ec642a4d2
commit 0336e1fe8c

View file

@ -215,21 +215,22 @@ def write(self, s):
# Force s to be a string or unicode
if not isinstance(s, basestring):
s = str(s)
if self.pos == self.len:
spos = self.pos
slen = self.len
if spos == slen:
self.buflist.append(s)
self.len = self.pos = self.pos + len(s)
self.len = self.pos = slen = spos = spos + len(s)
return
if self.pos > self.len:
self.buflist.append('\0'*(self.pos - self.len))
self.len = self.pos
newpos = self.pos + len(s)
if self.pos < self.len:
if spos > slen:
self.buflist.append('\0'*(spos - slen))
slen = spos
newpos = spos + len(s)
if spos < slen:
if self.buflist:
self.buf += ''.join(self.buflist)
self.buflist = []
self.buflist = [self.buf[:self.pos], s, self.buf[newpos:]]
self.buflist = [self.buf[:spos], s, self.buf[newpos:]]
self.buf = ''
if newpos > self.len:
if newpos > slen:
self.len = newpos
else:
self.buflist.append(s)