summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc-André Lemburg <mal@egenix.com>2000-07-07 13:48:25 (GMT)
committerMarc-André Lemburg <mal@egenix.com>2000-07-07 13:48:25 (GMT)
commit1b1bcc993579e64d751dc75bc8521adb9e94c732 (patch)
tree8c8da5d52c9f4f0298b35d47880d838e8fe96951
parent5a5c81a0e9550eaab92c9817259dee5a52f69871 (diff)
downloadcpython-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.c15
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[] =