]> git.ipfire.org Git - thirdparty/readline.git/commitdiff
commit readline-20190425 snapshot
authorChet Ramey <chet.ramey@case.edu>
Thu, 25 Apr 2019 18:33:08 +0000 (14:33 -0400)
committerChet Ramey <chet.ramey@case.edu>
Thu, 25 Apr 2019 18:33:08 +0000 (14:33 -0400)
49 files changed:
CHANGELOG
CHANGES
NEWS
aclocal.m4
bind.c
complete.c
configure
display.c
doc/._rluserman.pdf [deleted file]
doc/history.dvi
doc/history.html
doc/history.info
doc/history.pdf
doc/history.ps
doc/readline.0
doc/readline.3
doc/readline.dvi
doc/readline.html
doc/readline.info
doc/readline.pdf
doc/readline.ps
doc/readline_3.ps
doc/rltech.texi
doc/rluser.texi
doc/rluserman.dvi
doc/rluserman.html
doc/rluserman.info
doc/rluserman.pdf
doc/rluserman.ps
doc/version.texi
examples/autoconf/BASH_CHECK_LIB_TERMCAP
histfile.c
histsearch.c
input.c
isearch.c
kill.c
misc.c
readline.c
readline.pc.in
rlprivate.h
search.c
signals.c
support/config.guess
support/config.sub
terminal.c
text.c
undo.c
util.c
vi_mode.c

index 18265ab10524a6f8aaba55f9208bc07bfd7893ec..c080ecae0185a76b8c8ea287ad80a835176a4fff 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1351,3 +1351,12 @@ Makefile.in
                                   ----
 Makefile.in
        - installdirs: create $(pkgconfigdir) if it doesn't exist
+
+
+                                4/8/2019
+                                --------
+readline.pc.in
+       - change CFLAGS to include ${includedir} instead of ${includedir}/readline,
+         to support the recommended `#include <readline/readline.h>'. Report
+         and fix from Andrea Bolognani <abologna@redhat.com>
+
diff --git a/CHANGES b/CHANGES
index 3d0e987ddce0c891f2816bc5e5c8e62a8003d357..09eab6ee03ef763f6db7546a47e58a11fa340e69 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -86,6 +86,18 @@ bb. Fixes to the vi-mode `b', `B', `w', `W', `e', and `E' commands to better
 cc. Fixed a redisplay problem that caused an extra newline to be generated on
     accept-line when the line length is exactly the screenwidth.
 
+dd. Fixed a bug with adding multibyte characters to an incremental search
+    string.
+
+ee. Fixed a bug with redoing text insertions in vi mode.
+
+ff. Fixed a bug with pasting text into an incremental search string if bracketed
+    paste mode is enabled. ESC cannot be one of the incremental search
+    terminator characters for this to work.
+
+gg. Fixed a bug with anchored search patterns when performing searches in vi
+    mode.
+
 2.  New Features in Readline
 
 a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as
@@ -121,6 +133,12 @@ i. The history library has a new variable that allows applications to set the
    initial quoting state, so quoting state can be inherited from a previous
    line.
 
+j. Readline now allows application-defined keymap names; there is a new public
+   function, rl_set_keymap_name(), to do that.
+
+k. The "Insert" keypad key, if available, now puts readline into overwrite
+   mode.
+
 -------------------------------------------------------------------------------
 This document details the changes between this version, readline-7.0, and the
 previous version, readline-6.3.
diff --git a/NEWS b/NEWS
index 1919a48d24841ab4c6c6601b3701b431595cf1b5..42be21eb02c2a521108b02c83633963e6a1444e1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -36,6 +36,12 @@ i. The history library has a new variable that allows applications to set the
    initial quoting state, so quoting state can be inherited from a previous
    line.
 
+j. Readline now allows application-defined keymap names; there is a new public
+   function, rl_set_keymap_name(), to do that.
+
+k. The "Insert" keypad key, if available, now puts readline into overwrite
+   mode.
+
 -------------------------------------------------------------------------------
 This is a terse description of the new features added to readline-7.0 since
 the release of readline-6.3.
index 6ed03e10b295d6773d779a7059b91e136057c8ea..a366597acdd55977757a1943931704f3ff28c553 100644 (file)
@@ -1,4 +1,4 @@
-nl
+dnl
 dnl Bash specific tests
 dnl
 dnl Some derived from PDKSH 5.1.3 autoconf tests
@@ -64,6 +64,8 @@ AC_DEFUN(BASH_HEADER_INTTYPES,
 dnl
 dnl check for typedef'd symbols in header files, but allow the caller to
 dnl specify the include files to be checked in addition to the default
+dnl
+dnl This could be changed to use AC_COMPILE_IFELSE instead of AC_EGREP_CPP
 dnl 
 dnl BASH_CHECK_TYPE(TYPE, HEADERS, DEFAULT[, VALUE-IF-FOUND])
 AC_DEFUN(BASH_CHECK_TYPE,
@@ -962,7 +964,8 @@ AC_CACHE_VAL(bash_cv_termcap_lib,
     [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
         [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
            [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
-               bash_cv_termcap_lib=gnutermcap)])])])])])
+                [AC_CHECK_LIB(ncursesw, tgetent, bash_cv_termcap_lib=libncursesw,
+                   bash_cv_termcap_lib=gnutermcap)])])])])])])
 if test "X$_bash_needmsg" = "Xyes"; then
 AC_MSG_CHECKING(which library has the termcap functions)
 fi
@@ -1852,7 +1855,7 @@ main()
 ],
 ac_cv_rl_version=`cat conftest.rlv`,
 ac_cv_rl_version='0.0',
-ac_cv_rl_version='7.0')])
+ac_cv_rl_version='8.0')])
 
 CFLAGS="$_save_CFLAGS"
 LDFLAGS="$_save_LDFLAGS"
@@ -2022,2036 +2025,6 @@ AC_DEFUN([AM_PATH_LISPDIR],
  AC_SUBST(lispdir)
 ])
 
-dnl
-dnl tests added for gettext
-dnl
-# codeset.m4 serial AM1 (gettext-0.10.40)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_LANGINFO_CODESET],
-[
-  AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
-    [AC_TRY_LINK([#include <langinfo.h>],
-      [char* cs = nl_langinfo(CODESET);],
-      am_cv_langinfo_codeset=yes,
-      am_cv_langinfo_codeset=no)
-    ])
-  if test $am_cv_langinfo_codeset = yes; then
-    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
-      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
-  fi
-])
-# gettext.m4 serial 20 (gettext-0.12)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-dnl Macro to add for using GNU gettext.
-
-dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
-dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
-dnl    default (if it is not specified or empty) is 'no-libtool'.
-dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
-dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
-dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
-dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
-dnl    depending on --{enable,disable}-{shared,static} and on the presence of
-dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
-dnl    $(top_builddir)/intl/libintl.a will be created.
-dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
-dnl    implementations (in libc or libintl) without the ngettext() function
-dnl    will be ignored.  If NEEDSYMBOL is specified and is
-dnl    'need-formatstring-macros', then GNU gettext implementations that don't
-dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
-dnl INTLDIR is used to find the intl libraries.  If empty,
-dnl    the value `$(top_builddir)/intl/' is used.
-dnl
-dnl The result of the configuration is one of three cases:
-dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
-dnl    and used.
-dnl    Catalog format: GNU --> install in $(datadir)
-dnl    Catalog extension: .mo after installation, .gmo in source tree
-dnl 2) GNU gettext has been found in the system's C library.
-dnl    Catalog format: GNU --> install in $(datadir)
-dnl    Catalog extension: .mo after installation, .gmo in source tree
-dnl 3) No internationalization, always use English msgid.
-dnl    Catalog format: none
-dnl    Catalog extension: none
-dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
-dnl The use of .gmo is historical (it was needed to avoid overwriting the
-dnl GNU format catalogs when building on a platform with an X/Open gettext),
-dnl but we keep it in order not to force irrelevant filename changes on the
-dnl maintainers.
-dnl
-AC_DEFUN([AM_GNU_GETTEXT],
-[
-  dnl Argument checking.
-  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
-    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
-])])])])])
-  ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
-    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
-])])])])
-  define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
-  define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
-
-  AC_REQUIRE([AM_PO_SUBDIRS])dnl
-  ifelse(gt_included_intl, yes, [
-    AC_REQUIRE([AM_INTL_SUBDIR])dnl
-  ])
-
-  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
-  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-  AC_REQUIRE([AC_LIB_RPATH])
-
-  dnl Sometimes libintl requires libiconv, so first search for libiconv.
-  dnl Ideally we would do this search only after the
-  dnl      if test "$USE_NLS" = "yes"; then
-  dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
-  dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
-  dnl the configure script would need to contain the same shell code
-  dnl again, outside any 'if'. There are two solutions:
-  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
-  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
-  dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
-  dnl documented, we avoid it.
-  ifelse(gt_included_intl, yes, , [
-    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-  ])
-
-  dnl Set USE_NLS.
-  AM_NLS
-
-  ifelse(gt_included_intl, yes, [
-    BUILD_INCLUDED_LIBINTL=no
-    USE_INCLUDED_LIBINTL=no
-  ])
-  LIBINTL=
-  LTLIBINTL=
-  POSUB=
-
-  dnl If we use NLS figure out what method
-  if test "$USE_NLS" = "yes"; then
-    gt_use_preinstalled_gnugettext=no
-    ifelse(gt_included_intl, yes, [
-      AC_MSG_CHECKING([whether included gettext is requested])
-      AC_ARG_WITH(included-gettext,
-        [  --with-included-gettext use the GNU gettext library included here],
-        nls_cv_force_use_gnu_gettext=$withval,
-        nls_cv_force_use_gnu_gettext=no)
-      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-
-      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
-      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
-    ])
-        dnl User does not insist on using GNU NLS library.  Figure out what
-        dnl to use.  If GNU gettext is available we use this.  Else we have
-        dnl to fall back to GNU NLS library.
-
-        dnl Add a version number to the cache macros.
-        define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
-        define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
-        define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
-
-        AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
-         [AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;],
-            [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
-            gt_cv_func_gnugettext_libc=yes,
-            gt_cv_func_gnugettext_libc=no)])
-
-        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
-          dnl Sometimes libintl requires libiconv, so first search for libiconv.
-          ifelse(gt_included_intl, yes, , [
-            AM_ICONV_LINK
-          ])
-          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
-          dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
-          dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
-          dnl even if libiconv doesn't exist.
-          AC_LIB_LINKFLAGS_BODY([intl])
-          AC_CACHE_CHECK([for GNU gettext in libintl],
-            gt_cv_func_gnugettext_libintl,
-           [gt_save_CPPFLAGS="$CPPFLAGS"
-            CPPFLAGS="$CPPFLAGS $INCINTL"
-            gt_save_LIBS="$LIBS"
-            LIBS="$LIBS $LIBINTL"
-            dnl Now see whether libintl exists and does not depend on libiconv.
-            AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();],
-              [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
-              gt_cv_func_gnugettext_libintl=yes,
-              gt_cv_func_gnugettext_libintl=no)
-            dnl Now see whether libintl exists and depends on libiconv.
-            if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
-              LIBS="$LIBS $LIBICONV"
-              AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();],
-                [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
-               [LIBINTL="$LIBINTL $LIBICONV"
-                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
-                gt_cv_func_gnugettext_libintl=yes
-               ])
-            fi
-            CPPFLAGS="$gt_save_CPPFLAGS"
-            LIBS="$gt_save_LIBS"])
-        fi
-
-        dnl If an already present or preinstalled GNU gettext() is found,
-        dnl use it.  But if this macro is used in GNU gettext, and GNU
-        dnl gettext is already preinstalled in libintl, we update this
-        dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
-        if test "$gt_cv_func_gnugettext_libc" = "yes" \
-           || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
-                && test "$PACKAGE" != gettext-runtime \
-                && test "$PACKAGE" != gettext-tools; }; then
-          gt_use_preinstalled_gnugettext=yes
-        else
-          dnl Reset the values set by searching for libintl.
-          LIBINTL=
-          LTLIBINTL=
-          INCINTL=
-        fi
-
-    ifelse(gt_included_intl, yes, [
-        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
-          dnl GNU gettext is not found in the C library.
-          dnl Fall back on included GNU gettext library.
-          nls_cv_use_gnu_gettext=yes
-        fi
-      fi
-
-      if test "$nls_cv_use_gnu_gettext" = "yes"; then
-        dnl Mark actions used to generate GNU NLS library.
-        BUILD_INCLUDED_LIBINTL=yes
-        USE_INCLUDED_LIBINTL=yes
-        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
-        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
-        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
-      fi
-
-      if test "$gt_use_preinstalled_gnugettext" = "yes" \
-         || test "$nls_cv_use_gnu_gettext" = "yes"; then
-        dnl Mark actions to use GNU gettext tools.
-        CATOBJEXT=.gmo
-      fi
-    ])
-
-    if test "$gt_use_preinstalled_gnugettext" = "yes" \
-       || test "$nls_cv_use_gnu_gettext" = "yes"; then
-      AC_DEFINE(ENABLE_NLS, 1,
-        [Define to 1 if translation of program messages to the user's native language
-   is requested.])
-    else
-      USE_NLS=no
-    fi
-  fi
-
-  AC_MSG_CHECKING([whether to use NLS])
-  AC_MSG_RESULT([$USE_NLS])
-  if test "$USE_NLS" = "yes"; then
-    AC_MSG_CHECKING([where the gettext function comes from])
-    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
-        gt_source="external libintl"
-      else
-        gt_source="libc"
-      fi
-    else
-      gt_source="included intl directory"
-    fi
-    AC_MSG_RESULT([$gt_source])
-  fi
-
-  if test "$USE_NLS" = "yes"; then
-
-    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
-        AC_MSG_CHECKING([how to link with libintl])
-        AC_MSG_RESULT([$LIBINTL])
-        AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
-      fi
-
-      dnl For backward compatibility. Some packages may be using this.
-      AC_DEFINE(HAVE_GETTEXT, 1,
-       [Define if the GNU gettext() function is already present or preinstalled.])
-      AC_DEFINE(HAVE_DCGETTEXT, 1,
-       [Define if the GNU dcgettext() function is already present or preinstalled.])
-    fi
-
-    dnl We need to process the po/ directory.
-    POSUB=po
-  fi
-
-  ifelse(gt_included_intl, yes, [
-    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
-    dnl to 'yes' because some of the testsuite requires it.
-    if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
-      BUILD_INCLUDED_LIBINTL=yes
-    fi
-
-    dnl Make all variables we use known to autoconf.
-    AC_SUBST(BUILD_INCLUDED_LIBINTL)
-    AC_SUBST(USE_INCLUDED_LIBINTL)
-    AC_SUBST(CATOBJEXT)
-
-    dnl For backward compatibility. Some configure.ins may be using this.
-    nls_cv_header_intl=
-    nls_cv_header_libgt=
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    DATADIRNAME=share
-    AC_SUBST(DATADIRNAME)
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    INSTOBJEXT=.mo
-    AC_SUBST(INSTOBJEXT)
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    GENCAT=gencat
-    AC_SUBST(GENCAT)
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    if test "$USE_INCLUDED_LIBINTL" = yes; then
-      INTLOBJS="\$(GETTOBJS)"
-    fi
-    AC_SUBST(INTLOBJS)
-
-    dnl Enable libtool support if the surrounding package wishes it.
-    INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
-    AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
-  ])
-
-  dnl For backward compatibility. Some Makefiles may be using this.
-  INTLLIBS="$LIBINTL"
-  AC_SUBST(INTLLIBS)
-
-  dnl Make all documented variables known to autoconf.
-  AC_SUBST(LIBINTL)
-  AC_SUBST(LTLIBINTL)
-  AC_SUBST(POSUB)
-])
-
-
-dnl Checks for all prerequisites of the intl subdirectory,
-dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
-dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
-AC_DEFUN([AM_INTL_SUBDIR],
-[
-  AC_REQUIRE([AC_PROG_INSTALL])dnl
-  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
-  AC_REQUIRE([AC_PROG_CC])dnl
-  AC_REQUIRE([AC_CANONICAL_HOST])dnl
-  AC_REQUIRE([AC_PROG_RANLIB])dnl
-  AC_REQUIRE([AC_ISC_POSIX])dnl
-  AC_REQUIRE([AC_HEADER_STDC])dnl
-  AC_REQUIRE([AC_C_CONST])dnl
-  AC_REQUIRE([AC_C_INLINE])dnl
-  AC_REQUIRE([AC_TYPE_OFF_T])dnl
-  AC_REQUIRE([AC_TYPE_SIZE_T])dnl
-  AC_REQUIRE([AC_FUNC_ALLOCA])dnl
-  AC_REQUIRE([AC_FUNC_MMAP])dnl
-  AC_REQUIRE([jm_GLIBC21])dnl
-  AC_REQUIRE([gt_INTDIV0])dnl
-  AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
-  AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
-  AC_REQUIRE([gt_INTTYPES_PRI])dnl
-
-  AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
-stdlib.h string.h unistd.h sys/param.h])
-  AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
-geteuid getgid getuid mempcpy munmap putenv setenv setlocale localeconv stpcpy \
-strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \
-__fsetlocking])
-
-  AM_ICONV
-  AM_LANGINFO_CODESET
-  if test $ac_cv_header_locale_h = yes; then
-    AM_LC_MESSAGES
-  fi
-
-  dnl intl/plural.c is generated from intl/plural.y. It requires bison,
-  dnl because plural.y uses bison specific features. It requires at least
-  dnl bison-1.26 because earlier versions generate a plural.c that doesn't
-  dnl compile.
-  dnl bison is only needed for the maintainer (who touches plural.y). But in
-  dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
-  dnl the rule in general Makefile. Now, some people carelessly touch the
-  dnl files or have a broken "make" program, hence the plural.c rule will
-  dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
-  dnl present or too old.
-  AC_CHECK_PROGS([INTLBISON], [bison])
-  if test -z "$INTLBISON"; then
-    ac_verc_fail=yes
-  else
-    dnl Found it, now check the version.
-    AC_MSG_CHECKING([version of bison])
-changequote(<<,>>)dnl
-    ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-    case $ac_prog_version in
-      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-      1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-changequote([,])dnl
-         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-    esac
-    AC_MSG_RESULT([$ac_prog_version])
-  fi
-  if test $ac_verc_fail = yes; then
-    INTLBISON=:
-  fi
-])
-
-
-dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
-AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
-# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-# Test for the GNU C Library, version 2.1 or newer.
-# From Bruno Haible.
-
-AC_DEFUN([jm_GLIBC21],
-  [
-    AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
-      ac_cv_gnu_library_2_1,
-      [AC_EGREP_CPP([Lucky GNU user],
-       [
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
-  Lucky GNU user
- #endif
-#endif
-       ],
-       ac_cv_gnu_library_2_1=yes,
-       ac_cv_gnu_library_2_1=no)
-      ]
-    )
-    AC_SUBST(GLIBC21)
-    GLIBC21="$ac_cv_gnu_library_2_1"
-  ]
-)
-# iconv.m4 serial AM4 (gettext-0.11.3)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
-[
-  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
-  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-  AC_REQUIRE([AC_LIB_RPATH])
-
-  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
-  dnl accordingly.
-  AC_LIB_LINKFLAGS_BODY([iconv])
-])
-
-AC_DEFUN([AM_ICONV_LINK],
-[
-  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
-  dnl those with the standalone portable GNU libiconv installed).
-
-  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
-  dnl accordingly.
-  AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-
-  dnl Add $INCICONV to CPPFLAGS before performing the following checks,
-  dnl because if the user has installed libiconv and not disabled its use
-  dnl via --without-libiconv-prefix, he wants to use it. The first
-  dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
-  am_save_CPPFLAGS="$CPPFLAGS"
-  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
-
-  AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
-    am_cv_func_iconv="no, consider installing GNU libiconv"
-    am_cv_lib_iconv=no
-    AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
-      [iconv_t cd = iconv_open("","");
-       iconv(cd,NULL,NULL,NULL,NULL);
-       iconv_close(cd);],
-      am_cv_func_iconv=yes)
-    if test "$am_cv_func_iconv" != yes; then
-      am_save_LIBS="$LIBS"
-      LIBS="$LIBS $LIBICONV"
-      AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
-        [iconv_t cd = iconv_open("","");
-         iconv(cd,NULL,NULL,NULL,NULL);
-         iconv_close(cd);],
-        am_cv_lib_iconv=yes
-        am_cv_func_iconv=yes)
-      LIBS="$am_save_LIBS"
-    fi
-  ])
-  if test "$am_cv_func_iconv" = yes; then
-    AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
-  fi
-  if test "$am_cv_lib_iconv" = yes; then
-    AC_MSG_CHECKING([how to link with libiconv])
-    AC_MSG_RESULT([$LIBICONV])
-  else
-    dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
-    dnl either.
-    CPPFLAGS="$am_save_CPPFLAGS"
-    LIBICONV=
-    LTLIBICONV=
-  fi
-  AC_SUBST(LIBICONV)
-  AC_SUBST(LTLIBICONV)
-])
-
-AC_DEFUN([AM_ICONV],
-[
-  AM_ICONV_LINK
-  if test "$am_cv_func_iconv" = yes; then
-    AC_MSG_CHECKING([for iconv declaration])
-    AC_CACHE_VAL(am_cv_proto_iconv, [
-      AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <iconv.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-#if defined(__STDC__) || defined(__cplusplus)
-size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-#else
-size_t iconv();
-#endif
-], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
-      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
-    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
-    AC_MSG_RESULT([$]{ac_t:-
-         }[$]am_cv_proto_iconv)
-    AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
-      [Define as const if the declaration of iconv() needs const.])
-  fi
-])
-# intdiv0.m4 serial 1 (gettext-0.11.3)
-dnl Copyright (C) 2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([gt_INTDIV0],
-[
-  AC_REQUIRE([AC_PROG_CC])dnl
-  AC_REQUIRE([AC_CANONICAL_HOST])dnl
-
-  AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
-    gt_cv_int_divbyzero_sigfpe,
-    [
-      AC_TRY_RUN([
-#include <stdlib.h>
-#include <signal.h>
-
-static void
-#ifdef __cplusplus
-sigfpe_handler (int sig)
-#else
-sigfpe_handler (sig) int sig;
-#endif
-{
-  /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
-  exit (sig != SIGFPE);
-}
-
-int x = 1;
-int y = 0;
-int z;
-int nan;
-
-int main ()
-{
-  signal (SIGFPE, sigfpe_handler);
-/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
-#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
-  signal (SIGTRAP, sigfpe_handler);
-#endif
-/* Linux/SPARC yields signal SIGILL.  */
-#if defined (__sparc__) && defined (__linux__)
-  signal (SIGILL, sigfpe_handler);
-#endif
-
-  z = x / y;
-  nan = y / y;
-  exit (1);
-}
-], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
-        [
-          # Guess based on the CPU.
-          case "$host_cpu" in
-            alpha* | i[34567]86 | m68k | s390*)
-              gt_cv_int_divbyzero_sigfpe="guessing yes";;
-            *)
-              gt_cv_int_divbyzero_sigfpe="guessing no";;
-          esac
-        ])
-    ])
-  case "$gt_cv_int_divbyzero_sigfpe" in
-    *yes) value=1;;
-    *) value=0;;
-  esac
-  AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
-    [Define if integer division by zero raises signal SIGFPE.])
-])
-# inttypes.m4 serial 1 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
-# <sys/types.h>.
-
-AC_DEFUN([gt_HEADER_INTTYPES_H],
-[
-  AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
-  [
-    AC_TRY_COMPILE(
-      [#include <sys/types.h>
-#include <inttypes.h>],
-      [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
-  ])
-  if test $gt_cv_header_inttypes_h = yes; then
-    AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
-      [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
-  fi
-])
-# inttypes_h.m4 serial 5 (gettext-0.12)
-dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
-# doesn't clash with <sys/types.h>, and declares uintmax_t.
-
-AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
-[
-  AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
-  [AC_TRY_COMPILE(
-    [#include <sys/types.h>
-#include <inttypes.h>],
-    [uintmax_t i = (uintmax_t) -1;],
-    jm_ac_cv_header_inttypes_h=yes,
-    jm_ac_cv_header_inttypes_h=no)])
-  if test $jm_ac_cv_header_inttypes_h = yes; then
-    AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
-      [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
-       and declares uintmax_t. ])
-  fi
-])
-# inttypes-pri.m4 serial 1 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
-# macros to non-string values.  This is the case on AIX 4.3.3.
-
-AC_DEFUN([gt_INTTYPES_PRI],
-[
-  AC_REQUIRE([gt_HEADER_INTTYPES_H])
-  if test $gt_cv_header_inttypes_h = yes; then
-    AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
-      gt_cv_inttypes_pri_broken,
-      [
-        AC_TRY_COMPILE([#include <inttypes.h>
-#ifdef PRId32
-char *p = PRId32;
-#endif
-], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
-      ])
-  fi
-  if test "$gt_cv_inttypes_pri_broken" = yes; then
-    AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
-      [Define if <inttypes.h> exists and defines unusable PRI* macros.])
-  fi
-])
-# isc-posix.m4 serial 2 (gettext-0.11.2)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-# This file is not needed with autoconf-2.53 and newer.  Remove it in 2005.
-
-# This test replaces the one in autoconf.
-# Currently this macro should have the same name as the autoconf macro
-# because gettext's gettext.m4 (distributed in the automake package)
-# still uses it.  Otherwise, the use in gettext.m4 makes autoheader
-# give these diagnostics:
-#   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
-#   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
-
-undefine([AC_ISC_POSIX])
-
-AC_DEFUN([AC_ISC_POSIX],
-  [
-    dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
-    AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
-  ]
-)
-# lcmessage.m4 serial 3 (gettext-0.11.3)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-# Check whether LC_MESSAGES is available in <locale.h>.
-
-AC_DEFUN([AM_LC_MESSAGES],
-[
-  AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
-    [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
-       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
-  if test $am_cv_val_LC_MESSAGES = yes; then
-    AC_DEFINE(HAVE_LC_MESSAGES, 1,
-      [Define if your <locale.h> file defines LC_MESSAGES.])
-  fi
-])
-# lib-ld.m4 serial 2 (gettext-0.12)
-dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl Subroutines of libtool.m4,
-dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
-dnl with libtool.m4.
-
-dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
-AC_DEFUN([AC_LIB_PROG_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
-  acl_cv_prog_gnu_ld=yes
-else
-  acl_cv_prog_gnu_ld=no
-fi])
-with_gnu_ld=$acl_cv_prog_gnu_ld
-])
-
-dnl From libtool-1.4. Sets the variable LD.
-AC_DEFUN([AC_LIB_PROG_LD],
-[AC_ARG_WITH(gnu-ld,
-[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by GCC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]* | [A-Za-z]:[\\/]*)]
-      [re_direlt='/[^/][^/]*/\.\./']
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-       ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(acl_cv_path_LD,
-[if test -z "$LD"; then
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      acl_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
-       test "$with_gnu_ld" != no && break
-      else
-       test "$with_gnu_ld" != yes && break
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-else
-  acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$acl_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_LIB_PROG_LD_GNU
-])
-# lib-link.m4 serial 4 (gettext-0.12)
-dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
-dnl augments the CPPFLAGS variable.
-AC_DEFUN([AC_LIB_LINKFLAGS],
-[
-  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-  AC_REQUIRE([AC_LIB_RPATH])
-  define([Name],[translit([$1],[./-], [___])])
-  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
-    AC_LIB_LINKFLAGS_BODY([$1], [$2])
-    ac_cv_lib[]Name[]_libs="$LIB[]NAME"
-    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
-    ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
-  ])
-  LIB[]NAME="$ac_cv_lib[]Name[]_libs"
-  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
-  INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
-  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-  AC_SUBST([LIB]NAME)
-  AC_SUBST([LTLIB]NAME)
-  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
-  dnl results of this search when this library appears as a dependency.
-  HAVE_LIB[]NAME=yes
-  undefine([Name])
-  undefine([NAME])
-])
-
-dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
-dnl searches for libname and the libraries corresponding to explicit and
-dnl implicit dependencies, together with the specified include files and
-dnl the ability to compile and link the specified testcode. If found, it
-dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
-dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
-dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
-dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
-AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
-[
-  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-  AC_REQUIRE([AC_LIB_RPATH])
-  define([Name],[translit([$1],[./-], [___])])
-  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-
-  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
-  dnl accordingly.
-  AC_LIB_LINKFLAGS_BODY([$1], [$2])
-
-  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
-  dnl because if the user has installed lib[]Name and not disabled its use
-  dnl via --without-lib[]Name-prefix, he wants to use it.
-  ac_save_CPPFLAGS="$CPPFLAGS"
-  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-
-  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
-    ac_save_LIBS="$LIBS"
-    LIBS="$LIBS $LIB[]NAME"
-    AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
-    LIBS="$ac_save_LIBS"
-  ])
-  if test "$ac_cv_lib[]Name" = yes; then
-    HAVE_LIB[]NAME=yes
-    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
-    AC_MSG_CHECKING([how to link with lib[]$1])
-    AC_MSG_RESULT([$LIB[]NAME])
-  else
-    HAVE_LIB[]NAME=no
-    dnl If $LIB[]NAME didn't lead to a usable library, we don't need
-    dnl $INC[]NAME either.
-    CPPFLAGS="$ac_save_CPPFLAGS"
-    LIB[]NAME=
-    LTLIB[]NAME=
-  fi
-  AC_SUBST([HAVE_LIB]NAME)
-  AC_SUBST([LIB]NAME)
-  AC_SUBST([LTLIB]NAME)
-  undefine([Name])
-  undefine([NAME])
-])
-
-dnl Determine the platform dependent parameters needed to use rpath:
-dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
-dnl hardcode_direct, hardcode_minus_L.
-AC_DEFUN([AC_LIB_RPATH],
-[
-  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
-  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
-  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
-  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
-  AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
-    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
-    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
-    . ./conftest.sh
-    rm -f ./conftest.sh
-    acl_cv_rpath=done
-  ])
-  wl="$acl_cv_wl"
-  libext="$acl_cv_libext"
-  shlibext="$acl_cv_shlibext"
-  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
-  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
-  hardcode_direct="$acl_cv_hardcode_direct"
-  hardcode_minus_L="$acl_cv_hardcode_minus_L"
-  dnl Determine whether the user wants rpath handling at all.
-  AC_ARG_ENABLE(rpath,
-    [  --disable-rpath         do not hardcode runtime library paths],
-    :, enable_rpath=yes)
-])
-
-dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
-AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
-[
-  define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-                               [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-  dnl By default, look in $includedir and $libdir.
-  use_additional=yes
-  AC_LIB_WITH_FINAL_PREFIX([
-    eval additional_includedir=\"$includedir\"
-    eval additional_libdir=\"$libdir\"
-  ])
-  AC_LIB_ARG_WITH([lib$1-prefix],
-[  --with-lib$1-prefix[=DIR]  search for lib$1 in DIR/include and DIR/lib
-  --without-lib$1-prefix     don't search for lib$1 in includedir and libdir],
-[
-    if test "X$withval" = "Xno"; then
-      use_additional=no
-    else
-      if test "X$withval" = "X"; then
-        AC_LIB_WITH_FINAL_PREFIX([
-          eval additional_includedir=\"$includedir\"
-          eval additional_libdir=\"$libdir\"
-        ])
-      else
-        additional_includedir="$withval/include"
-        additional_libdir="$withval/lib"
-      fi
-    fi
-])
-  dnl Search the library and its dependencies in $additional_libdir and
-  dnl $LDFLAGS. Using breadth-first-seach.
-  LIB[]NAME=
-  LTLIB[]NAME=
-  INC[]NAME=
-  rpathdirs=
-  ltrpathdirs=
-  names_already_handled=
-  names_next_round='$1 $2'
-  while test -n "$names_next_round"; do
-    names_this_round="$names_next_round"
-    names_next_round=
-    for name in $names_this_round; do
-      already_handled=
-      for n in $names_already_handled; do
-        if test "$n" = "$name"; then
-          already_handled=yes
-          break
-        fi
-      done
-      if test -z "$already_handled"; then
-        names_already_handled="$names_already_handled $name"
-        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
-        dnl or AC_LIB_HAVE_LINKFLAGS call.
-        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
-        eval value=\"\$HAVE_LIB$uppername\"
-        if test -n "$value"; then
-          if test "$value" = yes; then
-            eval value=\"\$LIB$uppername\"
-            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
-            eval value=\"\$LTLIB$uppername\"
-            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
-          else
-            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
-            dnl that this library doesn't exist. So just drop it.
-            :
-          fi
-        else
-          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
-          dnl and the already constructed $LIBNAME/$LTLIBNAME.
-          found_dir=
-          found_la=
-          found_so=
-          found_a=
-          if test $use_additional = yes; then
-            if test "X$prefer_shared" = "Xyes" && test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
-              found_dir="$additional_libdir"
-              found_so="$additional_libdir/lib$name.$shlibext"
-              if test -f "$additional_libdir/lib$name.la"; then
-                found_la="$additional_libdir/lib$name.la"
-              fi
-            else
-              if test -f "$additional_libdir/lib$name.$libext"; then
-                found_dir="$additional_libdir"
-                found_a="$additional_libdir/lib$name.$libext"
-                if test -f "$additional_libdir/lib$name.la"; then
-                  found_la="$additional_libdir/lib$name.la"
-                fi
-              fi
-            fi
-          fi
-          if test "X$found_dir" = "X"; then
-            for x in $LDFLAGS $LTLIB[]NAME; do
-              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-              case "$x" in
-                -L*)
-                  dir=`echo "X$x" | sed -e 's/^X-L//'`
-                  if test "X$prefer_shared" = "Xyes" && test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
-                    found_dir="$dir"
-                    found_so="$dir/lib$name.$shlibext"
-                    if test -f "$dir/lib$name.la"; then
-                      found_la="$dir/lib$name.la"
-                    fi
-                  else
-                    if test -f "$dir/lib$name.$libext"; then
-                      found_dir="$dir"
-                      found_a="$dir/lib$name.$libext"
-                      if test -f "$dir/lib$name.la"; then
-                        found_la="$dir/lib$name.la"
-                      fi
-                    fi
-                  fi
-                  ;;
-              esac
-              if test "X$found_dir" != "X"; then
-                break
-              fi
-            done
-          fi
-          if test "X$found_dir" != "X"; then
-            dnl Found the library.
-            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
-            if test "X$found_so" != "X"; then
-              dnl Linking with a shared library. We attempt to hardcode its
-              dnl directory into the executable's runpath, unless it's the
-              dnl standard /usr/lib.
-              if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
-                dnl No hardcoding is needed.
-                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-              else
-                dnl Use an explicit option to hardcode DIR into the resulting
-                dnl binary.
-                dnl Potentially add DIR to ltrpathdirs.
-                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
-                haveit=
-                for x in $ltrpathdirs; do
-                  if test "X$x" = "X$found_dir"; then
-                    haveit=yes
-                    break
-                  fi
-                done
-                if test -z "$haveit"; then
-                  ltrpathdirs="$ltrpathdirs $found_dir"
-                fi
-                dnl The hardcoding into $LIBNAME is system dependent.
-                if test "$hardcode_direct" = yes; then
-                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
-                  dnl resulting binary.
-                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-                else
-                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
-                    dnl Use an explicit option to hardcode DIR into the resulting
-                    dnl binary.
-                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-                    dnl Potentially add DIR to rpathdirs.
-                    dnl The rpathdirs will be appended to $LIBNAME at the end.
-                    haveit=
-                    for x in $rpathdirs; do
-                      if test "X$x" = "X$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      rpathdirs="$rpathdirs $found_dir"
-                    fi
-                  else
-                    dnl Rely on "-L$found_dir".
-                    dnl But don't add it if it's already contained in the LDFLAGS
-                    dnl or the already constructed $LIBNAME
-                    haveit=
-                    for x in $LDFLAGS $LIB[]NAME; do
-                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-                      if test "X$x" = "X-L$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
-                    fi
-                    if test "$hardcode_minus_L" != no; then
-                      dnl FIXME: Not sure whether we should use
-                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
-                      dnl here.
-                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-                    else
-                      dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
-                      dnl here, because this doesn't fit in flags passed to the
-                      dnl compiler. So give up. No hardcoding. This affects only
-                      dnl very old systems.
-                      dnl FIXME: Not sure whether we should use
-                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
-                      dnl here.
-                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
-                    fi
-                  fi
-                fi
-              fi
-            else
-              if test "X$found_a" != "X"; then
-                dnl Linking with a static library.
-                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
-              else
-                dnl We shouldn't come here, but anyway it's good to have a
-                dnl fallback.
-                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
-              fi
-            fi
-            dnl Assume the include files are nearby.
-            additional_includedir=
-            case "$found_dir" in
-              */lib | */lib/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
-                additional_includedir="$basedir/include"
-                ;;
-            esac
-            if test "X$additional_includedir" != "X"; then
-              dnl Potentially add $additional_includedir to $INCNAME.
-              dnl But don't add it
-              dnl   1. if it's the standard /usr/include,
-              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
-              dnl   3. if it's already present in $CPPFLAGS or the already
-              dnl      constructed $INCNAME,
-              dnl   4. if it doesn't exist as a directory.
-              if test "X$additional_includedir" != "X/usr/include"; then
-                haveit=
-                if test "X$additional_includedir" = "X/usr/local/include"; then
-                  if test -n "$GCC"; then
-                    case $host_os in
-                      linux*) haveit=yes;;
-                    esac
-                  fi
-                fi
-                if test -z "$haveit"; then
-                  for x in $CPPFLAGS $INC[]NAME; do
-                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-                    if test "X$x" = "X-I$additional_includedir"; then
-                      haveit=yes
-                      break
-                    fi
-                  done
-                  if test -z "$haveit"; then
-                    if test -d "$additional_includedir"; then
-                      dnl Really add $additional_includedir to $INCNAME.
-                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
-                    fi
-                  fi
-                fi
-              fi
-            fi
-            dnl Look for dependencies.
-            if test -n "$found_la"; then
-              dnl Read the .la file. It defines the variables
-              dnl dlname, library_names, old_library, dependency_libs, current,
-              dnl age, revision, installed, dlopen, dlpreopen, libdir.
-              save_libdir="$libdir"
-              case "$found_la" in
-                */* | *\\*) . "$found_la" ;;
-                *) . "./$found_la" ;;
-              esac
-              libdir="$save_libdir"
-              dnl We use only dependency_libs.
-              for dep in $dependency_libs; do
-                case "$dep" in
-                  -L*)
-                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
-                    dnl But don't add it
-                    dnl   1. if it's the standard /usr/lib,
-                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
-                    dnl   3. if it's already present in $LDFLAGS or the already
-                    dnl      constructed $LIBNAME,
-                    dnl   4. if it doesn't exist as a directory.
-                    if test "X$additional_libdir" != "X/usr/lib"; then
-                      haveit=
-                      if test "X$additional_libdir" = "X/usr/local/lib"; then
-                        if test -n "$GCC"; then
-                          case $host_os in
-                            linux*) haveit=yes;;
-                          esac
-                        fi
-                      fi
-                      if test -z "$haveit"; then
-                        haveit=
-                        for x in $LDFLAGS $LIB[]NAME; do
-                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                            dnl Really add $additional_libdir to $LIBNAME.
-                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
-                          fi
-                        fi
-                        haveit=
-                        for x in $LDFLAGS $LTLIB[]NAME; do
-                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                            dnl Really add $additional_libdir to $LTLIBNAME.
-                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
-                          fi
-                        fi
-                      fi
-                    fi
-                    ;;
-                  -R*)
-                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
-                    if test "$enable_rpath" != no; then
-                      dnl Potentially add DIR to rpathdirs.
-                      dnl The rpathdirs will be appended to $LIBNAME at the end.
-                      haveit=
-                      for x in $rpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        rpathdirs="$rpathdirs $dir"
-                      fi
-                      dnl Potentially add DIR to ltrpathdirs.
-                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
-                      haveit=
-                      for x in $ltrpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        ltrpathdirs="$ltrpathdirs $dir"
-                      fi
-                    fi
-                    ;;
-                  -l*)
-                    dnl Handle this in the next round.
-                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
-                    ;;
-                  *.la)
-                    dnl Handle this in the next round. Throw away the .la's
-                    dnl directory; it is already contained in a preceding -L
-                    dnl option.
-                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-                    ;;
-                  *)
-                    dnl Most likely an immediate library name.
-                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
-                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
-                    ;;
-                esac
-              done
-            fi
-          else
-            dnl Didn't find the library; assume it is in the system directories
-            dnl known to the linker and runtime loader. (All the system
-            dnl directories known to the linker should also be known to the
-            dnl runtime loader, otherwise the system is severely misconfigured.)
-            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
-            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
-          fi
-        fi
-      fi
-    done
-  done
-  if test "X$rpathdirs" != "X"; then
-    if test -n "$hardcode_libdir_separator"; then
-      dnl Weird platform: only the last -rpath option counts, the user must
-      dnl pass all path elements in one option. We can arrange that for a
-      dnl single library, but not when more than one $LIBNAMEs are used.
-      alldirs=
-      for found_dir in $rpathdirs; do
-        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
-      done
-      dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
-      acl_save_libdir="$libdir"
-      libdir="$alldirs"
-      eval flag=\"$hardcode_libdir_flag_spec\"
-      libdir="$acl_save_libdir"
-      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
-    else
-      dnl The -rpath options are cumulative.
-      for found_dir in $rpathdirs; do
-        acl_save_libdir="$libdir"
-        libdir="$found_dir"
-        eval flag=\"$hardcode_libdir_flag_spec\"
-        libdir="$acl_save_libdir"
-        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
-      done
-    fi
-  fi
-  if test "X$ltrpathdirs" != "X"; then
-    dnl When using libtool, the option that works for both libraries and
-    dnl executables is -R. The -R options are cumulative.
-    for found_dir in $ltrpathdirs; do
-      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
-    done
-  fi
-])
-
-dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
-dnl unless already present in VAR.
-dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
-dnl contains two or three consecutive elements that belong together.
-AC_DEFUN([AC_LIB_APPENDTOVAR],
-[
-  for element in [$2]; do
-    haveit=
-    for x in $[$1]; do
-      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-      if test "X$x" = "X$element"; then
-        haveit=yes
-        break
-      fi
-    done
-    if test -z "$haveit"; then
-      [$1]="${[$1]}${[$1]:+ }$element"
-    fi
-  done
-])
-# lib-prefix.m4 serial 2 (gettext-0.12)
-dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
-dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
-dnl require excessive bracketing.
-ifdef([AC_HELP_STRING],
-[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
-[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
-
-dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
-dnl to access previously installed libraries. The basic assumption is that
-dnl a user will want packages to use other packages he previously installed
-dnl with the same --prefix option.
-dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
-dnl libraries, but is otherwise very convenient.
-AC_DEFUN([AC_LIB_PREFIX],
-[
-  AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
-  AC_REQUIRE([AC_PROG_CC])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-  dnl By default, look in $includedir and $libdir.
-  use_additional=yes
-  AC_LIB_WITH_FINAL_PREFIX([
-    eval additional_includedir=\"$includedir\"
-    eval additional_libdir=\"$libdir\"
-  ])
-  AC_LIB_ARG_WITH([lib-prefix],
-[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
-  --without-lib-prefix    don't search for libraries in includedir and libdir],
-[
-    if test "X$withval" = "Xno"; then
-      use_additional=no
-    else
-      if test "X$withval" = "X"; then
-        AC_LIB_WITH_FINAL_PREFIX([
-          eval additional_includedir=\"$includedir\"
-          eval additional_libdir=\"$libdir\"
-        ])
-      else
-        additional_includedir="$withval/include"
-        additional_libdir="$withval/lib"
-      fi
-    fi
-])
-  if test $use_additional = yes; then
-    dnl Potentially add $additional_includedir to $CPPFLAGS.
-    dnl But don't add it
-    dnl   1. if it's the standard /usr/include,
-    dnl   2. if it's already present in $CPPFLAGS,
-    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
-    dnl   4. if it doesn't exist as a directory.
-    if test "X$additional_includedir" != "X/usr/include"; then
-      haveit=
-      for x in $CPPFLAGS; do
-        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-        if test "X$x" = "X-I$additional_includedir"; then
-          haveit=yes
-          break
-        fi
-      done
-      if test -z "$haveit"; then
-        if test "X$additional_includedir" = "X/usr/local/include"; then
-          if test -n "$GCC"; then
-            case $host_os in
-              linux*) haveit=yes;;
-            esac
-          fi
-        fi
-        if test -z "$haveit"; then
-          if test -d "$additional_includedir"; then
-            dnl Really add $additional_includedir to $CPPFLAGS.
-            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
-          fi
-        fi
-      fi
-    fi
-    dnl Potentially add $additional_libdir to $LDFLAGS.
-    dnl But don't add it
-    dnl   1. if it's the standard /usr/lib,
-    dnl   2. if it's already present in $LDFLAGS,
-    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
-    dnl   4. if it doesn't exist as a directory.
-    if test "X$additional_libdir" != "X/usr/lib"; then
-      haveit=
-      for x in $LDFLAGS; do
-        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-        if test "X$x" = "X-L$additional_libdir"; then
-          haveit=yes
-          break
-        fi
-      done
-      if test -z "$haveit"; then
-        if test "X$additional_libdir" = "X/usr/local/lib"; then
-          if test -n "$GCC"; then
-            case $host_os in
-              linux*) haveit=yes;;
-            esac
-          fi
-        fi
-        if test -z "$haveit"; then
-          if test -d "$additional_libdir"; then
-            dnl Really add $additional_libdir to $LDFLAGS.
-            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
-          fi
-        fi
-      fi
-    fi
-  fi
-])
-
-dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
-dnl acl_final_exec_prefix, containing the values to which $prefix and
-dnl $exec_prefix will expand at the end of the configure script.
-AC_DEFUN([AC_LIB_PREPARE_PREFIX],
-[
-  dnl Unfortunately, prefix and exec_prefix get only finally determined
-  dnl at the end of configure.
-  if test "X$prefix" = "XNONE"; then
-    acl_final_prefix="$ac_default_prefix"
-  else
-    acl_final_prefix="$prefix"
-  fi
-  if test "X$exec_prefix" = "XNONE"; then
-    acl_final_exec_prefix='${prefix}'
-  else
-    acl_final_exec_prefix="$exec_prefix"
-  fi
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
-  prefix="$acl_save_prefix"
-])
-
-dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
-dnl variables prefix and exec_prefix bound to the values they will have
-dnl at the end of the configure script.
-AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
-[
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  $1
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-])
-# nls.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-AC_DEFUN([AM_NLS],
-[
-  AC_MSG_CHECKING([whether NLS is requested])
-  dnl Default is enabled NLS
-  AC_ARG_ENABLE(nls,
-    [  --disable-nls           do not use Native Language Support],
-    USE_NLS=$enableval, USE_NLS=yes)
-  AC_MSG_RESULT($USE_NLS)
-  AC_SUBST(USE_NLS)
-])
-
-AC_DEFUN([AM_MKINSTALLDIRS],
-[
-  dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
-  dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
-  dnl Try to locate it.
-  MKINSTALLDIRS=
-  if test -n "$ac_aux_dir"; then
-    case "$ac_aux_dir" in
-      /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
-      *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
-    esac
-  fi
-  if test -z "$MKINSTALLDIRS"; then
-    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
-  fi
-  AC_SUBST(MKINSTALLDIRS)
-])
-# po.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-dnl Checks for all prerequisites of the po subdirectory.
-AC_DEFUN([AM_PO_SUBDIRS],
-[
-  AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-  AC_REQUIRE([AC_PROG_INSTALL])dnl
-  AC_REQUIRE([AM_MKINSTALLDIRS])dnl
-  AC_REQUIRE([AM_NLS])dnl
-
-  dnl Perform the following tests also if --disable-nls has been given,
-  dnl because they are needed for "make dist" to work.
-
-  dnl Search for GNU msgfmt in the PATH.
-  dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
-  dnl The second test excludes FreeBSD msgfmt.
-  AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-    [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
-     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-    :)
-  AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
-  dnl Search for GNU xgettext 0.12 or newer in the PATH.
-  dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
-  dnl The second test excludes FreeBSD xgettext.
-  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-    [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
-     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-    :)
-  dnl Remove leftover from FreeBSD xgettext call.
-  rm -f messages.po
-
-  dnl Search for GNU msgmerge 0.11 or newer in the PATH.
-  AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
-    [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
-
-  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
-  dnl Test whether we really found GNU msgfmt.
-  if test "$GMSGFMT" != ":"; then
-    dnl If it is no GNU msgfmt we define it as : so that the
-    dnl Makefiles still can work.
-    if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
-       (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-      : ;
-    else
-      GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
-      AC_MSG_RESULT(
-        [found $GMSGFMT program is not GNU msgfmt; ignore it])
-      GMSGFMT=":"
-    fi
-  fi
-
-  dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
-  dnl Test whether we really found GNU xgettext.
-  if test "$XGETTEXT" != ":"; then
-    dnl If it is no GNU xgettext we define it as : so that the
-    dnl Makefiles still can work.
-    if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
-       (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-      : ;
-    else
-      AC_MSG_RESULT(
-        [found xgettext program is not GNU xgettext; ignore it])
-      XGETTEXT=":"
-    fi
-    dnl Remove leftover from FreeBSD xgettext call.
-    rm -f messages.po
-  fi
-
-  AC_OUTPUT_COMMANDS([
-    for ac_file in $CONFIG_FILES; do
-      # Support "outfile[:infile[:infile...]]"
-      case "$ac_file" in
-        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-      esac
-      # PO directories have a Makefile.in generated from Makefile.in.in.
-      case "$ac_file" in */Makefile.in)
-        # Adjust a relative srcdir.
-        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
-        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
-        # In autoconf-2.13 it is called $ac_given_srcdir.
-        # In autoconf-2.50 it is called $srcdir.
-        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
-        case "$ac_given_srcdir" in
-          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
-          /*) top_srcdir="$ac_given_srcdir" ;;
-          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
-        esac
-        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
-          rm -f "$ac_dir/POTFILES"
-          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
-          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[  ]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
-          POMAKEFILEDEPS="POTFILES.in"
-          # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
-          # on $ac_dir but don't depend on user-specified configuration
-          # parameters.
-          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
-            # The LINGUAS file contains the set of available languages.
-            if test -n "$OBSOLETE_ALL_LINGUAS"; then
-              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
-            fi
-            ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-            # Hide the ALL_LINGUAS assigment from automake.
-            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
-            POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
-          else
-            # The set of available languages was given in configure.in.
-            eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
-          fi
-          case "$ac_given_srcdir" in
-            .) srcdirpre= ;;
-            *) srcdirpre='$(srcdir)/' ;;
-          esac
-          POFILES=
-          GMOFILES=
-          UPDATEPOFILES=
-          DUMMYPOFILES=
-          for lang in $ALL_LINGUAS; do
-            POFILES="$POFILES $srcdirpre$lang.po"
-            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
-            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
-            DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
-          done
-          # CATALOGS depends on both $ac_dir and the user's LINGUAS
-          # environment variable.
-          INST_LINGUAS=
-          if test -n "$ALL_LINGUAS"; then
-            for presentlang in $ALL_LINGUAS; do
-              useit=no
-              if test "%UNSET%" != "$LINGUAS"; then
-                desiredlanguages="$LINGUAS"
-              else
-                desiredlanguages="$ALL_LINGUAS"
-              fi
-              for desiredlang in $desiredlanguages; do
-                # Use the presentlang catalog if desiredlang is
-                #   a. equal to presentlang, or
-                #   b. a variant of presentlang (because in this case,
-                #      presentlang can be used as a fallback for messages
-                #      which are not translated in the desiredlang catalog).
-                case "$desiredlang" in
-                  "$presentlang"*) useit=yes;;
-                esac
-              done
-              if test $useit = yes; then
-                INST_LINGUAS="$INST_LINGUAS $presentlang"
-              fi
-            done
-          fi
-          CATALOGS=
-          if test -n "$INST_LINGUAS"; then
-            for lang in $INST_LINGUAS; do
-              CATALOGS="$CATALOGS $lang.gmo"
-            done
-          fi
-          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
-          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
-          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
-            if test -f "$f"; then
-              case "$f" in
-                *.orig | *.bak | *~) ;;
-                *) cat "$f" >> "$ac_dir/Makefile" ;;
-              esac
-            fi
-          done
-        fi
-        ;;
-      esac
-    done],
-   [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
-    # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
-    # from automake.
-    eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
-    # Capture the value of LINGUAS because we need it to compute CATALOGS.
-    LINGUAS="${LINGUAS-%UNSET%}"
-   ])
-])
-# progtest.m4 serial 3 (gettext-0.12)
-dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-# Search path for a program which passes the given test.
-
-dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN([AM_PATH_PROG_WITH_TEST],
-[
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  ac_executable_p="test -x"
-else
-  ac_executable_p="test -f"
-fi
-rm -f conf$$.file
-
-# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
-[case "[$]$1" in
-  [[\\/]]* | ?:[[\\/]]*)
-    ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
-    ;;
-  *)
-    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in ifelse([$5], , $PATH, [$5]); do
-      IFS="$ac_save_IFS"
-      test -z "$ac_dir" && ac_dir=.
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-          if [$3]; then
-            ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
-            break 2
-          fi
-        fi
-      done
-    done
-    IFS="$ac_save_IFS"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
-    ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
-  AC_MSG_RESULT([$]$1)
-else
-  AC_MSG_RESULT(no)
-fi
-AC_SUBST($1)dnl
-])
-# stdint_h.m4 serial 3 (gettext-0.12)
-dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
-# doesn't clash with <sys/types.h>, and declares uintmax_t.
-
-AC_DEFUN([jm_AC_HEADER_STDINT_H],
-[
-  AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
-  [AC_TRY_COMPILE(
-    [#include <sys/types.h>
-#include <stdint.h>],
-    [uintmax_t i = (uintmax_t) -1;],
-    jm_ac_cv_header_stdint_h=yes,
-    jm_ac_cv_header_stdint_h=no)])
-  if test $jm_ac_cv_header_stdint_h = yes; then
-    AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
-      [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
-       and declares uintmax_t. ])
-  fi
-])
-# uintmax_t.m4 serial 7 (gettext-0.12)
-dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-AC_PREREQ(2.13)
-
-# Define uintmax_t to 'unsigned long' or 'unsigned long long'
-# if it is not already defined in <stdint.h> or <inttypes.h>.
-
-AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
-[
-  AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
-  AC_REQUIRE([jm_AC_HEADER_STDINT_H])
-  if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
-    AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
-    test $ac_cv_type_unsigned_long_long = yes \
-      && ac_type='unsigned long long' \
-      || ac_type='unsigned long'
-    AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
-      [Define to unsigned long or unsigned long long
-       if <stdint.h> and <inttypes.h> don't define.])
-  else
-    AC_DEFINE(HAVE_UINTMAX_T, 1,
-      [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
-  fi
-])
-# ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40)
-dnl Copyright (C) 1999-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License.  As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
-[
-  AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
-  [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;],
-    [unsigned long long ullmax = (unsigned long long) -1;
-     return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
-    ac_cv_type_unsigned_long_long=yes,
-    ac_cv_type_unsigned_long_long=no)])
-  if test $ac_cv_type_unsigned_long_long = yes; then
-    AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
-      [Define if you have the unsigned long long type.])
-  fi
-])
-
 dnl From gnulib
 AC_DEFUN([BASH_FUNC_FPURGE],
 [
@@ -4222,3 +2195,40 @@ main(int c, char **v)
       [Define if you have a working sbrk function.])
   fi
 ])
+
+AC_DEFUN(BASH_FUNC_FNMATCH_EQUIV_FALLBACK,
+[AC_MSG_CHECKING(whether fnmatch can be used to check bracket equivalence classes)
+AC_CACHE_VAL(bash_cv_fnmatch_equiv_fallback,
+[AC_TRY_RUN([
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <fnmatch.h>
+#include <locale.h>
+
+char *pattern = "[[=a=]]";
+
+/* char *string = "ä"; */
+unsigned char string[4] = { '\xc3', '\xa4', '\0' };
+
+int
+main (int c, char **v)
+{
+  setlocale (LC_ALL, "en_US.UTF-8");
+  if (fnmatch (pattern, (const char *)string, 0) != FNM_NOMATCH)
+    exit (0);
+  exit (1);
+}
+
+], bash_cv_fnmatch_equiv_fallback=yes, bash_cv_fnmatch_equiv_fallback=no,
+   [AC_MSG_WARN(cannot check fnmatch if cross compiling -- defaulting to no)
+    bash_cv_fnmatch_equiv_fallback=no]
+)])
+AC_MSG_RESULT($bash_cv_fnmatch_equiv_fallback)
+if test "$bash_cv_fnmatch_equiv_fallback" = "yes" ; then
+    bash_cv_fnmatch_equiv_value=1
+else
+    bash_cv_fnmatch_equiv_value=0
+fi
+AC_DEFINE_UNQUOTED([FNMATCH_EQUIV_FALLBACK], [$bash_cv_fnmatch_equiv_value], [Whether fnmatch can be used for bracket equivalence classes])
+])
diff --git a/bind.c b/bind.c
index 57ae10f7318e521797fb4b8f7e426c7ab1324a49..2a1e01270aa569044eb2bd51ed866320b0a8d4b6 100644 (file)
--- a/bind.c
+++ b/bind.c
@@ -1,6 +1,6 @@
 /* bind.c -- key binding and startup file support for the readline library. */
 
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2019 Free Software Foundation, Inc.
 
    This file is part of the GNU Readline Library (Readline), a library
    for reading lines of text with interactive input and history editing.
@@ -135,12 +135,13 @@ rl_add_defun (const char *name, rl_command_func_t *function, int key)
 int
 rl_bind_key (int key, rl_command_func_t *function)
 {
-  char keyseq[3];
+  char keyseq[4];
   int l;
 
-  if (key < 0)
+  if (key < 0 || key > largest_char)
     return (key);
 
+  /* Want to make this a multi-character key sequence with an ESC prefix */
   if (META_CHAR (key) && _rl_convert_meta_chars_to_ascii)
     {
       if (_rl_keymap[ESC].type == ISKMAP)
@@ -153,7 +154,14 @@ rl_bind_key (int key, rl_command_func_t *function)
          escmap[key].function = function;
          return (0);
        }
-      return (key);
+
+      /* Otherwise, let's just let rl_generic_bind handle the key sequence.
+        We start it off with ESC here and let the code below add the rest
+        of the sequence. */
+      keyseq[0] = ESC;
+      l = 1;
+      key = UNMETA(key);
+      goto bind_keyseq;
     }
 
   /* If it's bound to a function or macro, just overwrite.  Otherwise we have
@@ -168,6 +176,7 @@ rl_bind_key (int key, rl_command_func_t *function)
   else
     {
       l = 0;
+bind_keyseq:
       if (key == '\\')
        keyseq[l++] = '\\';
       keyseq[l++] = key;
@@ -397,6 +406,9 @@ rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
          return -1;
         }
 
+      /* We now rely on rl_translate_keyseq to do this conversion, so this
+        check is superfluous. */
+#if 0
       if (META_CHAR (ic) && _rl_convert_meta_chars_to_ascii)
        {
          ic = UNMETA (ic);
@@ -406,6 +418,7 @@ rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
              map = FUNCTION_TO_KEYMAP (map, ESC);
            }
        }
+#endif
 
       if ((i + 1) < keys_len)
        {
@@ -486,13 +499,25 @@ rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
   return 0;
 }
 
+#define ADD_NORMAL_CHAR(c) \
+  do { \
+    if (META_CHAR (c) && _rl_convert_meta_chars_to_ascii) \
+      { \
+       array[l++] = ESC; \
+       array[l++] = UNMETA (c); \
+      } \
+    else \
+      array[l++] = (c); \
+  } while (0)
+      
 /* Translate the ASCII representation of SEQ, stuffing the values into ARRAY,
    an array of characters.  LEN gets the final length of ARRAY.  Return
    non-zero if there was an error parsing SEQ. */
 int
 rl_translate_keyseq (const char *seq, char *array, int *len)
 {
-  register int i, c, l, temp;
+  register int i, l, temp;
+  unsigned char c;
 
   for (i = l = 0; c = seq[i]; i++)
     {
@@ -519,9 +544,13 @@ rl_translate_keyseq (const char *seq, char *array, int *len)
              else if (c == 'M')
                {
                  i++;          /* seq[i] == '-' */
-                 /* XXX - obey convert-meta setting */
-                 if (_rl_convert_meta_chars_to_ascii && _rl_keymap[ESC].type == ISKMAP)
-                   array[l++] = ESC;   /* ESC is meta-prefix */
+                 /* XXX - obey convert-meta setting, convert to key seq  */
+                 if (_rl_convert_meta_chars_to_ascii)
+                   {
+                     array[l++] = ESC; /* ESC is meta-prefix */
+                     i++;
+                     array[l++] = UNMETA (seq[i]);     /* UNMETA just in case */
+                   }
                  else if (seq[i+1] == '\\' && seq[i+2] == 'C' && seq[i+3] == '-')
                    {
                      i += 4;
@@ -590,7 +619,8 @@ rl_translate_keyseq (const char *seq, char *array, int *len)
              for (temp = 2, c -= '0'; ISOCTAL ((unsigned char)seq[i]) && temp--; i++)
                c = (c * 8) + OCTVALUE (seq[i]);
              i--;      /* auto-increment in for loop */
-             array[l++] = c & largest_char;
+             c &= largest_char;
+             ADD_NORMAL_CHAR (c);
              break;
            case 'x':
              i++;
@@ -599,16 +629,18 @@ rl_translate_keyseq (const char *seq, char *array, int *len)
              if (temp == 2)
                c = 'x';
              i--;      /* auto-increment in for loop */
-             array[l++] = c & largest_char;
+             c &= largest_char;
+             ADD_NORMAL_CHAR (c);
              break;
            default:    /* backslashes before non-special chars just add the char */
-             array[l++] = c;
+             c &= largest_char;
+             ADD_NORMAL_CHAR (c);
              break;    /* the backslash is stripped */
            }
          continue;
        }
 
-      array[l++] = c;
+      ADD_NORMAL_CHAR (c);
     }
 
   *len = l;
@@ -809,7 +841,7 @@ _rl_function_of_keyseq_internal (const char *keyseq, size_t len, Keymap map, int
        {
          /* If this is the last key in the key sequence, return the
             map. */
-         if (keyseq[i + 1] == '\0')
+         if (i + 1 == len)
            {
              if (type)
                *type = ISKMAP;
@@ -822,9 +854,9 @@ _rl_function_of_keyseq_internal (const char *keyseq, size_t len, Keymap map, int
       /* If we're not at the end of the key sequence, and the current key
         is bound to something other than a keymap, then the entire key
         sequence is not bound. */
-      else if (map[ic].type != ISKMAP && keyseq[i+1])
+      else if (map[ic].type != ISKMAP && i+1 < len)
        return ((rl_command_func_t *)NULL);
-      else     /* map[ic].type != ISKMAP && keyseq[i+1] == 0 */
+      else     /* map[ic].type != ISKMAP && i+1 == len */
        {
          if (type)
            *type = map[ic].type;
@@ -1569,15 +1601,11 @@ rl_parse_and_bind (char *string)
       /* Strip trailing whitespace from values of boolean variables. */
       if (find_boolean_var (var) >= 0)
        {
-         /* remove trailing whitespace */
-remove_trailing:
-         e = value + strlen (value) - 1;
-         while (e >= value && whitespace (*e))
-           e--;
-         e++;          /* skip back to whitespace or EOS */
-         
-         if (*e && e >= value)
-           *e = '\0';
+         /* just read a whitespace-delimited word or empty string */
+         for (e = value; *e && whitespace (*e) == 0; e++)
+           ;
+         if (e > value)
+           *e = '\0';          /* cut off everything trailing */
        }
       else if ((i = find_string_var (var)) >= 0)
        {
@@ -1589,9 +1617,24 @@ remove_trailing:
              value++;  /* skip past the quote */
            }
          else
-           goto remove_trailing;
+           {
+             /* remove trailing whitespace */
+             e = value + strlen (value) - 1;
+             while (e >= value && whitespace (*e))
+               e--;
+             e++;              /* skip back to whitespace or EOS */
+         
+             if (*e && e >= value)
+               *e = '\0';
+           }
+       }
+      else
+       {
+         /* avoid calling rl_variable_bind just to find this out */
+         _rl_init_file_error ("%s: unknown variable name", var);
+         return 1;
        }
-       
+
       rl_variable_bind (var, value);
       return 0;
     }
@@ -1903,7 +1946,7 @@ string_varname (int i)
 }  
 
 /* A boolean value that can appear in a `set variable' command is true if
-   the value is null or empty, `on' (case-insensitive), or "1".  Any other
+   the value is null or empty, `on' (case-insensitive), or "1".  All other
    values result in 0 (false). */
 static int
 bool_to_int (const char *value)
@@ -1928,7 +1971,7 @@ rl_variable_value (const char *name)
     return (_rl_get_string_variable_value (string_varlist[i].name));
 
   /* Unknown variable names return NULL. */
-  return 0;
+  return (char *)NULL;
 }
 
 int
@@ -1959,6 +2002,8 @@ rl_variable_bind (const char *name, const char *value)
     }
 
   v = (*string_varlist[i].set_func) (value);
+  if (v != 0)
+    _rl_init_file_error ("%s: could not set value to `%s'", name, value);
   return v;
 }
 
index adce0d69ac1d9bbf57a335c1fb0c6df36d9320c2..7da8ee98f4e60ae9adc023f670f2b14de1d383fc 100644 (file)
@@ -406,6 +406,7 @@ int rl_sort_completion_matches = 1;
 
 /* Local variable states what happened during the last completion attempt. */
 static int completion_changed_buffer;
+static int last_completion_failed = 0;
 
 /* The result of the query to the user about displaying completion matches */
 static int completion_y_or_n;
@@ -428,7 +429,7 @@ rl_complete (int ignore, int invoking_key)
 
   if (rl_inhibit_completion)
     return (_rl_insert_char (ignore, invoking_key));
-  else if (rl_last_func == rl_complete && !completion_changed_buffer)
+  else if (rl_last_func == rl_complete && completion_changed_buffer == 0 && last_completion_failed == 0)
     return (rl_complete_internal ('?'));
   else if (_rl_complete_show_all)
     return (rl_complete_internal ('!'));
@@ -477,7 +478,7 @@ rl_completion_mode (rl_command_func_t *cfunc)
 /*                                 */
 /************************************/
 
-/* Reset readline state on a signal or other event. */
+/* Reset public readline state on a signal or other event. */
 void
 _rl_reset_completion_state (void)
 {
@@ -2023,6 +2024,7 @@ rl_complete_internal (int what_to_do)
       rl_ding ();
       FREE (saved_line_buffer);
       completion_changed_buffer = 0;
+      last_completion_failed = 1;
       RL_UNSETSTATE(RL_STATE_COMPLETING);
       _rl_reset_completion_state ();
       return (0);
@@ -2038,11 +2040,15 @@ rl_complete_internal (int what_to_do)
       rl_ding ();
       FREE (saved_line_buffer);
       completion_changed_buffer = 0;
+      last_completion_failed = 1;
       RL_UNSETSTATE(RL_STATE_COMPLETING);
       _rl_reset_completion_state ();
       return (0);
     }
 
+  if (matches && matches[0] && *matches[0])
+    last_completion_failed = 0;
+
   switch (what_to_do)
     {
     case TAB:
index ddc51a9e3f0a49f25350e873fe17146941890a10..c9b7adef9bd32d1ca79abb280abd7ef649c5ab5e 100755 (executable)
--- a/configure
+++ b/configure
@@ -5323,7 +5323,7 @@ else
 
 typedef RETSIGTYPE sigfunc();
 
-int nsigint;
+volatile int nsigint;
 
 #ifdef HAVE_POSIX_SIGNALS
 sigfunc *
@@ -6254,6 +6254,45 @@ fi
 $as_echo "$ac_cv_lib_ncurses_tgetent" >&6; }
 if test "x$ac_cv_lib_ncurses_tgetent" = xyes; then :
   bash_cv_termcap_lib=libncurses
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncursesw" >&5
+$as_echo_n "checking for tgetent in -lncursesw... " >&6; }
+if ${ac_cv_lib_ncursesw_tgetent+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lncursesw  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char tgetent ();
+int
+main ()
+{
+return tgetent ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_ncursesw_tgetent=yes
+else
+  ac_cv_lib_ncursesw_tgetent=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_tgetent" >&5
+$as_echo "$ac_cv_lib_ncursesw_tgetent" >&6; }
+if test "x$ac_cv_lib_ncursesw_tgetent" = xyes; then :
+  bash_cv_termcap_lib=libncursesw
 else
   bash_cv_termcap_lib=gnutermcap
 fi
@@ -6268,6 +6307,8 @@ fi
 
 fi
 
+fi
+
 if test "X$_bash_needmsg" = "Xyes"; then
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5
 $as_echo_n "checking which library has the termcap functions... " >&6; }
index b2ed115417f4f0be4cca21ec0c3d34202a4edbce..4c6cc00ea4929ff5f799af2171418c67fe5a2a19 100644 (file)
--- a/display.c
+++ b/display.c
@@ -2873,14 +2873,14 @@ space_to_eol (int count)
 void
 _rl_clear_screen (void)
 {
-#ifndef __DJGPP__
+#if defined (__DJGPP__)
+  ScreenClear ();
+  ScreenSetCursor (0, 0);
+#else
   if (_rl_term_clrpag)
     tputs (_rl_term_clrpag, 1, _rl_output_character_function);
   else
     rl_crlf ();
-#else
-  ScreenClear ();
-  ScreenSetCursor (0, 0);
 #endif /* __DJGPP__ */
 }
 
diff --git a/doc/._rluserman.pdf b/doc/._rluserman.pdf
deleted file mode 100644 (file)
index 8c6aa1a..0000000
Binary files a/doc/._rluserman.pdf and /dev/null differ
index ee3173a80053dfdd74d451b3115cf4f22bd5ad4d..42991526dd08d67af85a941fdad2d72d63d00564 100644 (file)
Binary files a/doc/history.dvi and b/doc/history.dvi differ
index 1ebac18fdd4283eab18ab248e290dd575dfee05c..6a152485fa0a43c15f4ab633eb5d67d81f8eadf7 100644 (file)
@@ -1,6 +1,6 @@
 <HTML>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on September, 19  2018 by texi2html 1.64 -->
+<!-- Created on April, 17  2019 by texi2html 1.64 -->
 <!-- 
 Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -2166,7 +2166,7 @@ to permit their use in free software.
 <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
 </TR></TABLE>
 <H1>About this document</H1>
-This document was generated by <I>chet</I> on <I>September, 19  2018</I>
+This document was generated by <I>chet</I> on <I>April, 17  2019</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 <P></P>  
@@ -2328,7 +2328,7 @@ the following structure:
 <BR>  
 <FONT SIZE="-1">
 This document was generated
-by <I>chet</I> on <I>September, 19  2018</I>
+by <I>chet</I> on <I>April, 17  2019</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 
index caa86488f49ac28fdf0e7d392a389f78cf3b4bfb..e58ece88e1903c8d93684457bdaa35b5be576636 100644 (file)
@@ -1,9 +1,9 @@
 This is history.info, produced by makeinfo version 6.5 from
 history.texi.
 
-This document describes the GNU History library (version 8.0, 18
-September 2018), a programming tool that provides a consistent user
-interface for recalling lines of previously typed input.
+This document describes the GNU History library (version 8.0, 6 March
+2019), a programming tool that provides a consistent user interface for
+recalling lines of previously typed input.
 
    Copyright (C) 1988-2016 Free Software Foundation, Inc.
 
@@ -1386,27 +1386,27 @@ Appendix C Function and Variable Index
 
 \1f
 Tag Table:
-Node: Top\7f850
-Node: Using History Interactively\7f1495
-Node: History Interaction\7f2003
-Node: Event Designators\7f3901
-Node: Word Designators\7f5040
-Node: Modifiers\7f6677
-Node: Programming with GNU History\7f7900
-Node: Introduction to History\7f8644
-Node: History Storage\7f10334
-Node: History Functions\7f11469
-Node: Initializing History and State Management\7f12458
-Node: History List Management\7f13270
-Node: Information About the History List\7f15564
-Node: Moving Around the History List\7f17178
-Node: Searching the History List\7f18271
-Node: Managing the History File\7f20196
-Node: History Expansion\7f22016
-Node: History Variables\7f23945
-Node: History Programming Example\7f27925
-Node: GNU Free Documentation License\7f30602
-Node: Concept Index\7f55774
-Node: Function and Variable Index\7f56479
+Node: Top\7f845
+Node: Using History Interactively\7f1490
+Node: History Interaction\7f1998
+Node: Event Designators\7f3896
+Node: Word Designators\7f5035
+Node: Modifiers\7f6672
+Node: Programming with GNU History\7f7895
+Node: Introduction to History\7f8639
+Node: History Storage\7f10329
+Node: History Functions\7f11464
+Node: Initializing History and State Management\7f12453
+Node: History List Management\7f13265
+Node: Information About the History List\7f15559
+Node: Moving Around the History List\7f17173
+Node: Searching the History List\7f18266
+Node: Managing the History File\7f20191
+Node: History Expansion\7f22011
+Node: History Variables\7f23940
+Node: History Programming Example\7f27920
+Node: GNU Free Documentation License\7f30597
+Node: Concept Index\7f55769
+Node: Function and Variable Index\7f56474
 \1f
 End Tag Table
index 023be9aef333e00999c52bf3872761c956b014c7..d6a5026577ee17d1b4792c38ef70ba471ef7a05b 100644 (file)
Binary files a/doc/history.pdf and b/doc/history.pdf differ
index 2c1e3a18aee50e7ef3fd9455f2d955ef183bf363..1640a86974cb65af873eccb6e1a26c067c6c91a0 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Creator: dvips(k) 5.998 Copyright 2018 Radical Eye Software
 %%Title: history.dvi
-%%CreationDate: Wed Sep 19 15:10:43 2018
+%%CreationDate: Wed Apr 17 13:02:34 2019
 %%Pages: 24
 %%PageOrder: Ascend
 %%BoundingBox: 0 0 612 792
@@ -12,7 +12,7 @@
 %DVIPSWebPage: (www.radicaleye.com)
 %DVIPSCommandLine: dvips -D 600 -t letter -o history.ps history.dvi
 %DVIPSParameters: dpi=600
-%DVIPSSource:  TeX output 2018.09.19:1110
+%DVIPSSource:  TeX output 2019.04.17:0902
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -5231,23 +5231,22 @@ ifelse
 %%Page: 1 1
 TeXDict begin 1 0 bop 150 1318 a Fr(GNU)65 b(History)h(Library)p
 150 1418 3600 34 v 1920 1515 a Fq(Edition)31 b(8.0,)h(for)e
-Fp(History)e(Library)h Fq(V)-8 b(ersion)31 b(8.0.)3118
-1623 y(Septem)m(b)s(er)f(2018)150 4927 y Fo(Chet)45 b(Ramey)-11
+Fp(History)e(Library)h Fq(V)-8 b(ersion)31 b(8.0.)3285
+1623 y(Marc)m(h)g(2019)150 4927 y Fo(Chet)45 b(Ramey)-11
 b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150
 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)
 -11 b(oundation)p 150 5141 3600 17 v eop end
 %%Page: 2 2
-TeXDict begin 2 1 bop 150 4413 a Fq(This)43 b(do)s(cumen)m(t)g(describ)
-s(es)g(the)h(GNU)g(History)h(library)e(\(v)m(ersion)h(8.0,)49
-b(18)44 b(Septem)m(b)s(er)f(2018\),)50 b(a)150 4523 y(programming)32
-b(to)s(ol)h(that)f(pro)m(vides)g(a)h(consisten)m(t)g(user)e(in)m
-(terface)j(for)d(recalling)j(lines)e(of)g(previously)150
-4633 y(t)m(yp)s(ed)e(input.)150 4767 y(Cop)m(yrigh)m(t)602
-4764 y(c)577 4767 y Fn(\015)g Fq(1988{2016)35 b(F)-8
-b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390
-4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
-b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f
-(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
+TeXDict begin 2 1 bop 150 4413 a Fq(This)28 b(do)s(cumen)m(t)h(describ)
+s(es)g(the)g(GNU)h(History)f(library)g(\(v)m(ersion)h(8.0,)g(6)g(Marc)m
+(h)g(2019\),)h(a)f(program-)150 4523 y(ming)38 b(to)s(ol)h(that)f(pro)m
+(vides)g(a)g(consisten)m(t)i(user)d(in)m(terface)i(for)f(recalling)h
+(lines)g(of)f(previously)f(t)m(yp)s(ed)150 4633 y(input.)150
+4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767 y Fn(\015)30
+b Fq(1988{2016)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h
+(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s
+(cumen)m(t)f(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
 b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
 b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43
 b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8
index 3654f6f1ecfe8dbeaacf3265bc639f97c0c1d935..d0f6fe07175249d39e98e15a499c63b41657fc7f 100644 (file)
@@ -1116,4 +1116,4 @@ READLINE(3)                Library Functions Manual                READLINE(3)
 
 
 
-GNU Readline 7.0               2017 December 28                    READLINE(3)
+GNU Readline 8.0               2017 December 28                    READLINE(3)
index be89c2dff870e1c30cd7f4ff1fc74fca813f0c39..24fad7dca99c77812b801c3ecbd0d479a4f9c36a 100644 (file)
@@ -8,7 +8,7 @@
 .\"
 .\"    Last Change: Thu Dec 28 14:49:51 EST 2017
 .\"
-.TH READLINE 3 "2017 December 28" "GNU Readline 7.0"
+.TH READLINE 3 "2017 December 28" "GNU Readline 8.0"
 .\"
 .\" File Name macro.  This used to be `.PN', for Path Name,
 .\" but Sun doesn't seem to like that very much.
index dc1b2581ddb479a7e19e882524fc445761f0ec36..ccc46ba54d73a541de62aaab46fc72058cdf3a54 100644 (file)
Binary files a/doc/readline.dvi and b/doc/readline.dvi differ
index 96b68f1f00345f770872d5b54c713b03cde11eac..aa52fe9f4beae566b81f46e18bf79b05c8ae8006 100644 (file)
@@ -1,6 +1,6 @@
 <HTML>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on September, 19  2018 by texi2html 1.64 -->
+<!-- Created on April, 17  2019 by texi2html 1.64 -->
 <!-- 
 Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -2309,7 +2309,7 @@ in the consistency of user interface across discrete programs that need
 to provide a command line interface.
 </P><P>
 
-Copyright (C) 1988--2016 Free Software Foundation, Inc.
+Copyright (C) 1988--2019 Free Software Foundation, Inc.
 </P><P>
 
 Permission is granted to make and distribute verbatim copies of
@@ -3346,19 +3346,22 @@ be supplied in a <CODE>set keymap</CODE> inputrc line (see section <A HREF="read
 
 <A NAME="IDX266"></A>
 <DL>
-<DT><U>Function:</U> void <B>rl_set_keymap</B> <I>(const char *name, Keymap keymap)</I>
+<DT><U>Function:</U> int <B>rl_set_keymap_name</B> <I>(const char *name, Keymap keymap)</I>
 <DD>Set the name of <VAR>keymap</VAR>.  This name will then be "registered" and
 available for use in a <CODE>set keymap</CODE> inputrc directive
 see section <A HREF="readline.html#SEC9">1.3 Readline Init File</A>).
-The <VAR>name</VAR> may not be one of Readline's builtin names;
+The <VAR>name</VAR> may not be one of Readline's builtin keymap names;
 you may not add a different name for one of Readline's builtin keymaps.
-Readline will make a copy of <VAR>name</VAR>.
 You may replace the name associated with a given keymap by calling this
-function two or more times with the same <VAR>keymap</VAR> argument.
-You can associate a registered name with a new keymap by calling this
-function two or more times with the same <VAR>name</VAR> argument.
+function more than once with the same <VAR>keymap</VAR> argument.
+You may associate a registered <VAR>name</VAR> with a new keymap by calling this
+function more than once  with the same <VAR>name</VAR> argument.
 There is no way to remove a named keymap once the name has been
 registered.
+Readline will make a copy of <VAR>name</VAR>.
+The return value is greater than zero unless <VAR>name</VAR> is one of
+Readline's builtin keymap names or <VAR>keymap</VAR> is one of Readline's
+builtin keymaps.
 </DL>
 </P><P>
 
@@ -4869,8 +4872,8 @@ to determine whether or not there are any pending signals.
 
 If an application does not wish Readline to catch <CODE>SIGWINCH</CODE>, it may
 call <CODE>rl_resize_terminal()</CODE> or <CODE>rl_set_screen_size()</CODE> to force
-Readline to update its idea of the terminal size when a <CODE>SIGWINCH</CODE>
-is received.
+Readline to update its idea of the terminal size when it receives
+a <CODE>SIGWINCH</CODE>.
 </P><P>
 
 <A NAME="IDX365"></A>
@@ -4896,12 +4899,15 @@ function with <VAR>sig</VAR> set to <CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>, o
 <DD>Set Readline's idea of the terminal size to <VAR>rows</VAR> rows and
 <VAR>cols</VAR> columns.  If either <VAR>rows</VAR> or <VAR>columns</VAR> is less than
 or equal to 0, Readline's idea of that terminal dimension is unchanged.
+This is intended to tell Readline the physical dimensions of the terminal,
+and is used internally to calculate the maximum number of characters that
+may appear on the screen.
 </DL>
 </P><P>
 
 If an application does not want to install a <CODE>SIGWINCH</CODE> handler, but
-is still interested in the screen dimensions, Readline's idea of the screen
-size may be queried.
+is still interested in the screen dimensions, it may query Readline's idea
+of the screen size.
 </P><P>
 
 <A NAME="IDX368"></A>
@@ -5467,6 +5473,8 @@ character (<SAMP>`\0'</SAMP>) prevents anything being appended automatically.
 This can be changed in application-specific completion functions to
 provide the "most sensible word separator character" according to
 an application-specific command line syntax specification.
+It is set to the default before any application-specific completion function
+is called, and may only be changed within such a function.
 </DL>
 </P><P>
 
@@ -7216,7 +7224,7 @@ to permit their use in free software.
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX277"><CODE>rl_set_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX322"><CODE>rl_set_keyboard_input_timeout</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX263"><CODE>rl_set_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX266"><CODE>rl_set_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX266"><CODE>rl_set_keymap_name</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX349"><CODE>rl_set_paren_blink_timeout</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX311"><CODE>rl_set_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX367"><CODE>rl_set_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
@@ -7502,7 +7510,7 @@ to permit their use in free software.
 <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
 </TR></TABLE>
 <H1>About this document</H1>
-This document was generated by <I>chet</I> on <I>September, 19  2018</I>
+This document was generated by <I>chet</I> on <I>April, 17  2019</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 <P></P>  
@@ -7664,7 +7672,7 @@ the following structure:
 <BR>  
 <FONT SIZE="-1">
 This document was generated
-by <I>chet</I> on <I>September, 19  2018</I>
+by <I>chet</I> on <I>April, 17  2019</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 
index c2766991c9084a57ed8cef150a34f876cf9dfa5d..86d2c74568ac9e1bfea63a0c79d45af7cf310b64 100644 (file)
@@ -1,9 +1,8 @@
 This is readline.info, produced by makeinfo version 6.5 from rlman.texi.
 
-This manual describes the GNU Readline Library (version 8.0, 18
-September 2018), a library which aids in the consistency of user
-interface across discrete programs which provide a command line
-interface.
+This manual describes the GNU Readline Library (version 8.0, 6 March
+2019), a library which aids in the consistency of user interface across
+discrete programs which provide a command line interface.
 
    Copyright (C) 1988-2016 Free Software Foundation, Inc.
 
@@ -1486,7 +1485,7 @@ and subsequent lines with 'j', and so forth.
 aiding in the consistency of user interface across discrete programs
 that need to provide a command line interface.
 
-   Copyright (C) 1988-2016 Free Software Foundation, Inc.
+   Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
    Permission is granted to make and distribute verbatim copies of this
 manual provided the copyright notice and this permission notice pare
@@ -2141,17 +2140,20 @@ change which keymap is active.
      supplied in a 'set keymap' inputrc line (*note Readline Init
      File::).
 
- -- Function: void rl_set_keymap (const char *name, Keymap keymap)
+ -- Function: int rl_set_keymap_name (const char *name, Keymap keymap)
      Set the name of KEYMAP.  This name will then be "registered" and
      available for use in a 'set keymap' inputrc directive *note
      Readline Init File::).  The NAME may not be one of Readline's
-     builtin names; you may not add a different name for one of
-     Readline's builtin keymaps.  Readline will make a copy of NAME.
-     You may replace the name associated with a given keymap by calling
-     this function two or more times with the same KEYMAP argument.  You
-     can associate a registered name with a new keymap by calling this
-     function two or more times with the same NAME argument.  There is
-     no way to remove a named keymap once the name has been registered.
+     builtin keymap names; you may not add a different name for one of
+     Readline's builtin keymaps.  You may replace the name associated
+     with a given keymap by calling this function more than once with
+     the same KEYMAP argument.  You may associate a registered NAME with
+     a new keymap by calling this function more than once with the same
+     NAME argument.  There is no way to remove a named keymap once the
+     name has been registered.  Readline will make a copy of NAME.  The
+     return value is greater than zero unless NAME is one of Readline's
+     builtin keymap names or KEYMAP is one of Readline's builtin
+     keymaps.
 
 \1f
 File: readline.info,  Node: Binding Keys,  Next: Associating Function Names and Bindings,  Prev: Keymaps,  Up: Readline Convenience Functions
@@ -3088,7 +3090,7 @@ signals received while waiting for input.
 
    If an application does not wish Readline to catch 'SIGWINCH', it may
 call 'rl_resize_terminal()' or 'rl_set_screen_size()' to force Readline
-to update its idea of the terminal size when a 'SIGWINCH' is received.
+to update its idea of the terminal size when it receives a 'SIGWINCH'.
 
  -- Function: void rl_echo_signal_char (int sig)
      If an application wishes to install its own signal handlers, but
@@ -3103,11 +3105,14 @@ to update its idea of the terminal size when a 'SIGWINCH' is received.
  -- Function: void rl_set_screen_size (int rows, int cols)
      Set Readline's idea of the terminal size to ROWS rows and COLS
      columns.  If either ROWS or COLUMNS is less than or equal to 0,
-     Readline's idea of that terminal dimension is unchanged.
+     Readline's idea of that terminal dimension is unchanged.  This is
+     intended to tell Readline the physical dimensions of the terminal,
+     and is used internally to calculate the maximum number of
+     characters that may appear on the screen.
 
    If an application does not want to install a 'SIGWINCH' handler, but
-is still interested in the screen dimensions, Readline's idea of the
-screen size may be queried.
+is still interested in the screen dimensions, it may query Readline's
+idea of the screen size.
 
  -- Function: void rl_get_screen_size (int *rows, int *cols)
      Return Readline's idea of the terminal's size in the variables
@@ -3473,7 +3478,9 @@ File: readline.info,  Node: Completion Variables,  Next: A Short Completion Exam
      automatically.  This can be changed in application-specific
      completion functions to provide the "most sensible word separator
      character" according to an application-specific command line syntax
-     specification.
+     specification.  It is set to the default before any
+     application-specific completion function is called, and may only be
+     changed within such a function.
 
  -- Variable: int rl_completion_suppress_append
      If non-zero, RL_COMPLETION_APPEND_CHARACTER is not appended to
@@ -4751,7 +4758,7 @@ Function and Variable Index
 * rl_attempted_completion_function:      Completion Variables.
                                                               (line  11)
 * rl_attempted_completion_over:          Completion Variables.
-                                                              (line 253)
+                                                              (line 255)
 * rl_basic_quote_characters:             Completion Variables.
                                                               (line 143)
 * rl_basic_word_break_characters:        Completion Variables.
@@ -4787,7 +4794,7 @@ Function and Variable Index
 * rl_clear_message:                      Redisplay.           (line  51)
 * rl_clear_pending_input:                Character Input.     (line  29)
 * rl_clear_signals:                      Readline Signal Handling.
-                                                              (line 179)
+                                                              (line 182)
 * rl_clear_visible_line:                 Redisplay.           (line  25)
 * rl_complete:                           How Completing Works.
                                                               (line  46)
@@ -4808,11 +4815,11 @@ Function and Variable Index
 * rl_completion_entry_function <1>:      Completion Variables.
                                                               (line   6)
 * rl_completion_found_quote:             Completion Variables.
-                                                              (line 212)
+                                                              (line 214)
 * rl_completion_invoking_key:            Completion Variables.
-                                                              (line 276)
+                                                              (line 278)
 * rl_completion_mark_symlink_dirs:       Completion Variables.
-                                                              (line 218)
+                                                              (line 220)
 * rl_completion_matches:                 Completion Functions.
                                                               (line  43)
 * rl_completion_mode:                    Completion Functions.
@@ -4820,13 +4827,13 @@ Function and Variable Index
 * rl_completion_query_items:             Completion Variables.
                                                               (line 178)
 * rl_completion_quote_character:         Completion Variables.
-                                                              (line 200)
+                                                              (line 202)
 * rl_completion_suppress_append:         Completion Variables.
-                                                              (line 194)
+                                                              (line 196)
 * rl_completion_suppress_quote:          Completion Variables.
-                                                              (line 206)
+                                                              (line 208)
 * rl_completion_type:                    Completion Variables.
-                                                              (line 268)
+                                                              (line 270)
 * rl_completion_word_break_hook:         Completion Variables.
                                                               (line 151)
 * rl_copy_keymap:                        Keymaps.             (line  16)
@@ -4863,7 +4870,7 @@ Function and Variable Index
 * rl_explicit_arg:                       Readline Variables.  (line 272)
 * rl_extend_line_buffer:                 Utility Functions.   (line  26)
 * rl_filename_completion_desired:        Completion Variables.
-                                                              (line 233)
+                                                              (line 235)
 * rl_filename_completion_function:       Completion Functions.
                                                               (line  57)
 * rl_filename_dequoting_function:        Completion Variables.
@@ -4871,7 +4878,7 @@ Function and Variable Index
 * rl_filename_quote_characters:          Completion Variables.
                                                               (line 166)
 * rl_filename_quoting_desired:           Completion Variables.
-                                                              (line 243)
+                                                              (line 245)
 * rl_filename_quoting_function:          Completion Variables.
                                                               (line  23)
 * rl_filename_rewrite_hook:              Completion Variables.
@@ -4899,16 +4906,16 @@ Function and Variable Index
 * rl_get_keymap_by_name:                 Keymaps.             (line  46)
 * rl_get_keymap_name:                    Keymaps.             (line  51)
 * rl_get_screen_size:                    Readline Signal Handling.
-                                                              (line 162)
+                                                              (line 165)
 * rl_get_termcap:                        Miscellaneous Functions.
                                                               (line  41)
 * rl_gnu_readline_p:                     Readline Variables.  (line  82)
 * rl_ignore_completion_duplicates:       Completion Variables.
-                                                              (line 229)
+                                                              (line 231)
 * rl_ignore_some_completions_function:   Completion Variables.
                                                               (line  55)
 * rl_inhibit_completion:                 Completion Variables.
-                                                              (line 282)
+                                                              (line 284)
 * rl_initialize:                         Utility Functions.   (line  30)
 * rl_input_available_hook:               Readline Variables.  (line 140)
 * rl_insert_completions:                 Completion Functions.
@@ -4969,7 +4976,7 @@ Function and Variable Index
                                                               (line 121)
 * rl_reset_line_state:                   Redisplay.           (line  29)
 * rl_reset_screen_size:                  Readline Signal Handling.
-                                                              (line 166)
+                                                              (line 169)
 * rl_reset_terminal:                     Terminal Management. (line  34)
 * rl_resize_terminal:                    Readline Signal Handling.
                                                               (line 149)
@@ -4980,18 +4987,18 @@ Function and Variable Index
 * rl_set_key:                            Binding Keys.        (line  71)
 * rl_set_keyboard_input_timeout:         Character Input.     (line  34)
 * rl_set_keymap:                         Keymaps.             (line  43)
-* rl_set_keymap <1>:                     Keymaps.             (line  56)
+* rl_set_keymap_name:                    Keymaps.             (line  56)
 * rl_set_paren_blink_timeout:            Miscellaneous Functions.
                                                               (line  36)
 * rl_set_prompt:                         Redisplay.           (line  80)
 * rl_set_screen_size:                    Readline Signal Handling.
                                                               (line 153)
 * rl_set_signals:                        Readline Signal Handling.
-                                                              (line 173)
+                                                              (line 176)
 * rl_show_char:                          Redisplay.           (line  36)
 * rl_signal_event_hook:                  Readline Variables.  (line 136)
 * rl_sort_completion_matches:            Completion Variables.
-                                                              (line 260)
+                                                              (line 262)
 * rl_special_prefixes:                   Completion Variables.
                                                               (line 171)
 * rl_startup_hook:                       Readline Variables.  (line 114)
@@ -5061,58 +5068,58 @@ Function and Variable Index
 
 \1f
 Tag Table:
-Node: Top\7f866
-Node: Command Line Editing\7f1591
-Node: Introduction and Notation\7f2243
-Node: Readline Interaction\7f3867
-Node: Readline Bare Essentials\7f5059
-Node: Readline Movement Commands\7f6843
-Node: Readline Killing Commands\7f7804
-Node: Readline Arguments\7f9723
-Node: Searching\7f10768
-Node: Readline Init File\7f12921
-Node: Readline Init File Syntax\7f14075
-Node: Conditional Init Constructs\7f34234
-Node: Sample Init File\7f38431
-Node: Bindable Readline Commands\7f41549
-Node: Commands For Moving\7f42604
-Node: Commands For History\7f44171
-Node: Commands For Text\7f48436
-Node: Commands For Killing\7f51878
-Node: Numeric Arguments\7f54045
-Node: Commands For Completion\7f55185
-Node: Keyboard Macros\7f57154
-Node: Miscellaneous Commands\7f57842
-Node: Readline vi Mode\7f61764
-Node: Programming with GNU Readline\7f63581
-Node: Basic Behavior\7f64567
-Node: Custom Functions\7f68250
-Node: Readline Typedefs\7f69733
-Node: Function Writing\7f71367
-Node: Readline Variables\7f72681
-Node: Readline Convenience Functions\7f85353
-Node: Function Naming\7f86425
-Node: Keymaps\7f87687
-Node: Binding Keys\7f90604
-Node: Associating Function Names and Bindings\7f95152
-Node: Allowing Undoing\7f97931
-Node: Redisplay\7f100481
-Node: Modifying Text\7f104505
-Node: Character Input\7f105752
-Node: Terminal Management\7f107650
-Node: Utility Functions\7f109473
-Node: Miscellaneous Functions\7f112801
-Node: Alternate Interface\7f115390
-Node: A Readline Example\7f118132
-Node: Alternate Interface Example\7f120071
-Node: Readline Signal Handling\7f123603
-Node: Custom Completers\7f132652
-Node: How Completing Works\7f133372
-Node: Completion Functions\7f136679
-Node: Completion Variables\7f140253
-Node: A Short Completion Example\7f155897
-Node: GNU Free Documentation License\7f168676
-Node: Concept Index\7f193850
-Node: Function and Variable Index\7f195371
+Node: Top\7f861
+Node: Command Line Editing\7f1586
+Node: Introduction and Notation\7f2238
+Node: Readline Interaction\7f3862
+Node: Readline Bare Essentials\7f5054
+Node: Readline Movement Commands\7f6838
+Node: Readline Killing Commands\7f7799
+Node: Readline Arguments\7f9718
+Node: Searching\7f10763
+Node: Readline Init File\7f12916
+Node: Readline Init File Syntax\7f14070
+Node: Conditional Init Constructs\7f34229
+Node: Sample Init File\7f38426
+Node: Bindable Readline Commands\7f41544
+Node: Commands For Moving\7f42599
+Node: Commands For History\7f44166
+Node: Commands For Text\7f48431
+Node: Commands For Killing\7f51873
+Node: Numeric Arguments\7f54040
+Node: Commands For Completion\7f55180
+Node: Keyboard Macros\7f57149
+Node: Miscellaneous Commands\7f57837
+Node: Readline vi Mode\7f61759
+Node: Programming with GNU Readline\7f63576
+Node: Basic Behavior\7f64562
+Node: Custom Functions\7f68245
+Node: Readline Typedefs\7f69728
+Node: Function Writing\7f71362
+Node: Readline Variables\7f72676
+Node: Readline Convenience Functions\7f85348
+Node: Function Naming\7f86420
+Node: Keymaps\7f87682
+Node: Binding Keys\7f90761
+Node: Associating Function Names and Bindings\7f95309
+Node: Allowing Undoing\7f98088
+Node: Redisplay\7f100638
+Node: Modifying Text\7f104662
+Node: Character Input\7f105909
+Node: Terminal Management\7f107807
+Node: Utility Functions\7f109630
+Node: Miscellaneous Functions\7f112958
+Node: Alternate Interface\7f115547
+Node: A Readline Example\7f118289
+Node: Alternate Interface Example\7f120228
+Node: Readline Signal Handling\7f123760
+Node: Custom Completers\7f132998
+Node: How Completing Works\7f133718
+Node: Completion Functions\7f137025
+Node: Completion Variables\7f140599
+Node: A Short Completion Example\7f156390
+Node: GNU Free Documentation License\7f169169
+Node: Concept Index\7f194343
+Node: Function and Variable Index\7f195864
 \1f
 End Tag Table
index 7a8f5380fa7bb2b7940003936fcaf3a12206b29f..5e4cfd839349df94687e9974d633b9cbdd0b6233 100644 (file)
Binary files a/doc/readline.pdf and b/doc/readline.pdf differ
index 4ec76c8da84aef7794230ac2360bcdf7de69c2d5..8a99c8fbc98ca9873824f63c53c628320a76e74a 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Creator: dvips(k) 5.998 Copyright 2018 Radical Eye Software
 %%Title: readline.dvi
-%%CreationDate: Wed Sep 19 15:10:43 2018
+%%CreationDate: Wed Apr 17 13:02:34 2019
 %%Pages: 81
 %%PageOrder: Ascend
 %%BoundingBox: 0 0 612 792
@@ -12,7 +12,7 @@
 %DVIPSWebPage: (www.radicaleye.com)
 %DVIPSCommandLine: dvips -D 600 -t letter -o readline.ps readline.dvi
 %DVIPSParameters: dpi=600
-%DVIPSSource:  TeX output 2018.09.19:1110
+%DVIPSSource:  TeX output 2019.04.17:0902
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -6674,29 +6674,28 @@ ifelse
 %%Page: 1 1
 TeXDict begin 1 0 bop 150 1318 a Fu(GNU)65 b(Readline)g(Library)p
 150 1418 3600 34 v 1873 1515 a Ft(Edition)30 b(8.0,)i(for)e
-Fs(Readline)e(Library)h Ft(V)-8 b(ersion)31 b(8.0.)3118
-1623 y(Septem)m(b)s(er)f(2018)150 4927 y Fr(Chet)45 b(Ramey)-11
+Fs(Readline)e(Library)h Ft(V)-8 b(ersion)31 b(8.0.)3285
+1623 y(Marc)m(h)g(2019)150 4927 y Fr(Chet)45 b(Ramey)-11
 b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150
 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)
 -11 b(oundation)p 150 5141 3600 17 v eop end
 %%Page: 2 2
-TeXDict begin 2 1 bop 150 4413 a Ft(This)21 b(man)m(ual)g(describ)s(es)
-g(the)g(GNU)h(Readline)g(Library)f(\(v)m(ersion)h(8.0,)i(18)e(Septem)m
-(b)s(er)f(2018\),)26 b(a)21 b(library)150 4523 y(whic)m(h)39
-b(aids)g(in)g(the)g(consistency)h(of)g(user)e(in)m(terface)j(across)f
-(discrete)g(programs)e(whic)m(h)h(pro)m(vide)h(a)150
-4633 y(command)30 b(line)h(in)m(terface.)150 4767 y(Cop)m(yrigh)m(t)602
-4764 y(c)577 4767 y Fq(\015)f Ft(1988{2016)35 b(F)-8
-b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390
-4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
-b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f
-(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
-b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
-b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43
-b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8
-b(oundation;)53 b(with)44 b(no)g(In)m(v)-5 b(arian)m(t)46
-b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)31
-b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8
+TeXDict begin 2 1 bop 150 4413 a Ft(This)37 b(man)m(ual)h(describ)s(es)
+f(the)h(GNU)g(Readline)g(Library)f(\(v)m(ersion)h(8.0,)j(6)d(Marc)m(h)h
+(2019\),)i(a)d(library)150 4523 y(whic)m(h)h(aids)g(in)g(the)g
+(consistency)h(of)g(user)e(in)m(terface)j(across)f(discrete)g(programs)
+e(whic)m(h)h(pro)m(vide)h(a)150 4633 y(command)30 b(line)h(in)m
+(terface.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577
+4767 y Fq(\015)f Ft(1988{2016)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)
+-8 b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21
+b(is)f(gran)m(ted)h(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s
+(dify)e(this)i(do)s(cumen)m(t)f(under)f(the)390 5011
+y(terms)25 b(of)h(the)f(GNU)h(F)-8 b(ree)27 b(Do)s(cumen)m(tation)g
+(License,)g(V)-8 b(ersion)26 b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)
+390 5121 y(published)43 b(b)m(y)h(the)h(F)-8 b(ree)46
+b(Soft)m(w)m(are)g(F)-8 b(oundation;)53 b(with)44 b(no)g(In)m(v)-5
+b(arian)m(t)46 b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)
+31 b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8
 b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390
 5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8
 b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end
@@ -9019,326 +9018,331 @@ Fg(\()p Ff(Keymap)34 b(k)m(eymap)p Fg(\))390 4603 y Ft(Return)e(the)i
 b Ft(is)c(one)f(whic)m(h)g(w)m(ould)g(b)s(e)f(supplied)g(in)h(a)h
 Fs(set)390 4713 y(keymap)29 b Ft(inputrc)g(line)i(\(see)g(Section)g
 (1.3)h([Readline)f(Init)f(File],)i(page)f(4\).)3350 4902
-y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_set_keymap)49
-Fg(\()p Ff(const)34 b(c)m(har)g(*name,)f(Keymap)h(k)m(eymap)p
-Fg(\))390 5011 y Ft(Set)27 b(the)f(name)h(of)f Fj(k)m(eymap)p
-Ft(.)40 b(This)26 b(name)h(will)f(then)h(b)s(e)e Fs(")p
-Ft(registered)p Fs(")i Ft(and)f(a)m(v)-5 b(ailable)29
-b(for)d(use)g(in)390 5121 y(a)f Fs(set)k(keymap)23 b
-Ft(inputrc)g(directiv)m(e)j(see)f(Section)g(1.3)h([Readline)f(Init)f
-(File],)j(page)e(4\).)40 b(The)24 b Fj(name)390 5230
-y Ft(ma)m(y)i(not)f(b)s(e)f(one)h(of)g(Readline's)h(builtin)f(names;)i
-(y)m(ou)e(ma)m(y)h(not)f(add)f(a)h(di\013eren)m(t)h(name)f(for)g(one)
-390 5340 y(of)31 b(Readline's)g(builtin)f(k)m(eymaps.)42
-b(Readline)32 b(will)f(mak)m(e)g(a)h(cop)m(y)f(of)g Fj(name)p
-Ft(.)42 b(Y)-8 b(ou)31 b(ma)m(y)g(replace)p eop end
+y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_set_keymap_name)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*name,)f(Keymap)h(k)m(eymap)p
+Fg(\))390 5011 y Ft(Set)g(the)f(name)h(of)g Fj(k)m(eymap)p
+Ft(.)50 b(This)33 b(name)h(will)f(then)h(b)s(e)e Fs(")p
+Ft(registered)p Fs(")i Ft(and)f(a)m(v)-5 b(ailable)36
+b(for)d(use)390 5121 y(in)i(a)g Fs(set)29 b(keymap)k
+Ft(inputrc)h(directiv)m(e)j(see)e(Section)h(1.3)g([Readline)g(Init)e
+(File],)k(page)e(4\).)54 b(The)390 5230 y Fj(name)27
+b Ft(ma)m(y)c(not)g(b)s(e)e(one)i(of)f(Readline's)h(builtin)f(k)m
+(eymap)g(names;)j(y)m(ou)e(ma)m(y)g(not)f(add)g(a)g(di\013eren)m(t)390
+5340 y(name)36 b(for)g(one)g(of)g(Readline's)h(builtin)e(k)m(eymaps.)58
+b(Y)-8 b(ou)37 b(ma)m(y)f(replace)h(the)f(name)g(asso)s(ciated)p
+eop end
 %%Page: 34 38
 TeXDict begin 34 37 bop 150 -116 a Ft(Chapter)30 b(2:)41
 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(34)390
-299 y(the)31 b(name)f(asso)s(ciated)i(with)e(a)h(giv)m(en)h(k)m(eymap)f
-(b)m(y)f(calling)i(this)e(function)g(t)m(w)m(o)i(or)f(more)f(times)390
-408 y(with)35 b(the)h(same)g Fj(k)m(eymap)j Ft(argumen)m(t.)57
-b(Y)-8 b(ou)36 b(can)g(asso)s(ciate)i(a)e(registered)g(name)g(with)f(a)
-h(new)390 518 y(k)m(eymap)h(b)m(y)g(calling)h(this)f(function)f(t)m(w)m
-(o)i(or)f(more)g(times)g(with)f(the)h(same)g Fj(name)42
-b Ft(argumen)m(t.)390 628 y(There)30 b(is)g(no)h(w)m(a)m(y)g(to)g(remo)
-m(v)m(e)h(a)f(named)f(k)m(eymap)g(once)h(the)g(name)f(has)h(b)s(een)e
-(registered.)150 826 y Fi(2.4.3)63 b(Binding)42 b(Keys)150
-973 y Ft(Key)34 b(sequences)g(are)h(asso)s(ciate)h(with)e(functions)f
+299 y(with)31 b(a)g(giv)m(en)h(k)m(eymap)g(b)m(y)f(calling)h(this)f
+(function)g(more)h(than)e(once)i(with)f(the)g(same)h
+Fj(k)m(eymap)390 408 y Ft(argumen)m(t.)50 b(Y)-8 b(ou)34
+b(ma)m(y)h(asso)s(ciate)g(a)f(registered)g Fj(name)39
+b Ft(with)33 b(a)h(new)f(k)m(eymap)h(b)m(y)f(calling)i(this)390
+518 y(function)c(more)h(than)f(once)i(with)e(the)h(same)g
+Fj(name)k Ft(argumen)m(t.)45 b(There)31 b(is)h(no)g(w)m(a)m(y)g(to)g
+(remo)m(v)m(e)390 628 y(a)k(named)e(k)m(eymap)i(once)g(the)f(name)g
+(has)g(b)s(een)g(registered.)56 b(Readline)36 b(will)f(mak)m(e)h(a)g
+(cop)m(y)g(of)390 737 y Fj(name)p Ft(.)41 b(The)30 b(return)f(v)-5
+b(alue)31 b(is)g(greater)g(than)g(zero)g(unless)f Fj(name)35
+b Ft(is)c(one)g(of)f(Readline's)h(builtin)390 847 y(k)m(eymap)g(names)f
+(or)h Fj(k)m(eymap)i Ft(is)e(one)f(of)h(Readline's)g(builtin)f(k)m
+(eymaps.)150 1056 y Fi(2.4.3)63 b(Binding)42 b(Keys)150
+1203 y Ft(Key)34 b(sequences)g(are)h(asso)s(ciate)h(with)e(functions)f
 (through)h(the)g(k)m(eymap.)52 b(Readline)35 b(has)f(sev)m(eral)h(in-)
-150 1083 y(ternal)30 b(k)m(eymaps:)40 b Fs(emacs_standard_keymap)p
+150 1313 y(ternal)30 b(k)m(eymaps:)40 b Fs(emacs_standard_keymap)p
 Ft(,)24 b Fs(emacs_meta_keymap)p Ft(,)h Fs(emacs_ctlx_keymap)p
-Ft(,)g Fs(vi_)150 1192 y(movement_keymap)p Ft(,)41 b(and)h
+Ft(,)g Fs(vi_)150 1423 y(movement_keymap)p Ft(,)41 b(and)h
 Fs(vi_insertion_keymap)p Ft(.)71 b Fs(emacs_standard_keymap)37
-b Ft(is)42 b(the)g(default,)150 1302 y(and)30 b(the)g(examples)h(in)f
-(this)h(man)m(ual)f(assume)g(that.)275 1436 y(Since)d
+b Ft(is)42 b(the)g(default,)150 1532 y(and)30 b(the)g(examples)h(in)f
+(this)h(man)m(ual)f(assume)g(that.)275 1677 y(Since)d
 Fs(readline\(\))e Ft(installs)j(a)g(set)g(of)g(default)g(k)m(ey)g
 (bindings)f(the)h(\014rst)e(time)j(it)f(is)f(called,)j(there)e(is)150
-1546 y(alw)m(a)m(ys)34 b(the)f(danger)f(that)i(a)f(custom)g(binding)e
+1787 y(alw)m(a)m(ys)34 b(the)f(danger)f(that)i(a)f(custom)g(binding)e
 (installed)j(b)s(efore)e(the)h(\014rst)e(call)j(to)g
-Fs(readline\(\))c Ft(will)150 1655 y(b)s(e)25 b(o)m(v)m(erridden.)39
+Fs(readline\(\))c Ft(will)150 1896 y(b)s(e)25 b(o)m(v)m(erridden.)39
 b(An)26 b(alternate)h(mec)m(hanism)f(is)g(to)g(install)h(custom)f(k)m
-(ey)g(bindings)f(in)g(an)h(initialization)150 1765 y(function)37
+(ey)g(bindings)f(in)g(an)h(initialization)150 2006 y(function)37
 b(assigned)g(to)h(the)f Fs(rl_startup_hook)c Ft(v)-5
 b(ariable)38 b(\(see)g(Section)g(2.3)g([Readline)g(V)-8
-b(ariables],)150 1875 y(page)31 b(27\).)275 2009 y(These)f(functions)g
-(manage)h(k)m(ey)g(bindings.)3350 2192 y([F)-8 b(unction])-3599
+b(ariables],)150 2115 y(page)31 b(27\).)275 2260 y(These)f(functions)g
+(manage)h(k)m(ey)g(bindings.)3350 2465 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_bind_key)c Fg(\()p Ff(in)m(t)34 b(k)m(ey)-8
-b(,)32 b(rl)p 1441 2192 30 5 v 43 w(command)p 1904 2192
-V 45 w(func)p 2133 2192 V 45 w(t)h(*function)p Fg(\))390
-2302 y Ft(Binds)f Fj(k)m(ey)42 b Ft(to)34 b Fj(function)e
+b(,)32 b(rl)p 1441 2465 30 5 v 43 w(command)p 1904 2465
+V 45 w(func)p 2133 2465 V 45 w(t)h(*function)p Fg(\))390
+2575 y Ft(Binds)f Fj(k)m(ey)42 b Ft(to)34 b Fj(function)e
 Ft(in)h(the)g(curren)m(tly)g(activ)m(e)i(k)m(eymap.)49
-b(Returns)32 b(non-zero)i(in)f(the)g(case)390 2412 y(of)e(an)f(in)m(v)
--5 b(alid)31 b Fj(k)m(ey)p Ft(.)3350 2595 y([F)-8 b(unction])-3599
+b(Returns)32 b(non-zero)i(in)f(the)g(case)390 2685 y(of)e(an)f(in)m(v)
+-5 b(alid)31 b Fj(k)m(ey)p Ft(.)3350 2890 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_bind_key_in_map)e Fg(\()p Ff(in)m(t)34
-b(k)m(ey)-8 b(,)32 b(rl)p 1807 2595 V 43 w(command)p
-2270 2595 V 45 w(func)p 2499 2595 V 45 w(t)h(*function,)565
-2705 y(Keymap)h(map)p Fg(\))390 2814 y Ft(Bind)c Fj(k)m(ey)39
+b(k)m(ey)-8 b(,)32 b(rl)p 1807 2890 V 43 w(command)p
+2270 2890 V 45 w(func)p 2499 2890 V 45 w(t)h(*function,)565
+2999 y(Keymap)h(map)p Fg(\))390 3109 y Ft(Bind)c Fj(k)m(ey)39
 b Ft(to)31 b Fj(function)f Ft(in)g Fj(map)p Ft(.)40 b(Returns)30
 b(non-zero)h(in)f(the)h(case)g(of)f(an)h(in)m(v)-5 b(alid)31
-b Fj(k)m(ey)p Ft(.)3350 2998 y([F)-8 b(unction])-3599
+b Fj(k)m(ey)p Ft(.)3350 3314 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_bind_key_if_unboun)q(d)e Fg(\()p Ff(in)m(t)34
-b(k)m(ey)-8 b(,)32 b(rl)p 2016 2998 V 44 w(command)p
-2480 2998 V 44 w(func)p 2708 2998 V 45 w(t)565 3107 y(*function)p
-Fg(\))390 3217 y Ft(Binds)43 b Fj(k)m(ey)53 b Ft(to)45
+b(k)m(ey)-8 b(,)32 b(rl)p 2016 3314 V 44 w(command)p
+2480 3314 V 44 w(func)p 2708 3314 V 45 w(t)565 3424 y(*function)p
+Fg(\))390 3533 y Ft(Binds)43 b Fj(k)m(ey)53 b Ft(to)45
 b Fj(function)e Ft(if)h(it)h(is)f(not)g(already)g(b)s(ound)e(in)i(the)g
-(curren)m(tly)g(activ)m(e)i(k)m(eymap.)390 3327 y(Returns)29
+(curren)m(tly)g(activ)m(e)i(k)m(eymap.)390 3643 y(Returns)29
 b(non-zero)i(in)f(the)h(case)g(of)g(an)f(in)m(v)-5 b(alid)31
 b Fj(k)m(ey)39 b Ft(or)30 b(if)h Fj(k)m(ey)39 b Ft(is)30
-b(already)h(b)s(ound.)3350 3510 y([F)-8 b(unction])-3599
+b(already)h(b)s(ound.)3350 3848 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_bind_key_if_unboun)q(d_in)q(_ma)q(p)e
-Fg(\()p Ff(in)m(t)34 b(k)m(ey)-8 b(,)32 b(rl)p 2382 3510
-V 44 w(command)p 2846 3510 V 44 w(func)p 3074 3510 V
-46 w(t)565 3620 y(*function,)i(Keymap)g(map)p Fg(\))390
-3729 y Ft(Binds)27 b Fj(k)m(ey)36 b Ft(to)28 b Fj(function)f
+Fg(\()p Ff(in)m(t)34 b(k)m(ey)-8 b(,)32 b(rl)p 2382 3848
+V 44 w(command)p 2846 3848 V 44 w(func)p 3074 3848 V
+46 w(t)565 3958 y(*function,)i(Keymap)g(map)p Fg(\))390
+4067 y Ft(Binds)27 b Fj(k)m(ey)36 b Ft(to)28 b Fj(function)f
 Ft(if)g(it)h(is)f(not)h(already)g(b)s(ound)d(in)i Fj(map)p
 Ft(.)39 b(Returns)27 b(non-zero)g(in)g(the)h(case)390
-3839 y(of)j(an)f(in)m(v)-5 b(alid)31 b Fj(k)m(ey)39 b
+4177 y(of)j(an)f(in)m(v)-5 b(alid)31 b Fj(k)m(ey)39 b
 Ft(or)30 b(if)g Fj(k)m(ey)39 b Ft(is)31 b(already)g(b)s(ound.)3350
-4022 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_unbind_key)d
-Fg(\()p Ff(in)m(t)33 b(k)m(ey)p Fg(\))390 4132 y Ft(Bind)j
+4382 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_unbind_key)d
+Fg(\()p Ff(in)m(t)33 b(k)m(ey)p Fg(\))390 4491 y Ft(Bind)j
 Fj(k)m(ey)45 b Ft(to)37 b(the)f(n)m(ull)g(function)g(in)g(the)h(curren)
 m(tly)f(activ)m(e)i(k)m(eymap.)59 b(Returns)35 b(non-zero)i(in)390
-4242 y(case)31 b(of)g(error.)3350 4425 y([F)-8 b(unction])-3599
+4601 y(case)31 b(of)g(error.)3350 4806 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_unbind_key_in_map)f Fg(\()p Ff(in)m(t)33
-b(k)m(ey)-8 b(,)33 b(Keymap)g(map)p Fg(\))390 4535 y
+b(k)m(ey)-8 b(,)33 b(Keymap)g(map)p Fg(\))390 4916 y
 Ft(Bind)d Fj(k)m(ey)39 b Ft(to)31 b(the)g(n)m(ull)f(function)g(in)g
 Fj(map)p Ft(.)40 b(Returns)30 b(non-zero)h(in)f(case)h(of)g(error.)3350
-4718 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_unbind_function_in)q
-(_map)f Fg(\()p Ff(rl)p 1821 4718 V 44 w(command)p 2285
-4718 V 45 w(func)p 2514 4718 V 45 w(t)33 b(*function,)565
-4828 y(Keymap)h(map)p Fg(\))390 4937 y Ft(Un)m(bind)29
+5121 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_unbind_function_in)q
+(_map)f Fg(\()p Ff(rl)p 1821 5121 V 44 w(command)p 2285
+5121 V 45 w(func)p 2514 5121 V 45 w(t)33 b(*function,)565
+5230 y(Keymap)h(map)p Fg(\))390 5340 y Ft(Un)m(bind)29
 b(all)i(k)m(eys)g(that)g(execute)h Fj(function)e Ft(in)g
-Fj(map)p Ft(.)3350 5121 y([F)-8 b(unction])-3599 b Fh(int)53
-b(rl_unbind_command_in_)q(map)f Fg(\()p Ff(const)34 b(c)m(har)g
-(*command,)f(Keymap)565 5230 y(map)p Fg(\))390 5340 y
-Ft(Un)m(bind)c(all)i(k)m(eys)g(that)g(are)g(b)s(ound)e(to)i
-Fj(command)i Ft(in)d Fj(map)p Ft(.)p eop end
+Fj(map)p Ft(.)p eop end
 %%Page: 35 39
 TeXDict begin 35 38 bop 150 -116 a Ft(Chapter)30 b(2:)41
 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(35)3350
-299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_bind_keyseq)d
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_unbind_command_in_)q(map)
+f Fg(\()p Ff(const)34 b(c)m(har)g(*command,)f(Keymap)565
+408 y(map)p Fg(\))390 518 y Ft(Un)m(bind)c(all)i(k)m(eys)g(that)g(are)g
+(b)s(ound)e(to)i Fj(command)i Ft(in)d Fj(map)p Ft(.)3350
+707 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_bind_keyseq)d
 Fg(\()p Ff(const)34 b(c)m(har)g(*k)m(eyseq,)e(rl)p 2119
-299 30 5 v 44 w(command)p 2583 299 V 44 w(func)p 2811
-299 V 46 w(t)565 408 y(*function)p Fg(\))390 518 y Ft(Bind)43
+707 30 5 v 44 w(command)p 2583 707 V 44 w(func)p 2811
+707 V 46 w(t)565 817 y(*function)p Fg(\))390 927 y Ft(Bind)43
 b(the)g(k)m(ey)h(sequence)f(represen)m(ted)g(b)m(y)g(the)g(string)g
 Fj(k)m(eyseq)j Ft(to)e(the)f(function)g Fj(function)p
-Ft(,)390 628 y(b)s(eginning)27 b(in)h(the)h(curren)m(t)f(k)m(eymap.)40
+Ft(,)390 1036 y(b)s(eginning)27 b(in)h(the)h(curren)m(t)f(k)m(eymap.)40
 b(This)28 b(mak)m(es)h(new)e(k)m(eymaps)i(as)f(necessary)-8
-b(.)41 b(The)28 b(return)390 737 y(v)-5 b(alue)31 b(is)f(non-zero)h(if)
-g Fj(k)m(eyseq)i Ft(is)d(in)m(v)-5 b(alid.)3350 939 y([F)d(unction])
--3599 b Fh(int)53 b(rl_bind_keyseq_in_map)f Fg(\()p Ff(const)34
-b(c)m(har)g(*k)m(eyseq,)565 1049 y(rl)p 639 1049 V 44
-w(command)p 1103 1049 V 44 w(func)p 1331 1049 V 45 w(t)f(*function,)h
-(Keymap)g(map)p Fg(\))390 1159 y Ft(Bind)25 b(the)g(k)m(ey)h(sequence)f
-(represen)m(ted)g(b)m(y)g(the)g(string)g Fj(k)m(eyseq)j
-Ft(to)e(the)f(function)g Fj(function)p Ft(.)39 b(This)390
-1268 y(mak)m(es)30 b(new)f(k)m(eymaps)g(as)g(necessary)-8
-b(.)42 b(Initial)30 b(bindings)d(are)j(p)s(erformed)e(in)g
-Fj(map)p Ft(.)40 b(The)29 b(return)390 1378 y(v)-5 b(alue)31
-b(is)f(non-zero)h(if)g Fj(k)m(eyseq)i Ft(is)d(in)m(v)-5
-b(alid.)3350 1580 y([F)d(unction])-3599 b Fh(int)53 b(rl_set_key)c
-Fg(\()p Ff(const)34 b(c)m(har)g(*k)m(eyseq,)e(rl)p 1910
-1580 V 44 w(command)p 2374 1580 V 44 w(func)p 2602 1580
-V 45 w(t)h(*function,)565 1690 y(Keymap)h(map)p Fg(\))390
-1799 y Ft(Equiv)-5 b(alen)m(t)31 b(to)g Fs(rl_bind_keyseq_in_map)p
-Ft(.)3350 2001 y([F)-8 b(unction])-3599 b Fh(int)53 b
-(rl_bind_keyseq_if_unb)q(ound)f Fg(\()p Ff(const)34 b(c)m(har)g(*k)m
-(eyseq,)565 2111 y(rl)p 639 2111 V 44 w(command)p 1103
-2111 V 44 w(func)p 1331 2111 V 45 w(t)f(*function)p Fg(\))390
-2220 y Ft(Binds)i Fj(k)m(eyseq)k Ft(to)d Fj(function)f
-Ft(if)g(it)h(is)g(not)g(already)g(b)s(ound)d(in)i(the)h(curren)m(tly)f
-(activ)m(e)j(k)m(eymap.)390 2330 y(Returns)29 b(non-zero)i(in)f(the)h
-(case)g(of)g(an)f(in)m(v)-5 b(alid)31 b Fj(k)m(eyseq)j
-Ft(or)c(if)g Fj(k)m(eyseq)k Ft(is)c(already)h(b)s(ound.)3350
-2532 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_bind_keyseq_if_unb)q
-(ound)q(_in)q(_ma)q(p)e Fg(\()p Ff(const)34 b(c)m(har)g(*k)m(eyseq,)565
-2642 y(rl)p 639 2642 V 44 w(command)p 1103 2642 V 44
-w(func)p 1331 2642 V 45 w(t)f(*function,)h(Keymap)g(map)p
-Fg(\))390 2751 y Ft(Binds)d Fj(k)m(eyseq)k Ft(to)e Fj(function)f
+b(.)41 b(The)28 b(return)390 1146 y(v)-5 b(alue)31 b(is)f(non-zero)h
+(if)g Fj(k)m(eyseq)i Ft(is)d(in)m(v)-5 b(alid.)3350 1335
+y([F)d(unction])-3599 b Fh(int)53 b(rl_bind_keyseq_in_map)f
+Fg(\()p Ff(const)34 b(c)m(har)g(*k)m(eyseq,)565 1445
+y(rl)p 639 1445 V 44 w(command)p 1103 1445 V 44 w(func)p
+1331 1445 V 45 w(t)f(*function,)h(Keymap)g(map)p Fg(\))390
+1554 y Ft(Bind)25 b(the)g(k)m(ey)h(sequence)f(represen)m(ted)g(b)m(y)g
+(the)g(string)g Fj(k)m(eyseq)j Ft(to)e(the)f(function)g
+Fj(function)p Ft(.)39 b(This)390 1664 y(mak)m(es)30 b(new)f(k)m(eymaps)
+g(as)g(necessary)-8 b(.)42 b(Initial)30 b(bindings)d(are)j(p)s
+(erformed)e(in)g Fj(map)p Ft(.)40 b(The)29 b(return)390
+1773 y(v)-5 b(alue)31 b(is)f(non-zero)h(if)g Fj(k)m(eyseq)i
+Ft(is)d(in)m(v)-5 b(alid.)3350 1963 y([F)d(unction])-3599
+b Fh(int)53 b(rl_set_key)c Fg(\()p Ff(const)34 b(c)m(har)g(*k)m(eyseq,)
+e(rl)p 1910 1963 V 44 w(command)p 2374 1963 V 44 w(func)p
+2602 1963 V 45 w(t)h(*function,)565 2072 y(Keymap)h(map)p
+Fg(\))390 2182 y Ft(Equiv)-5 b(alen)m(t)31 b(to)g Fs
+(rl_bind_keyseq_in_map)p Ft(.)3350 2371 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_bind_keyseq_if_unb)q(ound)f Fg(\()p
+Ff(const)34 b(c)m(har)g(*k)m(eyseq,)565 2481 y(rl)p 639
+2481 V 44 w(command)p 1103 2481 V 44 w(func)p 1331 2481
+V 45 w(t)f(*function)p Fg(\))390 2590 y Ft(Binds)i Fj(k)m(eyseq)k
+Ft(to)d Fj(function)f Ft(if)g(it)h(is)g(not)g(already)g(b)s(ound)d(in)i
+(the)h(curren)m(tly)f(activ)m(e)j(k)m(eymap.)390 2700
+y(Returns)29 b(non-zero)i(in)f(the)h(case)g(of)g(an)f(in)m(v)-5
+b(alid)31 b Fj(k)m(eyseq)j Ft(or)c(if)g Fj(k)m(eyseq)k
+Ft(is)c(already)h(b)s(ound.)3350 2889 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_bind_keyseq_if_unb)q(ound)q(_in)q(_ma)q(p)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*k)m(eyseq,)565 2999
+y(rl)p 639 2999 V 44 w(command)p 1103 2999 V 44 w(func)p
+1331 2999 V 45 w(t)f(*function,)h(Keymap)g(map)p Fg(\))390
+3108 y Ft(Binds)d Fj(k)m(eyseq)k Ft(to)e Fj(function)f
 Ft(if)g(it)g(is)g(not)g(already)h(b)s(ound)d(in)h Fj(map)p
-Ft(.)46 b(Returns)31 b(non-zero)h(in)g(the)390 2861 y(case)f(of)g(an)f
+Ft(.)46 b(Returns)31 b(non-zero)h(in)g(the)390 3218 y(case)f(of)g(an)f
 (in)m(v)-5 b(alid)31 b Fj(k)m(eyseq)j Ft(or)c(if)g Fj(k)m(eyseq)k
-Ft(is)c(already)h(b)s(ound.)3350 3063 y([F)-8 b(unction])-3599
+Ft(is)c(already)h(b)s(ound.)3350 3407 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_generic_bind)d Fg(\()p Ff(in)m(t)34
 b(t)m(yp)s(e,)f(const)g(c)m(har)h(*k)m(eyseq,)f(c)m(har)h(*data,)565
-3173 y(Keymap)g(map)p Fg(\))390 3282 y Ft(Bind)27 b(the)g(k)m(ey)h
+3517 y(Keymap)g(map)p Fg(\))390 3626 y Ft(Bind)27 b(the)g(k)m(ey)h
 (sequence)f(represen)m(ted)g(b)m(y)g(the)g(string)g Fj(k)m(eyseq)j
 Ft(to)e(the)f(arbitrary)g(p)s(oin)m(ter)g Fj(data)p Ft(.)390
-3392 y Fj(t)m(yp)s(e)34 b Ft(sa)m(ys)29 b(what)f(kind)g(of)g(data)h(is)
+3736 y Fj(t)m(yp)s(e)34 b Ft(sa)m(ys)29 b(what)f(kind)g(of)g(data)h(is)
 g(p)s(oin)m(ted)f(to)h(b)m(y)g Fj(data)p Ft(;)h(this)e(can)h(b)s(e)f(a)
-g(function)g(\()p Fs(ISFUNC)p Ft(\),)h(a)390 3502 y(macro)h(\()p
+g(function)g(\()p Fs(ISFUNC)p Ft(\),)h(a)390 3846 y(macro)h(\()p
 Fs(ISMACR)p Ft(\),)f(or)g(a)h(k)m(eymap)g(\()p Fs(ISKMAP)p
 Ft(\).)40 b(This)28 b(mak)m(es)j(new)e(k)m(eymaps)g(as)h(necessary)-8
-b(.)41 b(The)390 3611 y(initial)32 b(k)m(eymap)e(in)h(whic)m(h)f(to)h
-(do)f(bindings)f(is)i Fj(map)p Ft(.)3350 3813 y([F)-8
+b(.)41 b(The)390 3955 y(initial)32 b(k)m(eymap)e(in)h(whic)m(h)f(to)h
+(do)f(bindings)f(is)i Fj(map)p Ft(.)3350 4144 y([F)-8
 b(unction])-3599 b Fh(int)53 b(rl_parse_and_bind)e Fg(\()p
-Ff(c)m(har)34 b(*line)p Fg(\))390 3923 y Ft(P)m(arse)c
+Ff(c)m(har)34 b(*line)p Fg(\))390 4254 y Ft(P)m(arse)c
 Fj(line)35 b Ft(as)29 b(if)h(it)g(had)e(b)s(een)h(read)g(from)g(the)h
 Fs(inputrc)d Ft(\014le)j(and)e(p)s(erform)g(an)m(y)i(k)m(ey)g(bindings)
-390 4033 y(and)g(v)-5 b(ariable)31 b(assignmen)m(ts)g(found)e(\(see)i
+390 4364 y(and)g(v)-5 b(ariable)31 b(assignmen)m(ts)g(found)e(\(see)i
 (Section)h(1.3)f([Readline)g(Init)f(File],)j(page)e(4\).)3350
-4235 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_read_init_file)e
+4553 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_read_init_file)e
 Fg(\()p Ff(const)34 b(c)m(har)g(*\014lename)p Fg(\))390
-4344 y Ft(Read)e(k)m(eybindings)f(and)g(v)-5 b(ariable)32
+4663 y Ft(Read)e(k)m(eybindings)f(and)g(v)-5 b(ariable)32
 b(assignmen)m(ts)g(from)f Fj(\014lename)37 b Ft(\(see)32
-b(Section)g(1.3)h([Readline)390 4454 y(Init)d(File],)i(page)f(4\).)150
-4662 y Fi(2.4.4)63 b(Asso)s(ciating)41 b(F)-10 b(unction)42
-b(Names)f(and)g(Bindings)150 4809 y Ft(These)30 b(functions)g(allo)m(w)
+b(Section)g(1.3)h([Readline)390 4772 y(Init)d(File],)i(page)f(4\).)150
+4974 y Fi(2.4.4)63 b(Asso)s(ciating)41 b(F)-10 b(unction)42
+b(Names)f(and)g(Bindings)150 5121 y Ft(These)30 b(functions)g(allo)m(w)
 h(y)m(ou)g(to)f(\014nd)f(out)h(what)g(k)m(eys)h(in)m(v)m(ok)m(e)h
-(named)e(functions)g(and)f(the)h(functions)150 4919 y(in)m(v)m(ok)m(ed)
+(named)e(functions)g(and)f(the)h(functions)150 5230 y(in)m(v)m(ok)m(ed)
 f(b)m(y)e(a)h(particular)g(k)m(ey)g(sequence.)40 b(Y)-8
 b(ou)28 b(ma)m(y)g(also)h(asso)s(ciate)g(a)f(new)f(function)g(name)h
-(with)f(an)150 5028 y(arbitrary)j(function.)3350 5230
-y([F)-8 b(unction])-3599 b Fh(rl_command_func_t)57 b(*)c
-(rl_named_function)e Fg(\()p Ff(const)34 b(c)m(har)g(*name)p
-Fg(\))390 5340 y Ft(Return)c(the)g(function)g(with)g(name)h
-Fj(name)p Ft(.)p eop end
+(with)f(an)150 5340 y(arbitrary)j(function.)p eop end
 %%Page: 36 40
 TeXDict begin 36 39 bop 150 -116 a Ft(Chapter)30 b(2:)41
 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(36)3350
 299 y([F)-8 b(unction])-3599 b Fh(rl_command_func_t)57
-b(*)c(rl_function_of_keyseq)f Fg(\()p Ff(const)34 b(c)m(har)565
-408 y(*k)m(eyseq,)f(Keymap)g(map,)g(in)m(t)h(*t)m(yp)s(e)p
-Fg(\))390 518 y Ft(Return)e(the)g(function)h(in)m(v)m(ok)m(ed)h(b)m(y)e
-Fj(k)m(eyseq)k Ft(in)c(k)m(eymap)h Fj(map)p Ft(.)47 b(If)32
-b Fj(map)j Ft(is)d Fs(NULL)p Ft(,)g(the)h(curren)m(t)390
-628 y(k)m(eymap)k(is)g(used.)60 b(If)37 b Fj(t)m(yp)s(e)42
-b Ft(is)37 b(not)g Fs(NULL)p Ft(,)h(the)f(t)m(yp)s(e)g(of)g(the)g(ob)5
-b(ject)38 b(is)f(returned)f(in)h(the)g Fs(int)390 737
-y Ft(v)-5 b(ariable)30 b(it)g(p)s(oin)m(ts)g(to)g(\(one)g(of)g
-Fs(ISFUNC)p Ft(,)e Fs(ISKMAP)p Ft(,)g(or)i Fs(ISMACR)p
-Ft(\).)39 b(It)30 b(tak)m(es)h(a)f Fs(")p Ft(translated)p
-Fs(")f Ft(k)m(ey)390 847 y(sequence)i(and)f(should)f(not)i(b)s(e)e
-(used)h(if)g(the)h(k)m(ey)g(sequence)g(can)f(include)g(NUL.)3350
-1039 y([F)-8 b(unction])-3599 b Fh(rl_command_func_t)57
+b(*)c(rl_named_function)e Fg(\()p Ff(const)34 b(c)m(har)g(*name)p
+Fg(\))390 408 y Ft(Return)c(the)g(function)g(with)g(name)h
+Fj(name)p Ft(.)3350 607 y([F)-8 b(unction])-3599 b Fh
+(rl_command_func_t)57 b(*)c(rl_function_of_keyseq)f Fg(\()p
+Ff(const)34 b(c)m(har)565 716 y(*k)m(eyseq,)f(Keymap)g(map,)g(in)m(t)h
+(*t)m(yp)s(e)p Fg(\))390 826 y Ft(Return)e(the)g(function)h(in)m(v)m
+(ok)m(ed)h(b)m(y)e Fj(k)m(eyseq)k Ft(in)c(k)m(eymap)h
+Fj(map)p Ft(.)47 b(If)32 b Fj(map)j Ft(is)d Fs(NULL)p
+Ft(,)g(the)h(curren)m(t)390 936 y(k)m(eymap)k(is)g(used.)60
+b(If)37 b Fj(t)m(yp)s(e)42 b Ft(is)37 b(not)g Fs(NULL)p
+Ft(,)h(the)f(t)m(yp)s(e)g(of)g(the)g(ob)5 b(ject)38 b(is)f(returned)f
+(in)h(the)g Fs(int)390 1045 y Ft(v)-5 b(ariable)30 b(it)g(p)s(oin)m(ts)
+g(to)g(\(one)g(of)g Fs(ISFUNC)p Ft(,)e Fs(ISKMAP)p Ft(,)g(or)i
+Fs(ISMACR)p Ft(\).)39 b(It)30 b(tak)m(es)h(a)f Fs(")p
+Ft(translated)p Fs(")f Ft(k)m(ey)390 1155 y(sequence)i(and)f(should)f
+(not)i(b)s(e)e(used)h(if)g(the)h(k)m(ey)g(sequence)g(can)f(include)g
+(NUL.)3350 1353 y([F)-8 b(unction])-3599 b Fh(rl_command_func_t)57
 b(*)c(rl_function_of_keyseq_)q(len)f Fg(\()p Ff(const)34
-b(c)m(har)565 1149 y(*k)m(eyseq,)f(size)p 1121 1149 30
+b(c)m(har)565 1463 y(*k)m(eyseq,)f(size)p 1121 1463 30
 5 v 44 w(t)g(len,)g(Keymap)h(map,)f(in)m(t)g(*t)m(yp)s(e)p
-Fg(\))390 1258 y Ft(Return)20 b(the)h(function)g(in)m(v)m(ok)m(ed)i(b)m
+Fg(\))390 1572 y Ft(Return)20 b(the)h(function)g(in)m(v)m(ok)m(ed)i(b)m
 (y)e Fj(k)m(eyseq)j Ft(of)d(length)g Fj(len)h Ft(in)e(k)m(eymap)i
 Fj(map)p Ft(.)37 b(Equiv)-5 b(alen)m(t)22 b(to)g Fs(rl_)390
-1368 y(function_of_keyseq)g Ft(with)28 b(the)f(addition)h(of)f(the)h
+1682 y(function_of_keyseq)g Ft(with)28 b(the)f(addition)h(of)f(the)h
 Fj(len)f Ft(parameter.)41 b(It)27 b(tak)m(es)i(a)f Fs(")p
-Ft(translated)p Fs(")390 1477 y Ft(k)m(ey)j(sequence)g(and)f(should)f
+Ft(translated)p Fs(")390 1792 y Ft(k)m(ey)j(sequence)g(and)f(should)f
 (b)s(e)h(used)f(if)i(the)f(k)m(ey)h(sequence)g(can)g(include)f(NUL.)
-3350 1670 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e
-(rl_invoking_keyseqs)g Fg(\()p Ff(rl)p 1717 1670 V 44
-w(command)p 2181 1670 V 44 w(func)p 2409 1670 V 45 w(t)33
-b(*function)p Fg(\))390 1779 y Ft(Return)d(an)i(arra)m(y)f(of)h
+3350 1990 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e
+(rl_invoking_keyseqs)g Fg(\()p Ff(rl)p 1717 1990 V 44
+w(command)p 2181 1990 V 44 w(func)p 2409 1990 V 45 w(t)33
+b(*function)p Fg(\))390 2100 y Ft(Return)d(an)i(arra)m(y)f(of)h
 (strings)f(represen)m(ting)g(the)g(k)m(ey)h(sequences)g(used)e(to)i(in)
-m(v)m(ok)m(e)h Fj(function)e Ft(in)390 1889 y(the)g(curren)m(t)f(k)m
-(eymap.)3350 2081 y([F)-8 b(unction])-3599 b Fh(char)54
+m(v)m(ok)m(e)h Fj(function)e Ft(in)390 2209 y(the)g(curren)m(t)f(k)m
+(eymap.)3350 2408 y([F)-8 b(unction])-3599 b Fh(char)54
 b(**)e(rl_invoking_keyseqs_i)q(n_m)q(ap)g Fg(\()p Ff(rl)p
-2083 2081 V 44 w(command)p 2547 2081 V 44 w(func)p 2775
-2081 V 45 w(t)565 2191 y(*function,)34 b(Keymap)g(map)p
-Fg(\))390 2300 y Ft(Return)c(an)i(arra)m(y)f(of)h(strings)f(represen)m
+2083 2408 V 44 w(command)p 2547 2408 V 44 w(func)p 2775
+2408 V 45 w(t)565 2517 y(*function,)34 b(Keymap)g(map)p
+Fg(\))390 2627 y Ft(Return)c(an)i(arra)m(y)f(of)h(strings)f(represen)m
 (ting)g(the)g(k)m(ey)h(sequences)g(used)e(to)i(in)m(v)m(ok)m(e)h
-Fj(function)e Ft(in)390 2410 y(the)g(k)m(eymap)f Fj(map)p
-Ft(.)3350 2602 y([F)-8 b(unction])-3599 b Fh(void)54
+Fj(function)e Ft(in)390 2736 y(the)g(k)m(eymap)f Fj(map)p
+Ft(.)3350 2935 y([F)-8 b(unction])-3599 b Fh(void)54
 b(rl_function_dumper)c Fg(\()p Ff(in)m(t)34 b(readable)p
-Fg(\))390 2712 y Ft(Prin)m(t)29 b(the)h(readline)f(function)g(names)g
+Fg(\))390 3044 y Ft(Prin)m(t)29 b(the)h(readline)f(function)g(names)g
 (and)g(the)g(k)m(ey)h(sequences)g(curren)m(tly)f(b)s(ound)e(to)j(them)f
-(to)390 2821 y Fs(rl_outstream)p Ft(.)36 b(If)27 b Fj(readable)33
+(to)390 3154 y Fs(rl_outstream)p Ft(.)36 b(If)27 b Fj(readable)33
 b Ft(is)28 b(non-zero,)h(the)e(list)i(is)e(formatted)h(in)f(suc)m(h)g
-(a)h(w)m(a)m(y)h(that)f(it)g(can)390 2931 y(b)s(e)i(made)g(part)g(of)h
-(an)f Fs(inputrc)f Ft(\014le)h(and)g(re-read.)3350 3123
+(a)h(w)m(a)m(y)h(that)f(it)g(can)390 3264 y(b)s(e)i(made)g(part)g(of)h
+(an)f Fs(inputrc)f Ft(\014le)h(and)g(re-read.)3350 3462
 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_list_funmap_names)d
-Fg(\()p Ff(v)m(oid)p Fg(\))390 3233 y Ft(Prin)m(t)30
+Fg(\()p Ff(v)m(oid)p Fg(\))390 3572 y Ft(Prin)m(t)30
 b(the)h(names)f(of)h(all)g(bindable)f(Readline)h(functions)f(to)h
-Fs(rl_outstream)p Ft(.)3350 3425 y([F)-8 b(unction])-3599
+Fs(rl_outstream)p Ft(.)3350 3770 y([F)-8 b(unction])-3599
 b Fh(const)54 b(char)f(**)g(rl_funmap_names)d Fg(\()p
-Ff(v)m(oid)p Fg(\))390 3534 y Ft(Return)25 b(a)i(NULL)f(terminated)g
+Ff(v)m(oid)p Fg(\))390 3880 y Ft(Return)25 b(a)i(NULL)f(terminated)g
 (arra)m(y)h(of)f(kno)m(wn)f(function)h(names.)39 b(The)26
-b(arra)m(y)g(is)g(sorted.)39 b(The)390 3644 y(arra)m(y)28
+b(arra)m(y)g(is)g(sorted.)39 b(The)390 3989 y(arra)m(y)28
 b(itself)h(is)f(allo)s(cated,)j(but)c(not)h(the)h(strings)e(inside.)40
 b(Y)-8 b(ou)29 b(should)e(free)h(the)g(arra)m(y)-8 b(,)29
-b(but)f(not)390 3754 y(the)j(p)s(oin)m(ters,)f(using)g
+b(but)f(not)390 4099 y(the)j(p)s(oin)m(ters,)f(using)g
 Fs(free)f Ft(or)i Fs(rl_free)d Ft(when)h(y)m(ou)i(are)g(done.)3350
-3946 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_add_funmap_entry)e
-Fg(\()p Ff(const)34 b(c)m(har)g(*name,)g(rl)p 2331 3946
-V 43 w(command)p 2794 3946 V 45 w(func)p 3023 3946 V
-45 w(t)565 4055 y(*function)p Fg(\))390 4165 y Ft(Add)e
+4297 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_add_funmap_entry)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*name,)g(rl)p 2331 4297
+V 43 w(command)p 2794 4297 V 45 w(func)p 3023 4297 V
+45 w(t)565 4407 y(*function)p Fg(\))390 4516 y Ft(Add)e
 Fj(name)38 b Ft(to)33 b(the)g(list)h(of)f(bindable)f(Readline)h
 (command)g(names,)g(and)f(mak)m(e)i Fj(function)f Ft(the)390
-4275 y(function)d(to)h(b)s(e)f(called)h(when)f Fj(name)35
-b Ft(is)c(in)m(v)m(ok)m(ed.)150 4478 y Fi(2.4.5)63 b(Allo)m(wing)41
-b(Undoing)150 4625 y Ft(Supp)s(orting)34 b(the)i(undo)e(command)i(is)g
+4626 y(function)d(to)h(b)s(e)f(called)h(when)f Fj(name)35
+b Ft(is)c(in)m(v)m(ok)m(ed.)150 4832 y Fi(2.4.5)63 b(Allo)m(wing)41
+b(Undoing)150 4979 y Ft(Supp)s(orting)34 b(the)i(undo)e(command)i(is)g
 (a)g(painless)g(thing,)h(and)e(mak)m(es)i(y)m(our)f(functions)f(m)m(uc)
-m(h)h(more)150 4734 y(useful.)k(It)30 b(is)h(certainly)g(easy)g(to)g
+m(h)h(more)150 5089 y(useful.)k(It)30 b(is)h(certainly)g(easy)g(to)g
 (try)g(something)g(if)f(y)m(ou)h(kno)m(w)f(y)m(ou)h(can)f(undo)g(it.)
-275 4873 y(If)40 b(y)m(our)h(function)f(simply)g(inserts)h(text)h
+275 5230 y(If)40 b(y)m(our)h(function)f(simply)g(inserts)h(text)h
 (once,)i(or)d(deletes)h(text)g(once,)i(and)c(uses)h Fs(rl_insert_)150
-4982 y(text\(\))26 b Ft(or)i Fs(rl_delete_text\(\))23
+5340 y(text\(\))26 b Ft(or)i Fs(rl_delete_text\(\))23
 b Ft(to)29 b(do)f(it,)h(then)f(undoing)f(is)g(already)i(done)f(for)f(y)
-m(ou)h(automatically)-8 b(.)275 5121 y(If)20 b(y)m(ou)g(do)h(m)m
-(ultiple)g(insertions)f(or)h(m)m(ultiple)g(deletions,)j(or)c(an)m(y)h
-(com)m(bination)h(of)e(these)h(op)s(erations,)150 5230
-y(y)m(ou)38 b(should)f(group)h(them)g(together)h(in)m(to)g(one)f(op)s
-(eration.)64 b(This)37 b(is)h(done)g(with)g Fs(rl_begin_undo_)150
-5340 y(group\(\))28 b Ft(and)i Fs(rl_end_undo_group\(\))p
-Ft(.)p eop end
+m(ou)h(automatically)-8 b(.)p eop end
 %%Page: 37 41
 TeXDict begin 37 40 bop 150 -116 a Ft(Chapter)30 b(2:)41
 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(37)275
-299 y(The)29 b(t)m(yp)s(es)i(of)f(ev)m(en)m(ts)i(that)f(can)g(b)s(e)e
-(undone)h(are:)390 421 y Fe(enum)40 b(undo_code)h({)f(UNDO_DELETE,)i
-(UNDO_INSERT,)g(UNDO_BEGIN,)g(UNDO_END)f(};)275 565 y
-Ft(Notice)32 b(that)f Fs(UNDO_DELETE)c Ft(means)j(to)h(insert)f(some)h
-(text,)h(and)d Fs(UNDO_INSERT)e Ft(means)k(to)g(delete)150
-675 y(some)d(text.)41 b(That)27 b(is,)i(the)e(undo)g(co)s(de)h(tells)g
-(what)g(to)g(undo,)f(not)h(ho)m(w)g(to)g(undo)e(it.)41
-b Fs(UNDO_BEGIN)25 b Ft(and)150 785 y Fs(UNDO_END)j Ft(are)j(tags)g
-(added)f(b)m(y)g Fs(rl_begin_undo_group\(\))25 b Ft(and)30
-b Fs(rl_end_undo_group\(\))p Ft(.)3350 989 y([F)-8 b(unction])-3599
-b Fh(int)53 b(rl_begin_undo_group)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 1098 y Ft(Begins)32 b(sa)m(ving)g(undo)d(information)j(in)e
-(a)i(group)e(construct.)43 b(The)30 b(undo)g(information)h(usually)390
-1208 y(comes)42 b(from)f(calls)i(to)f Fs(rl_insert_text\(\))37
+299 y(If)20 b(y)m(ou)g(do)h(m)m(ultiple)g(insertions)f(or)h(m)m
+(ultiple)g(deletions,)j(or)c(an)m(y)h(com)m(bination)h(of)e(these)h(op)
+s(erations,)150 408 y(y)m(ou)38 b(should)f(group)h(them)g(together)h
+(in)m(to)g(one)f(op)s(eration.)64 b(This)37 b(is)h(done)g(with)g
+Fs(rl_begin_undo_)150 518 y(group\(\))28 b Ft(and)i Fs
+(rl_end_undo_group\(\))p Ft(.)275 649 y(The)f(t)m(yp)s(es)i(of)f(ev)m
+(en)m(ts)i(that)f(can)g(b)s(e)e(undone)h(are:)390 757
+y Fe(enum)40 b(undo_code)h({)f(UNDO_DELETE,)i(UNDO_INSERT,)g
+(UNDO_BEGIN,)g(UNDO_END)f(};)275 887 y Ft(Notice)32 b(that)f
+Fs(UNDO_DELETE)c Ft(means)j(to)h(insert)f(some)h(text,)h(and)d
+Fs(UNDO_INSERT)e Ft(means)k(to)g(delete)150 997 y(some)d(text.)41
+b(That)27 b(is,)i(the)e(undo)g(co)s(de)h(tells)g(what)g(to)g(undo,)f
+(not)h(ho)m(w)g(to)g(undo)e(it.)41 b Fs(UNDO_BEGIN)25
+b Ft(and)150 1106 y Fs(UNDO_END)j Ft(are)j(tags)g(added)f(b)m(y)g
+Fs(rl_begin_undo_group\(\))25 b Ft(and)30 b Fs(rl_end_undo_group\(\))p
+Ft(.)3350 1279 y([F)-8 b(unction])-3599 b Fh(int)53 b
+(rl_begin_undo_group)e Fg(\()p Ff(v)m(oid)p Fg(\))390
+1388 y Ft(Begins)32 b(sa)m(ving)g(undo)d(information)j(in)e(a)i(group)e
+(construct.)43 b(The)30 b(undo)g(information)h(usually)390
+1498 y(comes)42 b(from)f(calls)i(to)f Fs(rl_insert_text\(\))37
 b Ft(and)k Fs(rl_delete_text\(\))p Ft(,)f(but)h(could)h(b)s(e)f(the)390
-1318 y(result)30 b(of)h(calls)g(to)g Fs(rl_add_undo\(\))p
-Ft(.)3350 1522 y([F)-8 b(unction])-3599 b Fh(int)53 b
-(rl_end_undo_group)e Fg(\()p Ff(v)m(oid)p Fg(\))390 1631
+1608 y(result)30 b(of)h(calls)g(to)g Fs(rl_add_undo\(\))p
+Ft(.)3350 1780 y([F)-8 b(unction])-3599 b Fh(int)53 b
+(rl_end_undo_group)e Fg(\()p Ff(v)m(oid)p Fg(\))390 1890
 y Ft(Closes)29 b(the)h(curren)m(t)e(undo)g(group)h(started)g(with)g
 Fs(rl_begin_undo_group)c(\(\))p Ft(.)39 b(There)29 b(should)390
-1741 y(b)s(e)h(one)g(call)i(to)f Fs(rl_end_undo_group\(\))25
+1999 y(b)s(e)h(one)g(call)i(to)f Fs(rl_end_undo_group\(\))25
 b Ft(for)30 b(eac)m(h)i(call)g(to)f Fs(rl_begin_undo_group\(\))p
-Ft(.)3350 1945 y([F)-8 b(unction])-3599 b Fh(void)54
+Ft(.)3350 2172 y([F)-8 b(unction])-3599 b Fh(void)54
 b(rl_add_undo)48 b Fg(\()p Ff(en)m(um)35 b(undo)p 1558
-1945 30 5 v 45 w(co)s(de)e(what,)g(in)m(t)g(start,)g(in)m(t)g(end,)h(c)
-m(har)565 2055 y(*text)p Fg(\))390 2164 y Ft(Remem)m(b)s(er)g(ho)m(w)g
+2172 30 5 v 45 w(co)s(de)e(what,)g(in)m(t)g(start,)g(in)m(t)g(end,)h(c)
+m(har)565 2281 y(*text)p Fg(\))390 2391 y Ft(Remem)m(b)s(er)g(ho)m(w)g
 (to)h(undo)d(an)i(ev)m(en)m(t)i(\(according)f(to)g Fj(what)r
 Ft(\).)52 b(The)33 b(a\013ected)j(text)f(runs)d(from)390
-2274 y Fj(start)h Ft(to)e Fj(end)p Ft(,)f(and)g(encompasses)h
-Fj(text)p Ft(.)3350 2478 y([F)-8 b(unction])-3599 b Fh(void)54
+2500 y Fj(start)h Ft(to)e Fj(end)p Ft(,)f(and)g(encompasses)h
+Fj(text)p Ft(.)3350 2673 y([F)-8 b(unction])-3599 b Fh(void)54
 b(rl_free_undo_list)c Fg(\()p Ff(v)m(oid)p Fg(\))390
-2588 y Ft(F)-8 b(ree)31 b(the)g(existing)g(undo)f(list.)3350
-2792 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_do_undo)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 2902 y Ft(Undo)22 b(the)h(\014rst)g
+2783 y Ft(F)-8 b(ree)31 b(the)g(existing)g(undo)f(list.)3350
+2955 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_do_undo)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 3065 y Ft(Undo)22 b(the)h(\014rst)g
 (thing)f(on)h(the)g(undo)f(list.)39 b(Returns)22 b Fs(0)g
 Ft(if)h(there)g(w)m(as)g(nothing)g(to)h(undo,)f(non-zero)390
-3011 y(if)30 b(something)h(w)m(as)g(undone.)275 3215
+3174 y(if)30 b(something)h(w)m(as)g(undone.)275 3347
 y(Finally)-8 b(,)32 b(if)f(y)m(ou)h(neither)f(insert)g(nor)f(delete)j
 (text,)f(but)f(directly)g(mo)s(dify)g(the)g(existing)h(text)g(\(e.g.,)
-150 3325 y(c)m(hange)40 b(its)f(case\),)j(call)e Fs(rl_modifying\(\))35
+150 3456 y(c)m(hange)40 b(its)f(case\),)j(call)e Fs(rl_modifying\(\))35
 b Ft(once,)42 b(just)c(b)s(efore)g(y)m(ou)h(mo)s(dify)f(the)h(text.)67
-b(Y)-8 b(ou)39 b(m)m(ust)150 3435 y(supply)29 b(the)h(indices)h(of)f
+b(Y)-8 b(ou)39 b(m)m(ust)150 3566 y(supply)29 b(the)h(indices)h(of)f
 (the)h(text)g(range)g(that)g(y)m(ou)g(are)g(going)g(to)g(mo)s(dify)-8
-b(.)3350 3639 y([F)g(unction])-3599 b Fh(int)53 b(rl_modifying)c
+b(.)3350 3738 y([F)g(unction])-3599 b Fh(int)53 b(rl_modifying)c
 Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i(end)p Fg(\))390
-3748 y Ft(T)-8 b(ell)41 b(Readline)g(to)g(sa)m(v)m(e)g(the)g(text)g(b)s
+3848 y Ft(T)-8 b(ell)41 b(Readline)g(to)g(sa)m(v)m(e)g(the)g(text)g(b)s
 (et)m(w)m(een)g Fj(start)i Ft(and)c Fj(end)k Ft(as)e(a)f(single)h(undo)
-e(unit.)70 b(It)40 b(is)390 3858 y(assumed)30 b(that)h(y)m(ou)f(will)h
-(subsequen)m(tly)f(mo)s(dify)f(that)i(text.)150 4067
-y Fi(2.4.6)63 b(Redispla)m(y)3350 4274 y Ft([F)-8 b(unction])-3599
+e(unit.)70 b(It)40 b(is)390 3957 y(assumed)30 b(that)h(y)m(ou)f(will)h
+(subsequen)m(tly)f(mo)s(dify)f(that)i(text.)150 4149
+y Fi(2.4.6)63 b(Redispla)m(y)3350 4338 y Ft([F)-8 b(unction])-3599
 b Fh(void)54 b(rl_redisplay)49 b Fg(\()p Ff(v)m(oid)p
-Fg(\))390 4384 y Ft(Change)38 b(what's)f(displa)m(y)m(ed)i(on)e(the)h
+Fg(\))390 4447 y Ft(Change)38 b(what's)f(displa)m(y)m(ed)i(on)e(the)h
 (screen)g(to)h(re\015ect)f(the)g(curren)m(t)g(con)m(ten)m(ts)h(of)f
-Fs(rl_line_)390 4493 y(buffer)p Ft(.)3350 4697 y([F)-8
+Fs(rl_line_)390 4557 y(buffer)p Ft(.)3350 4729 y([F)-8
 b(unction])-3599 b Fh(int)53 b(rl_forced_update_disp)q(lay)f
-Fg(\()p Ff(v)m(oid)p Fg(\))390 4807 y Ft(F)-8 b(orce)41
+Fg(\()p Ff(v)m(oid)p Fg(\))390 4839 y Ft(F)-8 b(orce)41
 b(the)f(line)g(to)h(b)s(e)e(up)s(dated)f(and)h(redispla)m(y)m(ed,)k
-(whether)c(or)g(not)h(Readline)h(thinks)e(the)390 4917
+(whether)c(or)g(not)h(Readline)h(thinks)e(the)390 4948
 y(screen)30 b(displa)m(y)h(is)f(correct.)3350 5121 y([F)-8
 b(unction])-3599 b Fh(int)53 b(rl_on_new_line)d Fg(\()p
 Ff(v)m(oid)p Fg(\))390 5230 y Ft(T)-8 b(ell)31 b(the)f(up)s(date)f
@@ -10080,513 +10084,515 @@ b(Programming)30 b(with)g(GNU)h(Readline)1683 b(49)275
 (\()p Fs(SIGHUP)p Ft(,)g(for)e(example\),)k(Readline)d(pro)m(vides)g
 (con)m(v)m(enience)150 518 y(functions)30 b(to)h(do)f(the)h(necessary)g
 (terminal)g(and)e(in)m(ternal)i(state)h(clean)m(up)f(up)s(on)e(receipt)
-i(of)g(a)f(signal.)3350 693 y([F)-8 b(unction])-3599
+i(of)g(a)f(signal.)3350 704 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_pending_signal)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 803 y Ft(Return)27 b(the)g(signal)h(n)m(um)m(b)s(er)e(of)i
+Fg(\))390 814 y Ft(Return)27 b(the)g(signal)h(n)m(um)m(b)s(er)e(of)i
 (the)f(most)h(recen)m(t)h(signal)f(Readline)g(receiv)m(ed)g(but)f(has)g
-(not)h(y)m(et)390 913 y(handled,)i(or)g(0)h(if)f(there)h(is)f(no)g(p)s
-(ending)f(signal.)3350 1088 y([F)-8 b(unction])-3599
+(not)h(y)m(et)390 924 y(handled,)i(or)g(0)h(if)f(there)h(is)f(no)g(p)s
+(ending)f(signal.)3350 1110 y([F)-8 b(unction])-3599
 b Fh(void)54 b(rl_cleanup_after_signal)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 1198 y Ft(This)33 b(function)h(will)g(reset)g(the)g(state)i
+Fg(\))390 1219 y Ft(This)33 b(function)h(will)g(reset)g(the)g(state)i
 (of)e(the)g(terminal)g(to)h(what)f(it)g(w)m(as)g(b)s(efore)g
-Fs(readline\(\))390 1307 y Ft(w)m(as)c(called,)h(and)d(remo)m(v)m(e)j
+Fs(readline\(\))390 1329 y Ft(w)m(as)c(called,)h(and)d(remo)m(v)m(e)j
 (the)f(Readline)g(signal)g(handlers)e(for)h(all)h(signals,)h(dep)s
-(ending)d(on)h(the)390 1417 y(v)-5 b(alues)31 b(of)f
+(ending)d(on)h(the)390 1439 y(v)-5 b(alues)31 b(of)f
 Fs(rl_catch_signals)c Ft(and)k Fs(rl_catch_sigwinch)p
-Ft(.)3350 1592 y([F)-8 b(unction])-3599 b Fh(void)54
+Ft(.)3350 1625 y([F)-8 b(unction])-3599 b Fh(void)54
 b(rl_free_line_state)c Fg(\()p Ff(v)m(oid)p Fg(\))390
-1702 y Ft(This)38 b(will)i(free)f(an)m(y)h(partial)g(state)g(asso)s
+1734 y Ft(This)38 b(will)i(free)f(an)m(y)h(partial)g(state)g(asso)s
 (ciated)h(with)e(the)g(curren)m(t)g(input)f(line)i(\(undo)e(infor-)390
-1811 y(mation,)46 b(an)m(y)d(partial)h(history)e(en)m(try)-8
+1844 y(mation,)46 b(an)m(y)d(partial)h(history)e(en)m(try)-8
 b(,)47 b(an)m(y)42 b(partially-en)m(tered)j(k)m(eyb)s(oard)d(macro,)47
-b(and)42 b(an)m(y)390 1921 y(partially-en)m(tered)50
+b(and)42 b(an)m(y)390 1954 y(partially-en)m(tered)50
 b(n)m(umeric)d(argumen)m(t\).)94 b(This)47 b(should)g(b)s(e)g(called)i
-(b)s(efore)e Fs(rl_cleanup_)390 2030 y(after_signal\(\))p
+(b)s(efore)e Fs(rl_cleanup_)390 2063 y(after_signal\(\))p
 Ft(.)74 b(The)42 b(Readline)h(signal)g(handler)f(for)h
 Fs(SIGINT)e Ft(calls)i(this)g(to)g(ab)s(ort)g(the)390
-2140 y(curren)m(t)30 b(input)g(line.)3350 2315 y([F)-8
+2173 y(curren)m(t)30 b(input)g(line.)3350 2359 y([F)-8
 b(unction])-3599 b Fh(void)54 b(rl_reset_after_signal)d
-Fg(\()p Ff(v)m(oid)p Fg(\))390 2425 y Ft(This)28 b(will)g(reinitialize)
+Fg(\()p Ff(v)m(oid)p Fg(\))390 2469 y Ft(This)28 b(will)g(reinitialize)
 j(the)e(terminal)g(and)f(reinstall)h(an)m(y)g(Readline)g(signal)g
-(handlers,)f(dep)s(end-)390 2534 y(ing)j(on)f(the)g(v)-5
+(handlers,)f(dep)s(end-)390 2578 y(ing)j(on)f(the)g(v)-5
 b(alues)31 b(of)g Fs(rl_catch_signals)26 b Ft(and)j Fs
-(rl_catch_sigwinch)p Ft(.)275 2710 y(If)j(an)g(application)i(w)m(an)m
+(rl_catch_sigwinch)p Ft(.)275 2765 y(If)j(an)g(application)i(w)m(an)m
 (ts)g(to)f(force)g(Readline)h(to)f(handle)g(an)m(y)g(signals)g(that)g
-(ha)m(v)m(e)h(arriv)m(ed)f(while)150 2819 y(it)j(has)g(b)s(een)f
+(ha)m(v)m(e)h(arriv)m(ed)f(while)150 2874 y(it)j(has)g(b)s(een)f
 (executing,)j Fs(rl_check_signals\(\))31 b Ft(will)36
 b(call)h(Readline's)g(in)m(ternal)g(signal)f(handler)f(if)150
-2929 y(there)i(are)g(an)m(y)g(p)s(ending)e(signals.)61
+2984 y(there)i(are)g(an)m(y)g(p)s(ending)e(signals.)61
 b(This)36 b(is)g(primarily)h(in)m(tended)f(for)h(those)g(applications)h
-(that)f(use)150 3039 y(a)h(custom)g Fs(rl_getc_function)33
+(that)f(use)150 3093 y(a)h(custom)g Fs(rl_getc_function)33
 b Ft(\(see)39 b(Section)g(2.3)g([Readline)f(V)-8 b(ariables],)42
-b(page)c(27\))h(and)e(wish)g(to)150 3148 y(handle)30
+b(page)c(27\))h(and)e(wish)g(to)150 3203 y(handle)30
 b(signals)h(receiv)m(ed)h(while)e(w)m(aiting)i(for)e(input.)3350
-3324 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_check_signals)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 3433 y Ft(If)40 b(there)h(are)g(an)m(y)g
+3389 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_check_signals)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 3499 y Ft(If)40 b(there)h(are)g(an)m(y)g
 (p)s(ending)e(signals,)44 b(call)e(Readline's)g(in)m(ternal)f(signal)g
-(handling)f(functions)390 3543 y(to)j(pro)s(cess)g(them.)77
+(handling)f(functions)390 3608 y(to)j(pro)s(cess)g(them.)77
 b Fs(rl_pending_signal\(\))38 b Ft(can)43 b(b)s(e)f(used)g(indep)s
-(enden)m(tly)f(to)j(determine)390 3652 y(whether)30 b(or)g(not)h(there)
-f(are)h(an)m(y)g(p)s(ending)e(signals.)275 3828 y(If)38
+(enden)m(tly)f(to)j(determine)390 3718 y(whether)30 b(or)g(not)h(there)
+f(are)h(an)m(y)g(p)s(ending)e(signals.)275 3904 y(If)38
 b(an)i(application)g(do)s(es)f(not)h(wish)f(Readline)h(to)g(catc)m(h)h
 Fs(SIGWINCH)p Ft(,)e(it)h(ma)m(y)g(call)h Fs(rl_resize_)150
-3937 y(terminal\(\))24 b Ft(or)j Fs(rl_set_screen_size\(\))22
+4014 y(terminal\(\))24 b Ft(or)j Fs(rl_set_screen_size\(\))22
 b Ft(to)28 b(force)g(Readline)f(to)h(up)s(date)f(its)g(idea)h(of)f(the)
-g(terminal)150 4047 y(size)k(when)f(a)g Fs(SIGWINCH)e
-Ft(is)j(receiv)m(ed.)3350 4222 y([F)-8 b(unction])-3599
+g(terminal)150 4124 y(size)k(when)f(it)h(receiv)m(es)h(a)e
+Fs(SIGWINCH)p Ft(.)3350 4310 y([F)-8 b(unction])-3599
 b Fh(void)54 b(rl_echo_signal_char)d Fg(\()p Ff(in)m(t)33
-b(sig)p Fg(\))390 4332 y Ft(If)43 b(an)g(application)i(wishes)e(to)i
+b(sig)p Fg(\))390 4419 y Ft(If)43 b(an)g(application)i(wishes)e(to)i
 (install)f(its)g(o)m(wn)f(signal)i(handlers,)h(but)c(still)j(ha)m(v)m
-(e)g(readline)390 4441 y(displa)m(y)31 b(c)m(haracters)h(that)f
+(e)g(readline)390 4529 y(displa)m(y)31 b(c)m(haracters)h(that)f
 (generate)h(signals,)f(calling)h(this)e(function)g(with)g
-Fj(sig)39 b Ft(set)31 b(to)g Fs(SIGINT)p Ft(,)390 4551
+Fj(sig)39 b Ft(set)31 b(to)g Fs(SIGINT)p Ft(,)390 4639
 y Fs(SIGQUIT)p Ft(,)e(or)h Fs(SIGTSTP)e Ft(will)j(displa)m(y)g(the)f(c)
-m(haracter)i(generating)g(that)f(signal.)3350 4726 y([F)-8
+m(haracter)i(generating)g(that)f(signal.)3350 4825 y([F)-8
 b(unction])-3599 b Fh(void)54 b(rl_resize_terminal)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 4836 y Ft(Up)s(date)30
+Fg(\()p Ff(v)m(oid)p Fg(\))390 4934 y Ft(Up)s(date)30
 b(Readline's)h(in)m(ternal)g(screen)g(size)g(b)m(y)f(reading)h(v)-5
-b(alues)31 b(from)f(the)g(k)m(ernel.)3350 5011 y([F)-8
+b(alues)31 b(from)f(the)g(k)m(ernel.)3350 5121 y([F)-8
 b(unction])-3599 b Fh(void)54 b(rl_set_screen_size)c
 Fg(\()p Ff(in)m(t)34 b(ro)m(ws,)f(in)m(t)g(cols)p Fg(\))390
-5121 y Ft(Set)28 b(Readline's)h(idea)f(of)g(the)g(terminal)g(size)h(to)
+5230 y Ft(Set)28 b(Readline's)h(idea)f(of)g(the)g(terminal)g(size)h(to)
 g Fj(ro)m(ws)i Ft(ro)m(ws)d(and)f Fj(cols)33 b Ft(columns.)40
-b(If)27 b(either)h Fj(ro)m(ws)390 5230 y Ft(or)35 b Fj(columns)k
+b(If)27 b(either)h Fj(ro)m(ws)390 5340 y Ft(or)35 b Fj(columns)k
 Ft(is)c(less)g(than)g(or)g(equal)h(to)g(0,)h(Readline's)f(idea)g(of)f
-(that)h(terminal)f(dimension)g(is)390 5340 y(unc)m(hanged.)p
-eop end
+(that)h(terminal)f(dimension)g(is)p eop end
 %%Page: 50 54
 TeXDict begin 50 53 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(50)275
-299 y(If)32 b(an)i(application)g(do)s(es)f(not)h(w)m(an)m(t)g(to)g
-(install)g(a)g Fs(SIGWINCH)d Ft(handler,)j(but)e(is)i(still)g(in)m
-(terested)g(in)150 408 y(the)d(screen)f(dimensions,)g(Readline's)h
-(idea)g(of)g(the)f(screen)h(size)g(ma)m(y)g(b)s(e)f(queried.)3350
-591 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_get_screen_size)c
-Fg(\()p Ff(in)m(t)34 b(*ro)m(ws,)f(in)m(t)g(*cols)p Fg(\))390
-701 y Ft(Return)c(Readline's)i(idea)g(of)f(the)g(terminal's)h(size)g
-(in)f(the)g(v)-5 b(ariables)31 b(p)s(oin)m(ted)f(to)g(b)m(y)g(the)h
-(argu-)390 810 y(men)m(ts.)3350 993 y([F)-8 b(unction])-3599
-b Fh(void)54 b(rl_reset_screen_size)d Fg(\()p Ff(v)m(oid)p
-Fg(\))390 1102 y Ft(Cause)30 b(Readline)h(to)g(reobtain)g(the)g(screen)
-f(size)h(and)f(recalculate)j(its)e(dimensions.)275 1285
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(50)390
+299 y(unc)m(hanged.)39 b(This)27 b(is)h(in)m(tended)g(to)g(tell)h
+(Readline)f(the)g(ph)m(ysical)g(dimensions)f(of)h(the)g(terminal,)390
+408 y(and)44 b(is)h(used)f(in)m(ternally)i(to)f(calculate)j(the)d
+(maxim)m(um)f(n)m(um)m(b)s(er)g(of)h(c)m(haracters)h(that)f(ma)m(y)390
+518 y(app)s(ear)30 b(on)g(the)h(screen.)275 695 y(If)h(an)i
+(application)g(do)s(es)f(not)h(w)m(an)m(t)g(to)g(install)g(a)g
+Fs(SIGWINCH)d Ft(handler,)j(but)e(is)i(still)g(in)m(terested)g(in)150
+804 y(the)d(screen)f(dimensions,)g(it)h(ma)m(y)g(query)f(Readline's)h
+(idea)g(of)f(the)h(screen)f(size.)3350 981 y([F)-8 b(unction])-3599
+b Fh(void)54 b(rl_get_screen_size)c Fg(\()p Ff(in)m(t)34
+b(*ro)m(ws,)f(in)m(t)g(*cols)p Fg(\))390 1091 y Ft(Return)c(Readline's)
+i(idea)g(of)f(the)g(terminal's)h(size)g(in)f(the)g(v)-5
+b(ariables)31 b(p)s(oin)m(ted)f(to)g(b)m(y)g(the)h(argu-)390
+1200 y(men)m(ts.)3350 1377 y([F)-8 b(unction])-3599 b
+Fh(void)54 b(rl_reset_screen_size)d Fg(\()p Ff(v)m(oid)p
+Fg(\))390 1486 y Ft(Cause)30 b(Readline)h(to)g(reobtain)g(the)g(screen)
+f(size)h(and)f(recalculate)j(its)e(dimensions.)275 1663
 y(The)e(follo)m(wing)j(functions)e(install)h(and)f(remo)m(v)m(e)i
-(Readline's)f(signal)g(handlers.)3350 1467 y([F)-8 b(unction])-3599
+(Readline's)f(signal)g(handlers.)3350 1840 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_set_signals)d Fg(\()p Ff(v)m(oid)p Fg(\))390
-1577 y Ft(Install)40 b(Readline's)h(signal)f(handler)f(for)h
+1949 y Ft(Install)40 b(Readline's)h(signal)f(handler)f(for)h
 Fs(SIGINT)p Ft(,)h Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p Ft(,)h
-Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)390 1686 y Fs(SIGTSTP)p
+Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)390 2059 y Fs(SIGTSTP)p
 Ft(,)35 b Fs(SIGTTIN)p Ft(,)f Fs(SIGTTOU)p Ft(,)h(and)g
 Fs(SIGWINCH)p Ft(,)f(dep)s(ending)g(on)h(the)g(v)-5 b(alues)36
-b(of)f Fs(rl_catch_)390 1796 y(signals)28 b Ft(and)i
-Fs(rl_catch_sigwinch)p Ft(.)3350 1978 y([F)-8 b(unction])-3599
+b(of)f Fs(rl_catch_)390 2168 y(signals)28 b Ft(and)i
+Fs(rl_catch_sigwinch)p Ft(.)3350 2345 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_clear_signals)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 2088 y Ft(Remo)m(v)m(e)32 b(all)f(of)g(the)g(Readline)g
+Fg(\))390 2455 y Ft(Remo)m(v)m(e)32 b(all)f(of)g(the)g(Readline)g
 (signal)g(handlers)e(installed)i(b)m(y)f Fs(rl_set_signals\(\))p
-Ft(.)150 2327 y Fr(2.6)68 b(Custom)45 b(Completers)150
-2487 y Ft(T)m(ypically)-8 b(,)47 b(a)c(program)g(that)g(reads)f
+Ft(.)150 2690 y Fr(2.6)68 b(Custom)45 b(Completers)150
+2850 y Ft(T)m(ypically)-8 b(,)47 b(a)c(program)g(that)g(reads)f
 (commands)h(from)f(the)g(user)g(has)h(a)g(w)m(a)m(y)g(of)g(disam)m
-(biguating)150 2596 y(commands)35 b(and)g(data.)56 b(If)35
+(biguating)150 2959 y(commands)35 b(and)g(data.)56 b(If)35
 b(y)m(our)h(program)f(is)g(one)h(of)g(these,)h(then)e(it)h(can)g(pro)m
-(vide)f(completion)i(for)150 2706 y(commands,)29 b(data,)i(or)e(b)s
+(vide)f(completion)i(for)150 3069 y(commands,)29 b(data,)i(or)e(b)s
 (oth.)39 b(The)29 b(follo)m(wing)i(sections)f(describ)s(e)e(ho)m(w)i(y)
-m(our)f(program)g(and)f(Readline)150 2816 y(co)s(op)s(erate)j(to)h(pro)
-m(vide)e(this)g(service.)150 3014 y Fi(2.6.1)63 b(Ho)m(w)40
-b(Completing)i(W)-10 b(orks)150 3161 y Ft(In)26 b(order)f(to)i
+m(our)f(program)g(and)f(Readline)150 3178 y(co)s(op)s(erate)j(to)h(pro)
+m(vide)e(this)g(service.)150 3373 y Fi(2.6.1)63 b(Ho)m(w)40
+b(Completing)i(W)-10 b(orks)150 3520 y Ft(In)26 b(order)f(to)i
 (complete)h(some)f(text,)h(the)f(full)f(list)h(of)f(p)s(ossible)g
 (completions)h(m)m(ust)g(b)s(e)e(a)m(v)-5 b(ailable.)42
-b(That)150 3270 y(is,)28 b(it)f(is)g(not)g(p)s(ossible)g(to)g
+b(That)150 3629 y(is,)28 b(it)f(is)g(not)g(p)s(ossible)g(to)g
 (accurately)i(expand)d(a)h(partial)h(w)m(ord)f(without)f(kno)m(wing)i
-(all)f(of)g(the)g(p)s(ossible)150 3380 y(w)m(ords)33
+(all)f(of)g(the)g(p)s(ossible)150 3739 y(w)m(ords)33
 b(whic)m(h)g(mak)m(e)h(sense)f(in)g(that)g(con)m(text.)51
 b(The)33 b(Readline)h(library)e(pro)m(vides)i(the)f(user)f(in)m
-(terface)150 3489 y(to)d(completion,)h(and)e(t)m(w)m(o)i(of)e(the)h
+(terface)150 3848 y(to)d(completion,)h(and)e(t)m(w)m(o)i(of)e(the)h
 (most)f(common)h(completion)h(functions:)39 b(\014lename)29
-b(and)e(username.)150 3599 y(F)-8 b(or)39 b(completing)g(other)f(t)m
+b(and)e(username.)150 3958 y(F)-8 b(or)39 b(completing)g(other)f(t)m
 (yp)s(es)g(of)h(text,)i(y)m(ou)d(m)m(ust)g(write)g(y)m(our)g(o)m(wn)g
-(completion)h(function.)64 b(This)150 3709 y(section)32
+(completion)h(function.)64 b(This)150 4067 y(section)32
 b(describ)s(es)d(exactly)j(what)f(suc)m(h)f(functions)g(m)m(ust)g(do,)g
-(and)g(pro)m(vides)g(an)h(example.)275 3842 y(There)e(are)i(three)g(ma)
+(and)g(pro)m(vides)g(an)h(example.)275 4199 y(There)e(are)i(three)g(ma)
 5 b(jor)30 b(functions)g(used)g(to)h(p)s(erform)e(completion:)199
-3976 y(1.)61 b(The)43 b(user-in)m(terface)h(function)f
+4331 y(1.)61 b(The)43 b(user-in)m(terface)h(function)f
 Fs(rl_complete\(\))p Ft(.)76 b(This)43 b(function)g(is)g(called)i(with)
-e(the)h(same)330 4086 y(argumen)m(ts)36 b(as)g(other)g(bindable)f
+e(the)h(same)330 4441 y(argumen)m(ts)36 b(as)g(other)g(bindable)f
 (Readline)h(functions:)51 b Fj(coun)m(t)38 b Ft(and)d
-Fj(in)m(v)m(oking)p 3107 4086 28 4 v 41 w(k)m(ey)p Ft(.)57
-b(It)36 b(isolates)330 4195 y(the)i(w)m(ord)f(to)h(b)s(e)f(completed)i
+Fj(in)m(v)m(oking)p 3107 4441 28 4 v 41 w(k)m(ey)p Ft(.)57
+b(It)36 b(isolates)330 4551 y(the)i(w)m(ord)f(to)h(b)s(e)f(completed)i
 (and)d(calls)j Fs(rl_completion_matches\(\))31 b Ft(to)39
-b(generate)g(a)f(list)g(of)330 4305 y(p)s(ossible)31
+b(generate)g(a)f(list)g(of)330 4660 y(p)s(ossible)31
 b(completions.)44 b(It)31 b(then)g(either)g(lists)h(the)f(p)s(ossible)g
-(completions,)h(inserts)f(the)g(p)s(ossible)330 4415
+(completions,)h(inserts)f(the)g(p)s(ossible)330 4770
 y(completions,)50 b(or)45 b(actually)i(p)s(erforms)d(the)h(completion,)
 50 b(dep)s(ending)44 b(on)h(whic)m(h)g(b)s(eha)m(vior)g(is)330
-4524 y(desired.)199 4658 y(2.)61 b(The)33 b(in)m(ternal)h(function)g
+4879 y(desired.)199 5011 y(2.)61 b(The)33 b(in)m(ternal)h(function)g
 Fs(rl_completion_matches\(\))27 b Ft(uses)33 b(an)g
-(application-supplied)h Fj(gener-)330 4768 y(ator)44
+(application-supplied)h Fj(gener-)330 5121 y(ator)44
 b Ft(function)37 b(to)h(generate)g(the)f(list)h(of)f(p)s(ossible)f
 (matc)m(hes,)k(and)d(then)f(returns)g(the)h(arra)m(y)h(of)330
-4877 y(these)h(matc)m(hes.)68 b(The)39 b(caller)h(should)e(place)i(the)
+5230 y(these)h(matc)m(hes.)68 b(The)39 b(caller)h(should)e(place)i(the)
 f(address)f(of)h(its)g(generator)i(function)d(in)h Fs(rl_)330
-4987 y(completion_entry_functio)o(n)p Ft(.)199 5121 y(3.)61
-b(The)22 b(generator)i(function)f(is)g(called)h(rep)s(eatedly)f(from)g
-Fs(rl_completion_matches\(\))o Ft(,)c(returning)330 5230
-y(a)33 b(string)g(eac)m(h)h(time.)48 b(The)32 b(argumen)m(ts)h(to)h
-(the)f(generator)h(function)e(are)h Fj(text)j Ft(and)c
-Fj(state)p Ft(.)49 b Fj(text)330 5340 y Ft(is)32 b(the)g(partial)h(w)m
-(ord)f(to)h(b)s(e)e(completed.)47 b Fj(state)38 b Ft(is)32
-b(zero)h(the)f(\014rst)g(time)g(the)h(function)e(is)h(called,)p
-eop end
+5340 y(completion_entry_functio)o(n)p Ft(.)p eop end
 %%Page: 51 55
 TeXDict begin 51 54 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(51)330
-299 y(allo)m(wing)46 b(the)e(generator)h(to)f(p)s(erform)f(an)m(y)h
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(51)199
+299 y(3.)61 b(The)22 b(generator)i(function)f(is)g(called)h(rep)s
+(eatedly)f(from)g Fs(rl_completion_matches\(\))o Ft(,)c(returning)330
+408 y(a)33 b(string)g(eac)m(h)h(time.)48 b(The)32 b(argumen)m(ts)h(to)h
+(the)f(generator)h(function)e(are)h Fj(text)j Ft(and)c
+Fj(state)p Ft(.)49 b Fj(text)330 518 y Ft(is)32 b(the)g(partial)h(w)m
+(ord)f(to)h(b)s(e)e(completed.)47 b Fj(state)38 b Ft(is)32
+b(zero)h(the)f(\014rst)g(time)g(the)h(function)e(is)h(called,)330
+628 y(allo)m(wing)46 b(the)e(generator)h(to)f(p)s(erform)f(an)m(y)h
 (necessary)g(initialization,)51 b(and)43 b(a)h(p)s(ositiv)m(e)h(non-)
-330 408 y(zero)30 b(in)m(teger)h(for)d(eac)m(h)j(subsequen)m(t)d(call.)
+330 737 y(zero)30 b(in)m(teger)h(for)d(eac)m(h)j(subsequen)m(t)d(call.)
 42 b(The)29 b(generator)h(function)f(returns)f Fs(\(char)h(*\)NULL)e
-Ft(to)330 518 y(inform)37 b Fs(rl_completion_matches\(\))32
+Ft(to)330 847 y(inform)37 b Fs(rl_completion_matches\(\))32
 b Ft(that)39 b(there)f(are)g(no)g(more)g(p)s(ossibilities)h(left.)65
-b(Usually)330 628 y(the)39 b(generator)h(function)e(computes)h(the)g
+b(Usually)330 956 y(the)39 b(generator)h(function)e(computes)h(the)g
 (list)g(of)g(p)s(ossible)f(completions)i(when)e Fj(state)45
-b Ft(is)39 b(zero,)330 737 y(and)25 b(returns)f(them)i(one)f(at)i(a)f
+b Ft(is)39 b(zero,)330 1066 y(and)25 b(returns)f(them)i(one)f(at)i(a)f
 (time)g(on)f(subsequen)m(t)g(calls.)40 b(Eac)m(h)26 b(string)g(the)g
-(generator)g(function)330 847 y(returns)31 b(as)h(a)g(matc)m(h)h(m)m
+(generator)g(function)330 1176 y(returns)31 b(as)h(a)g(matc)m(h)h(m)m
 (ust)f(b)s(e)f(allo)s(cated)j(with)d Fs(malloc\(\))p
-Ft(;)g(Readline)h(frees)g(the)g(strings)g(when)330 956
+Ft(;)g(Readline)h(frees)g(the)g(strings)g(when)330 1285
 y(it)i(has)g(\014nished)e(with)i(them.)51 b(Suc)m(h)33
 b(a)h(generator)h(function)f(is)g(referred)f(to)h(as)h(an)e
-Fj(application-)330 1066 y(sp)s(eci\014c)d(completion)i(function)p
-Ft(.)3350 1237 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete)c
+Fj(application-)330 1395 y(sp)s(eci\014c)d(completion)i(function)p
+Ft(.)3350 1575 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete)c
 Fg(\()p Ff(in)m(t)34 b(ignore,)e(in)m(t)i(in)m(v)m(oking)p
-2020 1237 30 5 v 43 w(k)m(ey)p Fg(\))390 1347 y Ft(Complete)d(the)g(w)m
+2020 1575 30 5 v 43 w(k)m(ey)p Fg(\))390 1685 y Ft(Complete)d(the)g(w)m
 (ord)g(at)g(or)g(b)s(efore)f(p)s(oin)m(t.)41 b(Y)-8 b(ou)32
 b(ha)m(v)m(e)g(supplied)d(the)i(function)f(that)h(do)s(es)g(the)390
-1456 y(initial)42 b(simple)f(matc)m(hing)i(selection)f(algorithm)h
+1794 y(initial)42 b(simple)f(matc)m(hing)i(selection)f(algorithm)h
 (\(see)f Fs(rl_completion_matches\(\))o Ft(\).)67 b(The)390
-1566 y(default)31 b(is)f(to)h(do)f(\014lename)h(completion.)3371
-1737 y([V)-8 b(ariable])-3598 b Fh(rl_compentry_func_t)58
-b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 1846
+1904 y(default)31 b(is)f(to)h(do)f(\014lename)h(completion.)3371
+2084 y([V)-8 b(ariable])-3598 b Fh(rl_compentry_func_t)58
+b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 2194
 y Ft(This)39 b(is)h(a)g(p)s(oin)m(ter)g(to)h(the)f(generator)h
 (function)f(for)f Fs(rl_completion_matches\(\))p Ft(.)63
-b(If)40 b(the)390 1956 y(v)-5 b(alue)24 b(of)g Fs
+b(If)40 b(the)390 2303 y(v)-5 b(alue)24 b(of)g Fs
 (rl_completion_entry_funct)o(ion)17 b Ft(is)24 b Fs(NULL)f
 Ft(then)g(the)h(default)g(\014lename)g(generator)390
-2066 y(function,)49 b Fs(rl_filename_completion_)o(fun)o(ctio)o(n\(\))p
+2413 y(function,)49 b Fs(rl_filename_completion_)o(fun)o(ctio)o(n\(\))p
 Ft(,)42 b(is)j(used.)84 b(An)44 b Fj(application-sp)s(eci\014c)390
-2175 y(completion)22 b(function)f Ft(is)g(a)h(function)e(whose)h
+2522 y(completion)22 b(function)f Ft(is)g(a)h(function)e(whose)h
 (address)f(is)h(assigned)h(to)f Fs(rl_completion_entry_)390
-2285 y(function)28 b Ft(and)i(whose)g(return)f(v)-5 b(alues)31
+2632 y(function)28 b Ft(and)i(whose)g(return)f(v)-5 b(alues)31
 b(are)g(used)e(to)j(generate)f(p)s(ossible)f(completions.)150
-2475 y Fi(2.6.2)63 b(Completion)41 b(F)-10 b(unctions)150
-2622 y Ft(Here)31 b(is)f(the)h(complete)h(list)f(of)f(callable)j
+2828 y Fi(2.6.2)63 b(Completion)41 b(F)-10 b(unctions)150
+2975 y Ft(Here)31 b(is)f(the)h(complete)h(list)f(of)f(callable)j
 (completion)e(functions)f(presen)m(t)h(in)f(Readline.)3350
-2793 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete_internal)f
-Fg(\()p Ff(in)m(t)33 b(what)p 1861 2793 V 44 w(to)p 1994
-2793 V 43 w(do)p Fg(\))390 2903 y Ft(Complete)k(the)g(w)m(ord)f(at)i
-(or)e(b)s(efore)g(p)s(oin)m(t.)60 b Fj(what)p 2208 2903
-28 4 v 40 w(to)p 2328 2903 V 41 w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e
-(with)g(the)h(com-)390 3012 y(pletion.)44 b(A)31 b(v)-5
+3156 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete_internal)f
+Fg(\()p Ff(in)m(t)33 b(what)p 1861 3156 V 44 w(to)p 1994
+3156 V 43 w(do)p Fg(\))390 3265 y Ft(Complete)k(the)g(w)m(ord)f(at)i
+(or)e(b)s(efore)g(p)s(oin)m(t.)60 b Fj(what)p 2208 3265
+28 4 v 40 w(to)p 2328 3265 V 41 w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e
+(with)g(the)h(com-)390 3375 y(pletion.)44 b(A)31 b(v)-5
 b(alue)32 b(of)f(`)p Fs(?)p Ft(')g(means)h(list)f(the)h(p)s(ossible)e
 (completions.)45 b(`)p Fs(TAB)p Ft(')31 b(means)g(do)g(standard)390
-3122 y(completion.)44 b(`)p Fs(*)p Ft(')32 b(means)f(insert)g(all)h(of)
+3484 y(completion.)44 b(`)p Fs(*)p Ft(')32 b(means)f(insert)g(all)h(of)
 f(the)g(p)s(ossible)g(completions.)44 b(`)p Fs(!)p Ft(')32
-b(means)f(to)h(displa)m(y)f(all)390 3231 y(of)k(the)f(p)s(ossible)g
+b(means)f(to)h(displa)m(y)f(all)390 3594 y(of)k(the)f(p)s(ossible)g
 (completions,)j(if)d(there)h(is)f(more)g(than)h(one,)g(as)g(w)m(ell)g
-(as)g(p)s(erforming)e(partial)390 3341 y(completion.)41
+(as)g(p)s(erforming)e(partial)390 3703 y(completion.)41
 b(`)p Fs(@)p Ft(')27 b(is)h(similar)f(to)h(`)p Fs(!)p
 Ft(',)h(but)d(p)s(ossible)h(completions)i(are)e(not)h(listed)g(if)f
-(the)g(p)s(ossible)390 3451 y(completions)32 b(share)e(a)g(common)h
-(pre\014x.)3350 3622 y([F)-8 b(unction])-3599 b Fh(int)53
+(the)g(p)s(ossible)390 3813 y(completions)32 b(share)e(a)g(common)h
+(pre\014x.)3350 3993 y([F)-8 b(unction])-3599 b Fh(int)53
 b(rl_complete)c Fg(\()p Ff(in)m(t)34 b(ignore,)e(in)m(t)i(in)m(v)m
-(oking)p 2020 3622 30 5 v 43 w(k)m(ey)p Fg(\))390 3731
+(oking)p 2020 3993 30 5 v 43 w(k)m(ey)p Fg(\))390 4103
 y Ft(Complete)42 b(the)f(w)m(ord)g(at)h(or)f(b)s(efore)g(p)s(oin)m(t.)
 73 b(Y)-8 b(ou)41 b(ha)m(v)m(e)i(supplied)c(the)j(function)f(that)g(do)
-s(es)390 3841 y(the)33 b(initial)h(simple)f(matc)m(hing)h(selection)h
+s(es)390 4212 y(the)33 b(initial)h(simple)f(matc)m(hing)h(selection)h
 (algorithm)f(\(see)g Fs(rl_completion_matches\(\))27
-b Ft(and)390 3950 y Fs(rl_completion_entry_func)o(tion)o
+b Ft(and)390 4322 y Fs(rl_completion_entry_func)o(tion)o
 Ft(\).)52 b(The)35 b(default)h(is)g(to)h(do)e(\014lename)h(completion.)
-59 b(This)390 4060 y(calls)32 b Fs(rl_complete_internal\(\))24
+59 b(This)390 4432 y(calls)32 b Fs(rl_complete_internal\(\))24
 b Ft(with)30 b(an)g(argumen)m(t)h(dep)s(ending)e(on)h
-Fj(in)m(v)m(oking)p 3314 4060 28 4 v 41 w(k)m(ey)p Ft(.)3350
-4231 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_possible_completio)q(ns)
+Fj(in)m(v)m(oking)p 3314 4432 28 4 v 41 w(k)m(ey)p Ft(.)3350
+4612 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_possible_completio)q(ns)
 f Fg(\()p Ff(in)m(t)33 b(coun)m(t,)h(in)m(t)f(in)m(v)m(oking)p
-2622 4231 30 5 v 43 w(k)m(ey)p Fg(\))390 4340 y Ft(List)41
+2622 4612 30 5 v 43 w(k)m(ey)p Fg(\))390 4721 y Ft(List)41
 b(the)f(p)s(ossible)g(completions.)73 b(See)40 b(description)h(of)g
 Fs(rl_complete)27 b(\(\))p Ft(.)70 b(This)40 b(calls)i
-Fs(rl_)390 4450 y(complete_internal\(\))25 b Ft(with)30
-b(an)g(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)3350 4621
+Fs(rl_)390 4831 y(complete_internal\(\))25 b Ft(with)30
+b(an)g(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)3350 5011
 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_insert_completions)f
 Fg(\()p Ff(in)m(t)34 b(coun)m(t,)f(in)m(t)g(in)m(v)m(oking)p
-2517 4621 V 44 w(k)m(ey)p Fg(\))390 4731 y Ft(Insert)g(the)h(list)g(of)
+2517 5011 V 44 w(k)m(ey)p Fg(\))390 5121 y Ft(Insert)g(the)h(list)g(of)
 g(p)s(ossible)f(completions)i(in)m(to)f(the)g(line,)h(deleting)g(the)f
-(partially-completed)390 4840 y(w)m(ord.)44 b(See)32
+(partially-completed)390 5230 y(w)m(ord.)44 b(See)32
 b(description)g(of)g Fs(rl_complete\(\))p Ft(.)41 b(This)31
 b(calls)i Fs(rl_complete_internal\(\))25 b Ft(with)390
-4950 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p Ft('.)3350
-5121 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_completion_mode)e
-Fg(\()p Ff(rl)p 1455 5121 V 44 w(command)p 1919 5121
-V 44 w(func)p 2147 5121 V 46 w(t)33 b(*cfunc)p Fg(\))390
-5230 y Ft(Returns)40 b(the)i(appropriate)g(v)-5 b(alue)41
-b(to)i(pass)e(to)h Fs(rl_complete_internal\(\))35 b Ft(dep)s(ending)40
-b(on)390 5340 y(whether)g Fj(cfunc)46 b Ft(w)m(as)41
-b(called)h(t)m(wice)g(in)f(succession)g(and)f(the)h(v)-5
-b(alues)41 b(of)g(the)g Fs(show-all-if-)p eop end
+5340 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p Ft('.)p
+eop end
 %%Page: 52 56
 TeXDict begin 52 55 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(52)390
-299 y Fs(ambiguous)25 b Ft(and)i Fs(show-all-if-unmodified)21
-b Ft(v)-5 b(ariables.)41 b(Application-sp)s(eci\014c)29
-b(completion)390 408 y(functions)h(ma)m(y)h(use)f(this)g(function)g(to)
-h(presen)m(t)g(the)f(same)h(in)m(terface)h(as)f Fs(rl_complete\(\))p
-Ft(.)3350 589 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e
-(rl_completion_matches)g Fg(\()p Ff(const)34 b(c)m(har)g(*text,)565
-698 y(rl)p 639 698 30 5 v 44 w(comp)s(en)m(try)p 1145
-698 V 44 w(func)p 1373 698 V 45 w(t)f(*en)m(try)p 1767
-698 V 44 w(func)p Fg(\))390 808 y Ft(Returns)k(an)h(arra)m(y)g(of)g
-(strings)g(whic)m(h)f(is)h(a)g(list)h(of)f(completions)h(for)e
-Fj(text)p Ft(.)64 b(If)38 b(there)g(are)g(no)390 917
-y(completions,)f(returns)c Fs(NULL)p Ft(.)52 b(The)34
-b(\014rst)f(en)m(try)i(in)f(the)h(returned)e(arra)m(y)i(is)g(the)f
-(substitution)390 1027 y(for)26 b Fj(text)p Ft(.)40 b(The)26
-b(remaining)h(en)m(tries)g(are)g(the)f(p)s(ossible)g(completions.)40
-b(The)26 b(arra)m(y)h(is)f(terminated)390 1137 y(with)k(a)h
-Fs(NULL)e Ft(p)s(oin)m(ter.)390 1270 y Fj(en)m(try)p
-603 1270 28 4 v 40 w(func)44 b Ft(is)c(a)g(function)f(of)h(t)m(w)m(o)g
-(args,)j(and)38 b(returns)h(a)g Fs(char)30 b(*)p Ft(.)67
-b(The)39 b(\014rst)g(argumen)m(t)h(is)390 1379 y Fj(text)p
-Ft(.)66 b(The)39 b(second)f(is)h(a)g(state)h(argumen)m(t;)j(it)c(is)g
-(zero)g(on)g(the)g(\014rst)f(call,)k(and)c(non-zero)h(on)390
-1489 y(subsequen)m(t)33 b(calls.)52 b Fj(en)m(try)p 1320
-1489 V 41 w(func)38 b Ft(returns)33 b(a)h Fs(NULL)f Ft(p)s(oin)m(ter)g
-(to)i(the)f(caller)h(when)e(there)h(are)g(no)390 1599
-y(more)d(matc)m(hes.)3350 1779 y([F)-8 b(unction])-3599
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(52)3350
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_completion_mode)e
+Fg(\()p Ff(rl)p 1455 299 30 5 v 44 w(command)p 1919 299
+V 44 w(func)p 2147 299 V 46 w(t)33 b(*cfunc)p Fg(\))390
+408 y Ft(Returns)40 b(the)i(appropriate)g(v)-5 b(alue)41
+b(to)i(pass)e(to)h Fs(rl_complete_internal\(\))35 b Ft(dep)s(ending)40
+b(on)390 518 y(whether)g Fj(cfunc)46 b Ft(w)m(as)41 b(called)h(t)m
+(wice)g(in)f(succession)g(and)f(the)h(v)-5 b(alues)41
+b(of)g(the)g Fs(show-all-if-)390 628 y(ambiguous)25 b
+Ft(and)i Fs(show-all-if-unmodified)21 b Ft(v)-5 b(ariables.)41
+b(Application-sp)s(eci\014c)29 b(completion)390 737 y(functions)h(ma)m
+(y)h(use)f(this)g(function)g(to)h(presen)m(t)g(the)f(same)h(in)m
+(terface)h(as)f Fs(rl_complete\(\))p Ft(.)3350 917 y([F)-8
+b(unction])-3599 b Fh(char)54 b(**)e(rl_completion_matches)g
+Fg(\()p Ff(const)34 b(c)m(har)g(*text,)565 1027 y(rl)p
+639 1027 V 44 w(comp)s(en)m(try)p 1145 1027 V 44 w(func)p
+1373 1027 V 45 w(t)f(*en)m(try)p 1767 1027 V 44 w(func)p
+Fg(\))390 1137 y Ft(Returns)k(an)h(arra)m(y)g(of)g(strings)g(whic)m(h)f
+(is)h(a)g(list)h(of)f(completions)h(for)e Fj(text)p Ft(.)64
+b(If)38 b(there)g(are)g(no)390 1246 y(completions,)f(returns)c
+Fs(NULL)p Ft(.)52 b(The)34 b(\014rst)f(en)m(try)i(in)f(the)h(returned)e
+(arra)m(y)i(is)g(the)f(substitution)390 1356 y(for)26
+b Fj(text)p Ft(.)40 b(The)26 b(remaining)h(en)m(tries)g(are)g(the)f(p)s
+(ossible)g(completions.)40 b(The)26 b(arra)m(y)h(is)f(terminated)390
+1465 y(with)k(a)h Fs(NULL)e Ft(p)s(oin)m(ter.)390 1599
+y Fj(en)m(try)p 603 1599 28 4 v 40 w(func)44 b Ft(is)c(a)g(function)f
+(of)h(t)m(w)m(o)g(args,)j(and)38 b(returns)h(a)g Fs(char)30
+b(*)p Ft(.)67 b(The)39 b(\014rst)g(argumen)m(t)h(is)390
+1708 y Fj(text)p Ft(.)66 b(The)39 b(second)f(is)h(a)g(state)h(argumen)m
+(t;)j(it)c(is)g(zero)g(on)g(the)g(\014rst)f(call,)k(and)c(non-zero)h
+(on)390 1818 y(subsequen)m(t)33 b(calls.)52 b Fj(en)m(try)p
+1320 1818 V 41 w(func)38 b Ft(returns)33 b(a)h Fs(NULL)f
+Ft(p)s(oin)m(ter)g(to)i(the)f(caller)h(when)e(there)h(are)g(no)390
+1927 y(more)d(matc)m(hes.)3350 2107 y([F)-8 b(unction])-3599
 b Fh(char)54 b(*)e(rl_filename_completion)q(_fu)q(nct)q(ion)g
-Fg(\()p Ff(const)34 b(c)m(har)g(*text,)e(in)m(t)565 1888
-y(state)p Fg(\))390 1998 y Ft(A)26 b(generator)h(function)e(for)g
+Fg(\()p Ff(const)34 b(c)m(har)g(*text,)e(in)m(t)565 2217
+y(state)p Fg(\))390 2327 y Ft(A)26 b(generator)h(function)e(for)g
 (\014lename)h(completion)h(in)e(the)h(general)h(case.)40
-b Fj(text)28 b Ft(is)e(a)g(partial)h(\014le-)390 2107
+b Fj(text)28 b Ft(is)e(a)g(partial)h(\014le-)390 2436
 y(name.)38 b(The)21 b(Bash)g(source)h(is)g(a)f(useful)g(reference)h
 (for)f(writing)h(application-sp)s(eci\014c)h(completion)390
-2217 y(functions)30 b(\(the)h(Bash)f(completion)i(functions)e(call)i
-(this)e(and)g(other)g(Readline)h(functions\).)3350 2397
+2546 y(functions)30 b(\(the)h(Bash)f(completion)i(functions)e(call)i
+(this)e(and)g(other)g(Readline)h(functions\).)3350 2726
 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_username_completion)q
 (_fu)q(nct)q(ion)g Fg(\()p Ff(const)34 b(c)m(har)g(*text,)e(in)m(t)565
-2507 y(state)p Fg(\))390 2616 y Ft(A)d(completion)g(generator)h(for)e
+2836 y(state)p Fg(\))390 2945 y Ft(A)d(completion)g(generator)h(for)e
 (usernames.)40 b Fj(text)31 b Ft(con)m(tains)f(a)f(partial)g(username)f
-(preceded)g(b)m(y)390 2726 y(a)j(random)f(c)m(haracter)i(\(usually)e(`)
+(preceded)g(b)m(y)390 3055 y(a)j(random)f(c)m(haracter)i(\(usually)e(`)
 p Fs(~)p Ft('\).)42 b(As)31 b(with)f(all)h(completion)h(generators,)g
-Fj(state)37 b Ft(is)31 b(zero)g(on)390 2836 y(the)g(\014rst)e(call)j
-(and)e(non-zero)h(for)f(subsequen)m(t)f(calls.)150 3032
+Fj(state)37 b Ft(is)31 b(zero)g(on)390 3164 y(the)g(\014rst)e(call)j
+(and)e(non-zero)h(for)f(subsequen)m(t)f(calls.)150 3361
 y Fi(2.6.3)63 b(Completion)41 b(V)-10 b(ariables)3371
-3226 y Ft([V)i(ariable])-3598 b Fh(rl_compentry_func_t)58
-b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 3336
+3555 y Ft([V)i(ariable])-3598 b Fh(rl_compentry_func_t)58
+b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 3665
 y Ft(A)34 b(p)s(oin)m(ter)f(to)h(the)g(generator)h(function)e(for)g
 Fs(rl_completion_matches\(\))p Ft(.)44 b Fs(NULL)32 b
-Ft(means)h(to)390 3445 y(use)d Fs(rl_filename_completion_fu)o(nct)o
+Ft(means)h(to)390 3774 y(use)d Fs(rl_filename_completion_fu)o(nct)o
 (ion\()o(\))p Ft(,)25 b(the)30 b(default)h(\014lename)f(completer.)3371
-3626 y([V)-8 b(ariable])-3598 b Fh(rl_completion_func_t)58
+3954 y([V)-8 b(ariable])-3598 b Fh(rl_completion_func_t)58
 b(*)53 b(rl_attempted_completio)q(n_f)q(unct)q(ion)390
-3735 y Ft(A)35 b(p)s(oin)m(ter)g(to)g(an)g(alternativ)m(e)i(function)d
+4064 y Ft(A)35 b(p)s(oin)m(ter)g(to)g(an)g(alternativ)m(e)i(function)d
 (to)i(create)g(matc)m(hes.)55 b(The)34 b(function)h(is)f(called)i(with)
-390 3845 y Fj(text)p Ft(,)26 b Fj(start)p Ft(,)f(and)d
+390 4173 y Fj(text)p Ft(,)26 b Fj(start)p Ft(,)f(and)d
 Fj(end)p Ft(.)38 b Fj(start)25 b Ft(and)e Fj(end)j Ft(are)d(indices)g
 (in)g Fs(rl_line_buffer)c Ft(de\014ning)j(the)h(b)s(ound-)390
-3954 y(aries)j(of)h Fj(text)p Ft(,)h(whic)m(h)d(is)h(a)h(c)m(haracter)g
+4283 y(aries)j(of)h Fj(text)p Ft(,)h(whic)m(h)d(is)h(a)h(c)m(haracter)g
 (string.)39 b(If)26 b(this)g(function)f(exists)i(and)e(returns)g
-Fs(NULL)p Ft(,)h(or)g(if)390 4064 y(this)c(v)-5 b(ariable)22
+Fs(NULL)p Ft(,)h(or)g(if)390 4393 y(this)c(v)-5 b(ariable)22
 b(is)g(set)h(to)f Fs(NULL)p Ft(,)h(then)f Fs(rl_complete\(\))c
 Ft(will)k(call)h(the)f(v)-5 b(alue)23 b(of)f Fs(rl_completion_)390
-4173 y(entry_function)i Ft(to)30 b(generate)f(matc)m(hes,)i(otherwise)d
+4502 y(entry_function)i Ft(to)30 b(generate)f(matc)m(hes,)i(otherwise)d
 (the)h(arra)m(y)g(of)f(strings)h(returned)e(will)i(b)s(e)390
-4283 y(used.)37 b(If)22 b(this)g(function)g(sets)h(the)g
+4612 y(used.)37 b(If)22 b(this)g(function)g(sets)h(the)g
 Fs(rl_attempted_completion)o(_ove)o(r)16 b Ft(v)-5 b(ariable)24
-b(to)f(a)f(non-zero)390 4393 y(v)-5 b(alue,)35 b(Readline)g(will)f(not)
+b(to)f(a)f(non-zero)390 4721 y(v)-5 b(alue,)35 b(Readline)g(will)f(not)
 g(p)s(erform)f(its)h(default)g(completion)h(ev)m(en)g(if)f(this)g
-(function)f(returns)390 4502 y(no)d(matc)m(hes.)3371
-4682 y([V)-8 b(ariable])-3598 b Fh(rl_quote_func_t)57
-b(*)52 b(rl_filename_quoting_)q(func)q(tio)q(n)390 4792
+(function)f(returns)390 4831 y(no)d(matc)m(hes.)3371
+5011 y([V)-8 b(ariable])-3598 b Fh(rl_quote_func_t)57
+b(*)52 b(rl_filename_quoting_)q(func)q(tio)q(n)390 5121
 y Ft(A)33 b(p)s(oin)m(ter)f(to)h(a)g(function)g(that)g(will)g(quote)g
 (a)g(\014lename)f(in)h(an)f(application-sp)s(eci\014c)i(fashion.)390
-4902 y(This)k(is)i(called)g(if)f(\014lename)h(completion)g(is)f(b)s
+5230 y(This)k(is)i(called)g(if)f(\014lename)h(completion)g(is)f(b)s
 (eing)g(attempted)i(and)d(one)i(of)f(the)g(c)m(haracters)390
-5011 y(in)33 b Fs(rl_filename_quote_charac)o(ter)o(s)27
+5340 y(in)33 b Fs(rl_filename_quote_charac)o(ter)o(s)27
 b Ft(app)s(ears)33 b(in)g(a)g(completed)h(\014lename.)50
-b(The)32 b(function)390 5121 y(is)37 b(called)h(with)e
-Fj(text)p Ft(,)k Fj(matc)m(h)p 1438 5121 V 41 w(t)m(yp)s(e)p
-Ft(,)f(and)d Fj(quote)p 2119 5121 V 41 w(p)s(oin)m(ter)p
-Ft(.)60 b(The)36 b Fj(text)k Ft(is)d(the)g(\014lename)g(to)h(b)s(e)390
-5230 y(quoted.)76 b(The)42 b Fj(matc)m(h)p 1210 5230
-V 41 w(t)m(yp)s(e)48 b Ft(is)42 b(either)h Fs(SINGLE_MATCH)p
-Ft(,)f(if)g(there)g(is)h(only)f(one)h(completion)390
-5340 y(matc)m(h,)33 b(or)e Fs(MULT_MATCH)p Ft(.)41 b(Some)31
-b(functions)g(use)g(this)h(to)g(decide)f(whether)g(or)h(not)f(to)h
-(insert)g(a)p eop end
+b(The)32 b(function)p eop end
 %%Page: 53 57
 TeXDict begin 53 56 bop 150 -116 a Ft(Chapter)30 b(2:)41
 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(53)390
-299 y(closing)22 b(quote)f(c)m(haracter.)40 b(The)20
-b Fj(quote)p 1751 299 28 4 v 41 w(p)s(oin)m(ter)27 b
-Ft(is)21 b(a)g(p)s(oin)m(ter)g(to)g(an)m(y)h(op)s(ening)e(quote)h(c)m
-(haracter)390 408 y(the)31 b(user)e(t)m(yp)s(ed.)41 b(Some)30
+299 y(is)37 b(called)h(with)e Fj(text)p Ft(,)k Fj(matc)m(h)p
+1438 299 28 4 v 41 w(t)m(yp)s(e)p Ft(,)f(and)d Fj(quote)p
+2119 299 V 41 w(p)s(oin)m(ter)p Ft(.)60 b(The)36 b Fj(text)k
+Ft(is)d(the)g(\014lename)g(to)h(b)s(e)390 408 y(quoted.)76
+b(The)42 b Fj(matc)m(h)p 1210 408 V 41 w(t)m(yp)s(e)48
+b Ft(is)42 b(either)h Fs(SINGLE_MATCH)p Ft(,)f(if)g(there)g(is)h(only)f
+(one)h(completion)390 518 y(matc)m(h,)33 b(or)e Fs(MULT_MATCH)p
+Ft(.)41 b(Some)31 b(functions)g(use)g(this)h(to)g(decide)f(whether)g
+(or)h(not)f(to)h(insert)g(a)390 628 y(closing)22 b(quote)f(c)m
+(haracter.)40 b(The)20 b Fj(quote)p 1751 628 V 41 w(p)s(oin)m(ter)27
+b Ft(is)21 b(a)g(p)s(oin)m(ter)g(to)g(an)m(y)h(op)s(ening)e(quote)h(c)m
+(haracter)390 737 y(the)31 b(user)e(t)m(yp)s(ed.)41 b(Some)30
 b(functions)g(c)m(ho)s(ose)h(to)g(reset)g(this)g(c)m(haracter.)3371
-600 y([V)-8 b(ariable])-3598 b Fh(rl_dequote_func_t)57
-b(*)c(rl_filename_dequoting_)q(fun)q(cti)q(on)390 710
+908 y([V)-8 b(ariable])-3598 b Fh(rl_dequote_func_t)57
+b(*)c(rl_filename_dequoting_)q(fun)q(cti)q(on)390 1018
 y Ft(A)30 b(p)s(oin)m(ter)f(to)i(a)f(function)f(that)h(will)g(remo)m(v)
 m(e)h(application-sp)s(eci\014c)g(quoting)f(c)m(haracters)h(from)390
-819 y(a)i(\014lename)g(b)s(efore)f(completion)h(is)g(attempted,)h(so)f
+1128 y(a)i(\014lename)g(b)s(efore)f(completion)h(is)g(attempted,)h(so)f
 (those)g(c)m(haracters)h(do)e(not)h(in)m(terfere)g(with)390
-929 y(matc)m(hing)39 b(the)f(text)i(against)f(names)f(in)g(the)g
+1237 y(matc)m(hing)39 b(the)f(text)i(against)f(names)f(in)g(the)g
 (\014lesystem.)64 b(It)38 b(is)g(called)i(with)d Fj(text)p
-Ft(,)42 b(the)c(text)390 1038 y(of)k(the)h(w)m(ord)f(to)g(b)s(e)g
-(dequoted,)j(and)d Fj(quote)p 2014 1038 V 41 w(c)m(har)p
+Ft(,)42 b(the)c(text)390 1347 y(of)k(the)h(w)m(ord)f(to)g(b)s(e)g
+(dequoted,)j(and)d Fj(quote)p 2014 1347 V 41 w(c)m(har)p
 Ft(,)j(whic)m(h)d(is)h(the)f(quoting)h(c)m(haracter)g(that)390
-1148 y(delimits)33 b(the)f(\014lename)g(\(usually)h(`)p
+1456 y(delimits)33 b(the)f(\014lename)g(\(usually)h(`)p
 Fs(')p Ft(')f(or)g(`)p Fs(")p Ft('\).)46 b(If)32 b Fj(quote)p
-2368 1148 V 41 w(c)m(har)39 b Ft(is)32 b(zero,)i(the)e(\014lename)g(w)m
-(as)h(not)390 1258 y(in)d(an)g(em)m(b)s(edded)g(string.)3371
-1449 y([V)-8 b(ariable])-3598 b Fh(rl_linebuf_func_t)57
-b(*)c(rl_char_is_quoted_p)390 1559 y Ft(A)37 b(p)s(oin)m(ter)g(to)g(a)g
+2368 1456 V 41 w(c)m(har)39 b Ft(is)32 b(zero,)i(the)e(\014lename)g(w)m
+(as)h(not)390 1566 y(in)d(an)g(em)m(b)s(edded)g(string.)3371
+1737 y([V)-8 b(ariable])-3598 b Fh(rl_linebuf_func_t)57
+b(*)c(rl_char_is_quoted_p)390 1847 y Ft(A)37 b(p)s(oin)m(ter)g(to)g(a)g
 (function)g(to)g(call)h(that)g(determines)f(whether)f(or)h(not)g(a)g
-(sp)s(eci\014c)f(c)m(haracter)390 1668 y(in)e(the)h(line)f(bu\013er)g
+(sp)s(eci\014c)f(c)m(haracter)390 1956 y(in)e(the)h(line)f(bu\013er)g
 (is)g(quoted,)i(according)g(to)f(whatev)m(er)g(quoting)g(mec)m(hanism)g
-(the)f(program)390 1778 y(calling)26 b(Readline)g(uses.)38
+(the)f(program)390 2066 y(calling)26 b(Readline)g(uses.)38
 b(The)24 b(function)h(is)g(called)h(with)e(t)m(w)m(o)i(argumen)m(ts:)39
-b Fj(text)p Ft(,)27 b(the)e(text)h(of)f(the)390 1887
+b Fj(text)p Ft(,)27 b(the)e(text)h(of)f(the)390 2176
 y(line,)31 b(and)g Fj(index)p Ft(,)f(the)h(index)f(of)h(the)g(c)m
 (haracter)i(in)d(the)h(line.)42 b(It)31 b(is)g(used)f(to)h(decide)g
-(whether)g(a)390 1997 y(c)m(haracter)h(found)d(in)g Fs
+(whether)g(a)390 2285 y(c)m(haracter)h(found)d(in)g Fs
 (rl_completer_word_break_ch)o(ara)o(cter)o(s)24 b Ft(should)29
-b(b)s(e)h(used)f(to)i(break)390 2107 y(w)m(ords)f(for)g(the)h
-(completer.)3371 2298 y([V)-8 b(ariable])-3598 b Fh
+b(b)s(e)h(used)f(to)i(break)390 2395 y(w)m(ords)f(for)g(the)h
+(completer.)3371 2566 y([V)-8 b(ariable])-3598 b Fh
 (rl_compignore_func_t)58 b(*)53 b(rl_ignore_some_complet)q(ion)q(s_fu)q
-(nct)q(ion)390 2408 y Ft(This)37 b(function,)i(if)f(de\014ned,)g(is)g
+(nct)q(ion)390 2676 y Ft(This)37 b(function,)i(if)f(de\014ned,)g(is)g
 (called)h(b)m(y)e(the)h(completer)h(when)e(real)h(\014lename)g
-(completion)390 2517 y(is)c(done,)h(after)f(all)h(the)g(matc)m(hing)g
+(completion)390 2785 y(is)c(done,)h(after)f(all)h(the)g(matc)m(hing)g
 (names)e(ha)m(v)m(e)j(b)s(een)d(generated.)53 b(It)34
-b(is)g(passed)f(a)i Fs(NULL)d Ft(ter-)390 2627 y(minated)f(arra)m(y)g
+b(is)g(passed)f(a)i Fs(NULL)d Ft(ter-)390 2895 y(minated)f(arra)m(y)g
 (of)g(matc)m(hes.)43 b(The)31 b(\014rst)f(elemen)m(t)i(\()p
 Fs(matches[0])p Ft(\))d(is)h(the)h(maximal)h(substring)390
-2737 y(common)d(to)g(all)h(matc)m(hes.)41 b(This)28 b(function)h(can)g
+3004 y(common)d(to)g(all)h(matc)m(hes.)41 b(This)28 b(function)h(can)g
 (re-arrange)g(the)g(list)h(of)f(matc)m(hes)g(as)g(required,)390
-2846 y(but)h(eac)m(h)h(elemen)m(t)h(deleted)f(from)f(the)h(arra)m(y)g
-(m)m(ust)f(b)s(e)g(freed.)3371 3038 y([V)-8 b(ariable])-3598
+3114 y(but)h(eac)m(h)h(elemen)m(t)h(deleted)f(from)f(the)h(arra)m(y)g
+(m)m(ust)f(b)s(e)g(freed.)3371 3285 y([V)-8 b(ariable])-3598
 b Fh(rl_icppfunc_t)56 b(*)d(rl_directory_completio)q(n_ho)q(ok)390
-3147 y Ft(This)44 b(function,)49 b(if)d(de\014ned,)i(is)d(allo)m(w)m
+3395 y Ft(This)44 b(function,)49 b(if)d(de\014ned,)i(is)d(allo)m(w)m
 (ed)i(to)f(mo)s(dify)e(the)i(directory)g(p)s(ortion)e(of)i(\014lenames)
-390 3257 y(Readline)35 b(completes.)56 b(It)35 b(could)g(b)s(e)f(used)g
+390 3504 y(Readline)35 b(completes.)56 b(It)35 b(could)g(b)s(e)f(used)g
 (to)i(expand)e(sym)m(b)s(olic)h(links)g(or)g(shell)g(v)-5
-b(ariables)35 b(in)390 3366 y(pathnames.)70 b(It)41 b(is)f(called)h
+b(ariables)35 b(in)390 3614 y(pathnames.)70 b(It)41 b(is)f(called)h
 (with)f(the)h(address)e(of)i(a)g(string)f(\(the)h(curren)m(t)f
-(directory)h(name\))390 3476 y(as)d(an)f(argumen)m(t,)j(and)d(ma)m(y)i
+(directory)h(name\))390 3724 y(as)d(an)f(argumen)m(t,)j(and)d(ma)m(y)i
 (mo)s(dify)d(that)j(string.)62 b(If)37 b(the)h(string)f(is)h(replaced)g
-(with)f(a)h(new)390 3586 y(string,)j(the)d(old)h(v)-5
+(with)f(a)h(new)390 3833 y(string,)j(the)d(old)h(v)-5
 b(alue)39 b(should)e(b)s(e)h(freed.)64 b(An)m(y)39 b(mo)s(di\014ed)e
-(directory)i(name)f(should)g(ha)m(v)m(e)i(a)390 3695
+(directory)i(name)f(should)g(ha)m(v)m(e)i(a)390 3943
 y(trailing)c(slash.)54 b(The)35 b(mo)s(di\014ed)e(v)-5
 b(alue)36 b(will)f(b)s(e)f(used)g(as)i(part)e(of)h(the)h(completion,)h
-(replacing)390 3805 y(the)32 b(directory)g(p)s(ortion)f(of)h(the)g
+(replacing)390 4052 y(the)32 b(directory)g(p)s(ortion)f(of)h(the)g
 (pathname)f(the)h(user)f(t)m(yp)s(ed.)44 b(A)m(t)33 b(the)f(least,)h
-(ev)m(en)g(if)e(no)h(other)390 3914 y(expansion)j(is)h(p)s(erformed,)f
+(ev)m(en)g(if)e(no)h(other)390 4162 y(expansion)j(is)h(p)s(erformed,)f
 (this)h(function)f(should)g(remo)m(v)m(e)i(an)m(y)f(quote)g(c)m
-(haracters)h(from)e(the)390 4024 y(directory)c(name,)g(b)s(ecause)f
+(haracters)h(from)e(the)390 4271 y(directory)c(name,)g(b)s(ecause)f
 (its)h(result)f(will)h(b)s(e)e(passed)h(directly)h(to)g
-Fs(opendir\(\))p Ft(.)390 4162 y(The)25 b(directory)i(completion)g(ho)s
+Fs(opendir\(\))p Ft(.)390 4402 y(The)25 b(directory)i(completion)g(ho)s
 (ok)e(returns)g(an)h(in)m(teger)h(that)f(should)f(b)s(e)g(non-zero)i
-(if)e(the)i(func-)390 4272 y(tion)35 b(mo)s(di\014es)e(its)i(directory)
+(if)e(the)i(func-)390 4511 y(tion)35 b(mo)s(di\014es)e(its)i(directory)
 f(argumen)m(t.)53 b(The)33 b(function)h(should)f(not)i(mo)s(dify)e(the)
-h(directory)390 4381 y(argumen)m(t)d(if)f(it)h(returns)e(0.)3371
-4573 y([V)-8 b(ariable])-3598 b Fh(rl_icppfunc_t)56 b(*)d
-(rl_directory_rewrite_h)q(ook;)390 4682 y Ft(If)24 b(non-zero,)i(this)e
+h(directory)390 4621 y(argumen)m(t)d(if)f(it)h(returns)e(0.)3371
+4792 y([V)-8 b(ariable])-3598 b Fh(rl_icppfunc_t)56 b(*)d
+(rl_directory_rewrite_h)q(ook;)390 4902 y Ft(If)24 b(non-zero,)i(this)e
 (is)h(the)f(address)g(of)g(a)h(function)f(to)h(call)g(when)f
-(completing)h(a)g(directory)g(name.)390 4792 y(This)h(function)g(tak)m
+(completing)h(a)g(directory)g(name.)390 5011 y(This)h(function)g(tak)m
 (es)i(the)f(address)f(of)h(the)f(directory)h(name)g(to)g(b)s(e)f(mo)s
-(di\014ed)g(as)h(an)f(argumen)m(t.)390 4902 y(Unlik)m(e)40
+(di\014ed)g(as)h(an)f(argumen)m(t.)390 5121 y(Unlik)m(e)40
 b Fs(rl_directory_completion_h)o(ook)p Ft(,)35 b(it)40
 b(only)f(mo)s(di\014es)f(the)i(directory)f(name)h(used)390
-5011 y(in)35 b Fs(opendir)p Ft(,)g(not)g(what)h(is)f(displa)m(y)m(ed)h
+5230 y(in)35 b Fs(opendir)p Ft(,)g(not)g(what)h(is)f(displa)m(y)m(ed)h
 (when)e(the)i(p)s(ossible)f(completions)h(are)g(prin)m(ted)f(or)g(in-)
-390 5121 y(serted.)k(It)27 b(is)f(called)h(b)s(efore)f(rl)p
-1463 5121 V 40 w(directory)p 1859 5121 V 41 w(completion)p
-2333 5121 V 41 w(ho)s(ok.)39 b(A)m(t)27 b(the)g(least,)h(ev)m(en)f(if)g
-(no)f(other)390 5230 y(expansion)35 b(is)h(p)s(erformed,)f(this)h
-(function)f(should)g(remo)m(v)m(e)i(an)m(y)f(quote)g(c)m(haracters)h
-(from)e(the)390 5340 y(directory)c(name,)g(b)s(ecause)f(its)h(result)f
-(will)h(b)s(e)e(passed)h(directly)h(to)g Fs(opendir\(\))p
-Ft(.)p eop end
+390 5340 y(serted.)k(It)27 b(is)f(called)h(b)s(efore)f(rl)p
+1463 5340 V 40 w(directory)p 1859 5340 V 41 w(completion)p
+2333 5340 V 41 w(ho)s(ok.)39 b(A)m(t)27 b(the)g(least,)h(ev)m(en)f(if)g
+(no)f(other)p eop end
 %%Page: 54 58
 TeXDict begin 54 57 bop 150 -116 a Ft(Chapter)30 b(2:)41
 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(54)390
-299 y(The)37 b(directory)i(rewrite)f(ho)s(ok)f(returns)g(an)h(in)m
-(teger)h(that)f(should)f(b)s(e)g(non-zero)i(if)e(the)i(func-)390
-408 y(tion)e(mo)s(d\014es)e(its)h(directory)h(argumen)m(t.)58
+299 y(expansion)35 b(is)h(p)s(erformed,)f(this)h(function)f(should)g
+(remo)m(v)m(e)i(an)m(y)f(quote)g(c)m(haracters)h(from)e(the)390
+408 y(directory)c(name,)g(b)s(ecause)f(its)h(result)f(will)h(b)s(e)e
+(passed)h(directly)h(to)g Fs(opendir\(\))p Ft(.)390 540
+y(The)37 b(directory)i(rewrite)f(ho)s(ok)f(returns)g(an)h(in)m(teger)h
+(that)f(should)f(b)s(e)g(non-zero)i(if)e(the)i(func-)390
+650 y(tion)e(mo)s(d\014es)e(its)h(directory)h(argumen)m(t.)58
 b(The)36 b(function)f(should)h(not)g(mo)s(dify)f(the)h(directory)390
-518 y(argumen)m(t)31 b(if)f(it)h(returns)e(0.)3371 731
+759 y(argumen)m(t)31 b(if)f(it)h(returns)e(0.)3371 934
 y([V)-8 b(ariable])-3598 b Fh(rl_icppfunc_t)56 b(*)d
-(rl_filename_stat_hook)390 840 y Ft(If)30 b(non-zero,)h(this)f(is)g
+(rl_filename_stat_hook)390 1044 y Ft(If)30 b(non-zero,)h(this)f(is)g
 (the)g(address)f(of)h(a)h(function)f(for)f(the)i(completer)g(to)g(call)
-g(b)s(efore)f(deciding)390 950 y(whic)m(h)g(c)m(haracter)i(to)e(app)s
+g(b)s(efore)f(deciding)390 1154 y(whic)m(h)g(c)m(haracter)i(to)e(app)s
 (end)f(to)i(a)f(completed)h(name.)41 b(This)29 b(function)h(mo)s
-(di\014es)f(its)i(\014lename)390 1059 y(name)36 b(argumen)m(t,)h(and)e
+(di\014es)f(its)i(\014lename)390 1263 y(name)36 b(argumen)m(t,)h(and)e
 (the)h(mo)s(di\014ed)e(v)-5 b(alue)36 b(is)g(passed)f(to)h
 Fs(stat\(\))e Ft(to)i(determine)g(the)g(\014le's)390
-1169 y(t)m(yp)s(e)41 b(and)f(c)m(haracteristics.)73 b(This)40
+1373 y(t)m(yp)s(e)41 b(and)f(c)m(haracteristics.)73 b(This)40
 b(function)g(do)s(es)g(not)h(need)f(to)h(remo)m(v)m(e)h(quote)f(c)m
-(haracters)390 1279 y(from)30 b(the)g(\014lename.)390
-1427 y(The)i(stat)h(ho)s(ok)f(returns)f(an)h(in)m(teger)i(that)e
+(haracters)390 1482 y(from)30 b(the)g(\014lename.)390
+1614 y(The)i(stat)h(ho)s(ok)f(returns)f(an)h(in)m(teger)i(that)e
 (should)g(b)s(e)f(non-zero)i(if)f(the)g(function)g(mo)s(d\014es)g(its)
-390 1537 y(directory)42 b(argumen)m(t.)73 b(The)40 b(function)h(should)
+390 1724 y(directory)42 b(argumen)m(t.)73 b(The)40 b(function)h(should)
 f(not)h(mo)s(dify)f(the)h(directory)h(argumen)m(t)f(if)g(it)390
-1647 y(returns)29 b(0.)3371 1859 y([V)-8 b(ariable])-3598
+1833 y(returns)29 b(0.)3371 2008 y([V)-8 b(ariable])-3598
 b Fh(rl_dequote_func_t)57 b(*)c(rl_filename_rewrite_ho)q(ok)390
-1969 y Ft(If)39 b(non-zero,)k(this)d(is)f(the)h(address)f(of)h(a)g
+2118 y Ft(If)39 b(non-zero,)k(this)d(is)f(the)h(address)f(of)h(a)g
 (function)g(called)g(when)f(reading)h(directory)g(en)m(tries)390
-2078 y(from)f(the)h(\014lesystem)g(for)g(completion)h(and)e(comparing)i
+2228 y(from)f(the)h(\014lesystem)g(for)g(completion)h(and)e(comparing)i
 (them)e(to)i(the)f(partial)h(w)m(ord)e(to)i(b)s(e)390
-2188 y(completed.)g(The)26 b(function)h(should)f(p)s(erform)f(an)m(y)j
+2337 y(completed.)g(The)26 b(function)h(should)f(p)s(erform)f(an)m(y)j
 (necessary)f(application)i(or)e(system-sp)s(eci\014c)390
-2298 y(con)m(v)m(ersion)35 b(on)g(the)f(\014lename,)i(suc)m(h)d(as)i
+2447 y(con)m(v)m(ersion)35 b(on)g(the)f(\014lename,)i(suc)m(h)d(as)i
 (con)m(v)m(erting)h(b)s(et)m(w)m(een)f(c)m(haracter)g(sets)g(or)f(con)m
-(v)m(erting)390 2407 y(from)f(a)g(\014lesystem)h(format)g(to)g(a)f(c)m
+(v)m(erting)390 2556 y(from)f(a)g(\014lesystem)h(format)g(to)g(a)f(c)m
 (haracter)i(input)e(format.)50 b(The)32 b(function)h(tak)m(es)i(t)m(w)m
-(o)g(argu-)390 2517 y(men)m(ts:)49 b Fj(fname)p Ft(,)36
+(o)g(argu-)390 2666 y(men)m(ts:)49 b Fj(fname)p Ft(,)36
 b(the)e(\014lename)h(to)g(b)s(e)f(con)m(v)m(erted,)j(and)d
 Fj(fnlen)p Ft(,)h(its)g(length)g(in)f(b)m(ytes.)53 b(It)35
-b(m)m(ust)390 2626 y(either)24 b(return)e(its)h(\014rst)g(argumen)m(t)g
+b(m)m(ust)390 2776 y(either)24 b(return)e(its)h(\014rst)g(argumen)m(t)g
 (\(if)h(no)f(con)m(v)m(ersion)h(tak)m(es)h(place\))g(or)e(the)g(con)m
-(v)m(erted)i(\014lename)390 2736 y(in)j(newly-allo)s(cated)i(memory)-8
+(v)m(erted)i(\014lename)390 2885 y(in)j(newly-allo)s(cated)i(memory)-8
 b(.)41 b(The)27 b(con)m(v)m(erted)j(form)e(is)g(used)g(to)h(compare)f
-(against)i(the)e(w)m(ord)390 2845 y(to)g(b)s(e)e(completed,)j(and,)f
+(against)i(the)e(w)m(ord)390 2995 y(to)g(b)s(e)e(completed,)j(and,)f
 (if)f(it)h(matc)m(hes,)h(is)e(added)f(to)i(the)g(list)f(of)h(matc)m
-(hes.)41 b(Readline)27 b(will)h(free)390 2955 y(the)j(allo)s(cated)h
-(string.)3371 3168 y([V)-8 b(ariable])-3598 b Fh(rl_compdisp_func_t)58
+(hes.)41 b(Readline)27 b(will)h(free)390 3104 y(the)j(allo)s(cated)h
+(string.)3371 3280 y([V)-8 b(ariable])-3598 b Fh(rl_compdisp_func_t)58
 b(*)52 b(rl_completion_display)q(_ma)q(tch)q(es_h)q(ook)390
-3277 y Ft(If)22 b(non-zero,)i(then)e(this)g(is)g(the)g(address)f(of)h
+3389 y Ft(If)22 b(non-zero,)i(then)e(this)g(is)g(the)g(address)f(of)h
 (a)g(function)g(to)h(call)g(when)e(completing)i(a)g(w)m(ord)e(w)m(ould)
-390 3387 y(normally)h(displa)m(y)h(the)f(list)h(of)f(p)s(ossible)g
+390 3499 y(normally)h(displa)m(y)h(the)f(list)h(of)f(p)s(ossible)g
 (matc)m(hes.)39 b(This)21 b(function)h(is)g(called)i(in)e(lieu)g(of)g
-(Readline)390 3497 y(displa)m(ying)37 b(the)h(list.)61
+(Readline)390 3608 y(displa)m(ying)37 b(the)h(list.)61
 b(It)37 b(tak)m(es)i(three)e(argumen)m(ts:)54 b(\()p
 Fs(char)30 b(**)p Fj(matc)m(hes)p Ft(,)39 b Fs(int)d
-Fj(n)m(um)p 3370 3497 28 4 v 40 w(matc)m(hes)p Ft(,)390
-3606 y Fs(int)26 b Fj(max)p 735 3606 V 40 w(length)p
+Fj(n)m(um)p 3370 3608 28 4 v 40 w(matc)m(hes)p Ft(,)390
+3718 y Fs(int)26 b Fj(max)p 735 3718 V 40 w(length)p
 Ft(\))h(where)f Fj(matc)m(hes)31 b Ft(is)c(the)f(arra)m(y)h(of)g(matc)m
-(hing)g(strings,)h Fj(n)m(um)p 3152 3606 V 39 w(matc)m(hes)j
-Ft(is)c(the)390 3716 y(n)m(um)m(b)s(er)35 b(of)i(strings)f(in)g(that)h
-(arra)m(y)-8 b(,)39 b(and)d Fj(max)p 2073 3716 V 40 w(length)h
+(hing)g(strings,)h Fj(n)m(um)p 3152 3718 V 39 w(matc)m(hes)j
+Ft(is)c(the)390 3828 y(n)m(um)m(b)s(er)35 b(of)i(strings)f(in)g(that)h
+(arra)m(y)-8 b(,)39 b(and)d Fj(max)p 2073 3828 V 40 w(length)h
 Ft(is)g(the)f(length)h(of)g(the)f(longest)i(string)390
-3825 y(in)f(that)i(arra)m(y)-8 b(.)63 b(Readline)39 b(pro)m(vides)e(a)h
+3937 y(in)f(that)i(arra)m(y)-8 b(.)63 b(Readline)39 b(pro)m(vides)e(a)h
 (con)m(v)m(enience)i(function,)f Fs(rl_display_match_list)p
-Ft(,)390 3935 y(that)33 b(tak)m(es)g(care)g(of)f(doing)g(the)g(displa)m
+Ft(,)390 4047 y(that)33 b(tak)m(es)g(care)g(of)f(doing)g(the)g(displa)m
 (y)g(to)h(Readline's)g(output)e(stream.)46 b(Y)-8 b(ou)33
-b(ma)m(y)f(call)h(that)390 4044 y(function)d(from)g(this)g(ho)s(ok.)
-3371 4257 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
-(rl_basic_word_break_ch)q(ara)q(cter)q(s)390 4367 y Ft(The)44
+b(ma)m(y)f(call)h(that)390 4156 y(function)d(from)g(this)g(ho)s(ok.)
+3371 4332 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_basic_word_break_ch)q(ara)q(cter)q(s)390 4441 y Ft(The)44
 b(basic)g(list)h(of)f(c)m(haracters)i(that)f(signal)g(a)f(break)g(b)s
 (et)m(w)m(een)h(w)m(ords)f(for)g(the)g(completer)390
-4476 y(routine.)61 b(The)37 b(default)g(v)-5 b(alue)37
+4551 y(routine.)61 b(The)37 b(default)g(v)-5 b(alue)37
 b(of)h(this)f(v)-5 b(ariable)38 b(is)f(the)g(c)m(haracters)i(whic)m(h)e
-(break)g(w)m(ords)f(for)390 4586 y(completion)c(in)e(Bash:)41
-b Fs(")30 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p Ft(.)3371 4799
+(break)g(w)m(ords)f(for)390 4661 y(completion)c(in)e(Bash:)41
+b Fs(")30 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p Ft(.)3371 4836
 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
-(rl_basic_quote_charact)q(ers)390 4908 y Ft(A)30 b(list)i(of)e(quote)h
+(rl_basic_quote_charact)q(ers)390 4945 y Ft(A)30 b(list)i(of)e(quote)h
 (c)m(haracters)h(whic)m(h)e(can)h(cause)g(a)f(w)m(ord)g(break.)3371
 5121 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
 (rl_completer_word_brea)q(k_c)q(hara)q(cte)q(rs)390 5230
@@ -10610,68 +10616,72 @@ b Ft(to)34 b(b)s(e)e(used)g(to)i(p)s(erform)e(the)h(curren)m(t)f
 (set)g Fs(rl_completer_word_break_ch)o(arac)o(ter)o(s)19
 b Ft(itself.)39 b(If)25 b(the)390 847 y(function)30 b(returns)f
 Fs(NULL)p Ft(,)h Fs(rl_completer_word_break)o(_cha)o(rac)o(ters)24
-b Ft(is)30 b(used.)3371 1025 y([V)-8 b(ariable])-3598
+b Ft(is)30 b(used.)3371 1011 y([V)-8 b(ariable])-3598
 b Fh(const)54 b(char)f(*)g(rl_completer_quote_cha)q(rac)q(ters)390
-1134 y Ft(A)34 b(list)g(of)g(c)m(haracters)h(whic)m(h)e(can)h(b)s(e)g
+1121 y Ft(A)34 b(list)g(of)g(c)m(haracters)h(whic)m(h)e(can)h(b)s(e)g
 (used)e(to)j(quote)f(a)g(substring)f(of)h(the)f(line.)51
-b(Completion)390 1244 y(o)s(ccurs)26 b(on)g(the)g(en)m(tire)i
+b(Completion)390 1230 y(o)s(ccurs)26 b(on)g(the)g(en)m(tire)i
 (substring,)e(and)f(within)h(the)g(substring)g Fs
-(rl_completer_word_break)o(_)390 1354 y(characters)32
+(rl_completer_word_break)o(_)390 1340 y(characters)32
 b Ft(are)k(treated)g(as)f(an)m(y)h(other)f(c)m(haracter,)j(unless)d
-(they)g(also)h(app)s(ear)e(within)h(this)390 1463 y(list.)3371
-1641 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
-(rl_filename_quote_char)q(act)q(ers)390 1751 y Ft(A)34
+(they)g(also)h(app)s(ear)e(within)h(this)390 1450 y(list.)3371
+1614 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_filename_quote_char)q(act)q(ers)390 1724 y Ft(A)34
 b(list)g(of)g(c)m(haracters)h(that)f(cause)h(a)f(\014lename)g(to)g(b)s
 (e)f(quoted)h(b)m(y)f(the)h(completer)h(when)e(they)390
-1861 y(app)s(ear)d(in)g(a)h(completed)g(\014lename.)41
+1833 y(app)s(ear)d(in)g(a)h(completed)g(\014lename.)41
 b(The)30 b(default)g(is)h(the)f(n)m(ull)h(string.)3371
-2039 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
-(rl_special_prefixes)390 2148 y Ft(The)27 b(list)i(of)e(c)m(haracters)j
+1998 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_special_prefixes)390 2107 y Ft(The)27 b(list)i(of)e(c)m(haracters)j
 (that)e(are)g(w)m(ord)f(break)h(c)m(haracters,)i(but)d(should)f(b)s(e)h
-(left)i(in)e Fj(text)k Ft(when)390 2258 y(it)25 b(is)g(passed)f(to)h
+(left)i(in)e Fj(text)k Ft(when)390 2217 y(it)25 b(is)g(passed)f(to)h
 (the)g(completion)h(function.)38 b(Programs)25 b(can)g(use)f(this)h(to)
-g(help)f(determine)h(what)390 2367 y(kind)i(of)h(completing)h(to)f(do.)
+g(help)f(determine)h(what)390 2326 y(kind)i(of)h(completing)h(to)f(do.)
 40 b(F)-8 b(or)29 b(instance,)g(Bash)f(sets)g(this)g(v)-5
 b(ariable)28 b(to)h Fs(")p Ft($@)p Fs(")e Ft(so)h(that)g(it)h(can)390
-2477 y(complete)j(shell)e(v)-5 b(ariables)31 b(and)f(hostnames.)3371
-2655 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_query_i)q
-(tems)390 2765 y Ft(Up)36 b(to)h(this)f(man)m(y)g(items)h(will)f(b)s(e)
+2436 y(complete)j(shell)e(v)-5 b(ariables)31 b(and)f(hostnames.)3371
+2600 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_query_i)q
+(tems)390 2710 y Ft(Up)36 b(to)h(this)f(man)m(y)g(items)h(will)f(b)s(e)
 g(displa)m(y)m(ed)h(in)e(resp)s(onse)h(to)h(a)f(p)s
-(ossible-completions)h(call.)390 2874 y(After)28 b(that,)h(readline)f
+(ossible-completions)h(call.)390 2819 y(After)28 b(that,)h(readline)f
 (asks)g(the)g(user)f(if)h(she)f(is)h(sure)f(she)h(w)m(an)m(ts)g(to)h
-(see)f(them)g(all.)40 b(The)28 b(default)390 2984 y(v)-5
+(see)f(them)g(all.)40 b(The)28 b(default)390 2929 y(v)-5
 b(alue)31 b(is)f(100.)42 b(A)31 b(negativ)m(e)h(v)-5
 b(alue)31 b(indicates)g(that)g(Readline)g(should)f(nev)m(er)h(ask)f
-(the)h(user.)3371 3162 y([V)-8 b(ariable])-3598 b Fh(int)53
-b(rl_completion_append_)q(char)q(act)q(er)390 3271 y
+(the)h(user.)3371 3093 y([V)-8 b(ariable])-3598 b Fh(int)53
+b(rl_completion_append_)q(char)q(act)q(er)390 3203 y
 Ft(When)33 b(a)h(single)f(completion)i(alternativ)m(e)h(matc)m(hes)e
 (at)g(the)f(end)g(of)g(the)h(command)f(line,)h(this)390
-3381 y(c)m(haracter)23 b(is)e(app)s(ended)f(to)i(the)g(inserted)f
+3313 y(c)m(haracter)23 b(is)e(app)s(ended)f(to)i(the)g(inserted)f
 (completion)i(text.)39 b(The)20 b(default)i(is)g(a)f(space)h(c)m
-(haracter)390 3491 y(\(`)31 b('\).)86 b(Setting)46 b(this)f(to)h(the)g
-(n)m(ull)f(c)m(haracter)i(\(`)p Fs(\\0)p Ft('\))f(prev)m(en)m(ts)g(an)m
-(ything)g(b)s(eing)f(app)s(ended)390 3600 y(automatically)-8
-b(.)66 b(This)37 b(can)h(b)s(e)f(c)m(hanged)h(in)g(application-sp)s
-(eci\014c)h(completion)g(functions)e(to)390 3710 y(pro)m(vide)j(the)g
-(\\most)g(sensible)g(w)m(ord)f(separator)i(c)m(haracter")h(according)e
-(to)h(an)e(application-)390 3819 y(sp)s(eci\014c)30 b(command)g(line)h
-(syn)m(tax)g(sp)s(eci\014cation.)3371 3998 y([V)-8 b(ariable])-3598
-b Fh(int)53 b(rl_completion_suppres)q(s_ap)q(pen)q(d)390
-4107 y Ft(If)33 b(non-zero,)i Fj(rl)p 949 4107 28 4 v
-39 w(completion)p 1421 4107 V 42 w(app)s(end)p 1755 4107
+(haracter)390 3422 y(\(`)31 b('\).)40 b(Setting)27 b(this)g(to)g(the)g
+(n)m(ull)f(c)m(haracter)j(\(`)p Fs(\\0)p Ft('\))e(prev)m(en)m(ts)g(an)m
+(ything)g(b)s(eing)f(app)s(ended)f(auto-)390 3532 y(matically)-8
+b(.)41 b(This)22 b(can)i(b)s(e)f(c)m(hanged)h(in)f(application-sp)s
+(eci\014c)h(completion)h(functions)e(to)h(pro)m(vide)390
+3641 y(the)d(\\most)i(sensible)e(w)m(ord)g(separator)h(c)m(haracter")h
+(according)f(to)g(an)f(application-sp)s(eci\014c)i(com-)390
+3751 y(mand)28 b(line)i(syn)m(tax)f(sp)s(eci\014cation.)42
+b(It)29 b(is)g(set)h(to)g(the)f(default)g(b)s(efore)g(an)m(y)g
+(application-sp)s(eci\014c)390 3861 y(completion)j(function)e(is)g
+(called,)i(and)e(ma)m(y)h(only)f(b)s(e)g(c)m(hanged)h(within)f(suc)m(h)
+g(a)h(function.)3371 4025 y([V)-8 b(ariable])-3598 b
+Fh(int)53 b(rl_completion_suppres)q(s_ap)q(pen)q(d)390
+4134 y Ft(If)33 b(non-zero,)i Fj(rl)p 949 4134 28 4 v
+39 w(completion)p 1421 4134 V 42 w(app)s(end)p 1755 4134
 V 38 w(c)m(haracter)42 b Ft(is)33 b(not)g(app)s(ended)f(to)i(matc)m
-(hes)g(at)g(the)g(end)390 4217 y(of)28 b(the)f(command)h(line,)h(as)e
+(hes)g(at)g(the)g(end)390 4244 y(of)28 b(the)f(command)h(line,)h(as)e
 (describ)s(ed)g(ab)s(o)m(v)m(e.)41 b(It)27 b(is)h(set)g(to)g(0)g(b)s
-(efore)g(an)m(y)f(application-sp)s(eci\014c)390 4326
+(efore)g(an)m(y)f(application-sp)s(eci\014c)390 4354
 y(completion)32 b(function)e(is)g(called,)i(and)e(ma)m(y)h(only)f(b)s
 (e)g(c)m(hanged)h(within)f(suc)m(h)g(a)h(function.)3371
-4504 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_quote_c)q
-(hara)q(cte)q(r)390 4614 y Ft(When)36 b(Readline)h(is)f(completing)h
+4518 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_quote_c)q
+(hara)q(cte)q(r)390 4628 y Ft(When)36 b(Readline)h(is)f(completing)h
 (quoted)g(text,)h(as)f(delimited)g(b)m(y)f(one)g(of)g(the)h(c)m
-(haracters)g(in)390 4724 y Fj(rl)p 457 4724 V 40 w(completer)p
-885 4724 V 41 w(quote)p 1145 4724 V 41 w(c)m(haracters)p
+(haracters)g(in)390 4737 y Fj(rl)p 457 4737 V 40 w(completer)p
+885 4737 V 41 w(quote)p 1145 4737 V 41 w(c)m(haracters)p
 Ft(,)43 b(it)c(sets)g(this)g(v)-5 b(ariable)40 b(to)g(the)f(quoting)g
-(c)m(haracter)i(found.)390 4833 y(This)30 b(is)g(set)h(b)s(efore)f(an)m
+(c)m(haracter)i(found.)390 4847 y(This)30 b(is)g(set)h(b)s(efore)f(an)m
 (y)h(application-sp)s(eci\014c)g(completion)h(function)e(is)h(called.)
 3371 5011 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_suppres)
 q(s_qu)q(ote)390 5121 y Ft(If)32 b(non-zero,)h(Readline)g(do)s(es)f
@@ -12078,7 +12088,7 @@ Fe(rl_completion_matches)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34
 b Fb(52)2025 3293 y Fe(rl_completion_mode)10 b Fa(:)17
 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(51)2025 3381
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(52)2025 3381
 y Fe(rl_copy_keymap)f Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
 h(:)f(:)34 b Fb(33)2025 3468 y Fe(rl_copy_text)8 b Fa(:)15
@@ -12143,7 +12153,7 @@ b Fb(36)150 347 y Fe(rl_function_of_keyseq)g Fa(:)13
 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)33 b Fb(36)150 434 y Fe(rl_function_of_keyseq_len)9
 b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)23 b Fb(36)150 521 y Fe(rl_funmap_names)17
+(:)h(:)f(:)g(:)23 b Fb(36)150 522 y Fe(rl_funmap_names)17
 b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
 g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
 b Fb(36)150 609 y Fe(rl_generic_bind)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)
@@ -12153,10 +12163,10 @@ b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
 b Fb(33)150 783 y Fe(rl_get_keymap_by_name)24 b Fa(:)13
 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)33 b Fb(33)150 870 y Fe(rl_get_keymap_name)10
+(:)g(:)g(:)h(:)f(:)33 b Fb(33)150 871 y Fe(rl_get_keymap_name)10
 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(33)150
-957 y Fe(rl_get_screen_size)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
+958 y Fe(rl_get_screen_size)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)24 b Fb(50)150 1045 y Fe(rl_get_termcap)f Fa(:)13
 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
@@ -12166,202 +12176,204 @@ g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
 b Fb(39)150 1219 y Fe(rl_initialize)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(41)150 1306 y
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(41)150 1307 y
 Fe(rl_insert_completions)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33
-b Fb(51)150 1393 y Fe(rl_insert_text)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f
+b Fb(51)150 1394 y Fe(rl_insert_text)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(39)150 1481 y Fe
 (rl_invoking_keyseqs)7 b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21
 b Fb(36)150 1568 y Fe(rl_invoking_keyseqs_in_map)7 b
 Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)21 b Fb(36)150 1655 y Fe(rl_kill_text)8 b Fa(:)16
+g(:)g(:)21 b Fb(36)150 1656 y Fe(rl_kill_text)8 b Fa(:)16
 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
-b Fb(39)150 1742 y Fe(rl_list_funmap_names)k Fa(:)13
+b Fb(39)150 1743 y Fe(rl_list_funmap_names)k Fa(:)13
 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(36)150 1829 y Fe(rl_macro_bind)25
+(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(36)150 1830 y Fe(rl_macro_bind)25
 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
 b Fb(42)150 1917 y Fe(rl_macro_dumper)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(42)150 2004 y Fe(rl_make_bare_keymap)7
+g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(42)150 2005 y Fe(rl_make_bare_keymap)7
 b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(33)150
-2091 y Fe(rl_make_keymap)i Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+2092 y Fe(rl_make_keymap)i Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)34 b Fb(33)150 2178 y Fe(rl_message)13
+(:)f(:)g(:)g(:)34 b Fb(33)150 2179 y Fe(rl_message)13
 b Fa(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
 g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)27 b Fb(38)150 2265 y Fe(rl_modifying)8 b Fa(:)16
+(:)g(:)27 b Fb(38)150 2266 y Fe(rl_modifying)8 b Fa(:)16
 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
-b Fb(37)150 2353 y Fe(rl_named_function)12 b Fa(:)17
+b Fb(37)150 2354 y Fe(rl_named_function)12 b Fa(:)17
 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150
-2440 y Fe(rl_on_new_line)d Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(36)150
+2441 y Fe(rl_on_new_line)d Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)34 b Fb(37)150 2527 y Fe(rl_on_new_line_with_prompt)7
+(:)f(:)g(:)g(:)34 b Fb(37)150 2528 y Fe(rl_on_new_line_with_prompt)7
 b Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)21 b Fb(38)150 2614 y Fe(rl_parse_and_bind)12
+(:)g(:)g(:)21 b Fb(38)150 2615 y Fe(rl_parse_and_bind)12
 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150
-2701 y Fe(rl_pending_signal)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g
+2703 y Fe(rl_pending_signal)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)26 b Fb(49)150 2789 y Fe(rl_possible_completions)14
+g(:)h(:)26 b Fb(49)150 2790 y Fe(rl_possible_completions)14
 b Fa(:)k(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)28 b Fb(51)150 2876 y Fe(rl_prep_terminal)15
+(:)g(:)h(:)f(:)g(:)28 b Fb(51)150 2877 y Fe(rl_prep_terminal)15
 b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
 h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b
-Fb(40)150 2963 y Fe(rl_push_macro_input)7 b Fa(:)17 b(:)d(:)f(:)g(:)g
+Fb(40)150 2964 y Fe(rl_push_macro_input)7 b Fa(:)17 b(:)d(:)f(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)21 b Fb(39)150 3050 y Fe(rl_read_init_file)12
+g(:)h(:)f(:)21 b Fb(39)150 3052 y Fe(rl_read_init_file)12
 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150
-3137 y Fe(rl_read_key)10 b Fa(:)16 b(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+3139 y Fe(rl_read_key)10 b Fa(:)16 b(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(39)150 3225 y
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(39)150 3226 y
 Fe(rl_redisplay)8 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)22 b Fb(37)150 3312 y Fe(rl_replace_line)17
+g(:)g(:)h(:)f(:)g(:)22 b Fb(37)150 3313 y Fe(rl_replace_line)17
 b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
 g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
-b Fb(41)150 3399 y Fe(rl_reset_after_signal)24 b Fa(:)13
+b Fb(41)150 3400 y Fe(rl_reset_after_signal)24 b Fa(:)13
 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)33 b Fb(49)150 3486 y Fe(rl_reset_line_state)7
+(:)g(:)g(:)h(:)f(:)33 b Fb(49)150 3488 y Fe(rl_reset_line_state)7
 b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(38)150
-3573 y Fe(rl_reset_screen_size)26 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
+3575 y Fe(rl_reset_screen_size)26 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36
-b Fb(50)150 3661 y Fe(rl_reset_terminal)12 b Fa(:)17
+b Fb(50)150 3662 y Fe(rl_reset_terminal)12 b Fa(:)17
 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(40)150
-3748 y Fe(rl_resize_terminal)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
+3749 y Fe(rl_resize_terminal)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)24 b Fb(49)150 3835 y Fe(rl_restore_prompt)12 b Fa(:)17
+g(:)24 b Fb(49)150 3837 y Fe(rl_restore_prompt)12 b Fa(:)17
 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(38)150
-3922 y Fe(rl_restore_state)15 b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+3924 y Fe(rl_restore_state)15 b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)29 b Fb(41)150 4009 y Fe(rl_save_prompt)23 b
+g(:)g(:)29 b Fb(41)150 4011 y Fe(rl_save_prompt)23 b
 Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34
-b Fb(38)150 4097 y Fe(rl_save_state)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
+b Fb(38)150 4098 y Fe(rl_save_state)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 4184 y
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 4186 y
 Fe(rl_set_key)13 b Fa(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(35)150 4271 y Fe
+g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(35)150 4273 y Fe
 (rl_set_keyboard_input_timeout)17 b Fa(:)h(:)c(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(40)150 4358 y Fe(rl_set_keymap)25
+(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(40)150 4360 y Fe(rl_set_keymap)25
 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
-b Fb(33)150 4445 y Fe(rl_set_paren_blink_timeout)7 b
-Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)21 b Fb(42)150 4533 y Fe(rl_set_prompt)k Fa(:)13
-b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
-b Fb(39)150 4620 y Fe(rl_set_screen_size)10 b Fa(:)17
+b Fb(33)150 4447 y Fe(rl_set_keymap_name)10 b Fa(:)17
 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(49)150 4707
-y Fe(rl_set_signals)f Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)34 b Fb(50)150 4794 y Fe(rl_show_char)8 b Fa(:)16
-b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
-b Fb(38)150 4881 y Fe(rl_stuff_char)j Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(39)2025 260 y Fe
-(rl_tty_set_default_bindings)27 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(40)2025 348 y
-Fe(rl_tty_set_echoing)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24
-b Fb(40)2025 436 y Fe(rl_tty_unset_default_bindings)16
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(33)150 4535
+y Fe(rl_set_paren_blink_timeout)7 b Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(42)150
+4622 y Fe(rl_set_prompt)k Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)37 b Fb(39)150 4709 y Fe(rl_set_screen_size)10
+b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(49)150
+4796 y Fe(rl_set_signals)f Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)34 b Fb(50)150 4884 y Fe(rl_show_char)8
+b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+22 b Fb(38)2025 260 y Fe(rl_stuff_char)j Fa(:)13 b(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(39)2025 347 y
+Fe(rl_tty_set_default_bindings)27 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(40)2025 435
+y Fe(rl_tty_set_echoing)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+24 b Fb(40)2025 523 y Fe(rl_tty_unset_default_bindings)16
 b Fa(:)j(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)30
-b Fb(40)2025 524 y Fe(rl_unbind_command_in_map)11 b Fa(:)19
+b Fb(40)2025 610 y Fe(rl_unbind_command_in_map)11 b Fa(:)19
 b(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)26 b Fb(34)2025 613 y Fe(rl_unbind_function_in_map)9
+g(:)g(:)26 b Fb(35)2025 698 y Fe(rl_unbind_function_in_map)9
 b Fa(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)23 b Fb(34)2025 701 y Fe(rl_unbind_key)i Fa(:)13
+(:)g(:)h(:)23 b Fb(34)2025 786 y Fe(rl_unbind_key)i Fa(:)13
 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
-b Fb(34)2025 789 y Fe(rl_unbind_key_in_map)26 b Fa(:)13
+b Fb(34)2025 873 y Fe(rl_unbind_key_in_map)26 b Fa(:)13
 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(34)2025 877 y Fe
+(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(34)2025 961 y Fe
 (rl_username_completion_functio)q(n)11 b Fa(:)19 b(:)13
 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)25 b Fb(52)2025
-965 y Fe(rl_variable_bind)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+1048 y Fe(rl_variable_bind)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)29 b Fb(42)2025 1054 y Fe(rl_variable_dumper)10
+h(:)f(:)29 b Fb(42)2025 1136 y Fe(rl_variable_dumper)10
 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(42)2025
-1141 y Fe(rl_variable_value)12 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)h(:)f(:)g
+1223 y Fe(rl_variable_value)12 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)h(:)f(:)g
 (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)27 b Fb(42)2021 1397 y Fr(S)2025 1516 y Fe(self-insert)h(\(a,)e
+g(:)g(:)27 b Fb(42)2021 1467 y Fr(S)2025 1585 y Fe(self-insert)h(\(a,)e
 (b,)g(A,)g(1,)g(!,)g(...)q(\))15 b Fa(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)29 b Fb(19)2025 1605 y Fe(set-mark)e(\(C-@\))10
+(:)g(:)g(:)h(:)f(:)29 b Fb(19)2025 1672 y Fe(set-mark)e(\(C-@\))10
 b Fa(:)k(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)24
-b Fb(22)2025 1693 y(sho)n(w-all-if-am)n(biguous)e Fa(:)13
+b Fb(22)2025 1760 y(sho)n(w-all-if-am)n(biguous)e Fa(:)13
 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fb(9)2025 1781
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fb(9)2025 1847
 y(sho)n(w-all-if-unmo)r(di\014ed)11 b Fa(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)27 b Fb(9)2025 1869 y(sho)n(w-mo)r(de-in-prompt)15
+(:)g(:)27 b Fb(9)2025 1935 y(sho)n(w-mo)r(de-in-prompt)15
 b Fa(:)d(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
 g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)30 b Fb(9)2025
-1957 y(skip-completed-text)17 b Fa(:)11 b(:)j(:)f(:)g(:)g(:)g(:)g(:)g
+2023 y(skip-completed-text)17 b Fa(:)11 b(:)j(:)f(:)g(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)32 b Fb(9)2025 2046 y Fe(skip-csi-sequence)d(\(\))11
+g(:)g(:)g(:)32 b Fb(9)2025 2110 y Fe(skip-csi-sequence)d(\(\))11
 b Fa(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(23)2025 2133
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(23)2025 2197
 y Fe(start-kbd-macro)j(\(C-x)d(\(\))10 b Fa(:)k(:)f(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25
-b Fb(21)2021 2388 y Fr(T)2025 2507 y Fe(tab-insert)j(\(M-TAB\))16
+b Fb(21)2021 2441 y Fr(T)2025 2558 y Fe(tab-insert)j(\(M-TAB\))16
 b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
 g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)31 b Fb(19)2025
-2596 y Fe(tilde-expand)d(\(M-~\))16 b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)
+2645 y Fe(tilde-expand)d(\(M-~\))16 b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)
 f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)31 b Fb(22)2025 2684 y Fe(transpose-chars)e(\(C-t\))9
+(:)g(:)31 b Fb(22)2025 2733 y Fe(transpose-chars)e(\(C-t\))9
 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23 b Fb(19)2025 2771 y
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23 b Fb(19)2025 2820 y
 Fe(transpose-words)29 b(\(M-t\))9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h
 (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23
-b Fb(19)2021 3037 y Fr(U)2025 3156 y Fe(undo)j(\(C-_)h(or)f(C-x)g
+b Fb(19)2021 3074 y Fr(U)2025 3191 y Fe(undo)j(\(C-_)h(or)f(C-x)g
 (C-u\))12 b Fa(:)i(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(22)2025
-3244 y Fe(universal-argument)i(\(\))9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g
+3279 y Fe(universal-argument)i(\(\))9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g
 (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-23 b Fb(21)2025 3332 y Fe(unix-filename-rubout)30 b(\(\))21
+23 b Fb(21)2025 3366 y Fe(unix-filename-rubout)30 b(\(\))21
 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3421 y Fe(unix-line-discard)29
+(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3454 y Fe(unix-line-discard)29
 b(\(C-u\))22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3509
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3541
 y Fe(unix-word-rubout)29 b(\(C-w\))6 b Fa(:)14 b(:)g(:)f(:)g(:)g(:)g(:)
 g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21
-b Fb(20)2025 3596 y Fe(upcase-word)28 b(\(M-u\))20 b
+b Fb(20)2025 3629 y Fe(upcase-word)28 b(\(M-u\))20 b
 Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(19)2021
-3862 y Fr(V)2025 3981 y Fb(vi-cmd-mo)r(de-string)18 b
+3882 y Fr(V)2025 3999 y Fb(vi-cmd-mo)r(de-string)18 b
 Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(10)2025
-4069 y Fe(vi-editing-mode)c(\(M-C-j\))22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)
+4087 y Fe(vi-editing-mode)c(\(M-C-j\))22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)
 g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35
-b Fb(23)2025 4157 y(vi-ins-mo)r(de-string)8 b Fa(:)13
+b Fb(23)2025 4175 y(vi-ins-mo)r(de-string)8 b Fa(:)13
 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(10)2025
-4244 y(visible-stats)11 b Fa(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+4262 y(visible-stats)11 b Fa(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(10)2021 4499 y
-Fr(Y)2025 4618 y Fe(yank)g(\(C-y\))21 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(10)2021 4504 y
+Fr(Y)2025 4621 y Fe(yank)g(\(C-y\))21 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g
 (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
 g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 b
-Fb(20)2025 4706 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))10
+Fb(20)2025 4709 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))10
 b Fa(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)24 b Fb(18)2025 4794 y Fe(yank-nth-arg)k(\(M-C-y\))11
+f(:)g(:)24 b Fb(18)2025 4796 y Fe(yank-nth-arg)k(\(M-C-y\))11
 b Fa(:)k(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(18)2025 4881
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(18)2025 4884
 y Fe(yank-pop)h(\(M-y\))10 b Fa(:)k(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
 h(:)f(:)g(:)g(:)24 b Fb(20)p eop end
index c7b925e1f5fa79ea3be72c85fa1e95fd9a003b7f..f54406d955c86556a9ea3c8868575e4a2b2b2f15 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
 %%Creator: groff version 1.22.3
-%%CreationDate: Mon May 21 10:32:52 2018
+%%CreationDate: Wed Apr 17 09:02:35 2019
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%+ font Times-Italic
@@ -344,7 +344,7 @@ le is read, and the k)108 616.8 R 1.459 -.15(ey b)-.1 H 1.159
 (re).15 G(xample, placing)-2.65 E(M\255Control\255u: uni)144 698.4 Q
 -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(or)108 710.4 Q
 (C\255Meta\255u: uni)144 722.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)
--.18 E(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(1)190.955 E
+-.18 E(GNU Readline 8.0)72 768 Q(2017 December 28)121.245 E(1)190.955 E
 0 Cg EP
 %%Page: 2 2
 %%BeginPageSetup
@@ -441,7 +441,7 @@ tes should be used to indicate a macro de\214nition.)-.15 F .089
 (Unquoted te)108 720 R .089(xt is assumed to be a function name.)-.15 F
 .09(In the macro body)5.089 F 2.59(,t)-.65 G .09
 (he backslash escapes described abo)-2.59 F -.15(ve)-.15 G
-(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(2)190.955 E 0 Cg
+(GNU Readline 8.0)72 768 Q(2017 December 28)121.245 E(2)190.955 E 0 Cg
 EP
 %%Page: 3 3
 %%BeginPageSetup
@@ -554,7 +554,7 @@ the v)5.783 F .782(alue of this)-.25 F -.25(va)144 708 S .237
 .237(re simply listed)-2.737 F(on the terminal.)144 720 Q 2.5(An)5 G
 -2.25 -.15(eg a)-2.5 H(ti).15 E .3 -.15(ve v)-.25 H
 (alue causes readline to ne)-.1 E -.15(ve)-.25 G 2.5(ra).15 G(sk.)-2.5 E
-(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(3)190.955 E 0 Cg
+(GNU Readline 8.0)72 768 Q(2017 December 28)121.245 E(3)190.955 E 0 Cg
 EP
 %%Page: 4 4
 %%BeginPageSetup
@@ -659,7 +659,7 @@ F0 .439(The string of characters that should terminate an incremental s\
 earch without subsequently e)144 708 R -.15(xe)-.15 G(cut-).15 E .935
 (ing the character as a command.)144 720 R .935(If this v)5.935 F .935
 (ariable has not been gi)-.25 F -.15(ve)-.25 G 3.434(nav).15 G .934
-(alue, the characters)-3.684 F F2(ESC)3.434 E F0(GNU Readline 7.0)72 768
+(alue, the characters)-3.684 F F2(ESC)3.434 E F0(GNU Readline 8.0)72 768
 Q(2017 December 28)121.245 E(4)190.955 E 0 Cg EP
 %%Page: 5 5
 %%BeginPageSetup
@@ -771,7 +771,7 @@ es to be listed immediately instead of ringing the bell.)144 684 Q F2
 (ginning of the prompt indicating the editing mode: emacs, vi)-.15 F
 (command, or vi insertion.)144 720 Q(The mode strings are user)5 E
 (-settable \(e.g.,)-.2 E F1(emacs\255mode\255string)2.5 E F0(\).)A
-(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(5)190.955 E 0 Cg
+(GNU Readline 8.0)72 768 Q(2017 December 28)121.245 E(5)190.955 E 0 Cg
 EP
 %%Page: 6 6
 %%BeginPageSetup
@@ -883,7 +883,7 @@ E F0 .503(is tested ag)3.003 F .504(ainst the full name of the terminal\
 (ey s)-.1 H .397(equence that quotes the).15 F(current or pre)180 688.8
 Q(vious w)-.25 E(ord in)-.1 E F1(bash)2.5 E F0(:)A F1($if)180 712.8 Q F0
 (Bash)2.5 E 2.5(#Q)180 724.8 S(uote the current or pre)-2.5 E(vious w)
--.25 E(ord)-.1 E(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(6)
+-.25 E(ord)-.1 E(GNU Readline 8.0)72 768 Q(2017 December 28)121.245 E(6)
 190.955 E 0 Cg EP
 %%Page: 7 7
 %%BeginPageSetup
@@ -981,7 +981,7 @@ E(beginning\255of\255line \(C\255a\))108 616.8 Q F0(Mo)144 628.8 Q .3
 664.8 S(rward\255char \(C\255f\)).25 E F0(Mo)144 676.8 Q .3 -.15(ve f)
 -.15 H(orw).15 E(ard a character)-.1 E(.)-.55 E F1
 (backward\255char \(C\255b\))108 688.8 Q F0(Mo)144 700.8 Q .3 -.15(ve b)
--.15 H(ack a character).15 E(.)-.55 E(GNU Readline 7.0)72 768 Q
+-.15 H(ack a character).15 E(.)-.55 E(GNU Readline 8.0)72 768 Q
 (2017 December 28)121.245 E(7)190.955 E 0 Cg EP
 %%Page: 8 8
 %%BeginPageSetup
@@ -1070,7 +1070,7 @@ g of characters between the start of the current)-.1 F .12
 (and the point.)144 700.8 R .036(The search string must match at the be)
 5.036 F .035(ginning of a history line.)-.15 F .035
 (This is a non-incre-)5.035 F(mental search.)144 712.8 Q
-(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(8)190.955 E 0 Cg
+(GNU Readline 8.0)72 768 Q(2017 December 28)121.245 E(8)190.955 E 0 Cg
 EP
 %%Page: 9 9
 %%BeginPageSetup
@@ -1175,7 +1175,7 @@ Q F0 2.5(,f)C(or e)-2.5 E(xample.)-.15 E F1(tab\255insert \(M-T)108
 700.8 R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F
 -.05(ga)-.15 G(ti).05 E 1.998 -.15(ve a)-.25 H -.18(rg).15 G 1.698
 (ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 712.8 S(rd, b).1
-E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E(GNU Readline 7.0)72
+E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E(GNU Readline 8.0)72
 768 Q(2017 December 28)121.245 E(9)190.955 E 0 Cg EP
 %%Page: 10 10
 %%BeginPageSetup
@@ -1269,7 +1269,7 @@ F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 693.6 Q
 (gument already accumulating, or start a ne)-.18 F 2.867(wa)-.25 G -.18
 (rg)-2.867 G 2.867(ument. M\255\255).18 F .366(starts a ne)2.867 F -.05
 (ga)-.15 G(-).05 E(ti)144 729.6 Q .3 -.15(ve a)-.25 H -.18(rg).15 G
-(ument.).18 E(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(10)
+(ument.).18 E(GNU Readline 8.0)72 768 Q(2017 December 28)121.245 E(10)
 185.955 E 0 Cg EP
 %%Page: 11 11
 %%BeginPageSetup
@@ -1376,7 +1376,7 @@ F0 1.777(\214le, and incorporate an)4.276 F 4.277(yb)-.15 G 1.777
 686.4 Q F1(abort \(C\255g\))108 698.4 Q F0 3.249
 (Abort the current editing command and ring the terminal')144 710.4 R
 5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1
-(bell\255style)144 722.4 Q F0(\).)A(GNU Readline 7.0)72 768 Q
+(bell\255style)144 722.4 Q F0(\).)A(GNU Readline 8.0)72 768 Q
 (2017 December 28)121.245 E(11)185.955 E 0 Cg EP
 %%Page: 12 12
 %%BeginPageSetup
@@ -1484,7 +1484,7 @@ F0(editing mode.)2.5 E/F4 10.95/Times-Bold@0 SF(DEF)72 700.8 Q -.548(AU)
 (Characters with the eighth bit set are written as)5.064 F .527
 (M\255<character>, and are referred to as)108 724.8 R F2(meta\214ed)
 3.407 E F0 3.027(characters. The)3.797 F .527
-(printable ASCII characters not mentioned)3.027 F(GNU Readline 7.0)72
+(printable ASCII characters not mentioned)3.027 F(GNU Readline 8.0)72
 768 Q(2017 December 28)121.245 E(12)185.955 E 0 Cg EP
 %%Page: 13 13
 %%BeginPageSetup
@@ -1535,7 +1535,7 @@ R(g)-.18 E 2.5("M-C-[" complete)151.2 657.6 R 2.5("M-C-]" character)
 151.2 669.6 R(-search-backw)-.2 E(ard)-.1 E 2.5("M-space" set-mark)151.2
 681.6 R 2.5("M-#" insert-comment)151.2 693.6 R 2.5("M-&" tilde-e)151.2
 705.6 R(xpand)-.15 E 2.5("M-*" insert-completions)151.2 717.6 R 2.5
-("M--" digit-ar)151.2 729.6 R(gument)-.18 E(GNU Readline 7.0)72 768 Q
+("M--" digit-ar)151.2 729.6 R(gument)-.18 E(GNU Readline 8.0)72 768 Q
 (2017 December 28)121.245 E(13)185.955 E 0 Cg EP
 %%Page: 14 14
 %%BeginPageSetup
@@ -1577,7 +1577,7 @@ R(xpand)-.15 E 2.5("M-C-?" backw)151.2 420 R(ard-kill-w)-.1 E(ord)-.1 E
 ("C-R" re)151.2 681.6 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
 ("C-S" forw)151.2 693.6 R(ard-search-history)-.1 E 2.5
 ("C-T" transpose-chars)151.2 705.6 R 2.5("C-U" unix-line-discard)151.2
-717.6 R 2.5("C-V" quoted-insert)151.2 729.6 R(GNU Readline 7.0)72 768 Q
+717.6 R 2.5("C-V" quoted-insert)151.2 729.6 R(GNU Readline 8.0)72 768 Q
 (2017 December 28)121.245 E(14)185.955 E 0 Cg EP
 %%Page: 15 15
 %%BeginPageSetup
@@ -1616,7 +1616,7 @@ R(ard-delete-char)-.1 E(VI Command Mode functions)151.2 160.8 Q 2.5
 664.8 R(-search)-.2 E 2.5("G" vi-fetch-history)151.2 676.8 R 2.5
 ("I" vi-insert-be)151.2 688.8 R(g)-.15 E 2.5("N" vi-search-ag)151.2
 700.8 R(ain)-.05 E 2.5("P" vi-put)151.2 712.8 R 2.5("R" vi-replace)151.2
-724.8 R(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(15)185.955
+724.8 R(GNU Readline 8.0)72 768 Q(2017 December 28)121.245 E(15)185.955
 E 0 Cg EP
 %%Page: 16 16
 %%BeginPageSetup
@@ -1671,7 +1671,7 @@ F0(initialization \214le)2.5 E F1 -.548(AU)72 578.4 S(THORS).548 E F0
 (gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 729.6 Q
 (ug reports concerning this manual page should be directed to)-.2 E F2
 -.15(ch)2.5 G(et.r).15 E(ame)-.15 E(y@case)-.3 E(.edu)-.15 E F0(.).25 E
-(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(16)185.955 E 0 Cg
+(GNU Readline 8.0)72 768 Q(2017 December 28)121.245 E(16)185.955 E 0 Cg
 EP
 %%Page: 17 17
 %%BeginPageSetup
@@ -1680,7 +1680,7 @@ BP
 /F0 10/Times-Roman@0 SF 117.355(READLINE\(3\) Library)72 48 R
 (Functions Manual)2.5 E(READLINE\(3\))119.855 E/F1 10.95/Times-Bold@0 SF
 -.11(BU)72 84 S(GS).11 E F0(It')108 96 Q 2.5(st)-.55 G
-(oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 7.0)72 768 Q
+(oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 8.0)72 768 Q
 (2017 December 28)121.245 E(17)185.955 E 0 Cg EP
 %%Trailer
 end
index 3624ea3e423a33800ddd05cd2d691d46f45207a3..15231392a3eaaab9a91782af9b2e15081da3f771 100644 (file)
@@ -7,7 +7,7 @@ This document describes the GNU Readline Library, a utility for aiding
 in the consistency of user interface across discrete programs that need
 to provide a command line interface.
 
-Copyright (C) 1988--2016 Free Software Foundation, Inc.
+Copyright (C) 1988--2019 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -720,19 +720,22 @@ Return the name matching @var{keymap}.  @var{name} is one which would
 be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}).
 @end deftypefun
 
-@deftypefun void rl_set_keymap (const char *name, Keymap keymap)
+@deftypefun int rl_set_keymap_name (const char *name, Keymap keymap)
 Set the name of @var{keymap}.  This name will then be "registered" and
 available for use in a @code{set keymap} inputrc directive
 @pxref{Readline Init File}).
-The @var{name} may not be one of Readline's builtin names;
+The @var{name} may not be one of Readline's builtin keymap names;
 you may not add a different name for one of Readline's builtin keymaps.
-Readline will make a copy of @var{name}.
 You may replace the name associated with a given keymap by calling this
-function two or more times with the same @var{keymap} argument.
-You can associate a registered name with a new keymap by calling this
-function two or more times with the same @var{name} argument.
+function more than once with the same @var{keymap} argument.
+You may associate a registered @var{name} with a new keymap by calling this
+function more than once  with the same @var{name} argument.
 There is no way to remove a named keymap once the name has been
 registered.
+Readline will make a copy of @var{name}.
+The return value is greater than zero unless @var{name} is one of
+Readline's builtin keymap names or @var{keymap} is one of Readline's
+builtin keymaps.
 @end deftypefun
 
 @node Binding Keys
@@ -1730,8 +1733,8 @@ to determine whether or not there are any pending signals.
 
 If an application does not wish Readline to catch @code{SIGWINCH}, it may
 call @code{rl_resize_terminal()} or @code{rl_set_screen_size()} to force
-Readline to update its idea of the terminal size when a @code{SIGWINCH}
-is received.
+Readline to update its idea of the terminal size when it receives
+a @code{SIGWINCH}.
 
 @deftypefun void rl_echo_signal_char (int sig)
 If an application wishes to install its own signal handlers, but still
@@ -1748,11 +1751,14 @@ Update Readline's internal screen size by reading values from the kernel.
 Set Readline's idea of the terminal size to @var{rows} rows and
 @var{cols} columns.  If either @var{rows} or @var{columns} is less than
 or equal to 0, Readline's idea of that terminal dimension is unchanged.
+This is intended to tell Readline the physical dimensions of the terminal,
+and is used internally to calculate the maximum number of characters that
+may appear on the screen.
 @end deftypefun
 
 If an application does not want to install a @code{SIGWINCH} handler, but
-is still interested in the screen dimensions, Readline's idea of the screen
-size may be queried.
+is still interested in the screen dimensions, it may query Readline's idea
+of the screen size.
 
 @deftypefun void rl_get_screen_size (int *rows, int *cols)
 Return Readline's idea of the terminal's size in the
@@ -2143,6 +2149,8 @@ character (@samp{\0}) prevents anything being appended automatically.
 This can be changed in application-specific completion functions to
 provide the ``most sensible word separator character'' according to
 an application-specific command line syntax specification.
+It is set to the default before any application-specific completion function
+is called, and may only be changed within such a function.
 @end deftypevar
 
 @deftypevar int rl_completion_suppress_append
index 48b32e91d77198456e64e53745607a48a9f20871..41f1da4646b1204b65879e95ebc5ed734a60a7d4 100644 (file)
@@ -350,6 +350,11 @@ file is taken from the value of the environment variable @env{INPUTRC}.  If
 that variable is unset, the default is @file{~/.inputrc}.  If that
 file does not exist or cannot be read, the ultimate default is
 @file{/etc/inputrc}.
+@ifset BashFeatures
+The @w{@code{bind}} builtin command can also be used to set Readline
+keybindings and variables.
+@xref{Bash Builtins}.
+@end ifset
 
 When a program which uses the Readline library starts up, the
 init file is read, and the key bindings are set.
@@ -1851,6 +1856,9 @@ If no compspec is found for the full pathname, an attempt is made to
 find a compspec for the portion following the final slash.
 If those searches do not result in a compspec, any compspec defined with
 the @option{-D} option to @code{complete} is used as the default.
+If there is no default compspec, Bash attempts alias expansion
+on the command word as a final resort, and attempts to find a compspec
+for the command word from any successful expansion 
 
 Once a compspec has been found, it is used to generate the list of
 matching words.
@@ -2041,7 +2049,7 @@ The @option{-E} option indicates that other supplied options and actions should
 apply to ``empty'' command completion; that is, completion attempted on a 
 blank line.
 The @option{-I} option indicates that other supplied options and actions should
-apply to completion on the inital non-assignment word on the line, or after a
+apply to completion on the initial non-assignment word on the line, or after a
 command delimiter such as @samp{;} or @samp{|}, which is usually command
 name completion.
 If multiple options are supplied, the @option{-D} option takes precedence
@@ -2252,7 +2260,7 @@ The @option{-E} option indicates that other supplied options should
 apply to ``empty'' command completion; that is, completion attempted on a 
 blank line.
 The @option{-I} option indicates that other supplied options should
-apply to completion on the inital non-assignment word on the line, or after a
+apply to completion on the initial non-assignment word on the line, or after a
 command delimiter such as @samp{;} or @samp{|}, which is usually command
 name completion.
 
@@ -2367,7 +2375,7 @@ character to the directory name, in case we want to append to it.
 The @option{-o bashdefault} option brings in the rest of the "Bash default"
 completions -- possible completion that Bash adds to the default Readline
 set.  These include things like command name completion, variable completion
-for words beginning with @samp{@{}, completions containing pathname
+for words beginning with @samp{$} or @samp{$@{}, completions containing pathname
 expansion patterns (@pxref{Filename Expansion}), and so on.
 
 Once installed using @code{complete}, @code{_comp_cd} will be called every
@@ -2377,7 +2385,7 @@ Many more examples -- an extensive collection of completions for most of
 the common GNU, Unix, and Linux commands -- are available as part of the
 bash_completion project.  This is installed by default on many GNU/Linux
 distributions.  Originally written by Ian Macdonald, the project now lives
-at @url{http://bash-completion.alioth.debian.org/}.  There are ports for
+at @url{https://github.com/scop/bash-completion/}.  There are ports for
 other systems such as Solaris and Mac OS X.
 
 An older version of the bash_completion package is distributed with bash
index 0f783717c966755bc778c22874173a100a6dd5c8..7e9ae88c99dab94249d02fa593b1a15bcc6901a7 100644 (file)
Binary files a/doc/rluserman.dvi and b/doc/rluserman.dvi differ
index 7c99199c122dce69a66949a2e882851a7583b37f..9d8a747a57f0f91d45d306996195160d7664eb1b 100644 (file)
@@ -1,6 +1,6 @@
 <HTML>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on September, 19  2018 by texi2html 1.64 -->
+<!-- Created on April, 17  2019 by texi2html 1.64 -->
 <!-- 
 Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -2981,7 +2981,7 @@ to permit their use in free software.
 <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
 </TR></TABLE>
 <H1>About this document</H1>
-This document was generated by <I>chet</I> on <I>September, 19  2018</I>
+This document was generated by <I>chet</I> on <I>April, 17  2019</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 <P></P>  
@@ -3143,7 +3143,7 @@ the following structure:
 <BR>  
 <FONT SIZE="-1">
 This document was generated
-by <I>chet</I> on <I>September, 19  2018</I>
+by <I>chet</I> on <I>April, 17  2019</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 
index 4560faa274cb51240305ddbf16d447779e8b2d98..0b714479e054169ad48586d13ae2a62ba803c8f0 100644 (file)
@@ -2,9 +2,9 @@ This is rluserman.info, produced by makeinfo version 6.5 from
 rluserman.texi.
 
 This manual describes the end user interface of the GNU Readline Library
-(version 8.0, 18 September 2018), a library which aids in the
-consistency of user interface across discrete programs which provide a
-command line interface.
+(version 8.0, 6 March 2019), a library which aids in the consistency of
+user interface across discrete programs which provide a command line
+interface.
 
    Copyright (C) 1988-2016 Free Software Foundation, Inc.
 
@@ -1964,29 +1964,29 @@ their use in free software.
 
 \1f
 Tag Table:
-Node: Top\7f909
-Node: Command Line Editing\7f1431
-Node: Introduction and Notation\7f2085
-Node: Readline Interaction\7f3710
-Node: Readline Bare Essentials\7f4903
-Node: Readline Movement Commands\7f6688
-Node: Readline Killing Commands\7f7650
-Node: Readline Arguments\7f9570
-Node: Searching\7f10616
-Node: Readline Init File\7f12770
-Node: Readline Init File Syntax\7f13925
-Node: Conditional Init Constructs\7f34085
-Node: Sample Init File\7f38283
-Node: Bindable Readline Commands\7f41402
-Node: Commands For Moving\7f42458
-Node: Commands For History\7f44026
-Node: Commands For Text\7f48292
-Node: Commands For Killing\7f51735
-Node: Numeric Arguments\7f53903
-Node: Commands For Completion\7f55044
-Node: Keyboard Macros\7f57014
-Node: Miscellaneous Commands\7f57703
-Node: Readline vi Mode\7f61626
-Node: GNU Free Documentation License\7f62540
+Node: Top\7f904
+Node: Command Line Editing\7f1426
+Node: Introduction and Notation\7f2080
+Node: Readline Interaction\7f3705
+Node: Readline Bare Essentials\7f4898
+Node: Readline Movement Commands\7f6683
+Node: Readline Killing Commands\7f7645
+Node: Readline Arguments\7f9565
+Node: Searching\7f10611
+Node: Readline Init File\7f12765
+Node: Readline Init File Syntax\7f13920
+Node: Conditional Init Constructs\7f34080
+Node: Sample Init File\7f38278
+Node: Bindable Readline Commands\7f41397
+Node: Commands For Moving\7f42453
+Node: Commands For History\7f44021
+Node: Commands For Text\7f48287
+Node: Commands For Killing\7f51730
+Node: Numeric Arguments\7f53898
+Node: Commands For Completion\7f55039
+Node: Keyboard Macros\7f57009
+Node: Miscellaneous Commands\7f57698
+Node: Readline vi Mode\7f61621
+Node: GNU Free Documentation License\7f62535
 \1f
 End Tag Table
index 4efa4fc89426d45a467a4e2c977d9360728ec201..7c4af305122d9d898f18a0bdff92c8cb8590052f 100644 (file)
Binary files a/doc/rluserman.pdf and b/doc/rluserman.pdf differ
index e797e4b8687fde6408761ab2da034321f986e5ef..4cc6e2a983920736d1eee84e950d8e2ab48723b1 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Creator: dvips(k) 5.998 Copyright 2018 Radical Eye Software
 %%Title: rluserman.dvi
-%%CreationDate: Wed Sep 19 15:10:43 2018
+%%CreationDate: Wed Apr 17 13:02:34 2019
 %%Pages: 34
 %%PageOrder: Ascend
 %%BoundingBox: 0 0 612 792
@@ -12,7 +12,7 @@
 %DVIPSWebPage: (www.radicaleye.com)
 %DVIPSCommandLine: dvips -D 600 -t letter -o rluserman.ps rluserman.dvi
 %DVIPSParameters: dpi=600
-%DVIPSSource:  TeX output 2018.09.19:1110
+%DVIPSSource:  TeX output 2019.04.17:0902
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -5141,29 +5141,29 @@ ifelse
 TeXDict begin 1 0 bop 150 1318 a Fp(GNU)65 b(Readline)g(Library)g(User)
 g(In)-5 b(terface)p 150 1418 3600 34 v 1873 1515 a Fo(Edition)30
 b(8.0,)i(for)e Fn(Readline)e(Library)h Fo(V)-8 b(ersion)31
-b(8.0.)3118 1623 y(Septem)m(b)s(er)f(2018)150 4927 y
-Fm(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
-b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
-b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
-b(oundation)p 150 5141 3600 17 v eop end
+b(8.0.)3285 1623 y(Marc)m(h)g(2019)150 4927 y Fm(Chet)45
+b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l
+(ersit)l(y)150 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11
+b(ree)45 b(Soft)l(w)l(are)h(F)-11 b(oundation)p 150 5141
+3600 17 v eop end
 %%Page: 2 2
-TeXDict begin 2 1 bop 150 4413 a Fo(This)29 b(man)m(ual)g(describ)s(es)
-g(the)h(end)e(user)h(in)m(terface)i(of)f(the)f(GNU)h(Readline)g
-(Library)f(\(v)m(ersion)h(8.0,)h(18)150 4523 y(Septem)m(b)s(er)36
-b(2018\),)k(a)d(library)f(whic)m(h)g(aids)g(in)g(the)h(consistency)g
-(of)g(user)e(in)m(terface)j(across)f(discrete)150 4633
-y(programs)30 b(whic)m(h)g(pro)m(vide)h(a)f(command)g(line)h(in)m
-(terface.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577
-4767 y Fl(\015)f Fo(1988{2016)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)
--8 b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21
-b(is)f(gran)m(ted)h(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s
-(dify)e(this)i(do)s(cumen)m(t)f(under)f(the)390 5011
-y(terms)25 b(of)h(the)f(GNU)h(F)-8 b(ree)27 b(Do)s(cumen)m(tation)g
-(License,)g(V)-8 b(ersion)26 b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)
-390 5121 y(published)43 b(b)m(y)h(the)h(F)-8 b(ree)46
-b(Soft)m(w)m(are)g(F)-8 b(oundation;)53 b(with)44 b(no)g(In)m(v)-5
-b(arian)m(t)46 b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)
-31 b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8
+TeXDict begin 2 1 bop 150 4413 a Fo(This)38 b(man)m(ual)h(describ)s(es)
+f(the)h(end)f(user)g(in)m(terface)i(of)f(the)g(GNU)g(Readline)g
+(Library)f(\(v)m(ersion)i(8.0,)150 4523 y(6)j(Marc)m(h)g(2019\),)k(a)c
+(library)f(whic)m(h)g(aids)g(in)h(the)f(consistency)h(of)g(user)e(in)m
+(terface)j(across)f(discrete)150 4633 y(programs)30 b(whic)m(h)g(pro)m
+(vide)h(a)f(command)g(line)h(in)m(terface.)150 4767 y(Cop)m(yrigh)m(t)
+602 4764 y(c)577 4767 y Fl(\015)f Fo(1988{2016)35 b(F)-8
+b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390
+4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
+b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f
+(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
+b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
+b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43
+b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8
+b(oundation;)53 b(with)44 b(no)g(In)m(v)-5 b(arian)m(t)46
+b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)31
+b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8
 b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390
 5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8
 b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end
index 7e08db61a2b67464340beb57df9a4a0b695d0927..f9c774ce32dbd8025f72b91d94b4c00061fc8f96 100644 (file)
@@ -1,10 +1,10 @@
 @ignore
-Copyright (C) 1988-2018 Free Software Foundation, Inc. 
+Copyright (C) 1988-2019 Free Software Foundation, Inc. 
 @end ignore
 
 @set EDITION 8.0
 @set VERSION 8.0
-@set UPDATED 18 September 2018
-@set UPDATED-MONTH September 2018
+@set UPDATED 6 March 2019
+@set UPDATED-MONTH March 2019
 
-@set LASTCHANGE Tue Sep 18 13:08:12 EDT 2018
+@set LASTCHANGE Wed Mar  6 09:51:02 EST 2019
index 5e895513c316a0623a60d9e7f8ae96b4a306344b..0a0988320a6ee22fe79fc69c9209d50e02bc6849 100644 (file)
@@ -12,7 +12,8 @@ AC_CACHE_VAL(bash_cv_termcap_lib,
     [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
         [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
            [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
-               bash_cv_termcap_lib=gnutermcap)])])])])])
+                [AC_CHECK_LIB(ncursesw, tgetent, bash_cv_termcap_lib=libncursesw,
+                   bash_cv_termcap_lib=gnutermcap)])])])])])])
 if test "X$_bash_needmsg" = "Xyes"; then
 AC_MSG_CHECKING(which library has the termcap functions)
 fi
index dc64bde1c5acf8c117080eb7c783a2cd3181311d..aa34fe2db4c7631a093602feaadfb4bbc5750219 100644 (file)
@@ -1,6 +1,6 @@
 /* histfile.c - functions to manipulate the history file. */
 
-/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2019 Free Software Foundation, Inc.
 
    This file contains the GNU History Library (History), a set of
    routines for managing the text of previously typed lines.
 
 #endif /* HISTORY_USE_MMAP */
 
+#if defined(_WIN32)
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+#endif
+
 /* If we're compiling for __EMX__ (OS/2) or __CYGWIN__ (cygwin32 environment
    on win 95/98/nt), we want to open files with O_BINARY mode so that there
    is no \n -> \r\n conversion performed.  On other systems, we don't want to
@@ -138,6 +143,7 @@ static char *history_backupfile PARAMS((const char *));
 static char *history_tempfile PARAMS((const char *));
 static int histfile_backup PARAMS((const char *, const char *));
 static int histfile_restore PARAMS((const char *, const char *));
+static int history_rename PARAMS((const char *, const char *));
 
 /* Return the string that should be used in the place of this
    filename.  This only matters when you don't specify the
@@ -305,6 +311,7 @@ read_history_range (const char *filename, int from, int to)
   if (file_size == 0)
     {
       free (input);
+      close (file);
       return 0;        /* don't waste time if we don't have to */
     }
 
@@ -435,6 +442,18 @@ read_history_range (const char *filename, int from, int to)
   return (0);
 }
 
+/* We need a special version for WIN32 because Windows rename() refuses to
+   overwrite an existing file. */
+static int
+history_rename (const char *old, const char *new)
+{
+#if defined (_WIN32)
+  return (MoveFileEx (old, new, MOVEFILE_REPLACE_EXISTING) == 0 ? -1 : 0);
+#else
+  return (rename (old, new));
+#endif
+}
+
 /* Save FILENAME to BACK, handling case where FILENAME is a symlink
    (e.g., ~/.bash_history -> .histfiles/.bash_history.$HOSTNAME) */
 static int
@@ -448,10 +467,10 @@ histfile_backup (const char *filename, const char *back)
   if ((n = readlink (filename, linkbuf, sizeof (linkbuf) - 1)) > 0)
     {
       linkbuf[n] = '\0';
-      return (rename (linkbuf, back));
+      return (history_rename (linkbuf, back));
     }
 #endif
-  return (rename (filename, back));
+  return (history_rename (filename, back));
 }
 
 /* Restore ORIG from BACKUP handling case where ORIG is a symlink
@@ -467,10 +486,10 @@ histfile_restore (const char *backup, const char *orig)
   if ((n = readlink (orig, linkbuf, sizeof (linkbuf) - 1)) > 0)
     {
       linkbuf[n] = '\0';
-      return (rename (backup, linkbuf));
+      return (history_rename (backup, linkbuf));
     }
 #endif
-  return (rename (backup, orig));
+  return (history_rename (backup, orig));
 }
 
 /* Truncate the history file FNAME, leaving only LINES trailing lines.
index b6771fda232c54f1c8a68043f6d69d3ff208deed..7a426c96781429785f1b44ad3241da43e63df545 100644 (file)
@@ -199,7 +199,7 @@ int
 _hs_history_patsearch (const char *string, int direction, int flags)
 {
   char *pat;
-  size_t len;
+  size_t len, start;
   int ret, unescaped_backslash;
 
 #if defined (HAVE_FNMATCH)
@@ -216,12 +216,26 @@ _hs_history_patsearch (const char *string, int direction, int flags)
     }
   if (unescaped_backslash)
     return -1;
-  pat = (char *)xmalloc (len + 2);
+  pat = (char *)xmalloc (len + 3);
+  /* If the search string is not anchored, we'll be calling fnmatch (assuming
+     we have it). Prefix a `*' to the front of the search string so we search
+     anywhere in the line. */
+  if ((flags & ANCHORED_SEARCH) == 0 && string[0] != '*')
+    {
+      pat[0] = '*';
+      start = 1;
+      len++;
+    }
+  else
+    {
+      start = 0;
+    }
+
   /* Attempt to reduce the number of searches by tacking a `*' onto the end
      of a pattern that doesn't have one.  Assume a pattern that ends in a
      backslash contains an even number of trailing backslashes; we check
      above */
-  strcpy (pat, string);
+  strcpy (pat + start, string);
   if (pat[len - 1] != '*')
     {
       pat[len] = '*';          /* XXX */
diff --git a/input.c b/input.c
index 00916456e5d560e40f73db11966f464d0d60b9fd..a5573305773d6f3435763d66cda983a35f2b4744 100644 (file)
--- a/input.c
+++ b/input.c
@@ -102,15 +102,29 @@ static int rl_gather_tyi PARAMS((void));
 /* Windows isatty returns true for every character device, including the null
    device, so we need to perform additional checks. */
 #if defined (_WIN32) && !defined (__CYGWIN__)
-#include <conio.h>
 #include <io.h>
+#include <conio.h>
 #define WIN32_LEAN_AND_MEAN 1
 #include <windows.h>
 
 int
 win32_isatty (int fd)
 {
-  return (_isatty (fd) ? ((((long) (HANDLE) _get_osfhandle (fd)) & 3) == 3) : 0);
+  if (_isatty(fd))
+    {
+      HANDLE h;
+      DWORD ignored;
+
+      if ((h = (HANDLE) _get_osfhandle (fd)) == INVALID_HANDLE_VALUE)
+       {
+         errno = EBADF;
+         return 0;
+       }
+      if (GetConsoleMode (h, &ignored) != 0)
+       return 1;
+    }
+  errno = ENOTTY;
+  return 0;
 }
 
 #define isatty(x)      win32_isatty(x)
@@ -582,6 +596,10 @@ handle_error:
       else if (_rl_caught_signal == SIGINT)
 #endif
         RL_CHECK_SIGNALS ();
+#if defined (SIGTSTP)
+      else if (_rl_caught_signal == SIGTSTP)
+       RL_CHECK_SIGNALS ();
+#endif
       /* non-keyboard-generated signals of interest */
 #if defined (SIGWINCH)
       else if (_rl_caught_signal == SIGWINCH)
index 3c5f74b23d562689dcfe012fefdbd10a1717387f..d6c59041772cdb539db2076c7615328d47bbcc9b 100644 (file)
--- a/isearch.c
+++ b/isearch.c
@@ -328,6 +328,9 @@ int
 _rl_isearch_dispatch (_rl_search_cxt *cxt, int c)
 {
   int n, wstart, wlen, limit, cval, incr;
+  char *paste;
+  size_t pastelen;
+  int j;
   rl_command_func_t *f;
 
   f = (rl_command_func_t *)NULL;
@@ -398,6 +401,8 @@ add_character:
        cxt->lastc = -5;
       else if (c == CTRL ('Y') || f == rl_yank)        /* XXX */
        cxt->lastc = -6;
+      else if (f == rl_bracketed_paste_begin)
+       cxt->lastc = -7;
     }
 
   /* If we changed the keymap earlier while translating a key sequence into
@@ -620,6 +625,23 @@ add_character:
       cxt->search_string[cxt->search_string_index] = '\0';
       break;
 
+    case -7:   /* bracketed paste */
+      paste = _rl_bracketed_text (&pastelen);
+      if (paste == 0 || *paste == 0)
+       {
+         free (paste);
+         break;
+       }
+      if (cxt->search_string_index + pastelen + 1 >= cxt->search_string_size)
+       {
+         cxt->search_string_size += pastelen + 2;
+         cxt->search_string = (char *)xrealloc (cxt->search_string, cxt->search_string_size);
+       }
+      strcpy (cxt->search_string + cxt->search_string_index, paste);
+      cxt->search_string_index += pastelen;
+      free (paste);
+      break;
+
     /* Add character to search string and continue search. */
     default:
 #if defined (HANDLE_MULTIBYTE)
diff --git a/kill.c b/kill.c
index 9fdfc77280cc43c23fdb42fbb493eea446bf9fea..cf8ca93243b8b282f70c2f0b3ea7657e34c1b49c 100644 (file)
--- a/kill.c
+++ b/kill.c
@@ -670,16 +670,16 @@ rl_yank_last_arg (int count, int key)
    `bracketed paste' sequence, read the rest of the pasted input until the
    closing sequence and insert the pasted text as a single unit without
    interpretation. */
-int
-rl_bracketed_paste_begin (int count, int key)
+char *
+_rl_bracketed_text (size_t *lenp)
 {
-  int retval, c;
+  int c;
   size_t len, cap;
   char *buf;
 
-  retval = 0;
   len = 0;
   buf = xmalloc (cap = 64);
+  buf[0] = '\0';
 
   RL_SETSTATE (RL_STATE_MOREINPUT);
   while ((c = rl_read_key ()) >= 0)
@@ -708,9 +708,23 @@ rl_bracketed_paste_begin (int count, int key)
       if (len == cap)
        buf = xrealloc (buf, cap + 1);
       buf[len] = '\0';
-      retval = rl_insert_text (buf) == len ? 0 : 1;
     }
 
+  if (lenp)
+    *lenp = len;
+  return (buf);
+}
+
+int
+rl_bracketed_paste_begin (int count, int key)
+{
+  int retval, c;
+  size_t len, cap;
+  char *buf;
+
+  buf = _rl_bracketed_text (&len);
+  retval = rl_insert_text (buf) == len ? 0 : 1;
+
   xfree (buf);
   return (retval);
 }
diff --git a/misc.c b/misc.c
index 64b1457d29e8af0bcefc6553ca97e93cf0cd6ad0..5e7979312cae622be6afb14abbdb341d31d2e188 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -1,6 +1,6 @@
 /* misc.c -- miscellaneous bindable readline functions. */
 
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2019 Free Software Foundation, Inc.
 
    This file is part of the GNU Readline Library (Readline), a library
    for reading lines of text with interactive input and history editing.      
@@ -435,7 +435,7 @@ rl_replace_from_history (HIST_ENTRY *entry, int flags)
    intended to be called while actively editing, and the current line is
    not assumed to have been added to the history list. */
 void
-_rl_revert_all_lines (void)
+_rl_revert_previous_lines (void)
 {
   int hpos;
   HIST_ENTRY *entry;
@@ -479,6 +479,19 @@ _rl_revert_all_lines (void)
   xfree (lbuf);
 }  
 
+/* Revert all lines in the history by making sure we are at the end of the
+   history before calling _rl_revert_previous_lines() */
+void
+_rl_revert_all_lines (void)
+{
+  int pos;
+
+  pos = where_history ();
+  using_history ();
+  _rl_revert_previous_lines ();
+  history_set_pos (pos);
+}
+
 /* Free the history list, including private readline data and take care
    of pointer aliases to history data.  Resets rl_undo_list if it points
    to an UNDO_LIST * saved as some history entry's data member.  This
@@ -611,7 +624,7 @@ rl_get_previous_history (int count, int key)
 
   if (temp == 0)
     {
-      rl_maybe_unsave_line ();
+      _rl_free_saved_history_line ();
       rl_ding ();
     }
   else
index 678f989c51aba1d522b366e67ed93968ced01cc1..0805fd4b1da575132c961faa3e584c4261defcdc 100644 (file)
@@ -1,7 +1,7 @@
 /* readline.c -- a general facility for reading lines of input
    with emacs style editing and completion. */
 
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2019 Free Software Foundation, Inc.
 
    This file is part of the GNU Readline Library (Readline), a library
    for reading lines of text with interactive input and history editing.      
index a7f2cf3877f615d7402f17d953e04cc28b292d44..ff79d7117886bf4a376e902fa0537e7aa43cdd4b 100644 (file)
@@ -9,4 +9,4 @@ URL: http://tiswww.cwru.edu/php/chet/readline/rltop.html
 Version: @LIBVERSION@
 Requires.private: @TERMCAP_PKG_CONFIG_LIB@
 Libs: -L${libdir} -lreadline
-Cflags: -I${includedir}/readline
+Cflags: -I${includedir}
index 69943de5270eac2316a4730b6a413002294866d8..38e1dc79bf6fc2fd605bad56156c431662235624 100644 (file)
@@ -1,7 +1,7 @@
 /* rlprivate.h -- functions and variables global to the readline library,
                  but not intended for use by applications. */
 
-/* Copyright (C) 1999-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2019 Free Software Foundation, Inc.
 
    This file is part of the GNU Readline Library (Readline), a library
    for reading lines of text with interactive input and history editing.      
@@ -309,6 +309,8 @@ extern int _rl_search_getchar PARAMS((_rl_search_cxt *));
 #define BRACK_PASTE_INIT       "\033[?2004h"
 #define BRACK_PASTE_FINI       "\033[?2004l\r"
 
+extern char *_rl_bracketed_text PARAMS((size_t *));
+
 /* macro.c */
 extern void _rl_with_macro_input PARAMS((char *));
 extern int _rl_peek_macro_key PARAMS((void));
@@ -330,6 +332,7 @@ extern void _rl_start_using_history PARAMS((void));
 extern int _rl_free_saved_history_line PARAMS((void));
 extern void _rl_set_insert_mode PARAMS((int, int));
 
+extern void _rl_revert_previous_lines PARAMS((void));
 extern void _rl_revert_all_lines PARAMS((void));
 
 /* nls.c */
@@ -523,7 +526,6 @@ extern int _rl_executing_keyseq_size;
 extern _rl_search_cxt *_rl_nscxt;
 
 /* signals.c */
-extern int _rl_interrupt_immediately;
 extern int volatile _rl_caught_signal;
 
 extern _rl_sigcleanup_func_t *_rl_sigcleanup;
index 649256114bdd556769d1756242900a51da8e30fd..d3920d4b6f18faf020b63a00fdbac76bf74bb892 100644 (file)
--- a/search.c
+++ b/search.c
@@ -135,7 +135,7 @@ noninc_search_from_pos (char *string, int pos, int dir, int flags, int *ncp)
          sflags |= ANCHORED_SEARCH;
          s++;
        }
-      ret = _hs_history_patsearch (string, dir, sflags);
+      ret = _hs_history_patsearch (s, dir, sflags);
     }
   else if (*string == '^')
     ret = history_search_prefix (string + 1, dir);
@@ -256,6 +256,7 @@ _rl_nsearch_abort (_rl_search_cxt *cxt)
   rl_clear_message ();
   rl_point = cxt->save_point;
   rl_mark = cxt->save_mark;
+  _rl_fix_point (1);
   rl_restore_prompt ();
 
   RL_UNSETSTATE (RL_STATE_NSEARCH);
index 76c5c4733010b61e5a891ebcf0c3fd308274975e..d738db4ef00328ecf6431c858d911afbda17130f 100644 (file)
--- a/signals.c
+++ b/signals.c
@@ -99,7 +99,6 @@ int rl_catch_sigwinch = 0;    /* for the readline state struct in readline.c */
 #endif
 
 /* Private variables. */
-int _rl_interrupt_immediately = 0;
 int volatile _rl_caught_signal = 0;    /* should be sig_atomic_t, but that requires including <signal.h> everywhere */
 
 /* If non-zero, print characters corresponding to received signals as long as
@@ -163,14 +162,7 @@ _rl_signal_handler (int sig)
 static RETSIGTYPE
 rl_signal_handler (int sig)
 {
-  if (_rl_interrupt_immediately)
-    {
-      _rl_interrupt_immediately = 0;
-      _rl_handle_signal (sig);
-    }
-  else
-    _rl_caught_signal = sig;
-
+  _rl_caught_signal = sig;
   SIGHANDLER_RETURN;
 }
 
index 883a6713bf0350955aa7b8e2781b92c65f0c0121..18f8edc0ff54405d81247b07a34a647675a29b2e 100755 (executable)
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-05-19'
+timestamp='2018-08-29'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -84,8 +84,6 @@ if test $# != 0; then
   exit 1
 fi
 
-trap 'exit 1' 1 2 15
-
 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
 # compiler to aid in system detection is discouraged as it requires
 # temporary files to be created and, as you can see below, it is a
@@ -96,34 +94,39 @@ trap 'exit 1' 1 2 15
 
 # Portable tmp directory creation inspired by the Autoconf team.
 
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
- ,,)    echo "int x;" > "$dummy.c" ;
-       for c in cc gcc c89 c99 ; do
-         if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
-            CC_FOR_BUILD="$c"; break ;
-         fi ;
-       done ;
-       if test x"$CC_FOR_BUILD" = x ; then
-         CC_FOR_BUILD=no_compiler_found ;
-       fi
-       ;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 1 2 13 15
+trap 'exitcode=$?; test -z "$tmp" || rm -fr "$tmp"; exit $exitcode' 0
+
+set_cc_for_build() {
+    : "${TMPDIR=/tmp}"
+    # shellcheck disable=SC2039
+    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+       { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+       { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+       { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+    dummy=$tmp/dummy
+    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+       ,,)    echo "int x;" > "$dummy.c"
+              for driver in cc gcc c89 c99 ; do
+                  if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+                      CC_FOR_BUILD="$driver"
+                      break
+                  fi
+              done
+              if test x"$CC_FOR_BUILD" = x ; then
+                  CC_FOR_BUILD=no_compiler_found
+              fi
+              ;;
+       ,,*)   CC_FOR_BUILD=$CC ;;
+       ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+    esac
+}
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+if test -f /.attbin/uname ; then
        PATH=$PATH:/.attbin ; export PATH
 fi
 
@@ -138,7 +141,7 @@ Linux|GNU|GNU/*)
        # We could probably try harder.
        LIBC=gnu
 
-       eval "$set_cc_for_build"
+       set_cc_for_build
        cat <<-EOF > "$dummy.c"
        #include <features.h>
        #if defined(__UCLIBC__)
@@ -199,7 +202,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
                os=netbsdelf
                ;;
            arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-               eval "$set_cc_for_build"
+               set_cc_for_build
                if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
                        | grep -q __ELF__
                then
@@ -389,20 +392,15 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
        echo i386-pc-auroraux"$UNAME_RELEASE"
        exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-       eval "$set_cc_for_build"
-       SUN_ARCH=i386
-       # If there is a compiler, see if it is configured for 64-bit objects.
-       # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
-       # This test works for both compilers.
-       if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
-           if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-               (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-               grep IS_64BIT_ARCH >/dev/null
-           then
-               SUN_ARCH=x86_64
-           fi
-       fi
-       echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+       UNAME_REL="`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+       case `isainfo -b` in
+           32)
+               echo i386-pc-solaris2"$UNAME_REL"
+               ;;
+           64)
+               echo x86_64-pc-solaris2"$UNAME_REL"
+               ;;
+       esac
        exit ;;
     sun4*:SunOS:6*:*)
        # According to config.sub, this is the proper way to canonicalize
@@ -482,7 +480,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
        echo clipper-intergraph-clix"$UNAME_RELEASE"
        exit ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
-       eval "$set_cc_for_build"
+       set_cc_for_build
        sed 's/^        //' << EOF > "$dummy.c"
 #ifdef __cplusplus
 #include <stdio.h>  /* for printf() prototype */
@@ -579,7 +577,7 @@ EOF
        exit ;;
     *:AIX:2:3)
        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-               eval "$set_cc_for_build"
+               set_cc_for_build
                sed 's/^                //' << EOF > "$dummy.c"
                #include <sys/systemcfg.h>
 
@@ -660,7 +658,7 @@ EOF
                    esac
                fi
                if [ "$HP_ARCH" = "" ]; then
-                   eval "$set_cc_for_build"
+                   set_cc_for_build
                    sed 's/^            //' << EOF > "$dummy.c"
 
                #define _HPUX_SOURCE
@@ -700,7 +698,7 @@ EOF
        esac
        if [ "$HP_ARCH" = hppa2.0w ]
        then
-           eval "$set_cc_for_build"
+           set_cc_for_build
 
            # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
            # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
@@ -726,7 +724,7 @@ EOF
        echo ia64-hp-hpux"$HPUX_REV"
        exit ;;
     3050*:HI-UX:*:*)
-       eval "$set_cc_for_build"
+       set_cc_for_build
        sed 's/^        //' << EOF > "$dummy.c"
        #include <unistd.h>
        int
@@ -840,6 +838,17 @@ EOF
     *:BSD/OS:*:*)
        echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
        exit ;;
+    arm:FreeBSD:*:*)
+       UNAME_PROCESSOR=`uname -p`
+       set_cc_for_build
+       if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+           | grep -q __ARM_PCS_VFP
+       then
+           echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+       else
+           echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+       fi
+       exit ;;
     *:FreeBSD:*:*)
        UNAME_PROCESSOR=`/usr/bin/uname -p`
        case "$UNAME_PROCESSOR" in
@@ -881,7 +890,7 @@ EOF
        echo "$UNAME_MACHINE"-pc-uwin
        exit ;;
     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-       echo x86_64-unknown-cygwin
+       echo x86_64-pc-cygwin
        exit ;;
     prep*:SunOS:5.*:*)
        echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
@@ -894,8 +903,8 @@ EOF
        # other systems with GNU libc and userland
        echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
        exit ;;
-    i*86:Minix:*:*)
-       echo "$UNAME_MACHINE"-pc-minix
+    *:Minix:*:*)
+       echo "$UNAME_MACHINE"-unknown-minix
        exit ;;
     aarch64:Linux:*:*)
        echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
@@ -922,7 +931,7 @@ EOF
        echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     arm*:Linux:*:*)
-       eval "$set_cc_for_build"
+       set_cc_for_build
        if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_EABI__
        then
@@ -971,7 +980,7 @@ EOF
        echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
-       eval "$set_cc_for_build"
+       set_cc_for_build
        sed 's/^        //' << EOF > "$dummy.c"
        #undef CPU
        #undef ${UNAME_MACHINE}
@@ -1285,7 +1294,7 @@ EOF
        exit ;;
     *:Darwin:*:*)
        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       eval "$set_cc_for_build"
+       set_cc_for_build
        if test "$UNAME_PROCESSOR" = unknown ; then
            UNAME_PROCESSOR=powerpc
        fi
@@ -1358,6 +1367,7 @@ EOF
        # "uname -m" is not consistent, so use $cputype instead. 386
        # is converted to i386 for consistency with other x86
        # operating systems.
+       # shellcheck disable=SC2154
        if test "$cputype" = 386; then
            UNAME_MACHINE=i386
        else
index f38250f1daa021840e4b2ff24a2236033282f06a..f208558ec21f53223066d8d576dfb6c97c9465dd 100755 (executable)
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-05-19'
+timestamp='2018-08-29'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -89,7 +89,7 @@ while test $# -gt 0 ; do
     - )        # Use stdin as input.
        break ;;
     -* )
-       echo "$me: invalid option $1$help"
+       echo "$me: invalid option $1$help" >&2
        exit 1 ;;
 
     *local*)
@@ -149,8 +149,40 @@ case $1 in
                esac
                ;;
        *-*)
-               basic_machine=$field1
-               os=$field2
+               # A lone config we happen to match not fitting any pattern
+               case $field1-$field2 in
+                       decstation-3100)
+                               basic_machine=mips-dec
+                               os=
+                               ;;
+                       *-*)
+                               # Second component is usually, but not always the OS
+                               case $field2 in
+                                       # Prevent following clause from handling this valid os
+                                       sun*os*)
+                                               basic_machine=$field1
+                                               os=$field2
+                                               ;;
+                                       # Manufacturers
+                                       dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+                                       | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+                                       | unicom* | ibm* | next | hp | isi* | apollo | altos* \
+                                       | convergent* | ncr* | news | 32* | 3600* | 3100* \
+                                       | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
+                                       | ultra | tti* | harris | dolphin | highlevel | gould \
+                                       | cbm | ns | masscomp | apple | axis | knuth | cray \
+                                       | microblaze* | sim | cisco \
+                                       | oki | wec | wrs | winbond)
+                                               basic_machine=$field1-$field2
+                                               os=
+                                               ;;
+                                       *)
+                                               basic_machine=$field1
+                                               os=$field2
+                                               ;;
+                               esac
+                       ;;
+               esac
                ;;
        *)
                # Convert single-component short-hands not valid as part of
@@ -168,6 +200,14 @@ case $1 in
                                basic_machine=m68010-adobe
                                os=scout
                                ;;
+                       alliant)
+                               basic_machine=fx80-alliant
+                               os=
+                               ;;
+                       altos | altos3068)
+                               basic_machine=m68k-altos
+                               os=
+                               ;;
                        am29k)
                                basic_machine=a29k-none
                                os=bsd
@@ -176,6 +216,10 @@ case $1 in
                                basic_machine=580-amdahl
                                os=sysv
                                ;;
+                       amiga)
+                               basic_machine=m68k-unknown
+                               os=
+                               ;;
                        amigaos | amigados)
                                basic_machine=m68k-unknown
                                os=amigaos
@@ -212,13 +256,41 @@ case $1 in
                                basic_machine=arm-unknown
                                os=cegcc
                                ;;
+                       convex-c1)
+                               basic_machine=c1-convex
+                               os=bsd
+                               ;;
+                       convex-c2)
+                               basic_machine=c2-convex
+                               os=bsd
+                               ;;
+                       convex-c32)
+                               basic_machine=c32-convex
+                               os=bsd
+                               ;;
+                       convex-c34)
+                               basic_machine=c34-convex
+                               os=bsd
+                               ;;
+                       convex-c38)
+                               basic_machine=c38-convex
+                               os=bsd
+                               ;;
                        cray)
                                basic_machine=j90-cray
                                os=unicos
                                ;;
-                       craynv)
-                               basic_machine=craynv-cray
-                               os=unicosmp
+                       crds | unos)
+                               basic_machine=m68k-crds
+                               os=
+                               ;;
+                       da30)
+                               basic_machine=m68k-da30
+                               os=
+                               ;;
+                       decstation | pmax | pmin | dec3100 | decstatn)
+                               basic_machine=mips-dec
+                               os=
                                ;;
                        delta88)
                                basic_machine=m88k-motorola
@@ -264,6 +336,9 @@ case $1 in
                                basic_machine=m88k-harris
                                os=sysv3
                                ;;
+                       hp300)
+                               basic_machine=m68k-hp
+                               ;;
                        hp300bsd)
                                basic_machine=m68k-hp
                                os=bsd
@@ -285,7 +360,7 @@ case $1 in
                                os=mach
                                ;;
                        vsta)
-                               basic_machine=i386-unknown
+                               basic_machine=i386-pc
                                os=vsta
                                ;;
                        isi68 | isi)
@@ -349,7 +424,7 @@ case $1 in
                                os=sysv4
                                ;;
                        netbsd386)
-                               basic_machine=i386-unknown
+                               basic_machine=i386-pc
                                os=netbsd
                                ;;
                        netwinder)
@@ -432,14 +507,26 @@ case $1 in
                                basic_machine=mips-sei
                                os=seiux
                                ;;
+                       sequent)
+                               basic_machine=i386-sequent
+                               os=
+                               ;;
                        sps7)
                                basic_machine=m68k-bull
                                os=sysv2
                                ;;
+                       st2000)
+                               basic_machine=m68k-tandem
+                               os=
+                               ;;
                        stratus)
                                basic_machine=i860-stratus
                                os=sysv4
                                ;;
+                       sun2)
+                               basic_machine=m68000-sun
+                               os=
+                               ;;
                        sun2os3)
                                basic_machine=m68000-sun
                                os=sunos3
@@ -448,6 +535,10 @@ case $1 in
                                basic_machine=m68000-sun
                                os=sunos4
                                ;;
+                       sun3)
+                               basic_machine=m68k-sun
+                               os=
+                               ;;
                        sun3os3)
                                basic_machine=m68k-sun
                                os=sunos3
@@ -456,6 +547,10 @@ case $1 in
                                basic_machine=m68k-sun
                                os=sunos4
                                ;;
+                       sun4)
+                               basic_machine=sparc-sun
+                               os=
+                               ;;
                        sun4os3)
                                basic_machine=sparc-sun
                                os=sunos3
@@ -468,6 +563,10 @@ case $1 in
                                basic_machine=sparc-sun
                                os=solaris2
                                ;;
+                       sun386 | sun386i | roadrunner)
+                               basic_machine=i386-sun
+                               os=
+                               ;;
                        sv1)
                                basic_machine=sv1-cray
                                os=unicos
@@ -540,521 +639,162 @@ case $1 in
                ;;
 esac
 
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-       sun*os*)
-               # Prevent following clause from handling this invalid input.
-               ;;
-       dec* | mips* | sequent* | encore* | pc532* | sgi* | sony* | \
-       att* | 7300* | 3300* | delta* | motorola* | sun[234]* | \
-       unicom* | ibm* | next | hp | isi* | apollo | altos* | \
-       convergent* | ncr* | news | 32* | 3600* | 3100* | hitachi* |\
-       c[123]* | convex* | sun | crds | omron* | dg | ultra | tti* | \
-       harris | dolphin | highlevel | gould | cbm | ns | masscomp | \
-       apple | axis | knuth | cray | microblaze*)
-               os=
-               basic_machine=$1
-               ;;
-       bluegene*)
-               os=cnk
-               ;;
-       sim | cisco | oki | wec | winbond)
-               os=
-               basic_machine=$1
-               ;;
-       scout)
-               ;;
-       wrs)
-               os=vxworks
-               basic_machine=$1
-               ;;
-       chorusos*)
-               os=chorusos
-               basic_machine=$1
-               ;;
-       chorusrdb)
-               os=chorusrdb
-               basic_machine=$1
-               ;;
-       hiux*)
-               os=hiuxwe2
-               ;;
-       sco6)
-               os=sco5v6
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       sco5)
-               os=sco3.2v5
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       sco4)
-               os=sco3.2v4
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       sco3.2.[4-9]*)
-               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       sco3.2v[4-9]*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       sco5v6*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       sco*)
-               os=sco3.2v2
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       udk*)
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       isc)
-               os=isc2.2
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       clix*)
-               basic_machine=clipper-intergraph
-               ;;
-       isc*)
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       lynx*178)
-               os=lynxos178
-               ;;
-       lynx*5)
-               os=lynxos5
-               ;;
-       lynx*)
-               os=lynxos
-               ;;
-       ptx*)
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
-               ;;
-       psos*)
-               os=psos
-               ;;
-       mint | mint[0-9]*)
-               basic_machine=m68k-atari
-               os=mint
-               ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
+# Decode 1-component or ad-hoc basic machines
 case $basic_machine in
-       # Recognize the basic CPU types without company name.
-       # Some are omitted here because they have special meanings below.
-       1750a | 580 \
-       | a29k \
-       | aarch64 | aarch64_be \
-       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-       | am33_2.0 \
-       | arc | arceb \
-       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \
-       | avr | avr32 \
-       | ba \
-       | be32 | be64 \
-       | bfin \
-       | c4x | c8051 | clipper | csky \
-       | d10v | d30v | dlx | dsp16xx \
-       | e2k | epiphany \
-       | fido | fr30 | frv | ft32 \
-       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-       | hexagon \
-       | i370 | i860 | i960 | ia16 | ia64 \
-       | ip2k | iq2000 \
-       | k1om \
-       | le32 | le64 \
-       | lm32 \
-       | m32c | m32r | m32rle | m68000 | m68k | m88k \
-       | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
-       | mips | mipsbe | mipseb | mipsel | mipsle \
-       | mips16 \
-       | mips64 | mips64el \
-       | mips64octeon | mips64octeonel \
-       | mips64orion | mips64orionel \
-       | mips64r5900 | mips64r5900el \
-       | mips64vr | mips64vrel \
-       | mips64vr4100 | mips64vr4100el \
-       | mips64vr4300 | mips64vr4300el \
-       | mips64vr5000 | mips64vr5000el \
-       | mips64vr5900 | mips64vr5900el \
-       | mipsisa32 | mipsisa32el \
-       | mipsisa32r2 | mipsisa32r2el \
-       | mipsisa32r6 | mipsisa32r6el \
-       | mipsisa64 | mipsisa64el \
-       | mipsisa64r2 | mipsisa64r2el \
-       | mipsisa64r6 | mipsisa64r6el \
-       | mipsisa64sb1 | mipsisa64sb1el \
-       | mipsisa64sr71k | mipsisa64sr71kel \
-       | mipsr5900 | mipsr5900el \
-       | mipstx39 | mipstx39el \
-       | mn10200 | mn10300 \
-       | moxie \
-       | mt \
-       | msp430 \
-       | nds32 | nds32le | nds32be \
-       | nfp \
-       | nios | nios2 | nios2eb | nios2el \
-       | ns16k | ns32k \
-       | open8 | or1k | or1knd | or32 \
-       | pdp10 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle \
-       | pru \
-       | pyramid \
-       | riscv32 | riscv64 \
-       | rl78 | rx \
-       | score \
-       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
-       | sh64 | sh64le \
-       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
-       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-       | spu \
-       | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
-       | ubicom32 \
-       | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
-       | visium \
-       | wasm32 \
-       | x86 | xc16x | xstormy16 | xtensa \
-       | z8k | z80)
-               basic_machine=$basic_machine-unknown
-               ;;
-       c54x)
-               basic_machine=tic54x-unknown
-               ;;
-       c55x)
-               basic_machine=tic55x-unknown
-               ;;
-       c6x)
-               basic_machine=tic6x-unknown
-               ;;
-       leon|leon[3-9])
-               basic_machine=sparc-$basic_machine
-               ;;
-       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
-               basic_machine=$basic_machine-unknown
-               os=${os:-none}
-               ;;
-       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
+       # Here we handle the default manufacturer of certain CPU types.  It is in
+       # some cases the only manufacturer, in others, it is the most popular.
+       w89k)
+               cpu=hppa1.1
+               vendor=winbond
                ;;
-       m9s12z | m68hcs12z | hcs12z | s12z)
-               basic_machine=s12z-unknown
-               os=${os:-none}
+       op50n)
+               cpu=hppa1.1
+               vendor=oki
                ;;
-       ms1)
-               basic_machine=mt-unknown
+       op60c)
+               cpu=hppa1.1
+               vendor=oki
                ;;
-       strongarm | thumb | xscale)
-               basic_machine=arm-unknown
+       ibm*)
+               cpu=i370
+               vendor=ibm
                ;;
-       xgate)
-               basic_machine=$basic_machine-unknown
-               os=${os:-none}
+       orion105)
+               cpu=clipper
+               vendor=highlevel
                ;;
-       xscaleeb)
-               basic_machine=armeb-unknown
+       mac | mpw | mac-mpw)
+               cpu=m68k
+               vendor=apple
                ;;
-
-       xscaleel)
-               basic_machine=armel-unknown
+       pmac | pmac-mpw)
+               cpu=powerpc
+               vendor=apple
                ;;
 
-       # We use `pc' rather than `unknown'
-       # because (1) that's what they normally are, and
-       # (2) the word "unknown" tends to confuse beginning users.
-       i*86 | x86_64)
-         basic_machine=$basic_machine-pc
-         ;;
-       # Recognize the basic CPU types with company name.
-       580-* \
-       | a29k-* \
-       | aarch64-* | aarch64_be-* \
-       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
-       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-       | avr-* | avr32-* \
-       | ba-* \
-       | be32-* | be64-* \
-       | bfin-* | bs2000-* \
-       | c[123]* | c30-* | [cjt]90-* | c4x-* \
-       | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
-       | d10v-* | d30v-* | dlx-* \
-       | e2k-* | elxsi-* \
-       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
-       | h8300-* | h8500-* \
-       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-       | hexagon-* \
-       | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
-       | ip2k-* | iq2000-* \
-       | k1om-* \
-       | le32-* | le64-* \
-       | lm32-* \
-       | m32c-* | m32r-* | m32rle-* \
-       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
-       | microblaze-* | microblazeel-* \
-       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-       | mips16-* \
-       | mips64-* | mips64el-* \
-       | mips64octeon-* | mips64octeonel-* \
-       | mips64orion-* | mips64orionel-* \
-       | mips64r5900-* | mips64r5900el-* \
-       | mips64vr-* | mips64vrel-* \
-       | mips64vr4100-* | mips64vr4100el-* \
-       | mips64vr4300-* | mips64vr4300el-* \
-       | mips64vr5000-* | mips64vr5000el-* \
-       | mips64vr5900-* | mips64vr5900el-* \
-       | mipsisa32-* | mipsisa32el-* \
-       | mipsisa32r2-* | mipsisa32r2el-* \
-       | mipsisa32r6-* | mipsisa32r6el-* \
-       | mipsisa64-* | mipsisa64el-* \
-       | mipsisa64r2-* | mipsisa64r2el-* \
-       | mipsisa64r6-* | mipsisa64r6el-* \
-       | mipsisa64sb1-* | mipsisa64sb1el-* \
-       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
-       | mipsr5900-* | mipsr5900el-* \
-       | mipstx39-* | mipstx39el-* \
-       | mmix-* \
-       | mt-* \
-       | msp430-* \
-       | nds32-* | nds32le-* | nds32be-* \
-       | nfp-* \
-       | nios-* | nios2-* | nios2eb-* | nios2el-* \
-       | none-* | np1-* | ns16k-* | ns32k-* \
-       | open8-* \
-       | or1k*-* \
-       | orion-* \
-       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
-       | pru-* \
-       | pyramid-* \
-       | riscv32-* | riscv64-* \
-       | rl78-* | romp-* | rs6000-* | rx-* \
-       | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
-       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
-       | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
-       | tahoe-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-       | tile*-* \
-       | tron-* \
-       | ubicom32-* \
-       | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
-       | vax-* \
-       | visium-* \
-       | wasm32-* \
-       | we32k-* \
-       | x86-* | x86_64-* | xc16x-* | xps100-* \
-       | xstormy16-* | xtensa*-* \
-       | ymp-* \
-       | z8k-* | z80-*)
-               ;;
-       # Recognize the basic CPU types without company name, with glob match.
-       xtensa*)
-               basic_machine=$basic_machine-unknown
-               ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-               basic_machine=m68000-att
+               cpu=m68000
+               vendor=att
                ;;
        3b*)
-               basic_machine=we32k-att
-               ;;
-       abacus)
-               basic_machine=abacus-unknown
-               ;;
-       alliant | fx80)
-               basic_machine=fx80-alliant
-               ;;
-       altos | altos3068)
-               basic_machine=m68k-altos
-               ;;
-       amd64)
-               basic_machine=x86_64-pc
-               ;;
-       amd64-*)
-               basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       amiga | amiga-*)
-               basic_machine=m68k-unknown
-               ;;
-       asmjs)
-               basic_machine=asmjs-unknown
-               ;;
-       blackfin-*)
-               basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=linux
+               cpu=we32k
+               vendor=att
                ;;
        bluegene*)
-               basic_machine=powerpc-ibm
+               cpu=powerpc
+               vendor=ibm
                os=cnk
                ;;
-       c54x-*)
-               basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       c55x-*)
-               basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       c6x-*)
-               basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       c90)
-               basic_machine=c90-cray
-               os=${os:-unicos}
-               ;;
-       convex-c1)
-               basic_machine=c1-convex
-               os=bsd
-               ;;
-       convex-c2)
-               basic_machine=c2-convex
-               os=bsd
-               ;;
-       convex-c32)
-               basic_machine=c32-convex
-               os=bsd
-               ;;
-       convex-c34)
-               basic_machine=c34-convex
-               os=bsd
-               ;;
-       convex-c38)
-               basic_machine=c38-convex
-               os=bsd
-               ;;
-       cr16 | cr16-*)
-               basic_machine=cr16-unknown
-               os=${os:-elf}
-               ;;
-       crds | unos)
-               basic_machine=m68k-crds
-               ;;
-       crisv32 | crisv32-* | etraxfs*)
-               basic_machine=crisv32-axis
-               ;;
-       cris | cris-* | etrax*)
-               basic_machine=cris-axis
-               ;;
-       crx)
-               basic_machine=crx-unknown
-               os=${os:-elf}
-               ;;
-       da30 | da30-*)
-               basic_machine=m68k-da30
-               ;;
-       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-               basic_machine=mips-dec
-               ;;
        decsystem10* | dec10*)
-               basic_machine=pdp10-dec
+               cpu=pdp10
+               vendor=dec
                os=tops10
                ;;
        decsystem20* | dec20*)
-               basic_machine=pdp10-dec
+               cpu=pdp10
+               vendor=dec
                os=tops20
                ;;
        delta | 3300 | motorola-3300 | motorola-delta \
              | 3300-motorola | delta-motorola)
-               basic_machine=m68k-motorola
-               ;;
-       dpx20 | dpx20-*)
-               basic_machine=rs6000-bull
-               os=${os:-bosx}
+               cpu=m68k
+               vendor=motorola
                ;;
        dpx2*)
-               basic_machine=m68k-bull
+               cpu=m68k
+               vendor=bull
                os=sysv3
                ;;
-       e500v[12])
-               basic_machine=powerpc-unknown
-               os=$os"spe"
-               ;;
-       e500v[12]-*)
-               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=$os"spe"
-               ;;
        encore | umax | mmax)
-               basic_machine=ns32k-encore
+               cpu=ns32k
+               vendor=encore
                ;;
        elxsi)
-               basic_machine=elxsi-elxsi
+               cpu=elxsi
+               vendor=elxsi
                os=${os:-bsd}
                ;;
        fx2800)
-               basic_machine=i860-alliant
+               cpu=i860
+               vendor=alliant
                ;;
        genix)
-               basic_machine=ns32k-ns
+               cpu=ns32k
+               vendor=ns
                ;;
        h3050r* | hiux*)
-               basic_machine=hppa1.1-hitachi
+               cpu=hppa1.1
+               vendor=hitachi
                os=hiuxwe2
                ;;
-       hp300-*)
-               basic_machine=m68k-hp
-               ;;
        hp3k9[0-9][0-9] | hp9[0-9][0-9])
-               basic_machine=hppa1.0-hp
+               cpu=hppa1.0
+               vendor=hp
                ;;
        hp9k2[0-9][0-9] | hp9k31[0-9])
-               basic_machine=m68000-hp
+               cpu=m68000
+               vendor=hp
                ;;
        hp9k3[2-9][0-9])
-               basic_machine=m68k-hp
+               cpu=m68k
+               vendor=hp
                ;;
        hp9k6[0-9][0-9] | hp6[0-9][0-9])
-               basic_machine=hppa1.0-hp
+               cpu=hppa1.0
+               vendor=hp
                ;;
        hp9k7[0-79][0-9] | hp7[0-79][0-9])
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k78[0-9] | hp78[0-9])
                # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
                # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k8[0-9][13679] | hp8[0-9][13679])
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k8[0-9][0-9] | hp8[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       i370-ibm* | ibm*)
-               basic_machine=i370-ibm
+               cpu=hppa1.0
+               vendor=hp
                ;;
        i*86v32)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
                os=sysv32
                ;;
        i*86v4*)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
                os=sysv4
                ;;
        i*86v)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
                os=sysv
                ;;
        i*86sol2)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
                os=solaris2
                ;;
        j90 | j90-cray)
-               basic_machine=j90-cray
+               cpu=j90
+               vendor=cray
                os=${os:-unicos}
                ;;
        iris | iris4d)
-               basic_machine=mips-sgi
+               cpu=mips
+               vendor=sgi
                case $os in
                    irix*)
                        ;;
@@ -1063,38 +803,23 @@ case $basic_machine in
                        ;;
                esac
                ;;
-       leon-*|leon[3-9]-*)
-               basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
-               ;;
-       m68knommu-*)
-               basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=linux
-               ;;
-       microblaze*)
-               basic_machine=microblaze-xilinx
-               ;;
        miniframe)
-               basic_machine=m68000-convergent
+               cpu=m68000
+               vendor=convergent
                ;;
        *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
-               basic_machine=m68k-atari
+               cpu=m68k
+               vendor=atari
                os=mint
                ;;
-       mips3*-*)
-               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
-               ;;
-       mips3*)
-               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
-               ;;
-       ms1-*)
-               basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
-               ;;
        news-3600 | risc-news)
-               basic_machine=mips-sony
+               cpu=mips
+               vendor=sony
                os=newsos
                ;;
        next | m*-next)
-               basic_machine=m68k-next
+               cpu=m68k
+               vendor=next
                case $os in
                    nextstep* )
                        ;;
@@ -1107,260 +832,437 @@ case $basic_machine in
                esac
                ;;
        np1)
-               basic_machine=np1-gould
+               cpu=np1
+               vendor=gould
                ;;
-       neo-tandem)
-               basic_machine=neo-tandem
+       op50n-* | op60c-*)
+               cpu=hppa1.1
+               vendor=oki
+               os=proelf
                ;;
-       nse-tandem)
-               basic_machine=nse-tandem
+       pa-hitachi)
+               cpu=hppa1.1
+               vendor=hitachi
+               os=hiuxwe2
                ;;
-       nsr-tandem)
-               basic_machine=nsr-tandem
+       pbd)
+               cpu=sparc
+               vendor=tti
                ;;
-       nsv-tandem)
-               basic_machine=nsv-tandem
+       pbb)
+               cpu=m68k
+               vendor=tti
                ;;
-       nsx-tandem)
-               basic_machine=nsx-tandem
+       pc532)
+               cpu=ns32k
+               vendor=pc532
                ;;
-       op50n-* | op60c-*)
-               basic_machine=hppa1.1-oki
-               os=proelf
+       pn)
+               cpu=pn
+               vendor=gould
                ;;
-       openrisc | openrisc-*)
-               basic_machine=or32-unknown
+       power)
+               cpu=power
+               vendor=ibm
                ;;
-       pa-hitachi)
-               basic_machine=hppa1.1-hitachi
-               os=hiuxwe2
+       ps2)
+               cpu=i386
+               vendor=ibm
                ;;
-       parisc-*)
-               basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=linux
+       rm[46]00)
+               cpu=mips
+               vendor=siemens
                ;;
-       pbd)
-               basic_machine=sparc-tti
+       rtpc | rtpc-*)
+               cpu=romp
+               vendor=ibm
                ;;
-       pbb)
-               basic_machine=m68k-tti
+       sde)
+               cpu=mipsisa32
+               vendor=sde
+               os=${os:-elf}
                ;;
-       pc532 | pc532-*)
-               basic_machine=ns32k-pc532
+       simso-wrs)
+               cpu=sparclite
+               vendor=wrs
+               os=vxworks
                ;;
-       pc98)
-               basic_machine=i386-pc
+       tower | tower-32)
+               cpu=m68k
+               vendor=ncr
                ;;
-       pc98-*)
-               basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       vpp*|vx|vx-*)
+               cpu=f301
+               vendor=fujitsu
                ;;
-       pentium | p5 | k5 | k6 | nexgen | viac3)
-               basic_machine=i586-pc
+       w65)
+               cpu=w65
+               vendor=wdc
                ;;
-       pentiumpro | p6 | 6x86 | athlon | athlon_*)
-               basic_machine=i686-pc
+       w89k-*)
+               cpu=hppa1.1
+               vendor=winbond
+               os=proelf
                ;;
-       pentiumii | pentium2 | pentiumiii | pentium3)
-               basic_machine=i686-pc
+       none)
+               cpu=none
+               vendor=none
                ;;
-       pentium4)
-               basic_machine=i786-pc
+       leon|leon[3-9])
+               cpu=sparc
+               vendor=$basic_machine
                ;;
-       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-               basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       leon-*|leon[3-9]-*)
+               cpu=sparc
+               vendor=`echo "$basic_machine" | sed 's/-.*//'`
                ;;
-       pentiumpro-* | p6-* | 6x86-* | athlon-*)
-               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+
+       *-*)
+               IFS="-" read -r cpu vendor <<EOF
+$basic_machine
+EOF
                ;;
-       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+       i*86 | x86_64)
+               cpu=$basic_machine
+               vendor=pc
                ;;
-       pentium4-*)
-               basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       # These rules are duplicated from below for sake of the special case above;
+       # i.e. things that normalized to x86 arches should also default to "pc"
+       pc98)
+               cpu=i386
+               vendor=pc
                ;;
-       pn)
-               basic_machine=pn-gould
+       x64 | amd64)
+               cpu=x86_64
+               vendor=pc
                ;;
-       power)  basic_machine=power-ibm
+       # Recognize the basic CPU types without company name.
+       *)
+               cpu=$basic_machine
+               vendor=unknown
                ;;
-       ppc | ppcbe)    basic_machine=powerpc-unknown
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+       # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
+       # some cases the only manufacturer, in others, it is the most popular.
+       craynv-unknown)
+               vendor=cray
+               os=${os:-unicosmp}
+               ;;
+       c90-unknown | c90-cray)
+               vendor=cray
+               os=${os:-unicos}
                ;;
-       ppc-* | ppcbe-*)
-               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       fx80-unknown)
+               vendor=alliant
                ;;
-       ppcle | powerpclittle)
-               basic_machine=powerpcle-unknown
+       romp-unknown)
+               vendor=ibm
                ;;
-       ppcle-* | powerpclittle-*)
-               basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       mmix-unknown)
+               vendor=knuth
                ;;
-       ppc64)  basic_machine=powerpc64-unknown
+       microblaze-unknown | microblazeel-unknown)
+               vendor=xilinx
                ;;
-       ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       rs6000-unknown)
+               vendor=ibm
                ;;
-       ppc64le | powerpc64little)
-               basic_machine=powerpc64le-unknown
+       vax-unknown)
+               vendor=dec
                ;;
-       ppc64le-* | powerpc64little-*)
-               basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       pdp11-unknown)
+               vendor=dec
                ;;
-       ps2)
-               basic_machine=i386-ibm
+       we32k-unknown)
+               vendor=att
                ;;
-       rm[46]00)
-               basic_machine=mips-siemens
+       cydra-unknown)
+               vendor=cydrome
                ;;
-       rtpc | rtpc-*)
-               basic_machine=romp-ibm
+       i370-ibm*)
+               vendor=ibm
                ;;
-       s390 | s390-*)
-               basic_machine=s390-ibm
+       orion-unknown)
+               vendor=highlevel
                ;;
-       s390x | s390x-*)
-               basic_machine=s390x-ibm
+       xps-unknown | xps100-unknown)
+               cpu=xps100
+               vendor=honeywell
                ;;
-       sb1)
-               basic_machine=mipsisa64sb1-unknown
+
+       # Here we normalize CPU types with a missing or matching vendor
+       dpx20-unknown | dpx20-bull)
+               cpu=rs6000
+               vendor=bull
+               os=${os:-bosx}
                ;;
-       sb1el)
-               basic_machine=mipsisa64sb1el-unknown
+
+       # Here we normalize CPU types irrespective of the vendor
+       amd64-*)
+               cpu=x86_64
                ;;
-       sde)
-               basic_machine=mipsisa32-sde
-               os=${os:-elf}
+       blackfin-*)
+               cpu=bfin
+               os=linux
                ;;
-       sequent)
-               basic_machine=i386-sequent
+       c54x-*)
+               cpu=tic54x
                ;;
-       sh5el)
-               basic_machine=sh5le-unknown
+       c55x-*)
+               cpu=tic55x
                ;;
-       simso-wrs)
-               basic_machine=sparclite-wrs
-               os=vxworks
+       c6x-*)
+               cpu=tic6x
                ;;
-       spur)
-               basic_machine=spur-unknown
+       e500v[12]-*)
+               cpu=powerpc
+               os=$os"spe"
                ;;
-       st2000)
-               basic_machine=m68k-tandem
+       mips3*-*)
+               cpu=mips64
                ;;
-       strongarm-* | thumb-*)
-               basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       ms1-*)
+               cpu=mt
                ;;
-       sun2)
-               basic_machine=m68000-sun
+       m68knommu-*)
+               cpu=m68k
+               os=linux
                ;;
-       sun3 | sun3-*)
-               basic_machine=m68k-sun
+       m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+               cpu=s12z
                ;;
-       sun4)
-               basic_machine=sparc-sun
+       openrisc-*)
+               cpu=or32
                ;;
-       sun386 | sun386i | roadrunner)
-               basic_machine=i386-sun
+       parisc-*)
+               cpu=hppa
+               os=linux
                ;;
-       tile*)
-               basic_machine=$basic_machine-unknown
-               os=linux-gnu
+       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+               cpu=i586
                ;;
-       tx39)
-               basic_machine=mipstx39-unknown
+       pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+               cpu=i686
                ;;
-       tx39el)
-               basic_machine=mipstx39el-unknown
+       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+               cpu=i686
                ;;
-       tower | tower-32)
-               basic_machine=m68k-ncr
+       pentium4-*)
+               cpu=i786
                ;;
-       vpp*|vx|vx-*)
-               basic_machine=f301-fujitsu
+       pc98-*)
+               cpu=i386
                ;;
-       w65*)
-               basic_machine=w65-wdc
-               os=none
+       ppc-* | ppcbe-*)
+               cpu=powerpc
                ;;
-       w89k-*)
-               basic_machine=hppa1.1-winbond
-               os=proelf
+       ppcle-* | powerpclittle-*)
+               cpu=powerpcle
                ;;
-       x64)
-               basic_machine=x86_64-pc
+       ppc64-*)
+               cpu=powerpc64
                ;;
-       xps | xps100)
-               basic_machine=xps100-honeywell
+       ppc64le-* | powerpc64little-*)
+               cpu=powerpc64le
                ;;
-       xscale-* | xscalee[bl]-*)
-               basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
+       sb1-*)
+               cpu=mipsisa64sb1
                ;;
-       none)
-               basic_machine=none-none
-               os=${os:-none}
+       sb1el-*)
+               cpu=mipsisa64sb1el
                ;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-       w89k)
-               basic_machine=hppa1.1-winbond
+       sh5e[lb]-*)
+               cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
                ;;
-       op50n)
-               basic_machine=hppa1.1-oki
+       spur-*)
+               cpu=spur
                ;;
-       op60c)
-               basic_machine=hppa1.1-oki
+       strongarm-* | thumb-*)
+               cpu=arm
                ;;
-       romp)
-               basic_machine=romp-ibm
+       tx39-*)
+               cpu=mipstx39
                ;;
-       mmix)
-               basic_machine=mmix-knuth
+       tx39el-*)
+               cpu=mipstx39el
                ;;
-       rs6000)
-               basic_machine=rs6000-ibm
+       x64-*)
+               cpu=x86_64
                ;;
-       vax)
-               basic_machine=vax-dec
+       xscale-* | xscalee[bl]-*)
+               cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
                ;;
-       pdp11)
-               basic_machine=pdp11-dec
+
+       # Recognize the canonical CPU Types that limit and/or modify the
+       # company names they are paired with.
+       cr16-*)
+               os=${os:-elf}
                ;;
-       we32k)
-               basic_machine=we32k-att
+       crisv32-* | etraxfs*-*)
+               cpu=crisv32
+               vendor=axis
                ;;
-       sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
-               basic_machine=sh-unknown
+       cris-* | etrax*-*)
+               cpu=cris
+               vendor=axis
                ;;
-       cydra)
-               basic_machine=cydra-cydrome
+       crx-*)
+               os=${os:-elf}
                ;;
-       orion)
-               basic_machine=orion-highlevel
+       neo-tandem)
+               cpu=neo
+               vendor=tandem
                ;;
-       orion105)
-               basic_machine=clipper-highlevel
+       nse-tandem)
+               cpu=nse
+               vendor=tandem
                ;;
-       mac | mpw | mac-mpw)
-               basic_machine=m68k-apple
+       nsr-tandem)
+               cpu=nsr
+               vendor=tandem
                ;;
-       pmac | pmac-mpw)
-               basic_machine=powerpc-apple
+       nsv-tandem)
+               cpu=nsv
+               vendor=tandem
+               ;;
+       nsx-tandem)
+               cpu=nsx
+               vendor=tandem
                ;;
-       *-unknown)
-               # Make sure to match an already-canonicalized machine name.
+       s390-*)
+               cpu=s390
+               vendor=ibm
                ;;
+       s390x-*)
+               cpu=s390x
+               vendor=ibm
+               ;;
+       tile*-*)
+               os=${os:-linux-gnu}
+               ;;
+
        *)
-               echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
-               exit 1
+               # Recognize the canonical CPU types that are allowed with any
+               # company name.
+               case $cpu in
+                       1750a | 580 \
+                       | a29k \
+                       | aarch64 | aarch64_be \
+                       | abacus \
+                       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+                       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+                       | alphapca5[67] | alpha64pca5[67] \
+                       | am33_2.0 \
+                       | arc | arceb \
+                       | arm  | arm[lb]e | arme[lb] | armv* \
+                       | avr | avr32 \
+                       | asmjs \
+                       | ba \
+                       | be32 | be64 \
+                       | bfin | bs2000 \
+                       | c[123]* | c30 | [cjt]90 | c4x \
+                       | c8051 | clipper | craynv | csky | cydra \
+                       | d10v | d30v | dlx | dsp16xx \
+                       | e2k | elxsi | epiphany \
+                       | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+                       | h8300 | h8500 \
+                       | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+                       | hexagon \
+                       | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+                       | ip2k | iq2000 \
+                       | k1om \
+                       | le32 | le64 \
+                       | lm32 \
+                       | m32c | m32r | m32rle \
+                       | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
+                       | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
+                       | m88110 | m88k | maxq | mb | mcore | mep | metag \
+                       | microblaze | microblazeel \
+                       | mips | mipsbe | mipseb | mipsel | mipsle \
+                       | mips16 \
+                       | mips64 | mips64el \
+                       | mips64octeon | mips64octeonel \
+                       | mips64orion | mips64orionel \
+                       | mips64r5900 | mips64r5900el \
+                       | mips64vr | mips64vrel \
+                       | mips64vr4100 | mips64vr4100el \
+                       | mips64vr4300 | mips64vr4300el \
+                       | mips64vr5000 | mips64vr5000el \
+                       | mips64vr5900 | mips64vr5900el \
+                       | mipsisa32 | mipsisa32el \
+                       | mipsisa32r2 | mipsisa32r2el \
+                       | mipsisa32r6 | mipsisa32r6el \
+                       | mipsisa64 | mipsisa64el \
+                       | mipsisa64r2 | mipsisa64r2el \
+                       | mipsisa64r6 | mipsisa64r6el \
+                       | mipsisa64sb1 | mipsisa64sb1el \
+                       | mipsisa64sr71k | mipsisa64sr71kel \
+                       | mipsr5900 | mipsr5900el \
+                       | mipstx39 | mipstx39el \
+                       | mmix \
+                       | mn10200 | mn10300 \
+                       | moxie \
+                       | mt \
+                       | msp430 \
+                       | nds32 | nds32le | nds32be \
+                       | nfp \
+                       | nios | nios2 | nios2eb | nios2el \
+                       | none | np1 | ns16k | ns32k \
+                       | open8 \
+                       | or1k* \
+                       | or32 \
+                       | orion \
+                       | pdp10 | pdp11 | pj | pjl | pn | power \
+                       | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+                       | pru \
+                       | pyramid \
+                       | riscv | riscv32 | riscv64 \
+                       | rl78 | romp | rs6000 | rx \
+                       | score \
+                       | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+                       | sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+                       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+                       | sparclite \
+                       | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+                       | spu \
+                       | tahoe \
+                       | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+                       | tron \
+                       | ubicom32 \
+                       | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+                       | vax \
+                       | visium \
+                       | wasm32 \
+                       | we32k \
+                       | x86 | x86_64 | xc16x | xgate | xps100 \
+                       | xstormy16 | xtensa* \
+                       | ymp \
+                       | z8k | z80)
+                               ;;
+
+                       *)
+                               echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+                               exit 1
+                               ;;
+               esac
                ;;
 esac
 
 # Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-       *-digital*)
-               basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
+case $vendor in
+       digital*)
+               vendor=dec
                ;;
-       *-commodore*)
-               basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
+       commodore*)
+               vendor=cbm
                ;;
        *)
                ;;
@@ -1377,6 +1279,9 @@ case $os in
        auroraux)
                os=auroraux
                ;;
+       bluegene*)
+               os=cnk
+               ;;
        solaris1 | solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
                ;;
@@ -1393,26 +1298,57 @@ case $os in
        es1800*)
                os=ose
                ;;
+       # Some version numbers need modification
+       chorusos*)
+               os=chorusos
+               ;;
+       isc)
+               os=isc2.2
+               ;;
+       sco6)
+               os=sco5v6
+               ;;
+       sco5)
+               os=sco3.2v5
+               ;;
+       sco4)
+               os=sco3.2v4
+               ;;
+       sco3.2.[4-9]*)
+               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+               ;;
+       sco3.2v[4-9]* | sco5v6*)
+               # Don't forget version if it is 3.2v4 or newer.
+               ;;
+       scout)
+               # Don't match below
+               ;;
+       sco*)
+               os=sco3.2v2
+               ;;
+       psos*)
+               os=psos
+               ;;
        # Now accept the basic system types.
        # The portable systems comes first.
        # Each alternative MUST end in a * to match a version number.
        # sysv* is not here because it comes later, after sysvr4.
        gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
-            | *vms* | sco* | esix* | isc* | aix* | cnk* | sunos | sunos[34]*\
+            | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
             | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
             | sym* | kopensolaris* | plan9* \
             | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
             | aos* | aros* | cloudabi* | sortix* \
             | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
-            | clix* | riscos* | uniplus* | iris* | rtu* | xenix* \
-            | hiux* | knetbsd* | mirbsd* | netbsd* \
+            | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+            | knetbsd* | mirbsd* | netbsd* \
             | bitrig* | openbsd* | solidbsd* | libertybsd* \
             | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
             | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
             | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
             | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
-            | chorusos* | chorusrdb* | cegcc* | glidix* \
-            | cygwin* | msys* | pe* | psos* | moss* | proelf* | rtems* \
+            | chorusrdb* | cegcc* | glidix* \
+            | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
             | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
             | linux-newlib* | linux-musl* | linux-uclibc* \
             | uxpv* | beos* | mpeix* | udk* | moxiebox* \
@@ -1428,14 +1364,17 @@ case $os in
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        qnx*)
-               case $basic_machine in
-                   x86-* | i*86-*)
+               case $cpu in
+                   x86 | i*86)
                        ;;
                    *)
                        os=nto-$os
                        ;;
                esac
                ;;
+       hiux*)
+               os=hiuxwe2
+               ;;
        nto-qnx*)
                ;;
        nto*)
@@ -1445,20 +1384,23 @@ case $os in
            | windows* | osx | abug | netware* | os9* \
            | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
                ;;
-       mac*)
-               os=`echo "$os" | sed -e 's|mac|macos|'`
-               ;;
        linux-dietlibc)
                os=linux-dietlibc
                ;;
        linux*)
                os=`echo $os | sed -e 's|linux|linux-gnu|'`
                ;;
-       sunos5*)
-               os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+       lynx*178)
+               os=lynxos178
                ;;
-       sunos6*)
-               os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+       lynx*5)
+               os=lynxos5
+               ;;
+       lynx*)
+               os=lynxos
+               ;;
+       mac*)
+               os=`echo "$os" | sed -e 's|mac|macos|'`
                ;;
        opened*)
                os=openedition
@@ -1466,6 +1408,12 @@ case $os in
        os400*)
                os=os400
                ;;
+       sunos5*)
+               os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+               ;;
+       sunos6*)
+               os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+               ;;
        wince*)
                os=wince
                ;;
@@ -1543,7 +1491,7 @@ case $os in
                # Until real need of OS specific support for
                # particular features comes up, bare metal
                # configurations are quite functional.
-               case $basic_machine in
+               case $cpu in
                    arm*)
                        os=eabi
                        ;;
@@ -1577,7 +1525,7 @@ else
 # will signal an error saying that MANUFACTURER isn't an operating
 # system, and we'll never get to this point.
 
-case $basic_machine in
+case $cpu-$vendor in
        score-*)
                os=elf
                ;;
@@ -1599,6 +1547,9 @@ case $basic_machine in
        c8051-*)
                os=elf
                ;;
+       clipper-intergraph)
+               os=clix
+               ;;
        hexagon-*)
                os=elf
                ;;
@@ -1744,6 +1695,9 @@ case $basic_machine in
        *-atari*)
                os=mint
                ;;
+       *-wrs)
+               os=vxworks
+               ;;
        *)
                os=none
                ;;
@@ -1752,9 +1706,8 @@ fi
 
 # Here we handle the case where we know the os, and the CPU type, but not the
 # manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-       *-unknown)
+case $vendor in
+       unknown)
                case $os in
                        riscix*)
                                vendor=acorn
@@ -1789,6 +1742,9 @@ case $basic_machine in
                        genix*)
                                vendor=ns
                                ;;
+                       clix*)
+                               vendor=intergraph
+                               ;;
                        mvs* | opened*)
                                vendor=ibm
                                ;;
@@ -1820,11 +1776,10 @@ case $basic_machine in
                                vendor=stratus
                                ;;
                esac
-               basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
                ;;
 esac
 
-echo "$basic_machine-$os"
+echo "$cpu-$vendor-$os"
 exit
 
 # Local variables:
index d9a6a99992a5ced2298b6fbc8de81d3ddb15221b..e5573897762ee8fc37840354a06ffe863ba2ad7d 100644 (file)
@@ -595,6 +595,7 @@ bind_termcap_arrow_keys (Keymap map)
   rl_bind_keyseq_if_unbound (_rl_term_at7, rl_end_of_line);    /* End */
 
   rl_bind_keyseq_if_unbound (_rl_term_kD, rl_delete);
+  rl_bind_keyseq_if_unbound (_rl_term_kI, rl_overwrite_mode);  /* Insert */
 
   _rl_keymap = xkeymap;
 }
diff --git a/text.c b/text.c
index cddaeebd2d7832d81c292146f26a751ea3aae518..43aa4d97db1efee26d82cfa92d33d64dae3aff95 100644 (file)
--- a/text.c
+++ b/text.c
@@ -1452,7 +1452,18 @@ rl_change_case (int count, int op)
          if  (nwc != wc)       /*  just skip unchanged characters */
            {
              char *s, *e;
-             mlen = wcrtomb (mb, nwc, &mps);
+             mbstate_t ts;
+
+             memset (&ts, 0, sizeof (mbstate_t));
+             mlen = wcrtomb (mb, nwc, &ts);
+             if (mlen < 0)
+               {
+                 nwc = wc;
+                 memset (&ts, 0, sizeof (mbstate_t));
+                 mlen = wcrtomb (mb, nwc, &ts);
+                 if (mlen < 0)         /* should not happen */
+                   strncpy (mb, rl_line_buffer + start, mlen = m);
+               }
              if (mlen > 0)
                mb[mlen] = '\0';
              /* what to do if m != mlen? adjust below */
diff --git a/undo.c b/undo.c
index ae65d38043a7acff72e94785aa669401696260dd..147999119a6123532e8d932f2ccb1783e4c1a7a7 100644 (file)
--- a/undo.c
+++ b/undo.c
@@ -196,6 +196,7 @@ rl_do_undo (void)
        /* Undoing deletes means inserting some text. */
        case UNDO_DELETE:
          rl_point = start;
+         _rl_fix_point (1);
          rl_insert_text (rl_undo_list->text);
          xfree (rl_undo_list->text);
          break;
@@ -204,6 +205,7 @@ rl_do_undo (void)
        case UNDO_INSERT:
          rl_delete_text (start, end);
          rl_point = start;
+         _rl_fix_point (1);
          break;
 
        /* Undoing an END means undoing everything 'til we get to a BEGIN. */
diff --git a/util.c b/util.c
index e009b2383828e5ed49628b2b04d6ff24b8b519bf..577174953081bdef6f754d07f91a1717ac6577b7 100644 (file)
--- a/util.c
+++ b/util.c
@@ -103,9 +103,9 @@ _rl_abort_internal (void)
   _rl_reset_argument ();
   rl_clear_pending_input ();
 
-  RL_UNSETSTATE (RL_STATE_MACRODEF);
   while (rl_executing_macro)
     _rl_pop_executing_macro ();
+  _rl_kill_kbd_macro ();
 
   RL_UNSETSTATE (RL_STATE_MULTIKEY);   /* XXX */
 
index d6fa38e9779e16b42ba7209e8424b6ce54dd10f8..836371c95fff755e5bb9fc2faf8998310ef286ae 100644 (file)
--- a/vi_mode.c
+++ b/vi_mode.c
@@ -198,6 +198,7 @@ void
 rl_vi_start_inserting (int key, int repeat, int sign)
 {
   _rl_vi_set_last (key, repeat, sign);
+  rl_begin_undo_group ();              /* ensure inserts aren't concatenated */
   rl_vi_insertion_mode (1, key);
 }