Mercurial > cpython-lru_cache-weakref
diff Include/unicodeobject.h @ 18280:0632dcd69ea3 legacy-trunk
experimental UCS-4 support: added USE_UCS4_STORAGE define to
unicodeobject.h, which forces sizeof(Py_UNICODE) == sizeof(Py_UCS4).
(this may be good enough for platforms that doesn't have a 16-bit
type. the UTF-16 codecs don't work, though)
| author | Fredrik Lundh <fredrik@pythonware.com> |
|---|---|
| date | Tue, 26 Jun 2001 17:17:07 +0000 |
| parents | fd5f83188778 |
| children | ffbb9c918ac0 |
line wrap: on
line diff
--- a/Include/unicodeobject.h Tue Jun 26 16:39:36 2001 +0000 +++ b/Include/unicodeobject.h Tue Jun 26 17:17:07 2001 +0000 @@ -58,6 +58,19 @@ /* --- Internal Unicode Format -------------------------------------------- */ +/* experimental UCS-4 support. enable at your own risk! */ +#undef USE_UCS4_STORAGE + +/* + * Use this typedef when you need to represent a UTF-16 surrogate pair + * as single unsigned integer. + */ +#if SIZEOF_INT >= 4 +typedef unsigned int Py_UCS4; +#elif SIZEOF_LONG >= 4 +typedef unsigned long Py_UCS4; +#endif + /* Set these flags if the platform has "wchar.h", "wctype.h" and the wchar_t type is a 16-bit unsigned type */ /* #define HAVE_WCHAR_H */ @@ -66,8 +79,8 @@ /* Defaults for various platforms */ #ifndef HAVE_USABLE_WCHAR_T -/* Windows has a usable wchar_t type */ -# if defined(MS_WIN32) +/* Windows has a usable wchar_t type (unless we're using UCS-4) */ +# if defined(MS_WIN32) && !defined(USE_UCS4_STORAGE) # define HAVE_USABLE_WCHAR_T # endif @@ -105,19 +118,13 @@ If a short is not 16 bits on your platform, you have to fix the typedef below, or the module initialization code will complain. */ +#ifdef USE_UCS4_STORAGE +typedef Py_UCS4 Py_UNICODE; +#else typedef unsigned short Py_UNICODE; - #endif -/* - * Use this typedef when you need to represent a UTF-16 surrogate pair - * as single unsigned integer. - */ -#if SIZEOF_INT >= 4 -typedef unsigned int Py_UCS4; -#elif SIZEOF_LONG >= 4 -typedef unsigned long Py_UCS4; -#endif +#endif /* --- Internal Unicode Operations ---------------------------------------- */
