You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
The curses module fails to build against the native SVr4 curses (illumos/Solaris) #154055
Building the curses module against the native SVr4 curses — for example on illumos/Solaris with ./configure --with-curses=curses — fails, because Modules/_cursesmodule.c uses several optional functions unconditionally that old SVr4 curses does not provide.
Implicit-declaration errors:
wattr_get, wattr_set, wattr_on, wattr_off, wcolor_set — the window.attr_get(), attr_set(), attr_on(), attr_off() and color_set() methods (the X/Open attr_t API).
slk_attr_on, slk_attr_off, slk_attr_set, slk_color — the soft-label attribute functions.
scr_set — SVr4 has scr_dump()/scr_restore()/scr_init() but not scr_set(), so gating the whole family on scr_dump alone is not enough.
Other optional curses functions (is_pad, resizeterm, …) are already probed and #ifdef-gated; these are not.
Two more problems surface once those are gated:
update_lines_cols() is compiled only under HAVE_CURSES_RESIZETERM/HAVE_CURSES_RESIZE_TERM, but it is used unconditionally (e.g. by set_term()), so a curses without resizeterm() fails to link.
The SVr4 <curses.h> does typedef char bool;, which clashes with C's bool (a macro for _Bool from <stdbool.h>) and fails to compile.
test.test_curses also needs to tolerate such a curses: skip the tests that use the now-optional functions, and treat the native curses of NetBSD and illumos/Solaris as having a broken newterm() (they crash on repeated newterm()/delscreen(), like ncurses before 6.5).
Activity
gh-154055: Gate optional curses functions absent on old SVr4 curses (G…