From 9e2e99097cee234a3be025b968fb7ffff0f05f3e Mon Sep 17 00:00:00 2001 From: Nadeem Vawda Date: Sun, 31 Jul 2011 15:01:11 +0200 Subject: [PATCH] Fix build error in _curses module when not using libncursesw. Code extracted from Victor Stinner's patch for issue #12567. --- Modules/_cursesmodule.c | 4 ++++ setup.py | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index 9e57cd94f03..6d720245a72 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -906,6 +906,7 @@ PyCursesWindow_GetKey(PyCursesWindowObject *self, PyObject *args) } } +#ifdef HAVE_NCURSESW static PyObject * PyCursesWindow_Get_WCh(PyCursesWindowObject *self, PyObject *args) { @@ -937,6 +938,7 @@ PyCursesWindow_Get_WCh(PyCursesWindowObject *self, PyObject *args) } return PyLong_FromLong(rtn); } +#endif static PyObject * PyCursesWindow_GetStr(PyCursesWindowObject *self, PyObject *args) @@ -1636,7 +1638,9 @@ static PyMethodDef PyCursesWindow_Methods[] = { {"getbkgd", (PyCFunction)PyCursesWindow_GetBkgd, METH_NOARGS}, {"getch", (PyCFunction)PyCursesWindow_GetCh, METH_VARARGS}, {"getkey", (PyCFunction)PyCursesWindow_GetKey, METH_VARARGS}, +#ifdef HAVE_NCURSESW {"get_wch", (PyCFunction)PyCursesWindow_Get_WCh, METH_VARARGS}, +#endif {"getmaxyx", (PyCFunction)PyCursesWindow_getmaxyx, METH_NOARGS}, {"getparyx", (PyCFunction)PyCursesWindow_getparyx, METH_NOARGS}, {"getstr", (PyCFunction)PyCursesWindow_GetStr, METH_VARARGS}, diff --git a/setup.py b/setup.py index 2426aad1009..968670c0231 100644 --- a/setup.py +++ b/setup.py @@ -1161,6 +1161,10 @@ class PyBuildExt(build_ext): else: missing.extend(['nis', 'resource', 'termios']) + curses_defines = [] + if curses_library == 'ncursesw': + curses_defines.append(('HAVE_NCURSESW', '1')) + # Curses support, requiring the System V version of curses, often # provided by the ncurses library. panel_library = 'panel' @@ -1171,6 +1175,7 @@ class PyBuildExt(build_ext): panel_library = 'panelw' curses_libs = [curses_library] exts.append( Extension('_curses', ['_cursesmodule.c'], + define_macros=curses_defines, libraries = curses_libs) ) elif curses_library == 'curses' and platform != 'darwin': # OSX has an old Berkeley curses, not good enough for @@ -1183,6 +1188,7 @@ class PyBuildExt(build_ext): curses_libs = ['curses'] exts.append( Extension('_curses', ['_cursesmodule.c'], + define_macros=curses_defines, libraries = curses_libs) ) else: missing.append('_curses')