[Python-3000-checkins] r55382 - python/branches/py3k-struni/Lib/io.py
walter.doerwald
python-3000-checkins at python.org
Wed May 16 14:53:52 CEST 2007
Author: walter.doerwald
Date: Wed May 16 14:53:48 2007
New Revision: 55382
Modified:
python/branches/py3k-struni/Lib/io.py
Log:
Fix io.StringIO for wide Python builds.
Modified: python/branches/py3k-struni/Lib/io.py
==============================================================================
--- python/branches/py3k-struni/Lib/io.py (original)
+++ python/branches/py3k-struni/Lib/io.py Wed May 16 14:53:48 2007
@@ -598,6 +598,8 @@
# Reuses the same code as BytesIO, but encode strings on the way in
# and decode them on the way out.
+ charsize = len("!".encode("unicode-internal"))
+
def __init__(self, initial_string=None):
if initial_string is not None:
buffer = initial_string.encode("unicode-internal")
@@ -609,21 +611,24 @@
return self._buffer.encode("unicode-internal")
def read(self, n=-1):
- return super(StringIO, self).read(n*2).decode("unicode-internal")
+ return super(StringIO, self).read(n*self.charsize) \
+ .decode("unicode-internal")
def write(self, s):
- return super(StringIO, self).write(s.encode("unicode-internal"))//2
+ return super(StringIO, self).write(s.encode("unicode-internal")) \
+ //self.charsize
def seek(self, pos, whence=0):
- return super(StringIO, self).seek(2*pos, whence)//2
+ return super(StringIO, self).seek(self.charsize*pos, whence) \
+ //self.charsize
def tell(self):
- return super(StringIO, self).tell()//2
+ return super(StringIO, self).tell()//self.charsize
def truncate(self, pos=None):
if pos is not None:
- pos *= 2
- return super(StringIO, self).truncate(pos)//2
+ pos *= self.charsize
+ return super(StringIO, self).truncate(pos)//self.charsize
def readinto(self, b: bytes) -> int:
self._unsupported("readinto")
More information about the Python-3000-checkins
mailing list