[I18n-sig] UCS-4 configuration

Guido van Rossum guido@digicool.com
Wed, 27 Jun 2001 14:13:10 -0400


> To hack without Py_InitModule5, putting flags into PYTHON_API_VERSION
> might also work.

I like adding a flag better than Py_InitModule5.  If
PYTHON_API_VERSION > 1010, the low bit should be off for UCS-2 and on
for UCS-4.  So the next version should be 1012; this would become 1013
for UCS-4.

If a program doesn't use Unicode-specific APIs that take or return
Py_UNICODE arrays, it's not vulnerable to this problem.  An
alternative would be to use the C preprocessor to give all affected
APIs a different name when using UCS4.  (There are also macros
affected, e.g. Py_UNICODE_COPY().  But macro users are likely to also
refernce the function APIs.)

There's a bunch of functions that take or return a single Py_UNICODE
value.  These would be affected too.  That's a shame; if they had been
defined to take/return an unsigned long they would have worked just as
well.

--Guido van Rossum (home page: http://www.python.org/~guido/)