diff options
author | Fredrik Lundh <fredrik@pythonware.com> | 2000-07-01 14:31:09 (GMT) |
---|---|---|
committer | Fredrik Lundh <fredrik@pythonware.com> | 2000-07-01 14:31:09 (GMT) |
commit | efecc7d05bf674db579638e0a8e5b5496e1e0826 (patch) | |
tree | 3fa3522773569b43c846a7a06a4af42774e32a48 | |
parent | 50694988844e76f3b532a6d6dc461096d0ef622e (diff) | |
download | cpython-efecc7d05bf674db579638e0a8e5b5496e1e0826.zip cpython-efecc7d05bf674db579638e0a8e5b5496e1e0826.tar.gz cpython-efecc7d05bf674db579638e0a8e5b5496e1e0826.tar.bz2 |
changed repr and str to always convert unicode strings
to 8-bit strings, using the default encoding.
-rw-r--r-- | Objects/object.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Objects/object.c b/Objects/object.c index 3052d38..7f38dff 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -265,6 +265,14 @@ PyObject_Repr(v) res = (*v->ob_type->tp_repr)(v); if (res == NULL) return NULL; + if (PyUnicode_Check(res)) { + PyObject* str; + str = PyUnicode_AsEncodedString(res, NULL, NULL); + if (str) { + Py_DECREF(res); + res = str; + } + } if (!PyString_Check(res)) { PyErr_Format(PyExc_TypeError, "__repr__ returned non-string (type %.200s)", @@ -302,6 +310,14 @@ PyObject_Str(v) } if (res == NULL) return NULL; + if (PyUnicode_Check(res)) { + PyObject* str; + str = PyUnicode_AsEncodedString(res, NULL, NULL); + if (str) { + Py_DECREF(res); + res = str; + } + } if (!PyString_Check(res)) { PyErr_Format(PyExc_TypeError, "__str__ returned non-string (type %.200s)", |