gh-111460: Restore ncurses widechar support on macOS (#111878)

This commit is contained in:
Davide Rizzo 2023-11-13 14:36:50 +01:00 committed by GitHub
parent 1447af7970
commit d2f305dfd1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 3 deletions

View File

@ -0,0 +1,3 @@
:mod:`curses`: restore wide character support (including
:func:`curses.unget_wch` and :meth:`~curses.window.get_wch`) on macOS, which
was unavailable due to a regression in Python 3.12.

2
configure generated vendored
View File

@ -25528,7 +25528,7 @@ fi
fi
CURSES_CFLAGS=$(echo $CURSES_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g')
if test "$have_curses" = no -a "$ac_sys_system" = "Darwin"; then
if test "$have_curses" != no -a "$ac_sys_system" = "Darwin"; then
as_fn_append CURSES_CFLAGS " -D_XOPEN_SOURCE_EXTENDED=1"
printf "%s\n" "#define HAVE_NCURSESW 1" >>confdefs.h

View File

@ -6290,9 +6290,11 @@ dnl remove _XOPEN_SOURCE macro from curses cflags. pyconfig.h sets
dnl the macro to 700.
CURSES_CFLAGS=$(echo $CURSES_CFLAGS | sed 's/-D_XOPEN_SOURCE=600//g')
if test "$have_curses" = no -a "$ac_sys_system" = "Darwin"; then
if test "$have_curses" != no -a "$ac_sys_system" = "Darwin"; then
dnl On macOS, there is no separate /usr/lib/libncursesw nor libpanelw.
dnl If we are here, we found a locally-supplied version of libncursesw.
dnl System-supplied ncurses combines libncurses/libpanel and supports wide
dnl characters, so we can use it like ncursesw.
dnl If a locally-supplied version of libncursesw is found, we will use that.
dnl There should also be a libpanelw.
dnl _XOPEN_SOURCE defines are usually excluded for macOS, but we need
dnl _XOPEN_SOURCE_EXTENDED here for ncurses wide char support.