mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
gh-109617: fix ncurses incompatibility on macOS with Xcode 15 (#111258)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Co-authored-by: Łukasz Langa <lukasz@langa.pl>
This commit is contained in:
parent
291cfa454b
commit
08d169f14a
5 changed files with 77 additions and 21 deletions
|
@ -23,10 +23,16 @@
|
|||
# endif
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_CURSES_IS_PAD) && defined(WINDOW_HAS_FLAGS)
|
||||
/* The following definition is necessary for ncurses 5.7; without it,
|
||||
some of [n]curses.h set NCURSES_OPAQUE to 1, and then Python
|
||||
can't get at the WINDOW flags field. */
|
||||
#if defined(WINDOW_HAS_FLAGS) && defined(__APPLE__)
|
||||
/* gh-109617, gh-115383: we can rely on the default value for NCURSES_OPAQUE on
|
||||
most platforms, but not on macOS. This is because, starting with Xcode 15,
|
||||
Apple-provided ncurses.h comes from ncurses 6 (which defaults to opaque
|
||||
structs) but can still be linked to older versions of ncurses dynamic
|
||||
libraries which don't provide functions such as is_pad() to deal with opaque
|
||||
structs. Setting NCURSES_OPAQUE to 0 is harmless in all ncurses releases to
|
||||
this date (provided that a thread-safe implementation is not required), but
|
||||
this might change in the future. This fix might become irrelevant once
|
||||
support for macOS 13 or earlier is dropped. */
|
||||
#define NCURSES_OPAQUE 0
|
||||
#endif
|
||||
|
||||
|
@ -39,7 +45,10 @@
|
|||
#ifdef HAVE_NCURSES_H
|
||||
/* configure was checking <curses.h>, but we will
|
||||
use <ncurses.h>, which has some or all these features. */
|
||||
#if !defined(WINDOW_HAS_FLAGS) && !(NCURSES_OPAQUE+0)
|
||||
#if !defined(WINDOW_HAS_FLAGS) && \
|
||||
(NCURSES_VERSION_PATCH+0 < 20070303 || !(NCURSES_OPAQUE+0))
|
||||
/* the WINDOW flags field was always accessible in ncurses prior to 20070303;
|
||||
after that, it depends on the value of NCURSES_OPAQUE. */
|
||||
#define WINDOW_HAS_FLAGS 1
|
||||
#endif
|
||||
#if !defined(HAVE_CURSES_IS_PAD) && NCURSES_VERSION_PATCH+0 >= 20090906
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue