]> granicus.if.org Git - python/commitdiff
See discussion at SF bug 547537.
authorGuido van Rossum <guido@python.org>
Mon, 29 Apr 2002 13:54:48 +0000 (13:54 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 29 Apr 2002 13:54:48 +0000 (13:54 +0000)
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).

Modules/cStringIO.c

index 068a835413783cfeb678c40815202cc200f77f48..1dbec846516c629f1ecab5733f614e4d4e8a3b15 100644 (file)
@@ -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;