]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fix build error in _curses module when not using libncursesw.
authorNadeem Vawda <nadeem.vawda@gmail.com>
Sun, 31 Jul 2011 13:01:11 +0000 (15:01 +0200)
committerNadeem Vawda <nadeem.vawda@gmail.com>
Sun, 31 Jul 2011 13:01:11 +0000 (15:01 +0200)
Code extracted from Victor Stinner's patch for issue #12567.

Modules/_cursesmodule.c
setup.py

index 9e57cd94f03c7d3819d4ccd61e6c789753159a7c..6d720245a72e136ca7c9e78629ebb2c845689516 100644 (file)
@@ -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},
index 2426aad1009fdf6f152b027b337bcc6d0faf2bef..968670c0231e3c4d6b22cab2b5e45d12975228f6 100644 (file)
--- 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')