[Python-Dev] PyUnicode_FromEncodedObject

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