Commit 18885f36 authored by Marc-André Lemburg's avatar Marc-André Lemburg

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).
parent 143ae592
......@@ -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[] =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment