Hi Mark, >> +1 from me. >> >> I think this is simply a bug introduced with the UCS4 patches in >> Python 2.2. >> >> unicodeobject.h already has this code: >> >> #ifndef PY_UNICODE_TYPE >> >> /* Windows has a usable wchar_t type (unless we're using UCS-4) */ >> # if defined(MS_WIN32) && Py_UNICODE_SIZE == 2 >> # define HAVE_USABLE_WCHAR_T >> # define PY_UNICODE_TYPE wchar_t >> # endif >> >> # if defined(Py_UNICODE_WIDE) >> # define PY_UNICODE_TYPE Py_UCS4 >> # endif >> >> #endif >> >> But for some reason, pyconfig.h defines: >> >> /* Define as the integral type used for Unicode representation. */ >> #define PY_UNICODE_TYPE unsigned short >> >> /* Define as the size of the unicode type. */ >> #define Py_UNICODE_SIZE SIZEOF_SHORT >> >> /* Define if you have a useable wchar_t type defined in >> wchar.h; useable >> means wchar_t must be 16-bit unsigned type. (see >> Include/unicodeobject.h). */ >> #if Py_UNICODE_SIZE == 2 >> #define HAVE_USABLE_WCHAR_T >> #endif >> >> disabling the default settings in the unicodeobject.h. > > Yes, that does appear strange. The following patch works for me, keeps > Python building and appears to solve my problem. Any objections?
Looks fine to me. > Mark > > > Index: pyconfig.h > =================================================================== > --- pyconfig.h (revision 55487) > +++ pyconfig.h (working copy) > @@ -491,22 +491,13 @@ > /* Define if you want to have a Unicode type. */ > #define Py_USING_UNICODE > > -/* Define as the integral type used for Unicode representation. */ > -#define PY_UNICODE_TYPE unsigned short > - > /* Define as the size of the unicode type. */ > -#define Py_UNICODE_SIZE SIZEOF_SHORT > +/* This is enough for unicodeobject.h to do the "right thing" on Windows. > */ > +#define Py_UNICODE_SIZE 2 > > -/* Define if you have a useable wchar_t type defined in wchar.h; useable > - means wchar_t must be 16-bit unsigned type. (see > - Include/unicodeobject.h). */ > -#if Py_UNICODE_SIZE == 2 > -#define HAVE_USABLE_WCHAR_T > - > /* Define to indicate that the Python Unicode representation can be passed > as-is to Win32 Wide API. */ > #define Py_WIN_WIDE_FILENAMES > -#endif > > /* Use Python's own small-block memory-allocator. */ > #define WITH_PYMALLOC 1 > > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > http://mail.python.org/mailman/options/python-dev/mal%40egenix.com -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, May 22 2007) >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ :::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,MacOSX for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com