Issue #13415: Help to locate curses.h when _curses module is linked to ncursesw

This commit is contained in:
Victor Stinner 2011-11-27 00:19:53 +01:00
parent 5604ef3e36
commit 756c6ecdc4
2 changed files with 8 additions and 1 deletions

View File

@ -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:

View File

@ -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')