Commit c3270444 authored by Tom Lane's avatar Tom Lane

Add configure probe for rl_completion_suppress_quote.

I had supposed that all versions of Readline that have filename
quoting hooks also have the rl_completion_suppress_quote variable.
But it seems OpenBSD managed to find a version someplace that does
not, so we'll have to expend a separate configure probe for that.

(Light testing suggests that this version also lacks the bugs that
make it necessary to frob that variable.  Hooray!)

Per buildfarm.
parent 9a3a75cb
......@@ -211,7 +211,8 @@ fi
# PGAC_READLINE_VARIABLES
# -----------------------
# Readline versions < 2.1 don't have rl_completion_append_character
# Readline versions < 2.1 don't have rl_completion_append_character,
# and some versions lack rl_completion_suppress_quote.
# Libedit lacks rl_filename_quote_characters and rl_filename_quoting_function
AC_DEFUN([PGAC_READLINE_VARIABLES],
......@@ -232,6 +233,23 @@ 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_LINK_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>
#if defined(HAVE_READLINE_READLINE_H)
#include <readline/readline.h>
#elif defined(HAVE_EDITLINE_READLINE_H)
#include <editline/readline.h>
#elif defined(HAVE_READLINE_H)
#include <readline.h>
#endif
],
[rl_completion_suppress_quote = 1;])],
[pgac_cv_var_rl_completion_suppress_quote=yes],
[pgac_cv_var_rl_completion_suppress_quote=no])])
if test x"$pgac_cv_var_rl_completion_suppress_quote" = x"yes"; then
AC_DEFINE(HAVE_RL_COMPLETION_SUPPRESS_QUOTE, 1,
[Define to 1 if you have the global variable 'rl_completion_suppress_quote'.])
fi
AC_CACHE_CHECK([for rl_filename_quote_characters], pgac_cv_var_rl_filename_quote_characters,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>
#if defined(HAVE_READLINE_READLINE_H)
......
......@@ -16346,6 +16346,45 @@ 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_n "checking for rl_completion_suppress_quote... " >&6; }
if ${pgac_cv_var_rl_completion_suppress_quote+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
#if defined(HAVE_READLINE_READLINE_H)
#include <readline/readline.h>
#elif defined(HAVE_EDITLINE_READLINE_H)
#include <editline/readline.h>
#elif defined(HAVE_READLINE_H)
#include <readline.h>
#endif
int
main ()
{
rl_completion_suppress_quote = 1;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
pgac_cv_var_rl_completion_suppress_quote=yes
else
pgac_cv_var_rl_completion_suppress_quote=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_suppress_quote" >&5
$as_echo "$pgac_cv_var_rl_completion_suppress_quote" >&6; }
if test x"$pgac_cv_var_rl_completion_suppress_quote" = x"yes"; then
$as_echo "#define HAVE_RL_COMPLETION_SUPPRESS_QUOTE 1" >>confdefs.h
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_filename_quote_characters" >&5
$as_echo_n "checking for rl_filename_quote_characters... " >&6; }
......
......@@ -4468,11 +4468,10 @@ complete_from_files(const char *text, int state)
* anyway. Set rl_completion_suppress_quote to prevent that. If we do
* get to quote_file_name(), we'll clear this again. (Yes, this seems
* like it's working around Readline bugs.)
*
* (For now, we assume that rl_completion_suppress_quote exists if the
* filename quoting hooks do.)
*/
#ifdef HAVE_RL_COMPLETION_SUPPRESS_QUOTE
rl_completion_suppress_quote = 1;
#endif
/* If user typed a quote, force quoting (never remove user's quote) */
if (*text == '\'')
......@@ -4842,7 +4841,9 @@ quote_file_name(char *fname, int match_type, char *quote_pointer)
* on its own accord. (This covers some additional cases beyond those
* dealt with above.)
*/
#ifdef HAVE_RL_COMPLETION_SUPPRESS_QUOTE
rl_completion_suppress_quote = 0;
#endif
/*
* If user typed a leading quote character other than single quote (i.e.,
......
......@@ -485,6 +485,10 @@
/* Define to 1 if you have the `rl_completion_matches' function. */
#undef HAVE_RL_COMPLETION_MATCHES
/* Define to 1 if you have the global variable 'rl_completion_suppress_quote'.
*/
#undef HAVE_RL_COMPLETION_SUPPRESS_QUOTE
/* Define to 1 if you have the `rl_filename_completion_function' function. */
#undef HAVE_RL_FILENAME_COMPLETION_FUNCTION
......
......@@ -332,6 +332,7 @@ sub GenerateFiles
HAVE_RINT => 1,
HAVE_RL_COMPLETION_APPEND_CHARACTER => undef,
HAVE_RL_COMPLETION_MATCHES => undef,
HAVE_RL_COMPLETION_SUPPRESS_QUOTE => undef,
HAVE_RL_FILENAME_COMPLETION_FUNCTION => undef,
HAVE_RL_FILENAME_QUOTE_CHARACTERS => undef,
HAVE_RL_FILENAME_QUOTING_FUNCTION => undef,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment