+++ /dev/null
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_lib_readline.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_LIB_READLINE
-#
-# DESCRIPTION
-#
-# Searches for a readline compatible library. If found, defines
-# `HAVE_LIBREADLINE'. If the found library has the `add_history' function,
-# sets also `HAVE_READLINE_HISTORY'. Also checks for the locations of the
-# necessary include files and sets `HAVE_READLINE_H' or
-# `HAVE_READLINE_READLINE_H' and `HAVE_READLINE_HISTORY_H' or
-# 'HAVE_HISTORY_H' if the corresponding include files exists.
-#
-# The libraries that may be readline compatible are `libedit',
-# `libeditline' and `libreadline'. Sometimes we need to link a termcap
-# library for readline to work, this macro tests these cases too by trying
-# to link with `libtermcap', `libcurses' or `libncurses' before giving up.
-#
-# Here is an example of how to use the information provided by this macro
-# to perform the necessary includes or declarations in a C file:
-#
-# #ifdef HAVE_LIBREADLINE
-# # if defined(HAVE_READLINE_READLINE_H)
-# # include <readline/readline.h>
-# # elif defined(HAVE_READLINE_H)
-# # include <readline.h>
-# # else /* !defined(HAVE_READLINE_H) */
-# extern char *readline ();
-# # endif /* !defined(HAVE_READLINE_H) */
-# char *cmdline = NULL;
-# #else /* !defined(HAVE_READLINE_READLINE_H) */
-# /* no readline */
-# #endif /* HAVE_LIBREADLINE */
-#
-# #ifdef HAVE_READLINE_HISTORY
-# # if defined(HAVE_READLINE_HISTORY_H)
-# # include <readline/history.h>
-# # elif defined(HAVE_HISTORY_H)
-# # include <history.h>
-# # else /* !defined(HAVE_HISTORY_H) */
-# extern void add_history ();
-# extern int write_history ();
-# extern int read_history ();
-# # endif /* defined(HAVE_READLINE_HISTORY_H) */
-# /* no history */
-# #endif /* HAVE_READLINE_HISTORY */
-#
-# LICENSE
-#
-# Copyright (c) 2008 Ville Laurikari <vl@iki.fi>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 6
-
-AU_ALIAS([VL_LIB_READLINE], [AX_LIB_READLINE])
-AC_DEFUN([AX_LIB_READLINE], [
- AC_CACHE_CHECK([for a readline compatible library],
- ax_cv_lib_readline, [
- ORIG_LIBS="$LIBS"
- for readline_lib in readline edit editline; do
- for termcap_lib in "" termcap curses ncurses; do
- if test -z "$termcap_lib"; then
- TRY_LIB="-l$readline_lib"
- else
- TRY_LIB="-l$readline_lib -l$termcap_lib"
- fi
- LIBS="$ORIG_LIBS $TRY_LIB"
- AC_TRY_LINK_FUNC(readline, ax_cv_lib_readline="$TRY_LIB")
- if test -n "$ax_cv_lib_readline"; then
- break
- fi
- done
- if test -n "$ax_cv_lib_readline"; then
- break
- fi
- done
- if test -z "$ax_cv_lib_readline"; then
- ax_cv_lib_readline="no"
- fi
- LIBS="$ORIG_LIBS"
- ])
-
- if test "$ax_cv_lib_readline" != "no"; then
- LIBS="$LIBS $ax_cv_lib_readline"
- AC_DEFINE(HAVE_LIBREADLINE, 1,
- [Define if you have a readline compatible library])
- AC_CHECK_HEADERS(readline.h readline/readline.h)
- AC_CACHE_CHECK([whether readline supports history],
- ax_cv_lib_readline_history, [
- ax_cv_lib_readline_history="no"
- AC_TRY_LINK_FUNC(add_history, ax_cv_lib_readline_history="yes")
- ])
- if test "$ax_cv_lib_readline_history" = "yes"; then
- AC_DEFINE(HAVE_READLINE_HISTORY, 1,
- [Define if your readline library has \`add_history'])
- AC_CHECK_HEADERS(history.h readline/history.h)
- fi
- fi
-])dnl
--- /dev/null
+AC_DEFUN([MY_LIB_READLINE], [
+ have_readline=no
+ for readline_lib in readline edit editline; do
+ for termcap_lib in "" termlib termcap curses ncurses; do
+ AC_CHECK_LIB([$readline_lib], [add_history],
+ [have_readline=yes; break 2], [], [$termcap_lib])
+ done
+ done
+
+ if test "$have_readline" = yes; then
+ AC_CHECK_HEADER([readline/readline.h], [], [have_readline=no],
+ [AC_INCLUDES_DEFAULT])
+ AC_CHECK_HEADER([readline/history.h], [], [have_readline=no],
+ [AC_INCLUDES_DEFAULT])
+ fi
+
+ if test "$have_readline" = yes; then
+ if test "x$termcap_lib" != x; then
+ LIBS="-l$termcap_lib $LIBS"
+ fi
+ LIBS="-l$readline_lib $LIBS"
+ AC_DEFINE([HAVE_LIBREADLINE], [1],
+ [Define if you have libreadline])
+ fi
+])
#include "secure.h"
#ifdef HAVE_LIBREADLINE
-# if defined(HAVE_READLINE_READLINE_H)
-# include <readline/readline.h>
-# elif defined(HAVE_READLINE_H)
-# include <readline.h>
-# else /* !defined(HAVE_READLINE_H) */
-extern char *readline ();
-# endif /* !defined(HAVE_READLINE_H) */
-#endif /* HAVE_LIBREADLINE */
-
-#ifdef HAVE_READLINE_HISTORY
-# if defined(HAVE_READLINE_HISTORY_H)
-# include <readline/history.h>
-# elif defined(HAVE_HISTORY_H)
-# include <history.h>
-# else /* !defined(HAVE_HISTORY_H) */
-extern void add_history ();
-extern int write_history ();
-extern int read_history ();
-# endif /* !defined(HAVE_HISTORY_H) */
-#endif /* HAVE_READLINE_HISTORY */
+#include <readline/readline.h>
+#include <readline/history.h>
+#endif
#define EOF_COOKIE "ctld\n"
#define INTR_COOKIE "aborted\n"
{
input_from_rl = line;
has_rl_input = 1;
-#ifdef HAVE_READLINE_HISTORY
if (line && *line)
add_history(line);
-#endif /* HAVE_READLINE_HISTORY */
}
static int
sigaction(SIGPIPE, &sa, NULL);
#ifdef HAVE_LIBREADLINE
rl_already_prompted = 1;
-#ifdef HAVE_READLINE_HISTORY
if (history_file)
read_history(history_file);
-#endif /* HAVE_READLINE_HISTORY */
rl_bind_key('\t', rl_insert); /* Disable tab completion */
rl_callback_handler_install("", input_handler);
#endif /* HAVE_LIBREADLINE */
#ifdef HAVE_LIBREADLINE
rl_callback_handler_remove();
-#ifdef HAVE_READLINE_HISTORY
if (history_file)
write_history(history_file);
-#endif /* HAVE_READLINE_HISTORY */
#endif
return ret;
}