◐ Shell
clean mode source ↗

Message 80012 - Python tracker

> Looks pretty good at first glance, except that it seems that the UTF-32 to
> UTF-16 translation is skipped if HAVE_USABLE_WCHAR_T is defined.  Is that
> deliberate?

#ifdef HAVE_USABLE_WCHAR_T
    memcpy(unicode->str, w, size * sizeof(wchar_t));
#else
    ...
#endif

I understand this code as: sizeof(wchar_t) == sizeof(Py_UNICODE). If I 
misunderstood the code, it's a a heap overflow :-) So there is no not 
conversion from UTF-32 to UTF-16 using memcpy if HAVE_USABLE_WCHAR_T is 
defined, right?

> A test would be good, too.

PyUnicode_FromWideChar() is not a public API. Should I write a function in 
_testcapi?