From 756c6ecdc4fa89efc8f0bb4c048ec4644b8fb5f9 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sun, 27 Nov 2011 00:19:53 +0100 Subject: [PATCH] Issue #13415: Help to locate curses.h when _curses module is linked to ncursesw --- Lib/test/test_curses.py | 5 ++++- setup.py | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_curses.py b/Lib/test/test_curses.py index b416403e900..ce09855ac52 100644 --- a/Lib/test/test_curses.py +++ b/Lib/test/test_curses.py @@ -268,7 +268,10 @@ def test_unget_wch(stdscr): if not hasattr(curses, 'unget_wch'): return for ch in ('a', '\xe9', '\u20ac', '\U0010FFFF'): - curses.unget_wch(ch) + try: + curses.unget_wch(ch) + except Exception as err: + raise Exception("unget_wch(%a) failed: %s" % (ch, err)) read = stdscr.get_wch() read = chr(read) if read != ch: diff --git a/setup.py b/setup.py index 97a92bae0ec..1e450c78223 100644 --- a/setup.py +++ b/setup.py @@ -1173,13 +1173,16 @@ class PyBuildExt(build_ext): # Curses support, requiring the System V version of curses, often # provided by the ncurses library. panel_library = 'panel' + curses_includes = [] if curses_library.startswith('ncurses'): if curses_library == 'ncursesw': # Bug 1464056: If _curses.so links with ncursesw, # _curses_panel.so must link with panelw. panel_library = 'panelw' + curses_includes = ['/usr/include/ncursesw'] curses_libs = [curses_library] exts.append( Extension('_curses', ['_cursesmodule.c'], + include_dirs=curses_includes, define_macros=curses_defines, libraries = curses_libs) ) elif curses_library == 'curses' and platform != 'darwin': @@ -1202,6 +1205,7 @@ class PyBuildExt(build_ext): if (module_enabled(exts, '_curses') and self.compiler.find_library_file(lib_dirs, panel_library)): exts.append( Extension('_curses_panel', ['_curses_panel.c'], + include_dirs=curses_includes, libraries = [panel_library] + curses_libs) ) else: missing.append('_curses_panel')