gh-105323: Update readline module to detect apple editline variant (gh-108665)

This commit is contained in:
Donghee Na 2023-09-29 21:18:18 +09:00 committed by GitHub
parent db0a258e79
commit 501939c9c1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 38 additions and 3 deletions

View File

@ -758,11 +758,12 @@ Libraries options
.. versionadded:: 3.3 .. versionadded:: 3.3
.. cmdoption:: --with-readline=editline .. cmdoption:: --with-readline=readline|editline
Use ``editline`` library for backend of the :mod:`readline` module. Designate a backend library for the :mod:`readline` module.
Define the ``WITH_EDITLINE`` macro. * readline: Use readline as the backend.
* editline: Use editline as the backend.
.. versionadded:: 3.10 .. versionadded:: 3.10

View File

@ -1018,6 +1018,8 @@ on_hook(PyObject *func)
static int static int
#if defined(_RL_FUNCTION_TYPEDEF) #if defined(_RL_FUNCTION_TYPEDEF)
on_startup_hook(void) on_startup_hook(void)
#elif defined(WITH_APPLE_EDITLINE)
on_startup_hook(const char *Py_UNUSED(text), int Py_UNUSED(state))
#else #else
on_startup_hook(void) on_startup_hook(void)
#endif #endif
@ -1033,6 +1035,8 @@ on_startup_hook(void)
static int static int
#if defined(_RL_FUNCTION_TYPEDEF) #if defined(_RL_FUNCTION_TYPEDEF)
on_pre_input_hook(void) on_pre_input_hook(void)
#elif defined(WITH_APPLE_EDITLINE)
on_pre_input_hook(const char *Py_UNUSED(text), int Py_UNUSED(state))
#else #else
on_pre_input_hook(void) on_pre_input_hook(void)
#endif #endif

17
configure generated vendored
View File

@ -23781,6 +23781,7 @@ fi
# Check whether --with-readline was given. # Check whether --with-readline was given.
if test ${with_readline+y} if test ${with_readline+y}
then : then :
@ -23803,6 +23804,22 @@ else $as_nop
fi fi
# gh-105323: Need to handle the macOS editline as an alias of readline.
case $ac_sys_system/$ac_sys_release in #(
Darwin/*) :
ac_fn_c_check_type "$LINENO" "Function" "ac_cv_type_Function" "#include <readline/readline.h>
"
if test "x$ac_cv_type_Function" = xyes
then :
printf "%s\n" "#define WITH_APPLE_EDITLINE 1" >>confdefs.h
fi
;; #(
*) :
;;
esac
if test "x$with_readline" = xreadline if test "x$with_readline" = xreadline
then : then :

View File

@ -5832,6 +5832,7 @@ dnl library (tinfo ncursesw ncurses termcap). We now assume that libreadline
dnl or readline.pc provide correct linker information. dnl or readline.pc provide correct linker information.
AH_TEMPLATE([WITH_EDITLINE], [Define to build the readline module against libedit.]) AH_TEMPLATE([WITH_EDITLINE], [Define to build the readline module against libedit.])
AH_TEMPLATE([WITH_APPLE_EDITLINE], [Define to build the readline module against Apple BSD editline.])
AC_ARG_WITH( AC_ARG_WITH(
[readline], [readline],
@ -5848,6 +5849,15 @@ AC_ARG_WITH(
[with_readline=readline] [with_readline=readline]
) )
# gh-105323: Need to handle the macOS editline as an alias of readline.
AS_CASE([$ac_sys_system/$ac_sys_release],
[Darwin/*], [AC_CHECK_TYPE([Function],
[AC_DEFINE([WITH_APPLE_EDITLINE])],
[],
[@%:@include <readline/readline.h>])],
[]
)
AS_VAR_IF([with_readline], [readline], [ AS_VAR_IF([with_readline], [readline], [
PKG_CHECK_MODULES([LIBREADLINE], [readline], [ PKG_CHECK_MODULES([LIBREADLINE], [readline], [
LIBREADLINE=readline LIBREADLINE=readline

View File

@ -1788,6 +1788,9 @@
/* Define if WINDOW in curses.h offers a field _flags. */ /* Define if WINDOW in curses.h offers a field _flags. */
#undef WINDOW_HAS_FLAGS #undef WINDOW_HAS_FLAGS
/* Define to build the readline module against Apple BSD editline. */
#undef WITH_APPLE_EDITLINE
/* Define if you want build the _decimal module using a coroutine-local rather /* Define if you want build the _decimal module using a coroutine-local rather
than a thread-local context */ than a thread-local context */
#undef WITH_DECIMAL_CONTEXTVAR #undef WITH_DECIMAL_CONTEXTVAR