]> granicus.if.org Git - python/commitdiff
Fixed unicode() to use the new API PyUnicode_FromEncodedObject().
authorMarc-André Lemburg <mal@egenix.com>
Fri, 7 Jul 2000 13:48:25 +0000 (13:48 +0000)
committerMarc-André Lemburg <mal@egenix.com>
Fri, 7 Jul 2000 13:48:25 +0000 (13:48 +0000)
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).

Python/bltinmodule.c

index 82867e0f43914c063d4153623b4f1fed26c366b5..8e2720b93c2557a2df831caee31c9c04fa13a811 100644 (file)
@@ -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[] =