From a44161c313d46a1b10fd764728a089c26037710a Mon Sep 17 00:00:00 2001
From: Elena Zannoni
Date: Fri, 7 Jul 2000 19:14:18 +0000
Subject: [PATCH] Import of readline 4.0
---
readline/Makefile.in | 48 +-
readline/acconfig.h | 28 +-
readline/config.h.in | 99 +-
readline/configure | 432 +--
readline/configure.in | 40 +-
readline/display.c | 21 -
readline/doc/history.dvi | Bin 0 -> 48188 bytes
readline/doc/history.html | 1161 ++++++++
readline/doc/history.info | 788 ++++++
readline/doc/history.ps | 2265 +++++++++++++++
readline/doc/hsuser.texinfo | 4 +-
readline/doc/readline.dvi | Bin 0 -> 199980 bytes
readline/doc/readline.html | 4230 ++++++++++++++++++++++++++++
readline/doc/readline.info | 3039 ++++++++++++++++++++
readline/doc/readline.ps | 5225 +++++++++++++++++++++++++++++++++++
readline/doc/texinfo.tex | 4692 +++++++++++++++++++++++++++++++
readline/rltty.c | 4 -
readline/shell.c | 1 -
readline/terminal.c | 10 -
19 files changed, 21620 insertions(+), 467 deletions(-)
create mode 100644 readline/doc/history.dvi
create mode 100644 readline/doc/history.html
create mode 100644 readline/doc/history.info
create mode 100644 readline/doc/history.ps
create mode 100644 readline/doc/readline.dvi
create mode 100644 readline/doc/readline.html
create mode 100644 readline/doc/readline.info
create mode 100644 readline/doc/readline.ps
create mode 100644 readline/doc/texinfo.tex
diff --git a/readline/Makefile.in b/readline/Makefile.in
index 5c667ed69f5..746c83c14a3 100644
--- a/readline/Makefile.in
+++ b/readline/Makefile.in
@@ -1,6 +1,6 @@
## -*- text -*- ##
# Master Makefile for the GNU readline library.
-# Copyright (C) 1994, 1998 Free Software Foundation, Inc.
+# Copyright (C) 1994 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@ RL_LIBRARY_VERSION = @LIBVERSION@
RL_LIBRARY_NAME = readline
srcdir = @srcdir@
-VPATH = @srcdir@
+VPATH = .:@srcdir@
top_srcdir = @top_srcdir@
BUILD_DIR = @BUILD_DIR@
@@ -147,9 +147,9 @@ stamp-h: config.status $(srcdir)/config.h.in
CONFIG_FILES= CONFIG_HEADERS=config.h ./config.status
echo > $@
-# CYGNUS LOCAL: Never run autoconf.
-#$(srcdir)/configure: $(srcdir)/configure.in Comment-me-out in distribution
-# cd $(srcdir) && autoconf Comment-me-out in distribution
+$(srcdir)/configure: $(srcdir)/configure.in ## Comment-me-out in distribution
+ cd $(srcdir) && autoconf ## Comment-me-out in distribution
+
shared: force
-test -d shlib || mkdir shlib
@@ -165,30 +165,20 @@ examples: force
force:
-## CYGNUS LOCAL
-## Don't mess with people's installed readline's.
-## This tries to install this version of readline over whatever
-## version is already installed on the system (which could be a
-## newer version). There is no real reason for us to install
-## readline along with GDB. GDB links statically against readline,
-## so it doesn't depend on us installing it on the system.
-
-install:
-
-#install: installdirs $(STATIC_LIBS)
-# for f in ${INSTALLED_HEADERS}; do \
-# $(INSTALL_DATA) $(srcdir)/$$f $(includedir)/readline ; \
-# done
-# -( if test -f $(libdir)/libreadline.a ; then $(MV) $(libdir)/libreadline.a $(libdir)/libreadline.old; fi )
-# $(INSTALL_DATA) libreadline.a $(libdir)/libreadline.a
-# -test -n "$(RANLIB)" && $(RANLIB) -t $(libdir)/libreadline.a
-# -( if test -f $(libdir)/libhistory.a; then $(MV) $(libdir)/libhistory.a $(libdir)/libhistory.old; fi )
-# $(INSTALL_DATA) libhistory.a $(libdir)/libhistory.a
-# -test -n "$(RANLIB)" && $(RANLIB) -t $(libdir)/libhistory.a
-# -( if test -d doc ; then \
-# cd doc && \
-# ${MAKE} ${MFLAGS} infodir=$(infodir) $@; \
-# fi )
+install: installdirs $(STATIC_LIBS)
+ for f in ${INSTALLED_HEADERS}; do \
+ $(INSTALL_DATA) $(srcdir)/$$f $(includedir)/readline ; \
+ done
+ -$(MV) $(libdir)/libreadline.a $(libdir)/libreadline.old
+ $(INSTALL_DATA) libreadline.a $(libdir)/libreadline.a
+ -test -n "$(RANLIB)" && $(RANLIB) -t $(libdir)/libreadline.a
+ -$(MV) $(libdir)/libhistory.a $(libdir)/libhistory.old
+ $(INSTALL_DATA) libhistory.a $(libdir)/libhistory.a
+ -test -n "$(RANLIB)" && $(RANLIB) -t $(libdir)/libhistory.a
+ -( if test -d doc ; then \
+ cd doc && \
+ ${MAKE} ${MFLAGS} infodir=$(infodir) $@; \
+ fi )
installdirs: $(srcdir)/support/mkdirs
-$(SHELL) $(srcdir)/support/mkdirs $(includedir) \
diff --git a/readline/acconfig.h b/readline/acconfig.h
index 577cf9c7d49..4f4223886c2 100644
--- a/readline/acconfig.h
+++ b/readline/acconfig.h
@@ -17,38 +17,12 @@
/* Definitions pulled in from aclocal.m4. */
#undef VOID_SIGHANDLER
-#undef GWINSZ_IN_SYS_IOCTL
+#undef TIOCGWINSZ_IN_SYS_IOCTL
#undef TIOCSTAT_IN_SYS_IOCTL
#undef HAVE_GETPW_DECLS
-#undef FIONREAD_IN_SYS_IOCTL
-
-#undef HAVE_BSD_SIGNALS
-
-#undef HAVE_LSTAT
-
-#undef HAVE_POSIX_SIGNALS
-
-#undef HAVE_POSIX_SIGSETJMP
-
-#undef HAVE_USG_SIGHOLD
-
-#undef MUST_REINSTALL_SIGHANDLERS
-
-#undef SPEED_T_IN_SYS_TYPES
-
-#undef STRCOLL_BROKEN
-
-#undef STRUCT_DIRENT_HAS_D_FILENO
-
-#undef STRUCT_DIRENT_HAS_D_INO
-
-#undef STRUCT_WINSIZE_IN_SYS_IOCTL
-
-#undef STRUCT_WINSIZE_IN_TERMIOS
-
/* Leave that blank line there!! Autoheader needs it.
If you're adding to this file, keep in mind:
diff --git a/readline/config.h.in b/readline/config.h.in
index 87f807fa6eb..65927a8440d 100644
--- a/readline/config.h.in
+++ b/readline/config.h.in
@@ -1,60 +1,17 @@
/* config.h.in. Generated automatically from configure.in by autoheader. */
-/* Define if you have the strcoll function and it is properly defined. */
-#undef HAVE_STRCOLL
-
/* Define if on MINIX. */
#undef _MINIX
-/* Define if the system does not provide POSIX.1 features except
- with this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define if you need to in order for stat and other things to work. */
-#undef _POSIX_SOURCE
-
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
/* Define if the `S_IS*' macros in do not work properly. */
#undef STAT_MACROS_BROKEN
-/* Definitions pulled in from aclocal.m4. */
#undef VOID_SIGHANDLER
-#undef GWINSZ_IN_SYS_IOCTL
-
-#undef TIOCSTAT_IN_SYS_IOCTL
-
-#undef HAVE_GETPW_DECLS
-
-#undef FIONREAD_IN_SYS_IOCTL
-
-#undef HAVE_BSD_SIGNALS
-
-#undef HAVE_LSTAT
-
-#undef HAVE_POSIX_SIGNALS
-
-#undef HAVE_POSIX_SIGSETJMP
-
-#undef HAVE_USG_SIGHOLD
-
-#undef MUST_REINSTALL_SIGHANDLERS
-
-#undef SPEED_T_IN_SYS_TYPES
-
-#undef STRCOLL_BROKEN
-
-#undef STRUCT_DIRENT_HAS_D_FILENO
-
-#undef STRUCT_DIRENT_HAS_D_INO
-
-#undef STRUCT_WINSIZE_IN_SYS_IOCTL
-
-#undef STRUCT_WINSIZE_IN_TERMIOS
-
-/* Define if you have the lstat function. */
+/* Define if you have the lstat function. */
#undef HAVE_LSTAT
/* Define if you have the putenv function. */
@@ -66,27 +23,26 @@
/* Define if you have the setenv function. */
#undef HAVE_SETENV
-/* Define if you have the setlocale function. */
-#undef HAVE_SETLOCALE
-
/* Define if you have the strcasecmp function. */
#undef HAVE_STRCASECMP
+/* Define if you have the setlocale function. */
+#undef HAVE_SETLOCALE
+
/* Define if you have the tcgetattr function. */
#undef HAVE_TCGETATTR
+/* Define if you have the strcoll function. */
+#undef HAVE_STRCOLL
+
+#undef STRCOLL_BROKEN
+
/* Define if you have the header file. */
#undef HAVE_DIRENT_H
-/* Define if you have the header file. */
-#undef HAVE_LOCALE_H
-
/* Define if you have the header file. */
#undef HAVE_NDIR_H
-/* Define if you have the header file. */
-#undef HAVE_STDARG_H
-
/* Define if you have the header file. */
#undef HAVE_STDLIB_H
@@ -128,6 +84,43 @@
/* Define if you have the header file. */
#undef HAVE_VARARGS_H
+
+/* Define if you have the header file. */
+#undef HAVE_STDARG_H
+
+#undef HAVE_LOCALE_H
+
+/* Definitions pulled in from aclocal.m4. */
+#undef VOID_SIGHANDLER
+
+#undef GWINSZ_IN_SYS_IOCTL
+
+#undef STRUCT_WINSIZE_IN_SYS_IOCTL
+
+#undef STRUCT_WINSIZE_IN_TERMIOS
+
+#undef TIOCSTAT_IN_SYS_IOCTL
+
+#undef FIONREAD_IN_SYS_IOCTL
+
+#undef SPEED_T_IN_SYS_TYPES
+
+#undef HAVE_GETPW_DECLS
+
+#undef STRUCT_DIRENT_HAS_D_INO
+
+#undef STRUCT_DIRENT_HAS_D_FILENO
+
+#undef HAVE_BSD_SIGNALS
+
+#undef HAVE_POSIX_SIGNALS
+
+#undef HAVE_USG_SIGHOLD
+
+#undef MUST_REINSTALL_SIGHANDLERS
+
+#undef HAVE_POSIX_SIGSETJMP
+
/* config.h.bot */
/* modify settings or make new ones based on what autoconf tells us. */
diff --git a/readline/configure b/readline/configure
index cdcdf88bae4..454a177e35d 100755
--- a/readline/configure
+++ b/readline/configure
@@ -1,6 +1,6 @@
#! /bin/sh
-# From configure.in for Readline 4.0, version 2.14, from autoconf version 2.13
+# From configure.in for Readline 4.0, version 2.14, from autoconf version 2.12
LIBVERSION=4.0
@@ -92,7 +92,7 @@ LIBVERSION=4.0
# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13
+# Generated automatically using autoconf version 2.12
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
@@ -121,7 +121,6 @@ program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
-sitefile=
srcdir=
target=NONE
verbose=
@@ -143,7 +142,6 @@ mandir='${prefix}/man'
# Initialize some other variables.
subdirs=
MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
# Maximum number of lines to put in a shell here document.
ac_max_here_lines=12
@@ -236,7 +234,6 @@ Configuration:
--help print this message
--no-create do not create output files
--quiet, --silent do not print \`checking...' messages
- --site-file=FILE use FILE as the site file
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
@@ -407,11 +404,6 @@ EOF
-site=* | --site=* | --sit=*)
site="$ac_optarg" ;;
- -site-file | --site-file | --site-fil | --site-fi | --site-f)
- ac_prev=sitefile ;;
- -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
- sitefile="$ac_optarg" ;;
-
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
@@ -433,7 +425,7 @@ EOF
verbose=yes ;;
-version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13"
+ echo "configure generated by autoconf version 2.12"
exit 0 ;;
-with-* | --with-*)
@@ -577,16 +569,12 @@ fi
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
# Prefer explicitly selected file to automatically selected ones.
-if test -z "$sitefile"; then
- if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
-else
- CONFIG_SITE="$sitefile"
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
@@ -607,11 +595,9 @@ ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross
-ac_exeext=
-ac_objext=o
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
@@ -629,9 +615,8 @@ fi
-
ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+for ac_dir in ./support $srcdir/./support; do
if test -f $ac_dir/install-sh; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install-sh -c"
@@ -643,34 +628,35 @@ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
fi
done
if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+ { echo "configure: error: can not find install-sh or install.sh in ./support $srcdir/./support" 1>&2; exit 1; }
fi
ac_config_guess=$ac_aux_dir/config.guess
ac_config_sub=$ac_aux_dir/config.sub
ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+if $ac_config_sub sun4 >/dev/null 2>&1; then :
else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:660: checking host system type" >&5
+echo "configure:646: checking host system type" >&5
host_alias=$host
case "$host_alias" in
NONE)
case $nonopt in
NONE)
- if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+ if host_alias=`$ac_config_guess`; then :
else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
fi ;;
*) host_alias=$nonopt ;;
esac ;;
esac
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+host=`$ac_config_sub $host_alias`
host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
@@ -697,16 +683,15 @@ test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:701: checking for $ac_word" >&5
+echo "configure:687: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_CC="gcc"
@@ -727,17 +712,16 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:731: checking for $ac_word" >&5
+echo "configure:716: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
ac_prog_rejected=no
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
+ for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
@@ -772,61 +756,25 @@ else
echo "$ac_t""no" 1>&6
fi
- if test -z "$CC"; then
- case "`uname -s`" in
- *win32* | *WIN32*)
- # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:782: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="cl"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
- ;;
- esac
- fi
test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:814: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:764: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross
-cat > conftest.$ac_ext << EOF
-
-#line 825 "configure"
+cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -840,24 +788,18 @@ else
ac_cv_prog_cc_works=no
fi
rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:856: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:798: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:861: checking whether we are using GNU C" >&5
+echo "configure:803: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -866,7 +808,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:870: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:812: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -877,15 +819,11 @@ echo "$ac_t""$ac_cv_prog_gcc" 1>&6
if test $ac_cv_prog_gcc = yes; then
GCC=yes
-else
- GCC=
-fi
-
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:889: checking whether ${CC-cc} accepts -g" >&5
+ ac_test_CFLAGS="${CFLAGS+set}"
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS=
+ echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:827: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -900,24 +838,20 @@ rm -f conftest*
fi
echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+ elif test $ac_cv_prog_cc_g = yes; then
CFLAGS="-g -O2"
else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
CFLAGS="-O2"
- else
- CFLAGS=
fi
+else
+ GCC=
+ test "${CFLAGS+set}" = set || CFLAGS="-g"
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:921: checking how to run the C preprocessor" >&5
+echo "configure:855: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -932,14 +866,14 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:942: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+{ (eval echo configure:876: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
else
@@ -949,31 +883,14 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:959: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:976: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+{ (eval echo configure:893: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
else
@@ -985,8 +902,6 @@ else
fi
rm -f conftest*
fi
-rm -f conftest*
-fi
rm -f conftest*
ac_cv_prog_CPP="$CPP"
fi
@@ -998,18 +913,18 @@ echo "$ac_t""$CPP" 1>&6
ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
-echo "configure:1002: checking for minix/config.h" >&5
+echo "configure:917: checking for minix/config.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1012: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+{ (eval echo configure:927: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
eval "ac_cv_header_$ac_safe=yes"
@@ -1046,52 +961,18 @@ EOF
fi
-
-if test "x$cross_compiling" = "xyes"; then
- case "${host}" in
- *-cygwin*)
- cross_cache=${srcdir}/cross-build/cygwin.cache
- if test -r "${cross_cache}"; then
- echo "loading cross-build cache file ${cross_cache}"
- . ${cross_cache}
- fi
- LOCAL_CFLAGS="$LOCAL_CFLAGS -I${srcdir}/../libtermcap"
- unset cross_cache
- ;;
- *) echo "configure: cross-compiling for a non-cygwin target is not supported" >&2
- ;;
- esac
-fi
-
-if test "x$cross_compiling" = "xyes"; then
- CROSS_COMPILING_FLAG=-DCROSS_COMPILING
-else
- CROSS_COMPILING_FLAG=
-fi
-
-
-if test -z "$CC_FOR_BUILD"; then
- if test "x$cross_compiling" = "xno"; then
- CC_FOR_BUILD='$(CC)'
- else
- CC_FOR_BUILD=gcc
- fi
-fi
-
-
-
# If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
if test $ac_cv_prog_gcc = yes; then
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:1089: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:970: checking whether ${CC-cc} needs -traditional" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_pattern="Autoconf.*'x'"
cat > conftest.$ac_ext <
Autoconf TIOCGETP
@@ -1109,7 +990,7 @@ rm -f conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat > conftest.$ac_ext <
Autoconf TCGETA
@@ -1137,30 +1018,28 @@ fi
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1146: checking for a BSD compatible install" >&5
+echo "configure:1026: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
# Account for people who put trailing slashes in PATH elements.
case "$ac_dir/" in
/|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
+ for ac_prog in ginstall installbsd scoinst install; do
if test -f $ac_dir/$ac_prog; then
if test $ac_prog = install &&
grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
+ # OSF/1 installbsd also uses dspmsg, but is usable.
:
else
ac_cv_path_install="$ac_dir/$ac_prog -c"
@@ -1190,23 +1069,20 @@ echo "$ac_t""$INSTALL" 1>&6
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1201: checking for $ac_word" >&5
+echo "configure:1078: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$AR"; then
ac_cv_prog_AR="$AR" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_AR="ar"
@@ -1227,16 +1103,15 @@ test -n "$ARFLAGS" || ARFLAGS="cr"
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1231: checking for $ac_word" >&5
+echo "configure:1107: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$RANLIB"; then
ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_RANLIB="ranlib"
@@ -1259,12 +1134,12 @@ MAKE_SHELL=/bin/sh
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1263: checking return type of signal handlers" >&5
+echo "configure:1138: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
#include
@@ -1281,7 +1156,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:1285: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1160: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -1301,12 +1176,12 @@ EOF
echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6
-echo "configure:1305: checking whether stat file-mode macros are broken" >&5
+echo "configure:1180: checking whether stat file-mode macros are broken" >&5
if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
#include
@@ -1361,12 +1236,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:1365: checking for $ac_hdr that defines DIR" >&5
+echo "configure:1240: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
#include <$ac_hdr>
@@ -1374,7 +1249,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
-if { (eval echo configure:1378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@@ -1399,7 +1274,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:1403: checking for opendir in -ldir" >&5
+echo "configure:1278: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1407,7 +1282,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1440,7 +1315,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:1444: checking for opendir in -lx" >&5
+echo "configure:1319: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1448,7 +1323,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1485,12 +1360,12 @@ fi
for ac_func in strcasecmp select setenv putenv tcgetattr setlocale lstat
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1489: checking for $ac_func" >&5
+echo "configure:1364: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1539,7 +1414,7 @@ done
echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:1543: checking for working strcoll" >&5
+echo "configure:1418: checking for working strcoll" >&5
if eval "test \"`echo '$''{'ac_cv_func_strcoll_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1547,7 +1422,7 @@ else
ac_cv_func_strcoll_works=no
else
cat > conftest.$ac_ext <
main ()
@@ -1557,7 +1432,7 @@ main ()
strcoll ("123", "456") >= 0);
}
EOF
-if { (eval echo configure:1561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_func_strcoll_works=yes
else
@@ -1586,18 +1461,18 @@ for ac_hdr in unistd.h stdlib.h varargs.h stdarg.h string.h \
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1590: checking for $ac_hdr" >&5
+echo "configure:1465: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+{ (eval echo configure:1475: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
rm -rf conftest*
eval "ac_cv_header_$ac_safe=yes"
@@ -1625,13 +1500,13 @@ done
echo $ac_n "checking for type of signal functions""... $ac_c" 1>&6
-echo "configure:1629: checking for type of signal functions" >&5
+echo "configure:1504: checking for type of signal functions" >&5
if eval "test \"`echo '$''{'bash_cv_signal_vintage'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
int main() {
@@ -1644,7 +1519,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:1648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1523: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_signal_vintage=posix
else
@@ -1653,7 +1528,7 @@ else
rm -rf conftest*
cat > conftest.$ac_ext <
int main() {
@@ -1663,7 +1538,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:1667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_signal_vintage=4.2bsd
else
@@ -1672,7 +1547,7 @@ else
rm -rf conftest*
cat > conftest.$ac_ext <
@@ -1685,7 +1560,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:1689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_signal_vintage=svr3
else
@@ -1726,7 +1601,7 @@ fi
echo $ac_n "checking if signal handlers must be reinstalled when invoked""... $ac_c" 1>&6
-echo "configure:1730: checking if signal handlers must be reinstalled when invoked" >&5
+echo "configure:1605: checking if signal handlers must be reinstalled when invoked" >&5
if eval "test \"`echo '$''{'bash_cv_must_reinstall_sighandlers'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1736,7 +1611,7 @@ else
else
cat > conftest.$ac_ext <
@@ -1783,7 +1658,7 @@ main()
}
EOF
-if { (eval echo configure:1787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_must_reinstall_sighandlers=no
else
@@ -1808,7 +1683,7 @@ fi
echo $ac_n "checking for presence of POSIX-style sigsetjmp/siglongjmp""... $ac_c" 1>&6
-echo "configure:1812: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
+echo "configure:1687: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
if eval "test \"`echo '$''{'bash_cv_func_sigsetjmp'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1818,7 +1693,7 @@ else
else
cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_func_sigsetjmp=present
else
@@ -1882,12 +1757,12 @@ EOF
fi
echo $ac_n "checking for lstat""... $ac_c" 1>&6
-echo "configure:1886: checking for lstat" >&5
+echo "configure:1761: checking for lstat" >&5
if eval "test \"`echo '$''{'bash_cv_func_lstat'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
@@ -1897,7 +1772,7 @@ int main() {
lstat(".",(struct stat *)0);
; return 0; }
EOF
-if { (eval echo configure:1901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
bash_cv_func_lstat=yes
else
@@ -1918,12 +1793,12 @@ EOF
fi
echo $ac_n "checking whether programs are able to redeclare getpw functions""... $ac_c" 1>&6
-echo "configure:1922: checking whether programs are able to redeclare getpw functions" >&5
+echo "configure:1797: checking whether programs are able to redeclare getpw functions" >&5
if eval "test \"`echo '$''{'bash_cv_can_redecl_getpw'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
#include
@@ -1934,7 +1809,7 @@ int main() {
struct passwd *z; z = getpwent(); z = getpwuid(0); z = getpwnam("root");
; return 0; }
EOF
-if { (eval echo configure:1938: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1813: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_can_redecl_getpw=yes
else
@@ -1956,7 +1831,7 @@ fi
echo $ac_n "checking whether or not strcoll and strcmp differ""... $ac_c" 1>&6
-echo "configure:1960: checking whether or not strcoll and strcmp differ" >&5
+echo "configure:1835: checking whether or not strcoll and strcmp differ" >&5
if eval "test \"`echo '$''{'bash_cv_func_strcoll_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1966,7 +1841,7 @@ else
else
cat > conftest.$ac_ext <
@@ -2005,7 +1880,7 @@ char *v[];
}
EOF
-if { (eval echo configure:2009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
bash_cv_func_strcoll_broken=yes
else
@@ -2029,12 +1904,12 @@ fi
echo $ac_n "checking whether signal handlers are of type void""... $ac_c" 1>&6
-echo "configure:2033: checking whether signal handlers are of type void" >&5
+echo "configure:1908: checking whether signal handlers are of type void" >&5
if eval "test \"`echo '$''{'bash_cv_void_sighandler'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
#include
@@ -2049,7 +1924,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:2053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1928: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_void_sighandler=yes
else
@@ -2069,12 +1944,12 @@ EOF
fi
echo $ac_n "checking for TIOCGWINSZ in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:2073: checking for TIOCGWINSZ in sys/ioctl.h" >&5
+echo "configure:1948: checking for TIOCGWINSZ in sys/ioctl.h" >&5
if eval "test \"`echo '$''{'bash_cv_tiocgwinsz_in_ioctl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
#include
@@ -2082,7 +1957,7 @@ int main() {
int x = TIOCGWINSZ;
; return 0; }
EOF
-if { (eval echo configure:2086: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1961: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_tiocgwinsz_in_ioctl=yes
else
@@ -2103,12 +1978,12 @@ EOF
fi
echo $ac_n "checking for TIOCSTAT in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:2107: checking for TIOCSTAT in sys/ioctl.h" >&5
+echo "configure:1982: checking for TIOCSTAT in sys/ioctl.h" >&5
if eval "test \"`echo '$''{'bash_cv_tiocstat_in_ioctl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
#include
@@ -2116,7 +1991,7 @@ int main() {
int x = TIOCSTAT;
; return 0; }
EOF
-if { (eval echo configure:2120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1995: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_tiocstat_in_ioctl=yes
else
@@ -2137,12 +2012,12 @@ EOF
fi
echo $ac_n "checking for FIONREAD in sys/ioctl.h""... $ac_c" 1>&6
-echo "configure:2141: checking for FIONREAD in sys/ioctl.h" >&5
+echo "configure:2016: checking for FIONREAD in sys/ioctl.h" >&5
if eval "test \"`echo '$''{'bash_cv_fionread_in_ioctl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
#include
@@ -2150,7 +2025,7 @@ int main() {
int x = FIONREAD;
; return 0; }
EOF
-if { (eval echo configure:2154: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2029: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_fionread_in_ioctl=yes
else
@@ -2171,19 +2046,19 @@ EOF
fi
echo $ac_n "checking for speed_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:2175: checking for speed_t in sys/types.h" >&5
+echo "configure:2050: checking for speed_t in sys/types.h" >&5
if eval "test \"`echo '$''{'bash_cv_speed_t_in_sys_types'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
int main() {
speed_t x;
; return 0; }
EOF
-if { (eval echo configure:2187: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2062: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_speed_t_in_sys_types=yes
else
@@ -2204,12 +2079,12 @@ EOF
fi
echo $ac_n "checking for struct winsize in sys/ioctl.h and termios.h""... $ac_c" 1>&6
-echo "configure:2208: checking for struct winsize in sys/ioctl.h and termios.h" >&5
+echo "configure:2083: checking for struct winsize in sys/ioctl.h and termios.h" >&5
if eval "test \"`echo '$''{'bash_cv_struct_winsize_header'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
#include
@@ -2217,7 +2092,7 @@ int main() {
struct winsize x;
; return 0; }
EOF
-if { (eval echo configure:2221: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2096: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_struct_winsize_header=ioctl_h
else
@@ -2225,7 +2100,7 @@ else
cat conftest.$ac_ext >&5
rm -rf conftest*
cat > conftest.$ac_ext <
#include
@@ -2233,7 +2108,7 @@ int main() {
struct winsize x;
; return 0; }
EOF
-if { (eval echo configure:2237: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_struct_winsize_header=termios_h
else
@@ -2266,12 +2141,12 @@ fi
echo $ac_n "checking if struct dirent has a d_ino member""... $ac_c" 1>&6
-echo "configure:2270: checking if struct dirent has a d_ino member" >&5
+echo "configure:2145: checking if struct dirent has a d_ino member" >&5
if eval "test \"`echo '$''{'bash_cv_dirent_has_dino'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
@@ -2300,7 +2175,7 @@ struct dirent d; int z; z = d.d_ino;
; return 0; }
EOF
-if { (eval echo configure:2304: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2179: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_dirent_has_dino=yes
else
@@ -2322,12 +2197,12 @@ fi
echo $ac_n "checking if struct dirent has a d_fileno member""... $ac_c" 1>&6
-echo "configure:2326: checking if struct dirent has a d_fileno member" >&5
+echo "configure:2201: checking if struct dirent has a d_fileno member" >&5
if eval "test \"`echo '$''{'bash_cv_dirent_has_d_fileno'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <
@@ -2356,7 +2231,7 @@ struct dirent d; int z; z = d.d_fileno;
; return 0; }
EOF
-if { (eval echo configure:2360: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2235: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bash_cv_dirent_has_d_fileno=yes
else
@@ -2385,14 +2260,14 @@ if test "X$bash_cv_termcap_lib" = "X"; then
_bash_needmsg=yes
else
echo $ac_n "checking which library has the termcap functions""... $ac_c" 1>&6
-echo "configure:2389: checking which library has the termcap functions" >&5
+echo "configure:2264: checking which library has the termcap functions" >&5
_bash_needmsg=
fi
if eval "test \"`echo '$''{'bash_cv_termcap_lib'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:2396: checking for tgetent in -ltermcap" >&5
+echo "configure:2271: checking for tgetent in -ltermcap" >&5
ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2400,7 +2275,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ltermcap $LIBS"
cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2430,7 +2305,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:2434: checking for tgetent in -lcurses" >&5
+echo "configure:2309: checking for tgetent in -lcurses" >&5
ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2438,7 +2313,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcurses $LIBS"
cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2468,7 +2343,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:2472: checking for tgetent in -lncurses" >&5
+echo "configure:2347: checking for tgetent in -lncurses" >&5
ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2476,7 +2351,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lncurses $LIBS"
cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2516,7 +2391,7 @@ fi
if test "X$_bash_needmsg" = "Xyes"; then
echo $ac_n "checking which library has the termcap functions""... $ac_c" 1>&6
-echo "configure:2520: checking which library has the termcap functions" >&5
+echo "configure:2395: checking which library has the termcap functions" >&5
fi
echo "$ac_t""using $bash_cv_termcap_lib" 1>&6
if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
@@ -2553,7 +2428,7 @@ esac
#
if test -f ${srcdir}/support/shobj-conf; then
echo $ac_n "checking configuration for building shared libraries""... $ac_c" 1>&6
-echo "configure:2557: checking configuration for building shared libraries" >&5
+echo "configure:2432: checking configuration for building shared libraries" >&5
eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C ${CC} -c ${host_cpu} -o ${host_os} -v ${host_vendor}`
@@ -2611,7 +2486,7 @@ EOF
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ case `(ac_space=' '; set) 2>&1` in
*ac_space=\ *)
# `set' does not quote correctly, so add quotes (double-quote substitution
# turns \\\\ into \\, and sed turns \\ into \).
@@ -2678,7 +2553,7 @@ do
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.13"
+ echo "$CONFIG_STATUS generated by autoconf version 2.12"
exit 0 ;;
-help | --help | --hel | --he | --h)
echo "\$ac_cs_usage"; exit 0 ;;
@@ -2698,11 +2573,9 @@ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
$ac_vpsub
$extrasub
-s%@SHELL@%$SHELL%g
s%@CFLAGS@%$CFLAGS%g
s%@CPPFLAGS@%$CPPFLAGS%g
s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
s%@DEFS@%$DEFS%g
s%@LDFLAGS@%$LDFLAGS%g
s%@LIBS@%$LIBS%g
@@ -2728,10 +2601,7 @@ s%@host_vendor@%$host_vendor%g
s%@host_os@%$host_os%g
s%@CC@%$CC%g
s%@CPP@%$CPP%g
-s%@CROSS_COMPILING_FLAG@%$CROSS_COMPILING_FLAG%g
-s%@CC_FOR_BUILD@%$CC_FOR_BUILD%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
s%@INSTALL_DATA@%$INSTALL_DATA%g
s%@AR@%$AR%g
s%@RANLIB@%$RANLIB%g
diff --git a/readline/configure.in b/readline/configure.in
index 9afdaa70fcf..240a3addc45 100644
--- a/readline/configure.in
+++ b/readline/configure.in
@@ -13,7 +13,7 @@ AC_CONFIG_HEADER(config.h)
dnl make sure we are using a recent autoconf version
AC_PREREQ(2.10)
-dnl AC_CONFIG_AUX_DIR(./support)
+AC_CONFIG_AUX_DIR(./support)
AC_CANONICAL_HOST
@@ -34,44 +34,6 @@ test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
AC_PROG_CC
AC_MINIX
-dnl BEGIN changes for CYGNUS cross-building for Cygwin
-
-dnl load up the cross-building cache file -- add more cases and cache
-dnl files as necessary
-if test "x$cross_compiling" = "xyes"; then
- case "${host}" in
- *-cygwin*)
- cross_cache=${srcdir}/cross-build/cygwin.cache
- if test -r "${cross_cache}"; then
- echo "loading cross-build cache file ${cross_cache}"
- . ${cross_cache}
- fi
- LOCAL_CFLAGS="$LOCAL_CFLAGS -I${srcdir}/../libtermcap"
- unset cross_cache
- ;;
- *) echo "configure: cross-compiling for a non-cygwin target is not supported" >&2
- ;;
- esac
-fi
-
-if test "x$cross_compiling" = "xyes"; then
- CROSS_COMPILING_FLAG=-DCROSS_COMPILING
-else
- CROSS_COMPILING_FLAG=
-fi
-AC_SUBST(CROSS_COMPILING_FLAG)
-
-if test -z "$CC_FOR_BUILD"; then
- if test "x$cross_compiling" = "xno"; then
- CC_FOR_BUILD='$(CC)'
- else
- CC_FOR_BUILD=gcc
- fi
-fi
-AC_SUBST(CC_FOR_BUILD)
-
-dnl END changes for CYGNUS cross-building for Cygwin
-
# If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
diff --git a/readline/display.c b/readline/display.c
index 3f6fe71b023..25aba64ca67 100644
--- a/readline/display.c
+++ b/readline/display.c
@@ -651,12 +651,8 @@ rl_redisplay ()
if (cursor_linenum == 0 && wrap_offset > 0 && _rl_last_c_pos > 0 &&
_rl_last_c_pos <= last_invisible && local_prompt)
{
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
if (term_cr)
tputs (term_cr, 1, _rl_output_character_function);
-#endif
_rl_output_some_chars (local_prompt, nleft);
_rl_last_c_pos = nleft;
}
@@ -903,11 +899,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
term_cr && lendiff > visible_length && _rl_last_c_pos > 0 &&
od > lendiff && _rl_last_c_pos < last_invisible)
{
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
tputs (term_cr, 1, _rl_output_character_function);
-#endif /* !__MSDOS__ */
_rl_output_some_chars (local_prompt, lendiff);
_rl_last_c_pos = lendiff;
}
@@ -1511,11 +1503,7 @@ cr ()
{
if (term_cr)
{
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
tputs (term_cr, 1, _rl_output_character_function);
-#endif /* !__MSDOS__ */
_rl_last_c_pos = 0;
}
}
@@ -1530,16 +1518,8 @@ _rl_redisplay_after_sigwinch ()
the right thing happens if we have wrapped to a new screen line. */
if (term_cr)
{
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
tputs (term_cr, 1, _rl_output_character_function);
-#endif /* !__MSDOS__ */
_rl_last_c_pos = 0;
-#if defined (__MSDOS__)
- space_to_eol (screenwidth);
- putc ('\r', rl_outstream);
-#else
if (term_clreol)
tputs (term_clreol, 1, _rl_output_character_function);
else
@@ -1547,7 +1527,6 @@ _rl_redisplay_after_sigwinch ()
space_to_eol (screenwidth);
tputs (term_cr, 1, _rl_output_character_function);
}
-#endif
if (_rl_last_v_pos > 0)
_rl_move_vert (0);
}
diff --git a/readline/doc/history.dvi b/readline/doc/history.dvi
new file mode 100644
index 0000000000000000000000000000000000000000..35dc6df2db3730b90a206f85967b4a3c95e883d0
GIT binary patch
literal 48188
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
+
+
+
+GNU History Library
+
+
+GNU History Library
+Edition 4.0, for History Library Version 4.0.
+December 1998
+Brian Fox, Free Software Foundation
+Chet Ramey, Case Western Reserve University
+
+
+
Table of Contents
+
+
+
+
+This document describes the GNU History library, a programming tool that
+provides a consistent user interface for recalling lines of previously
+typed input.
+
+
+
+Published by the Free Software Foundation
+675 Massachusetts Avenue,
+Cambridge, MA 02139 USA
+
+
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the Free Software Foundation.
+
+
+
+Copyright (C) 1988-1999 Free Software Foundation, Inc.
+
+
+
+
+
+
+
+
+This chapter describes how to use the GNU History Library interactively,
+from a user's standpoint. It should be considered a user's guide. For
+information on using the GNU History Library in your own programs,
+see section Programming with GNU History.
+
+
+
+
+
+
+
+
+
+
+
+
+
+The History library provides a history expansion feature that is similar
+to the history expansion provided by csh. This section
+describes the syntax used to manipulate the history information.
+
+
+
+History expansions introduce words from the history list into
+the input stream, making it easy to repeat commands, insert the
+arguments to a previous command into the current input line, or
+fix errors in previous commands quickly.
+
+
+
+History expansion takes place in two parts. The first is to determine
+which line from the history list should be used during substitution.
+The second is to select portions of that line for inclusion into the
+current one. The line selected from the history is called the
+event, and the portions of that line that are acted upon are
+called words. Various modifiers are available to manipulate
+the selected words. The line is broken into words in the same fashion
+that Bash does, so that several words
+surrounded by quotes are considered one word.
+History expansions are introduced by the appearance of the
+history expansion character, which is `!' by default.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+An event designator is a reference to a command line entry in the
+history list.
+
+
+
+
+
+!
+-
+Start a history substitution, except when followed by a space, tab,
+the end of the line, `=' or `('.
+
+
!n
+-
+Refer to command line n.
+
+
!-n
+-
+Refer to the command n lines back.
+
+
!!
+-
+Refer to the previous command. This is a synonym for `!-1'.
+
+
!string
+-
+Refer to the most recent command starting with string.
+
+
!?string[?]
+-
+Refer to the most recent command containing string. The trailing
+`?' may be omitted if the string is followed immediately by
+a newline.
+
+
^string1^string2^
+-
+Quick Substitution. Repeat the last command, replacing string1
+with string2. Equivalent to
+
!!:s/string1/string2/.
+
+ !#
+-
+The entire command line typed so far.
+
+
+
+
+
+
+
+
+Word designators are used to select desired words from the event.
+A `:' separates the event specification from the word designator. It
+may be omitted if the word designator begins with a `^', `$',
+`*', `-', or `%'. Words are numbered from the beginning
+of the line, with the first word being denoted by 0 (zero). Words are
+inserted into the current line separated by single spaces.
+
+
+
+
+0 (zero)
+-
+The
0th word. For many applications, this is the command word.
+
+ n
+-
+The nth word.
+
+
^
+-
+The first argument; that is, word 1.
+
+
$
+-
+The last argument.
+
+
%
+-
+The word matched by the most recent `?string?' search.
+
+
x-y
+-
+A range of words; `-y' abbreviates `0-y'.
+
+
*
+-
+All of the words, except the
0th. This is a synonym for `1-$'.
+It is not an error to use `*' if there is just one word in the event;
+the empty string is returned in that case.
+
+ x*
+-
+Abbreviates `x-$'
+
+
x-
+-
+Abbreviates `x-$' like `x*', but omits the last word.
+
+
+
+
+If a word designator is supplied without an event specification, the
+previous command is used as the event.
+
+
+
+
+
+
+
+After the optional word designator, you can add a sequence of one or more
+of the following modifiers, each preceded by a `:'.
+
+
+
+
+h
+-
+Remove a trailing pathname component, leaving only the head.
+
+
t
+-
+Remove all leading pathname components, leaving the tail.
+
+
r
+-
+Remove a trailing suffix of the form `.suffix', leaving
+the basename.
+
+
e
+-
+Remove all but the trailing suffix.
+
+
p
+-
+Print the new command but do not execute it.
+
+
s/old/new/
+-
+Substitute new for the first occurrence of old in the
+event line. Any delimiter may be used in place of `/'.
+The delimiter may be quoted in old and new
+with a single backslash. If `&' appears in new,
+it is replaced by old. A single backslash will quote
+the `&'. The final delimiter is optional if it is the last
+character on the input line.
+
+
&
+-
+Repeat the previous substitution.
+
+
g
+-
+Cause changes to be applied over the entire event line. Used in
+conjunction with `s', as in
gs/old/new/,
+or with `&'.
+
+
+
+
+
+
+
+
+This chapter describes how to interface programs that you write
+with the GNU History Library.
+It should be considered a technical guide.
+For information on the interactive use of GNU History, see section Using History Interactively.
+
+
+
+
+
+
+
+
+
+
+Many programs read input from the user a line at a time. The GNU History
+library is able to keep track of those lines, associate arbitrary data with
+each line, and utilize information from previous lines in composing new
+ones.
+
+
+
+The programmer using the History library has available functions
+for remembering lines on a history list, associating arbitrary data
+with a line, removing lines from the list, searching through the list
+for a line containing an arbitrary text string, and referencing any line
+in the list directly. In addition, a history expansion function
+is available which provides for a consistent user interface across
+different programs.
+
+
+
+The user using programs written with the History library has the
+benefit of a consistent user interface with a set of well-known
+commands for manipulating the text of previous lines and using that text
+in new commands. The basic history manipulation commands are similar to
+the history substitution provided by csh.
+
+
+
+If the programmer desires, he can use the Readline library, which
+includes some history manipulation by default, and has the added
+advantage of command line editing.
+
+
+
+
+
+
+
+The history list is an array of history entries. A history entry is
+declared as follows:
+
+
+
+
+typedef struct _hist_entry {
+ char *line;
+ char *data;
+} HIST_ENTRY;
+
+
+
+The history list itself might therefore be declared as
+
+
+
+
+HIST_ENTRY **the_history_list;
+
+
+
+The state of the History library is encapsulated into a single structure:
+
+
+
+
+/* A structure used to pass the current state of the history stuff around. */
+typedef struct _hist_state {
+ HIST_ENTRY **entries; /* Pointer to the entries themselves. */
+ int offset; /* The location pointer within this array. */
+ int length; /* Number of elements within this array. */
+ int size; /* Number of slots allocated to this array. */
+ int flags;
+} HISTORY_STATE;
+
+
+
+If the flags member includes HS_STIFLED, the history has been
+stifled.
+
+
+
+
+
+
+
+This section describes the calling sequence for the various functions
+present in GNU History.
+
+
+
+
+
+
+
+
+
+
+This section describes functions used to initialize and manage
+the state of the History library when you want to use the history
+functions in your program.
+
+
+
+
+- Function: void using_history ()
+
-
+Begin a session in which the history functions might be used. This
+initializes the interactive variables.
+
+
+
+
+
+- Function: HISTORY_STATE * history_get_history_state ()
+
-
+Return a structure describing the current state of the input history.
+
+
+
+
+
+- Function: void history_set_history_state (HISTORY_STATE *state)
+
-
+Set the state of the history list according to state.
+
+
+
+
+
+
+
+
+These functions manage individual entries on the history list, or set
+parameters managing the list itself.
+
+
+
+
+- Function: void add_history (char *string)
+
-
+Place string at the end of the history list. The associated data
+field (if any) is set to
NULL.
+
+
+
+
+
+- Function: HIST_ENTRY * remove_history (int which)
+
-
+Remove history entry at offset which from the history. The
+removed element is returned so you can free the line, data,
+and containing structure.
+
+
+
+
+
+- Function: HIST_ENTRY * replace_history_entry (int which, char *line, char *data)
+
-
+Make the history entry at offset which have line and data.
+This returns the old entry so you can dispose of the data. In the case
+of an invalid which, a
NULL pointer is returned.
+
+
+
+
+
+- Function: void clear_history ()
+
-
+Clear the history list by deleting all the entries.
+
+
+
+
+
+- Function: void stifle_history (int max)
+
-
+Stifle the history list, remembering only the last max entries.
+
+
+
+
+
+- Function: int unstifle_history ()
+
-
+Stop stifling the history. This returns the previous amount the
+history was stifled. The value is positive if the history was
+stifled, negative if it wasn't.
+
+
+
+
+
+- Function: int history_is_stifled ()
+
-
+Returns non-zero if the history is stifled, zero if it is not.
+
+
+
+
+
+
+
+
+These functions return information about the entire history list or
+individual list entries.
+
+
+
+
+- Function: HIST_ENTRY ** history_list ()
+
-
+Return a
NULL terminated array of HIST_ENTRY which is the
+current input history. Element 0 of this list is the beginning of time.
+If there is no history, return NULL.
+
+
+
+
+
+- Function: int where_history ()
+
-
+Returns the offset of the current history element.
+
+
+
+
+
+- Function: HIST_ENTRY * current_history ()
+
-
+Return the history entry at the current position, as determined by
+
where_history (). If there is no entry there, return a NULL
+pointer.
+
+
+
+
+
+- Function: HIST_ENTRY * history_get (int offset)
+
-
+Return the history entry at position offset, starting from
+
history_base. If there is no entry there, or if offset
+is greater than the history length, return a NULL pointer.
+
+
+
+
+
+- Function: int history_total_bytes ()
+
-
+Return the number of bytes that the primary history entries are using.
+This function returns the sum of the lengths of all the lines in the
+history.
+
+
+
+
+
+
+
+
+These functions allow the current index into the history list to be
+set or changed.
+
+
+
+
+- Function: int history_set_pos (int pos)
+
-
+Set the position in the history list to pos, an absolute index
+into the list.
+
+
+
+
+
+- Function: HIST_ENTRY * previous_history ()
+
-
+Back up the current history offset to the previous history entry, and
+return a pointer to that entry. If there is no previous entry, return
+a
NULL pointer.
+
+
+
+
+
+- Function: HIST_ENTRY * next_history ()
+
-
+Move the current history offset forward to the next history entry, and
+return the a pointer to that entry. If there is no next entry, return
+a
NULL pointer.
+
+
+
+
+
+
+
+
+
+
+
+These functions allow searching of the history list for entries containing
+a specific string. Searching may be performed both forward and backward
+from the current history position. The search may be anchored,
+meaning that the string must match at the beginning of the history entry.
+
+
+
+
+
+- Function: int history_search (char *string, int direction)
+
-
+Search the history for string, starting at the current history
+offset. If direction < 0, then the search is through previous entries,
+else through subsequent. If string is found, then
+the current history index is set to that history entry, and the value
+returned is the offset in the line of the entry where
+string was found. Otherwise, nothing is changed, and a -1 is
+returned.
+
+
+
+
+
+- Function: int history_search_prefix (char *string, int direction)
+
-
+Search the history for string, starting at the current history
+offset. The search is anchored: matching lines must begin with
+string. If direction < 0, then the search is through previous
+entries, else through subsequent. If string is found, then the
+current history index is set to that entry, and the return value is 0.
+Otherwise, nothing is changed, and a -1 is returned.
+
+
+
+
+
+- Function: int history_search_pos (char *string, int direction, int pos)
+
-
+Search for string in the history list, starting at pos, an
+absolute index into the list. If direction is negative, the search
+proceeds backward from pos, otherwise forward. Returns the absolute
+index of the history element where string was found, or -1 otherwise.
+
+
+
+
+
+
+
+
+The History library can read the history from and write it to a file.
+This section documents the functions for managing a history file.
+
+
+
+
+- Function: int read_history (char *filename)
+
-
+Add the contents of filename to the history list, a line at a
+time. If filename is
NULL, then read from
+`~/.history'. Returns 0 if successful, or errno if not.
+
+
+
+
+
+- Function: int read_history_range (char *filename, int from, int to)
+
-
+Read a range of lines from filename, adding them to the history list.
+Start reading at line from and end at to. If
+from is zero, start at the beginning. If to is less than
+from, then read until the end of the file. If filename is
+
NULL, then read from `~/.history'. Returns 0 if successful,
+or errno if not.
+
+
+
+
+
+- Function: int write_history (char *filename)
+
-
+Write the current history to filename, overwriting filename
+if necessary. If filename is
+
NULL, then write the history list to `~/.history'. Values
+returned are as in read_history ().
+
+
+
+
+
+- Function: int append_history (int nelements, char *filename)
+
-
+Append the last nelements of the history list to filename.
+
+
+
+
+
+- Function: int history_truncate_file (char *filename, int nlines)
+
-
+Truncate the history file filename, leaving only the last
+nlines lines.
+
+
+
+
+
+
+
+
+These functions implement csh-like history expansion.
+
+
+
+
+- Function: int history_expand (char *string, char **output)
+
-
+Expand string, placing the result into output, a pointer
+to a string (see section History Expansion). Returns:
+
+
+0
+-
+If no expansions took place (or, if the only change in
+the text was the de-slashifying of the history expansion
+character);
+
1
+-
+if expansions did take place;
+
-1
+-
+if there was an error in expansion;
+
2
+-
+if the returned line should only be displayed, but not executed,
+as with the
:p modifier (see section Modifiers).
+
+
+
+If an error ocurred in expansion, then output contains a descriptive
+error message.
+
+
+
+
+
+- Function: char * history_arg_extract (int first, int last, char *string)
+
-
+Extract a string segment consisting of the first through last
+arguments present in string. Arguments are broken up as in Bash.
+
+
+
+
+
+- Function: char * get_history_event (char *string, int *cindex, int qchar)
+
-
+Returns the text of the history event beginning at string +
+*cindex. *cindex is modified to point to after the event
+specifier. At function entry, cindex points to the index into
+string where the history event specification begins. qchar
+is a character that is allowed to end the event specification in addition
+to the "normal" terminating characters.
+
+
+
+
+
+- Function: char ** history_tokenize (char *string)
+
-
+Return an array of tokens parsed out of string, much as the
+shell might. The tokens are split on white space and on the
+characters
()<>;&|$, and shell quoting conventions are
+obeyed.
+
+
+
+
+
+
+
+
+This section describes the externally visible variables exported by
+the GNU History Library.
+
+
+
+
+- Variable: int history_base
+
-
+The logical offset of the first entry in the history list.
+
+
+
+
+
+- Variable: int history_length
+
-
+The number of entries currently stored in the history list.
+
+
+
+
+
+- Variable: int max_input_history
+
-
+The maximum number of history entries. This must be changed using
+
stifle_history ().
+
+
+
+
+
+- Variable: char history_expansion_char
+
-
+The character that starts a history event. The default is `!'.
+
+
+
+
+
+- Variable: char history_subst_char
+
-
+The character that invokes word substitution if found at the start of
+a line. The default is `^'.
+
+
+
+
+
+- Variable: char history_comment_char
+
-
+During tokenization, if this character is seen as the first character
+of a word, then it and all subsequent characters up to a newline are
+ignored, suppressing history expansion for the remainder of the line.
+This is disabled by default.
+
+
+
+
+
+- Variable: char * history_no_expand_chars
+
-
+The list of characters which inhibit history expansion if found immediately
+following history_expansion_char. The default is whitespace and
+`='.
+
+
+
+
+
+- Variable: char * history_search_delimiter_chars
+
-
+The list of additional characters which can delimit a history search
+string, in addition to whitespace, `:' and `?' in the case of
+a substring search. The default is empty.
+
+
+
+
+
+- Variable: int history_quotes_inhibit_expansion
+
-
+If non-zero, single-quoted words are not scanned for the history expansion
+character. The default value is 0.
+
+
+
+
+
+- Variable: Function * history_inhibit_expansion_function
+
-
+This should be set to the address of a function that takes two arguments:
+a
char * (string) and an integer index into that string (i).
+It should return a non-zero value if the history expansion starting at
+string[i] should not be performed; zero if the expansion should
+be done.
+It is intended for use by applications like Bash that use the history
+expansion character for additional purposes.
+By default, this variable is set to NULL.
+
+
+
+
+
+
+
+
+The following program demonstrates simple use of the GNU History Library.
+
+
+
+
+main ()
+{
+ char line[1024], *t;
+ int len, done = 0;
+
+ line[0] = 0;
+
+ using_history ();
+ while (!done)
+ {
+ printf ("history$ ");
+ fflush (stdout);
+ t = fgets (line, sizeof (line) - 1, stdin);
+ if (t && *t)
+ {
+ len = strlen (t);
+ if (t[len - 1] == '\n')
+ t[len - 1] = '\0';
+ }
+
+ if (!t)
+ strcpy (line, "quit");
+
+ if (line[0])
+ {
+ char *expansion;
+ int result;
+
+ result = history_expand (line, &expansion);
+ if (result)
+ fprintf (stderr, "%s\n", expansion);
+
+ if (result < 0 || result == 2)
+ {
+ free (expansion);
+ continue;
+ }
+
+ add_history (expansion);
+ strncpy (line, expansion, sizeof (line) - 1);
+ free (expansion);
+ }
+
+ if (strcmp (line, "quit") == 0)
+ done = 1;
+ else if (strcmp (line, "save") == 0)
+ write_history ("history_file");
+ else if (strcmp (line, "read") == 0)
+ read_history ("history_file");
+ else if (strcmp (line, "list") == 0)
+ {
+ register HIST_ENTRY **the_list;
+ register int i;
+
+ the_list = history_list ();
+ if (the_list)
+ for (i = 0; the_list[i]; i++)
+ printf ("%d: %s\n", i + history_base, the_list[i]->line);
+ }
+ else if (strncmp (line, "delete", 6) == 0)
+ {
+ int which;
+ if ((sscanf (line + 6, "%d", &which)) == 1)
+ {
+ HIST_ENTRY *entry = remove_history (which);
+ if (!entry)
+ fprintf (stderr, "No such entry %d\n", which);
+ else
+ {
+ free (entry->line);
+ free (entry);
+ }
+ }
+ else
+ {
+ fprintf (stderr, "non-numeric arg given to `delete'\n");
+ }
+ }
+ }
+}
+
+
+
+
+
+
+Jump to:
+a
+-
+e
+-
+h
+
+
+
+anchored search
+
+
+
+event designators
+
+
+
+history events
+history expansion
+History Searching
+
+
+
+
+
+
+
+Jump to:
+a
+-
+c
+-
+g
+-
+h
+-
+m
+-
+n
+-
+p
+-
+r
+-
+s
+-
+u
+-
+w
+
+
+
+add_history
+append_history
+
+
+
+clear_history
+current_history
+
+
+
+get_history_event
+
+
+
+history_arg_extract
+history_base
+history_comment_char
+history_expand
+history_expansion_char
+history_get
+history_get_history_state
+history_inhibit_expansion_function
+history_is_stifled
+history_length
+history_list
+history_no_expand_chars
+history_quotes_inhibit_expansion
+history_search
+history_search_delimiter_chars
+history_search_pos
+history_search_prefix
+history_set_history_state
+history_set_pos
+history_subst_char
+history_tokenize
+history_total_bytes
+history_truncate_file
+
+
+
+max_input_history
+
+
+
+next_history
+
+
+
+previous_history
+
+
+
+read_history
+read_history_range
+remove_history
+replace_history_entry
+
+
+
+stifle_history
+
+
+
+unstifle_history
+using_history
+
+
+
+where_history
+write_history
+
+
+
+
+This document was generated on 31 December 1998 using the
+texi2html
+translator version 1.52.
+
+