diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index 057f7705395..ee9fec16fe7 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -354,7 +354,7 @@ typedef PY_UNICODE_TYPE Py_UNICODE; in most situations is solely ASCII whitespace, we optimize for the common case by using a quick look-up table with an inlined check. */ -extern const unsigned char _Py_ascii_whitespace[]; +PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[]; #define Py_UNICODE_ISSPACE(ch) \ ((ch) < 128U ? _Py_ascii_whitespace[(ch)] : _PyUnicode_IsWhitespace(ch)) diff --git a/Misc/NEWS b/Misc/NEWS index 3cfdc06dd48..e583ff1174e 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -36,6 +36,12 @@ Build - Issue #3758: Add ``patchcheck`` build target to .PHONY. +C-API +----- + +- Issue #4122: On Windows, fix a compilation error when using the + Py_UNICODE_ISSPACE macro in an extension module. + What's New in Python 2.6 final ============================== diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index f3a9f5ce9d0..adb04c0bb87 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -484,6 +484,10 @@ test_u_code(PyObject *self) Py_UNICODE *value; int len; + /* issue4122: Undefined reference to _Py_ascii_whitespace on Windows */ + /* Just use the macro and check that it compiles */ + int x = Py_UNICODE_ISSPACE(25); + tuple = PyTuple_New(1); if (tuple == NULL) return NULL;