diff options
author | Bo Anderson <mail@boanderson.me> | 2023-10-09 13:21:20 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-09 13:21:20 (GMT) |
commit | f4cb0d27cc08f490c42a22e646eb73cc7072d54a (patch) | |
tree | 0649c25cdf9621fcabe5740e85684a29e4ae85e5 | |
parent | 12cc6792d0ca1d0b72712d77c6efcb0aa0c7e7ba (diff) | |
download | cpython-f4cb0d27cc08f490c42a22e646eb73cc7072d54a.zip cpython-f4cb0d27cc08f490c42a22e646eb73cc7072d54a.tar.gz cpython-f4cb0d27cc08f490c42a22e646eb73cc7072d54a.tar.bz2 |
gh-109191: Fix build with newer editline (gh-110239)
-rw-r--r-- | Misc/NEWS.d/next/Build/2023-10-05-11-46-20.gh-issue-109191.imUkVN.rst | 1 | ||||
-rw-r--r-- | Modules/readline.c | 2 | ||||
-rwxr-xr-x | configure | 19 | ||||
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | pyconfig.h.in | 3 |
5 files changed, 31 insertions, 1 deletions
diff --git a/Misc/NEWS.d/next/Build/2023-10-05-11-46-20.gh-issue-109191.imUkVN.rst b/Misc/NEWS.d/next/Build/2023-10-05-11-46-20.gh-issue-109191.imUkVN.rst new file mode 100644 index 0000000..27e5df7 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2023-10-05-11-46-20.gh-issue-109191.imUkVN.rst @@ -0,0 +1 @@ +Fix compile error when building with recent versions of libedit. diff --git a/Modules/readline.c b/Modules/readline.c index 4b47302..fde552d 100644 --- a/Modules/readline.c +++ b/Modules/readline.c @@ -446,7 +446,7 @@ readline_set_completion_display_matches_hook_impl(PyObject *module, default completion display. */ rl_completion_display_matches_hook = readlinestate_global->completion_display_matches_hook ? -#if defined(_RL_FUNCTION_TYPEDEF) +#if defined(HAVE_RL_COMPDISP_FUNC_T) (rl_compdisp_func_t *)on_completion_display_matches_hook : 0; #else (VFunction *)on_completion_display_matches_hook : 0; @@ -24668,6 +24668,25 @@ printf "%s\n" "#define HAVE_RL_APPEND_HISTORY 1" >>confdefs.h fi + # in readline as well as newer editline (April 2023) + ac_fn_c_check_type "$LINENO" "rl_compdisp_func_t" "ac_cv_type_rl_compdisp_func_t" " + #include <stdio.h> /* Must be first for Gnu Readline */ + #ifdef WITH_EDITLINE + # include <editline/readline.h> + #else + # include <readline/readline.h> + # include <readline/history.h> + #endif + +" +if test "x$ac_cv_type_rl_compdisp_func_t" = xyes +then : + +printf "%s\n" "#define HAVE_RL_COMPDISP_FUNC_T 1" >>confdefs.h + +fi + + CFLAGS=$save_CFLAGS diff --git a/configure.ac b/configure.ac index 6093afa..cafc6df 100644 --- a/configure.ac +++ b/configure.ac @@ -5999,6 +5999,13 @@ AS_VAR_IF([with_readline], [no], [ AC_DEFINE([HAVE_RL_APPEND_HISTORY], [1], [Define if readline supports append_history]) ]) + # in readline as well as newer editline (April 2023) + AC_CHECK_TYPE([rl_compdisp_func_t], + [AC_DEFINE([HAVE_RL_COMPDISP_FUNC_T], [1], + [Define if readline supports rl_compdisp_func_t])], + [], + [readline_includes]) + m4_undefine([readline_includes]) ])dnl WITH_SAVE_ENV() ]) diff --git a/pyconfig.h.in b/pyconfig.h.in index 9924a90..f07e677 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -983,6 +983,9 @@ /* Define if you can turn off readline's signal handling. */ #undef HAVE_RL_CATCH_SIGNAL +/* Define if readline supports rl_compdisp_func_t */ +#undef HAVE_RL_COMPDISP_FUNC_T + /* Define if you have readline 2.2 */ #undef HAVE_RL_COMPLETION_APPEND_CHARACTER |