summaryrefslogtreecommitdiffstats
path: root/Modules/cStringIO.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2002-04-29 13:54:48 (GMT)
committerGuido van Rossum <guido@python.org>2002-04-29 13:54:48 (GMT)
commita883a3d5fdfefdf198bd34f6d07273063bc1f3b5 (patch)
treedb37a916190c759d44f2f318779961f953a9acf7 /Modules/cStringIO.c
parent81b9251d5996ec89bcc016c29ecc0b5f0204e59b (diff)
downloadcpython-a883a3d5fdfefdf198bd34f6d07273063bc1f3b5.zip
cpython-a883a3d5fdfefdf198bd34f6d07273063bc1f3b5.tar.gz
cpython-a883a3d5fdfefdf198bd34f6d07273063bc1f3b5.tar.bz2
See discussion at SF bug 547537.
Unicode objects are currently taken as binary data by the write() method. This is not what Unicode users expect, nor what the StringIO.py code does. Until somebody adds a way to specify binary or text mode for cStringIO objects, change the format string to use "t#" instead of "s#", so that it will request the "text buffer" version. This will try the default encoding for Unicode objects. This is *not* a 2.2 bugfix (since it *is* a semantic change).
Diffstat (limited to 'Modules/cStringIO.c')
-rw-r--r--Modules/cStringIO.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c
index 068a835..1dbec84 100644
--- a/Modules/cStringIO.c
+++ b/Modules/cStringIO.c
@@ -376,7 +376,7 @@ O_write(Oobject *self, PyObject *args) {
char *c;
int l;
- UNLESS (PyArg_ParseTuple(args, "s#:write", &c, &l)) return NULL;
+ UNLESS (PyArg_ParseTuple(args, "t#:write", &c, &l)) return NULL;
if (O_cwrite((PyObject*)self,c,l) < 0) return NULL;