From 4b0e37faaf5ffe1552a07438323341c6394890da Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 2 Feb 2022 23:01:56 -0500 Subject: [PATCH] Remove configure's check for rl_completion_append_character. The comment for PGAC_READLINE_VARIABLES says "Readline versions < 2.1 don't have rl_completion_append_character". It seems certain that such versions are extinct in the wild, though; for sure there are none in the buildfarm. Libedit has had this variable for at least twenty years too. Also, tab-complete.c's behavior without it is quite unfriendly, since we'll emit a space even when completion fails; but we've had no complaints about that. Therefore, let's assume this variable is always there, and drop the configure check to save a few build cycles. Discussion: https://postgr.es/m/147685.1643858911@sss.pgh.pa.us --- config/programs.m4 | 22 ++------------------ configure | 41 +------------------------------------ src/bin/psql/tab-complete.c | 10 +-------- src/include/pg_config.h.in | 4 ---- src/tools/msvc/Solution.pm | 1 - 5 files changed, 4 insertions(+), 74 deletions(-) diff --git a/config/programs.m4 b/config/programs.m4 index 6a118ece24..e7908d8793 100644 --- a/config/programs.m4 +++ b/config/programs.m4 @@ -211,29 +211,11 @@ fi # PGAC_READLINE_VARIABLES # ----------------------- -# Readline versions < 2.1 don't have rl_completion_append_character, -# and some versions lack rl_completion_suppress_quote. +# Some Readline versions lack rl_completion_suppress_quote. # Libedit lacks rl_filename_quote_characters and rl_filename_quoting_function AC_DEFUN([PGAC_READLINE_VARIABLES], -[AC_CACHE_CHECK([for rl_completion_append_character], pgac_cv_var_rl_completion_append_character, -[AC_LINK_IFELSE([AC_LANG_PROGRAM([#include -#if defined(HAVE_READLINE_READLINE_H) -#include -#elif defined(HAVE_EDITLINE_READLINE_H) -#include -#elif defined(HAVE_READLINE_H) -#include -#endif -], -[rl_completion_append_character = 'x';])], -[pgac_cv_var_rl_completion_append_character=yes], -[pgac_cv_var_rl_completion_append_character=no])]) -if test x"$pgac_cv_var_rl_completion_append_character" = x"yes"; then -AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1, - [Define to 1 if you have the global variable 'rl_completion_append_character'.]) -fi -AC_CACHE_CHECK([for rl_completion_suppress_quote], pgac_cv_var_rl_completion_suppress_quote, +[AC_CACHE_CHECK([for rl_completion_suppress_quote], pgac_cv_var_rl_completion_suppress_quote, [AC_LINK_IFELSE([AC_LANG_PROGRAM([#include #if defined(HAVE_READLINE_READLINE_H) #include diff --git a/configure b/configure index 93a46a859b..879f92202f 100755 --- a/configure +++ b/configure @@ -17006,46 +17006,7 @@ fi LIBS="$LIBS_including_readline" if test "$with_readline" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_append_character" >&5 -$as_echo_n "checking for rl_completion_append_character... " >&6; } -if ${pgac_cv_var_rl_completion_append_character+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#if defined(HAVE_READLINE_READLINE_H) -#include -#elif defined(HAVE_EDITLINE_READLINE_H) -#include -#elif defined(HAVE_READLINE_H) -#include -#endif - -int -main () -{ -rl_completion_append_character = 'x'; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - pgac_cv_var_rl_completion_append_character=yes -else - pgac_cv_var_rl_completion_append_character=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_var_rl_completion_append_character" >&5 -$as_echo "$pgac_cv_var_rl_completion_append_character" >&6; } -if test x"$pgac_cv_var_rl_completion_append_character" = x"yes"; then - -$as_echo "#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_suppress_quote" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_suppress_quote" >&5 $as_echo_n "checking for rl_completion_suppress_quote... " >&6; } if ${pgac_cv_var_rl_completion_suppress_quote+:} false; then : $as_echo_n "(cached) " >&6 diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 0ee94d7362..d1e421bc0f 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -1674,9 +1674,7 @@ psql_completion(const char *text, int start, int end) completion_last_char = (end > start) ? text[end - start - 1] : '\0'; /* We usually want the append character to be a space. */ -#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER rl_completion_append_character = ' '; -#endif /* Clear a few things. */ completion_charp = NULL; @@ -4547,9 +4545,7 @@ psql_completion(const char *text, int start, int end) { COMPLETE_WITH_CONST(true, ""); /* Also, prevent Readline from appending stuff to the non-match */ -#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER rl_completion_append_character = '\0'; -#endif #ifdef HAVE_RL_COMPLETION_SUPPRESS_QUOTE rl_completion_suppress_quote = 1; #endif @@ -5078,10 +5074,8 @@ _complete_from_query(const char *simple_query, * space afterwards. Otherwise the schema will stop being part of the * completion subject text, which is not what we want. */ -#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER if (num_schema_only > 0 && num_query_other == 0 && num_keywords == 0) rl_completion_append_character = '\0'; -#endif /* No more matches, so free the result structure and return null */ PQclear(result); @@ -5368,10 +5362,8 @@ complete_from_files(const char *text, int state) Assert(*retend == '\''); *retend = '/'; - /* Try to prevent libedit from adding a space, too */ -#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER + /* Prevent libedit from adding a space, too */ rl_completion_append_character = '\0'; -#endif } } diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 9d9bd6b9ef..912efdbbd1 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -460,10 +460,6 @@ /* Define to 1 if you have the `readv' function. */ #undef HAVE_READV -/* Define to 1 if you have the global variable - 'rl_completion_append_character'. */ -#undef HAVE_RL_COMPLETION_APPEND_CHARACTER - /* Define to 1 if you have the `rl_completion_matches' function. */ #undef HAVE_RL_COMPLETION_MATCHES diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index e47c2d648c..ed1c53000f 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -347,7 +347,6 @@ sub GenerateFiles HAVE_READLINE_READLINE_H => undef, HAVE_READLINK => undef, HAVE_READV => undef, - HAVE_RL_COMPLETION_APPEND_CHARACTER => undef, HAVE_RL_COMPLETION_MATCHES => undef, HAVE_RL_COMPLETION_SUPPRESS_QUOTE => undef, HAVE_RL_FILENAME_COMPLETION_FUNCTION => undef,