From c7ed0e3c1301fd27122e336eef7fd233526ccfc1 Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Tue, 12 Dec 2000 23:12:23 +0000 Subject: [PATCH] Accept Finn Bock's patch #102208 to hardcode EINVAL to 22 when errno can't be imported. This makes StringIO.py work with Jython. Also, get rid of the string module by converting to string methods. Shorten some lines by using augmented assignment where appropriate. --- Lib/StringIO.py | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/Lib/StringIO.py b/Lib/StringIO.py index 6952b1a999e..4bfd55fda23 100644 --- a/Lib/StringIO.py +++ b/Lib/StringIO.py @@ -29,8 +29,12 @@ - There's a simple test set (see end of this file). """ -import errno -import string +try: + from errno import EINVAL +except ImportError: + EINVAL = 22 + +EMPTYSTRING = '' class StringIO: def __init__(self, buf = ''): @@ -52,12 +56,12 @@ def seek(self, pos, mode = 0): if self.closed: raise ValueError, "I/O operation on closed file" if self.buflist: - self.buf = self.buf + string.joinfields(self.buflist, '') + self.buf += EMPTYSTRING.join(self.buflist) self.buflist = [] if mode == 1: - pos = pos + self.pos + pos += self.pos elif mode == 2: - pos = pos + self.len + pos += self.len self.pos = max(0, pos) def tell(self): if self.closed: @@ -67,7 +71,7 @@ def read(self, n = -1): if self.closed: raise ValueError, "I/O operation on closed file" if self.buflist: - self.buf = self.buf + string.joinfields(self.buflist, '') + self.buf += EMPTYSTRING.join(self.buflist) self.buflist = [] if n < 0: newpos = self.len @@ -80,9 +84,9 @@ def readline(self, length=None): if self.closed: raise ValueError, "I/O operation on closed file" if self.buflist: - self.buf = self.buf + string.joinfields(self.buflist, '') + self.buf += EMPTYSTRING.join(self.buflist) self.buflist = [] - i = string.find(self.buf, '\n', self.pos) + i = self.buf.find('\n', self.pos) if i < 0: newpos = self.len else: @@ -110,8 +114,7 @@ def truncate(self, size=None): if size is None: size = self.pos elif size < 0: - raise IOError(errno.EINVAL, - "Negative size not allowed") + raise IOError(EINVAL, "Negative size not allowed") elif size < self.pos: self.pos = size self.buf = self.getvalue()[:size] @@ -125,7 +128,7 @@ def write(self, s): newpos = self.pos + len(s) if self.pos < self.len: if self.buflist: - self.buf = self.buf + string.joinfields(self.buflist, '') + self.buf += EMPTYSTRING.join(self.buflist) self.buflist = [] self.buflist = [self.buf[:self.pos], s, self.buf[newpos:]] self.buf = '' @@ -136,13 +139,13 @@ def write(self, s): self.len = newpos self.pos = newpos def writelines(self, list): - self.write(string.joinfields(list, '')) + self.write(EMPTYSTRING.join(list)) def flush(self): if self.closed: raise ValueError, "I/O operation on closed file" def getvalue(self): if self.buflist: - self.buf = self.buf + string.joinfields(self.buflist, '') + self.buf += EMPTYSTRING.join(self.buflist) self.buflist = [] return self.buf