diff options
author | Marc-André Lemburg <mal@egenix.com> | 2000-07-07 13:48:25 (GMT) |
---|---|---|
committer | Marc-André Lemburg <mal@egenix.com> | 2000-07-07 13:48:25 (GMT) |
commit | 1b1bcc993579e64d751dc75bc8521adb9e94c732 (patch) | |
tree | 8c8da5d52c9f4f0298b35d47880d838e8fe96951 | |
parent | 5a5c81a0e9550eaab92c9817259dee5a52f69871 (diff) | |
download | cpython-1b1bcc993579e64d751dc75bc8521adb9e94c732.zip cpython-1b1bcc993579e64d751dc75bc8521adb9e94c732.tar.gz cpython-1b1bcc993579e64d751dc75bc8521adb9e94c732.tar.bz2 |
Fixed unicode() to use the new API PyUnicode_FromEncodedObject().
This adds support for instance to the constructor (instances
have to define __str__ and can return Unicode objects via that
hook; string return values are decoded into Unicode using the
current default encoding).
-rw-r--r-- | Python/bltinmodule.c | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 82867e0..8e2720b 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -155,20 +155,7 @@ builtin_unicode(self, args) if ( !PyArg_ParseTuple(args, "O|ss:unicode", &v, &encoding, &errors) ) return NULL; - /* Special case: Unicode will stay Unicode */ - if (PyUnicode_Check(v)) { - if (encoding) { - PyErr_SetString(PyExc_TypeError, - "unicode() does not support decoding of Unicode objects"); - return NULL; - } - Py_INCREF(v); - return v; - } - /* Read raw data and decode it */ - if (PyObject_AsReadBuffer(v, &buffer, &len)) - return NULL; - return PyUnicode_Decode((const char *)buffer, len, encoding, errors); + return PyUnicode_FromEncodedObject(v, encoding, errors); } static char unicode_doc[] = |