diff --git a/Modules/readline.c b/Modules/readline.c index 462d52f9b88..a4bfc621bb4 100644 --- a/Modules/readline.c +++ b/Modules/readline.c @@ -574,7 +574,9 @@ setup_readline(void) rl_completer_word_break_characters = strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?"); /* All nonalphanums except '.' */ +#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER rl_completion_append_character ='\0'; +#endif begidx = PyInt_FromLong(0L); endidx = PyInt_FromLong(0L); @@ -626,7 +628,9 @@ call_readline(FILE *sys_stdin, FILE *sys_stdout, char *prompt) if (sys_stdin != rl_instream || sys_stdout != rl_outstream) { rl_instream = sys_stdin; rl_outstream = sys_stdout; +#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER rl_prep_terminal (1); +#endif } p = readline(prompt); diff --git a/configure b/configure index 207eddfc34d..5495840fa13 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 1.378 . +# From configure.in Revision: 1.380 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. # @@ -908,7 +908,7 @@ esac # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` @@ -16228,6 +16228,56 @@ _ACEOF fi +# check for readline 2.2 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + egrep -v '^ *\+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + have_readline=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + have_readline=no +fi +rm -f conftest.err conftest.$ac_ext +if test $have_readline = yes +then + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "extern int rl_completion_append_character;" >/dev/null 2>&1; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1 +_ACEOF + +fi +rm -f conftest* + +fi + # check for readline 4.0 echo "$as_me:$LINENO: checking for rl_pre_input_hook in -lreadline" >&5 echo $ECHO_N "checking for rl_pre_input_hook in -lreadline... $ECHO_C" >&6 @@ -17418,7 +17468,7 @@ esac # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` diff --git a/configure.in b/configure.in index b4bbdb649ad..4869dd10aff 100644 --- a/configure.in +++ b/configure.in @@ -2381,6 +2381,17 @@ then [Define this if you have flockfile(), getc_unlocked(), and funlockfile()]) fi +# check for readline 2.2 +AC_TRY_CPP([#include ], +have_readline=yes, have_readline=no) +if test $have_readline = yes +then + AC_EGREP_HEADER([extern int rl_completion_append_character;], + [readline/readline.h], + AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1, + [Define if you have readline 2.2]), ) +fi + # check for readline 4.0 AC_CHECK_LIB(readline, rl_pre_input_hook, AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1, diff --git a/pyconfig.h.in b/pyconfig.h.in index dd52efb3152..922147e3396 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -333,6 +333,9 @@ /* Define to 1 if you have the `readlink' function. */ #undef HAVE_READLINK +/* Define if you have readline 2.2 */ +#undef HAVE_RL_COMPLETION_APPEND_CHARACTER + /* Define if you have readline 4.2 */ #undef HAVE_RL_COMPLETION_MATCHES