[Python-Dev] PyUnicode_FromEncodedObject (original) (raw)

David Abrahams dave at boost-consulting.com
Thu Sep 11 16:11:54 EDT 2003


I'd post a SF bug but it keeps insisting I log in, even after I have already.

There's a bug, either in the code or docs for PyUnicode_FromEncodedObject. The docs read:

"Unicode objects are passed back as-is with incremented refcount. Note: These cannot be decoded; passing a non-NULL value for encoding will result in a TypeError."

'tain't so; the following shows that the error is unconditional.

if (obj == NULL) {
PyErr_BadInternalCall();
return NULL;
}

#if 0 /* For b/w compatibility we also accept Unicode objects provided that no encodings is given and then redirect to PyObject_Unicode() which then applies the additional logic for Unicode subclasses.

   NOTE: This API should really only be used for object which
         represent *encoded* Unicode !

*/
if (PyUnicode_Check(obj)) {
    if (encoding) {
    PyErr_SetString(PyExc_TypeError,
            "decoding Unicode is not supported");
    return NULL;
    }
return PyObject_Unicode(obj);
    }

#else if (PyUnicode_Check(obj)) { PyErr_SetString(PyExc_TypeError, "decoding Unicode is not supported"); return NULL; } #endif

-- Dave Abrahams Boost Consulting www.boost-consulting.com



More information about the Python-Dev mailing list