]> git.ipfire.org Git - thirdparty/readline.git/commitdiff
commit readline-20180917 snapshot
authorChet Ramey <chet.ramey@case.edu>
Mon, 17 Sep 2018 20:29:10 +0000 (16:29 -0400)
committerChet Ramey <chet.ramey@case.edu>
Mon, 17 Sep 2018 20:29:10 +0000 (16:29 -0400)
53 files changed:
CHANGELOG
CHANGES
INSTALL
Makefile.in
NEWS
README
aclocal.m4
configure
configure.ac
display.c
doc/._rluserman.pdf
doc/history.dvi
doc/history.html
doc/history.pdf
doc/history.ps
doc/hstech.texi
doc/hsuser.texi
doc/readline.0
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.pdf
doc/rluserman.ps
doc/version.texi
examples/hist_erasedups.c
examples/hist_purgecmd.c
examples/histexamp.c
examples/rlevent.c
examples/rltest.c
histexpand.c
histfile.c
history.h
kill.c
mbutil.c
readline.c
readline.h
rlmbutil.h
rlprivate.h
rltty.c
support/config.guess [changed mode: 0644->0755]
support/config.rpath [changed mode: 0644->0755]
support/config.sub [changed mode: 0644->0755]
support/shlib-install
text.c
undo.c
vi_mode.c

index f006fd1ff37181095411e08a1462fa30b2252da6..18265ab10524a6f8aaba55f9208bc07bfd7893ec 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1327,3 +1327,27 @@ readline.pc.in
        - change Requires.private to use TERMCAP_PKG_CONFIG_LIB instead of
          hardcoded `tinfo'. Report and fix from Thomas Petazzoni
          <thomas.petazzoni@bootlin.com>
+
+                                   5/4
+                                   ---
+Makefile.in
+       - new targets to install and uninstall the `readline.pc' pkgconfig
+         file
+       - install-{static,shared}: add install-pc to the list of prereqs
+       - uninstall{,-shared}: add uninstall-pc to list of prereqs. Change
+         from Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+
+configure.ac,Makefile.in
+       - add new configure option to optionally disable installing the
+         source code examples. From Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+
+                                  5/23
+                                  ----
+Makefile.in
+       - install-pc: make sure we install readline.pc into an existing
+         pkgconfig directory. Report from ilove zfs <ilovezfs@icloud.com>
+
+                                  5/24
+                                  ----
+Makefile.in
+       - installdirs: create $(pkgconfigdir) if it doesn't exist
diff --git a/CHANGES b/CHANGES
index b5e16b716c9f37d82bae7f0e239abdb92b441263..3d0e987ddce0c891f2816bc5e5c8e62a8003d357 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,127 @@
+This document details the changes between this version, readline-8.0, and the
+previous version, readline-7.0.
+
+1.  Changes to Readline
+
+a. Added a guard to prevent nested macros from causing an infinite expansion
+   loop.
+
+b. Instead of allocating enough history list entries to hold the maximum list
+   size, cap the number allocated initially.
+   
+c. Added a strategy to avoid allocating huge amounts of memory if a block of
+   history entries without timestamps occurs after a block with timestamps.
+
+d. Added support for keyboard timeouts when an ESC character is the last
+   character in a macro.
+
+e. There are several performance improvements when in a UTF-8 locale.
+
+f. Readline does a better job of preserving the original set of blocked
+   signals when using pselect() to wait for input.
+
+g. Fixed a bug that caused multibyte characters in macros to be mishandled.
+
+h. Fixed several bugs in the code that calculates line breaks when expanding
+   prompts that span several lines, contain multibyte characters, and contain
+   invisible character seqeuences.
+
+i. Fixed several bugs in cursor positioning when displaying lines with prompts
+   containing invisible characters and multibyte characters.
+
+j. When performing case-insensitive completion, Readline no longer sorts the
+   list of matches unless directed to do so.
+
+k. Fixed a problem with key sequences ending with a backslash.
+
+l. Fixed out-of-bounds and free memory read errors found via fuzzing.
+
+m. Fixed several cases where the mark was set to an invalid value.
+
+n. Fixed a problem with the case-changing operators in the case where the
+   lower and upper case versions of a character do not have the same number
+   of bytes.
+
+o. Handle incremental and non-incremental search character reads returning EOF.
+
+p. Handle the case where a failing readline command at the end of a multi-key
+   sequence could be misinterpreted.
+
+q. The history library now prints a meaningful error message if the history
+   file isn't a regular file.
+
+r. Fixed a problem with vi-mode redo (`.') on a command when trying to replace
+   a multibyte character.
+
+s. The key binding code now attempts to remove a keymap if a key unbinding
+   leaves it empty.
+
+t. Fixed a line-wrapping issue that caused problems for some terminal
+   emulators.
+
+u. If there is a key bound to the tty's VDISCARD special character, readline
+   disables VDISCARD while it is active.
+
+v. Fixed a problem with exiting bracketed paste mode on terminals that assume
+   the bracketed paste mode character sequence contains visible characters.
+
+w. Fixed a bug that could cause a key binding command to refer to an
+   uninitialized variable.
+
+x. Added more UTF-8-specific versions of multibyte functions, and optimized
+   existing functions if the current locale uses UTF-8 encoding.
+
+y. Fixed a problem with bracketed-paste inserting more than one character and
+   interacting with other readline functions.
+
+z. Fixed a bug that caused the history library to attempt to append a history
+   line to a non-existent history entry.
+
+aa. If using bracketed paste mode, output a newline after the \r that is the
+    last character of the mode disable string to avoid overwriting output.
+
+bb. Fixes to the vi-mode `b', `B', `w', `W', `e', and `E' commands to better
+    handle multibyte characters.
+
+cc. Fixed a redisplay problem that caused an extra newline to be generated on
+    accept-line when the line length is exactly the screenwidth.
+
+2.  New Features in Readline
+
+a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as
+   Posix specifies (uses fnmatch(3) if available).
+
+b. There are new `next-screen-line' and `previous-screen-line' bindable
+   commands, which move the cursor to the same column in the next, or previous,
+   physical line, respectively.
+
+c. There are default key bindings for control-arrow-key key combinations.
+
+d. A negative argument (-N) to `quoted-insert' means to insert the next N
+   characters using quoted-insert.
+
+e. New public function: rl_check_signals(), which allows applications to
+   respond to signals that readline catches while waiting for input using
+   a custom read function.
+
+f. There is new support for conditionally testing the readline version in an
+   inputrc file, with a full set of arithmetic comparison operators available.
+
+g. There is a simple variable comparison facility available for use within an
+   inputrc file. Allowable operators are equality and inequality; string
+   variables may be compared to a value; boolean variables must be compared to
+   either `on' or `off'; variable names are separated from the operator by
+   whitespace.
+
+h. The history expansion library now understands command and process
+   substitution and extended globbing and allows them to appear anywhere in a
+   word.
+
+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.
+
+-------------------------------------------------------------------------------
 This document details the changes between this version, readline-7.0, and the
 previous version, readline-6.3.
 
diff --git a/INSTALL b/INSTALL
index e1a92d32667f83215e34edb02e239d27e1803ee8..afb4d53e8e587e7e61406bb8e322a860761dfd4c 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
 Basic Installation
 ==================
 
-These are installation instructions for Readline-7.0.
+These are installation instructions for Readline-8.0.
 
 The simplest way to compile readline is:
 
index 51f2ae3fcbb266fbf4178cae5cfd15539f3de640..8dd5ca578c8e4569e1c61ae7b7e5c573cbfce280 100644 (file)
@@ -1,6 +1,6 @@
 ## -*- text -*- ##
 # Master Makefile for the GNU readline library.
-# Copyright (C) 1994-2009 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 #   This program is free software: you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
@@ -59,6 +59,7 @@ mandir = @mandir@
 includedir = @includedir@
 datadir = @datadir@
 localedir = @localedir@
+pkgconfigdir = ${libdir}/pkgconfig
 
 infodir = @infodir@
 
@@ -97,6 +98,8 @@ GCC_LINT_CFLAGS = $(XCCFLAGS) $(GCC_LINT_FLAGS) @CFLAGS@ @LOCAL_CFLAGS@
 ASAN_XCFLAGS = -fsanitize=address -fno-omit-frame-pointer
 ASAN_XLDFLAGS = -fsanitize=address
 
+install_examples = @EXAMPLES_INSTALL_TARGET@
+
 .c.o:
        ${RM} $@
        $(CC) -c $(CCFLAGS) $<
@@ -238,7 +241,16 @@ uninstall-headers:
 
 maybe-uninstall-headers: uninstall-headers
 
-install-static: installdirs $(STATIC_LIBS) install-headers install-doc install-examples
+install-pc: installdirs
+       -$(INSTALL_DATA) $(BUILD_DIR)/readline.pc $(DESTDIR)$(pkgconfigdir)/readline.pc
+
+uninstall-pc:
+       -test -n "$(pkgconfigdir)" && cd $(DESTDIR)$(pkgconfigdir) && \
+               ${RM} readline.pc
+
+maybe-uninstall-pc: uninstall-pc
+
+install-static: installdirs $(STATIC_LIBS) install-headers install-doc ${install_examples} install-pc
        -$(MV) $(DESTDIR)$(libdir)/libreadline.a $(DESTDIR)$(libdir)/libreadline.old
        $(INSTALL_DATA) libreadline.a $(DESTDIR)$(libdir)/libreadline.a
        -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libreadline.a
@@ -249,17 +261,18 @@ install-static: installdirs $(STATIC_LIBS) install-headers install-doc install-e
 installdirs: $(srcdir)/support/mkinstalldirs
        -$(SHELL) $(srcdir)/support/mkinstalldirs $(DESTDIR)$(includedir) \
                $(DESTDIR)$(includedir)/readline $(DESTDIR)$(libdir) \
-               $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir) $(DESTDIR)$(docdir)
+               $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir) $(DESTDIR)$(docdir) \
+               $(DESTDIR)$(pkgconfigdir)
 
-uninstall: uninstall-headers uninstall-doc uninstall-examples
+uninstall: uninstall-headers uninstall-doc uninstall-examples uninstall-pc
        -test -n "$(DESTDIR)$(libdir)" && cd $(DESTDIR)$(libdir) && \
                ${RM} libreadline.a libreadline.old libhistory.a libhistory.old $(SHARED_LIBS)
        -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall )
 
-install-shared: installdirs install-headers shared install-doc
+install-shared: installdirs install-headers shared install-doc install-pc
        ( cd shlib ; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} install )
        
-uninstall-shared: maybe-uninstall-headers
+uninstall-shared: maybe-uninstall-headers maybe-uninstall-pc
        -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall )
 
 install-examples: installdirs install-headers
diff --git a/NEWS b/NEWS
index 4ff033011fed975b0b0bac6aca92cafc4115674d..1919a48d24841ab4c6c6601b3701b431595cf1b5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,42 @@
+This is a terse description of the new features added to readline-8.0 since
+the release of readline-7.0.
+
+New Features in Readline
+
+a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as
+   Posix specifies (uses fnmatch(3) if available).
+
+b. There are new `next-screen-line' and `previous-screen-line' bindable
+   commands, which move the cursor to the same column in the next, or previous,
+   physical line, respectively.
+
+c. There are default key bindings for control-arrow-key key combinations.
+
+d. A negative argument (-N) to `quoted-insert' means to insert the next N
+   characters using quoted-insert.
+
+e. New public function: rl_check_signals(), which allows applications to
+   respond to signals that readline catches while waiting for input using
+   a custom read function.
+
+f. There is new support for conditionally testing the readline version in an
+   inputrc file, with a full set of arithmetic comparison operators available.
+
+g. There is a simple variable comparison facility available for use within an
+   inputrc file. Allowable operators are equality and inequality; string
+   variables may be compared to a value; boolean variables must be compared to
+   either `on' or `off'; variable names are separated from the operator by
+   whitespace.
+
+h. The history expansion library now understands command and process
+   substitution and extended globbing and allows them to appear anywhere in a
+   word.
+
+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.
+
+-------------------------------------------------------------------------------
 This is a terse description of the new features added to readline-7.0 since
 the release of readline-6.3.
 
diff --git a/README b/README
index 6a9c2b9097dccdfee28d1309bc4dc4c6a25b6f6b..4fb0804fca02dcc42077ea138da9a59f31e3a109 100644 (file)
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
 Introduction
 ============
 
-This is the Gnu Readline library, version 7.0.
+This is the Gnu Readline library, version 8.0.
 
 The Readline library provides a set of functions for use by applications
 that allow users to edit command lines as they are typed in.  Both
index 6ea6f40f9fa7927b1e77a96d21338b924ab3b520..6ed03e10b295d6773d779a7059b91e136057c8ea 100644 (file)
@@ -1307,7 +1307,7 @@ AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers,
 
 typedef RETSIGTYPE sigfunc();
 
-int nsigint;
+volatile int nsigint;
 
 #ifdef HAVE_POSIX_SIGNALS
 sigfunc *
index e304679a6d1459407ae7f787616a4d662bfaad11..ddc51a9e3f0a49f25350e873fe17146941890a10 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.ac for Readline 7.0, version 2.83.
+# From configure.ac for Readline 8.0, version 2.85.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for readline 7.0.
+# Generated by GNU Autoconf 2.69 for readline 8.0.
 #
 # Report bugs to <bug-readline@gnu.org>.
 #
@@ -581,8 +581,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='readline'
 PACKAGE_TARNAME='readline'
-PACKAGE_VERSION='7.0'
-PACKAGE_STRING='readline 7.0'
+PACKAGE_VERSION='8.0'
+PACKAGE_STRING='readline 8.0'
 PACKAGE_BUGREPORT='bug-readline@gnu.org'
 PACKAGE_URL=''
 
@@ -632,6 +632,7 @@ LOCAL_DEFS
 LOCAL_LDFLAGS
 LOCAL_CFLAGS
 BUILD_DIR
+EXAMPLES_INSTALL_TARGET
 SHARED_INSTALL_TARGET
 STATIC_INSTALL_TARGET
 SHARED_TARGET
@@ -725,6 +726,7 @@ with_curses
 enable_multibyte
 enable_shared
 enable_static
+enable_install_examples
 enable_largefile
 '
       ac_precious_vars='build_alias
@@ -1276,7 +1278,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures readline 7.0 to adapt to many kinds of systems.
+\`configure' configures readline 8.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1341,7 +1343,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of readline 7.0:";;
+     short | recursive ) echo "Configuration of readline 8.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1352,6 +1354,8 @@ Optional Features:
   --enable-multibyte      enable multibyte characters if OS supports them
   --enable-shared         build shared libraries [[default=YES]]
   --enable-static         build static libraries [[default=YES]]
+  --disable-install-examples
+                          don't install examples [[default=install]]
   --disable-largefile     omit support for large files
 
 Optional Packages:
@@ -1436,7 +1440,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-readline configure 7.0
+readline configure 8.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2088,7 +2092,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by readline $as_me 7.0, which was
+It was created by readline $as_me 8.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2472,7 +2476,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 ac_config_headers="$ac_config_headers config.h"
 
 
-LIBVERSION=7.0
+LIBVERSION=8.0
 
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
@@ -2563,6 +2567,7 @@ fi
 opt_multibyte=yes
 opt_static_libs=yes
 opt_shared_libs=yes
+opt_install_examples=yes
 
 # Check whether --enable-multibyte was given.
 if test "${enable_multibyte+set}" = set; then :
@@ -2579,6 +2584,11 @@ if test "${enable_static+set}" = set; then :
   enableval=$enable_static; opt_static_libs=$enableval
 fi
 
+# Check whether --enable-install-examples was given.
+if test "${enable_install_examples+set}" = set; then :
+  enableval=$enable_install_examples; opt_install_examples=$enableval
+fi
+
 
 if test $opt_multibyte = no; then
 $as_echo "#define NO_MULTIBYTE_SUPPORT 1" >>confdefs.h
@@ -6819,6 +6829,11 @@ fi
 
 
 
+if test "$opt_install_examples" = "yes"; then
+       EXAMPLES_INSTALL_TARGET=install-examples
+fi
+
+
 case "$build_os" in
 msdosdjgpp*)   BUILD_DIR=`pwd.exe` ;;  # to prevent //d/path/file
 *)             BUILD_DIR=`pwd` ;;
@@ -7357,7 +7372,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by readline $as_me 7.0, which was
+This file was extended by readline $as_me 8.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -7423,7 +7438,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-readline config.status 7.0
+readline config.status 8.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index 64ed9ccd1fb98971f5e1b9cbc3ff2d6450c4a67b..b73e37b6702e05b1a7b1ad28616b073c9e34603f 100644 (file)
@@ -5,7 +5,7 @@ dnl report bugs to chet@po.cwru.edu
 dnl
 dnl Process this file with autoconf to produce a configure script.
 
-# Copyright (C) 1987-2016 Free Software Foundation, Inc.
+# Copyright (C) 1987-2018 Free Software Foundation, Inc.
 
 #   This program is free software: you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
@@ -20,9 +20,9 @@ dnl Process this file with autoconf to produce a configure script.
 #   You should have received a copy of the GNU General Public License
 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_REVISION([for Readline 7.0, version 2.83])
+AC_REVISION([for Readline 8.0, version 2.85])
 
-AC_INIT(readline, 7.0, bug-readline@gnu.org)
+AC_INIT(readline, 8.0, bug-readline@gnu.org)
 
 dnl make sure we are using a recent autoconf version
 AC_PREREQ(2.50)
@@ -32,7 +32,7 @@ AC_CONFIG_AUX_DIR(./support)
 AC_CONFIG_HEADERS(config.h)
 
 dnl update the value of RL_READLINE_VERSION in readline.h when this changes
-LIBVERSION=7.0
+LIBVERSION=8.0
 
 AC_CANONICAL_HOST
 AC_CANONICAL_BUILD
@@ -51,10 +51,12 @@ dnl option parsing for optional features
 opt_multibyte=yes
 opt_static_libs=yes
 opt_shared_libs=yes
+opt_install_examples=yes
 
 AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
 AC_ARG_ENABLE(shared, AC_HELP_STRING([--enable-shared], [build shared libraries [[default=YES]]]), opt_shared_libs=$enableval)
 AC_ARG_ENABLE(static, AC_HELP_STRING([--enable-static], [build static libraries [[default=YES]]]), opt_static_libs=$enableval)
+AC_ARG_ENABLE(install-examples, AC_HELP_STRING([--disable-install-examples], [don't install examples [[default=install]]]), opt_install_examples=$enableval)
 
 if test $opt_multibyte = no; then
 AC_DEFINE(NO_MULTIBYTE_SUPPORT)
@@ -274,6 +276,11 @@ AC_SUBST(SHARED_TARGET)
 AC_SUBST(STATIC_INSTALL_TARGET)
 AC_SUBST(SHARED_INSTALL_TARGET)
 
+if test "$opt_install_examples" = "yes"; then
+       EXAMPLES_INSTALL_TARGET=install-examples
+fi
+AC_SUBST(EXAMPLES_INSTALL_TARGET)
+
 case "$build_os" in
 msdosdjgpp*)   BUILD_DIR=`pwd.exe` ;;  # to prevent //d/path/file
 *)             BUILD_DIR=`pwd` ;;
index 75019efcfd34abc1a4686fd1d4cc80ad8fa32d83..b2ed115417f4f0be4cca21ec0c3d34202a4edbce 100644 (file)
--- a/display.c
+++ b/display.c
@@ -2987,7 +2987,8 @@ _rl_update_final (void)
       putc (last_line[_rl_screenwidth - 1 + woff], rl_outstream);
     }
   _rl_vis_botlin = 0;
-  rl_crlf ();
+  if (botline_length > 0 || _rl_last_c_pos > 0)
+    rl_crlf ();
   fflush (rl_outstream);
   rl_display_fixed++;
 }
index 2bbb1acca0f43cc2007721cdf137c0ef0c508af3..2d2867710855974d6931b99970230df69930d837 100644 (file)
Binary files a/doc/._rluserman.pdf and b/doc/._rluserman.pdf differ
index 022ba25315ec45961049d61d7fee61747251ffcf..f7efa748ab9073e1ee034174df6c8b17973a9bf7 100644 (file)
Binary files a/doc/history.dvi and b/doc/history.dvi differ
index ffa16a1b1fd9b5f5f5591bcd9bbadf670d0a3066..5ddf9f047e2831eeff071bc0186c8788b3618730 100644 (file)
@@ -1,6 +1,6 @@
 <HTML>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on January, 2  2018 by texi2html 1.64 -->
+<!-- Created on May, 21  2018 by texi2html 1.64 -->
 <!-- 
 Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -2136,7 +2136,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 Ramey</I> on <I>January, 2  2018</I>
+This document was generated by <I>Chet Ramey</I> on <I>May, 21  2018</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 <P></P>  
@@ -2298,7 +2298,7 @@ the following structure:
 <BR>  
 <FONT SIZE="-1">
 This document was generated
-by <I>Chet Ramey</I> on <I>January, 2  2018</I>
+by <I>Chet Ramey</I> on <I>May, 21  2018</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 
index 780efff8e92e7535738dc93d2edf21fe2d22f59b..c7849aec25fd5362d65e8500b62055f3d29131e1 100644 (file)
Binary files a/doc/history.pdf and b/doc/history.pdf differ
index e077c4d0637de79eb83cc25746b58b4c8cf6594f..6cf9ff3b0c4ba76ef014ad3657b335834d85dbb2 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Creator: dvips(k) 5.997 Copyright 2017 Radical Eye Software
 %%Title: history.dvi
-%%CreationDate: Tue Jan  2 15:56:03 2018
+%%CreationDate: Mon May 21 14:32:51 2018
 %%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.01.02:1056
+%DVIPSSource:  TeX output 2018.05.21:1032
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
index d28bd48562567cad770e963a4ab825ea9268fe38..dbc21c14d9c870428828b4f9f9047e6ee93d690f 100644 (file)
@@ -403,7 +403,7 @@ to the ``normal'' terminating characters.
 Return an array of tokens parsed out of @var{string}, much as the
 shell might.  The tokens are split on the characters in the
 @var{history_word_delimiters} variable,
-and shell quoting conventions are obeyed.
+and shell quoting conventions are obeyed as described below.
 @end deftypefun
 
 @deftypefun {char *} history_arg_extract (int first, int last, const char *string)
@@ -476,8 +476,24 @@ carriage return, and @samp{=}.
 @end deftypevar
 
 @deftypevar int history_quotes_inhibit_expansion
-If non-zero, double-quoted words are not scanned for the history expansion
-character or the history comment character.  The default value is 0.
+If non-zero, the history expansion code implements shell-like quoting:
+single-quoted words are not scanned for the history expansion
+character or the history comment character, and double-quoted words may
+have history expansion performed, since single quotes are not special
+within double quotes.
+The default value is 0.
+@end deftypevar
+
+@deftypevar int history_quoting_state
+An application may set this variable to indicate that the current line
+being expanded is subject to existing quoting. If set to @samp{'}, the
+history expansion function will assume that the line is single-quoted and
+inhibit expansion until it reads an unquoted closing single quote; if set
+to @samp{"}, history expansion will assume the line is double quoted until
+it reads an unquoted closing double quote. If set to zero, the default,
+the history expansion function will assume the line is not quoted and
+treat quote characters within the line as described above.
+This is only effective if @var{history_quotes_inhibit_expansion} is set.
 @end deftypevar
 
 @deftypevar {rl_linebuf_func_t *} history_inhibit_expansion_function
index d21f65d0f143ebf21a17101bb2e0573a11bb3ad9..521ccc708ba812088ca9aa5345100b4594291a97 100644 (file)
@@ -262,8 +262,8 @@ fix errors in previous commands quickly.
 @ifset BashFeatures
 History expansion is performed immediately after a complete line
 is read, before the shell breaks it into words, and is performed
-on each line individually without taking quoting on previous lines into
-account.
+on each line individually.  Bash attempts to inform the history
+expansion functions about quoting still in effect from previous lines.
 @end ifset
 
 History expansion takes place in two parts.  The first is to determine
@@ -277,9 +277,19 @@ that Bash does, so that several words
 surrounded by quotes are considered one word.
 History expansions are introduced by the appearance of the
 history expansion character, which is @samp{!} by default.
+
+History expansion implements shell-like quoting conventions:
+a backslash can be used to remove the special handling for the next character;
+single quotes enclose verbatim sequences of characters, and can be used to
+inhibit history expansion;
+and characters enclosed within double quotes may be subject to history
+expansion, since backslash can escape the history expansion character,
+but single quotes may not, since they are not treated specially within
+double quotes.
+
 @ifset BashFeatures
-Only @samp{\} and @samp{'} may be used to escape the history expansion
-character, but the history expansion character is
+When using the shell, only @samp{\} and @samp{'} may be used to escape the
+history expansion character, but the history expansion character is
 also treated as quoted if it immediately precedes the closing double quote
 in a double-quoted string. 
 @end ifset
index 6b81b2d9ff38d7c38d36645310159e0aae7683af..3654f6f1ecfe8dbeaacf3265bc639f97c0c1d935 100644 (file)
@@ -790,19 +790,20 @@ READLINE(3)                Library Functions Manual                READLINE(3)
               and store the definition.
        \e[1mcall-last-kbd-macro (C-x e)\e[0m
               Re-execute  the last keyboard macro defined, by making the char-
-              acters in  the  macro  appear  as  if  typed  at  the  keyboard.
-              \e[1mprint-last-kbd-macro () \e[22mPrint the last keyboard macro defined in
-              a format suitable for the \e[4minputrc\e[24m file.
+              acters in the macro appear as if typed at the keyboard.
+       \e[1mprint-last-kbd-macro ()\e[0m
+              Print the last keyboard macro defined in a format  suitable  for
+              the \e[4minputrc\e[24m file.
 
    \e[1mMiscellaneous\e[0m
        \e[1mre-read-init-file (C-x C-r)\e[0m
-              Read in the contents of the \e[4minputrc\e[24m file,  and  incorporate  any
+              Read  in  the  contents of the \e[4minputrc\e[24m file, and incorporate any
               bindings or variable assignments found there.
        \e[1mabort (C-g)\e[0m
-              Abort  the  current editing command and ring the terminal's bell
+              Abort the current editing command and ring the  terminal's  bell
               (subject to the setting of \e[1mbell-style\e[22m).
        \e[1mdo-lowercase-version (M-A, M-B, M-\e[4m\e[22mx\e[24m\e[1m, ...)\e[0m
-              If the metafied character \e[4mx\e[24m is uppercase, run the  command  that
+              If  the  metafied character \e[4mx\e[24m is uppercase, run the command that
               is bound to the corresponding metafied lowercase character.  The
               behavior is undefined if \e[4mx\e[24m is already lowercase.
        \e[1mprefix-meta (ESC)\e[0m
@@ -810,80 +811,80 @@ READLINE(3)                Library Functions Manual                READLINE(3)
        \e[1mundo (C-_, C-x C-u)\e[0m
               Incremental undo, separately remembered for each line.
        \e[1mrevert-line (M-r)\e[0m
-              Undo all changes made to this line.  This is like executing  the
-              \e[1mundo  \e[22mcommand  enough  times  to  return the line to its initial
+              Undo  all changes made to this line.  This is like executing the
+              \e[1mundo \e[22mcommand enough times to return  the  line  to  its  initial
               state.
        \e[1mtilde-expand (M-&)\e[0m
               Perform tilde expansion on the current word.
        \e[1mset-mark (C-@, M-<space>)\e[0m
-              Set the mark to the point.  If a numeric argument  is  supplied,
+              Set  the  mark to the point.  If a numeric argument is supplied,
               the mark is set to that position.
        \e[1mexchange-point-and-mark (C-x C-x)\e[0m
-              Swap  the  point  with the mark.  The current cursor position is
-              set to the saved position, and the old cursor position is  saved
+              Swap the point with the mark.  The current  cursor  position  is
+              set  to the saved position, and the old cursor position is saved
               as the mark.
        \e[1mcharacter-search (C-])\e[0m
               A character is read and point is moved to the next occurrence of
-              that character.  A negative count searches for  previous  occur-
+              that  character.   A negative count searches for previous occur-
               rences.
        \e[1mcharacter-search-backward (M-C-])\e[0m
-              A  character  is  read and point is moved to the previous occur-
-              rence of that character.  A negative count searches  for  subse-
+              A character is read and point is moved to  the  previous  occur-
+              rence  of  that character.  A negative count searches for subse-
               quent occurrences.
        \e[1mskip-csi-sequence\e[0m
-              Read  enough  characters to consume a multi-key sequence such as
-              those defined for keys like Home and End.  Such sequences  begin
+              Read enough characters to consume a multi-key sequence  such  as
+              those  defined for keys like Home and End.  Such sequences begin
               with a Control Sequence Indicator (CSI), usually ESC-[.  If this
-              sequence is bound to "\[", keys producing  such  sequences  will
-              have  no  effect  unless explicitly bound to a readline command,
-              instead of inserting stray characters into the  editing  buffer.
+              sequence  is  bound  to "\[", keys producing such sequences will
+              have no effect unless explicitly bound to  a  readline  command,
+              instead  of  inserting stray characters into the editing buffer.
               This is unbound by default, but usually bound to ESC-[.
        \e[1minsert-comment (M-#)\e[0m
-              Without  a  numeric  argument,  the  value  of the readline \e[1mcom-\e[0m
-              \e[1mment-begin \e[22mvariable is inserted at the beginning of the  current
+              Without a numeric argument,  the  value  of  the  readline  \e[1mcom-\e[0m
+              \e[1mment-begin  \e[22mvariable is inserted at the beginning of the current
               line.  If a numeric argument is supplied, this command acts as a
-              toggle: if the characters at the beginning of the  line  do  not
-              match  the value of \e[1mcomment-begin\e[22m, the value is inserted, other-
+              toggle:  if  the  characters at the beginning of the line do not
+              match the value of \e[1mcomment-begin\e[22m, the value is inserted,  other-
               wise the characters in \e[1mcomment-begin \e[22mare deleted from the begin-
-              ning  of the line.  In either case, the line is accepted as if a
-              newline had been typed.   The  default  value  of  \e[1mcomment-begin\e[0m
-              makes  the  current line a shell comment.  If a numeric argument
-              causes the comment character to be removed,  the  line  will  be
+              ning of the line.  In either case, the line is accepted as if  a
+              newline  had  been  typed.   The  default value of \e[1mcomment-begin\e[0m
+              makes the current line a shell comment.  If a  numeric  argument
+              causes  the  comment  character  to be removed, the line will be
               executed by the shell.
        \e[1mdump-functions\e[0m
-              Print  all  of the functions and their key bindings to the read-
+              Print all of the functions and their key bindings to  the  read-
               line output stream.  If a numeric argument is supplied, the out-
-              put  is  formatted  in such a way that it can be made part of an
+              put is formatted in such a way that it can be made  part  of  an
               \e[4minputrc\e[24m file.
        \e[1mdump-variables\e[0m
-              Print all of the settable variables  and  their  values  to  the
-              readline  output stream.  If a numeric argument is supplied, the
+              Print  all  of  the  settable  variables and their values to the
+              readline output stream.  If a numeric argument is supplied,  the
               output is formatted in such a way that it can be made part of an
               \e[4minputrc\e[24m file.
        \e[1mdump-macros\e[0m
-              Print  all of the readline key sequences bound to macros and the
-              strings they output.  If a numeric  argument  is  supplied,  the
+              Print all of the readline key sequences bound to macros and  the
+              strings  they  output.   If  a numeric argument is supplied, the
               output is formatted in such a way that it can be made part of an
               \e[4minputrc\e[24m file.
        \e[1memacs-editing-mode (C-e)\e[0m
-              When in \e[1mvi \e[22mcommand mode, this causes a switch to  \e[1memacs  \e[22mediting
+              When  in  \e[1mvi \e[22mcommand mode, this causes a switch to \e[1memacs \e[22mediting
               mode.
        \e[1mvi-editing-mode (M-C-j)\e[0m
-              When  in  \e[1memacs \e[22mediting mode, this causes a switch to \e[1mvi \e[22mediting
+              When in \e[1memacs \e[22mediting mode, this causes a switch to  \e[1mvi  \e[22mediting
               mode.
 
 \e[1mDEFAULT KEY BINDINGS\e[0m
-       The following is a list of the default emacs and vi bindings.   Charac-
-       ters  with  the  eighth  bit  set are written as M-<character>, and are
+       The  following is a list of the default emacs and vi bindings.  Charac-
+       ters with the eighth bit set are  written  as  M-<character>,  and  are
        referred to as \e[4mmetafied\e[24m characters.  The printable ASCII characters not
-       mentioned  in  the  list  of  emacs  standard bindings are bound to the
-       \e[1mself-insert \e[22mfunction, which just inserts the given character  into  the
+       mentioned in the list of emacs  standard  bindings  are  bound  to  the
+       \e[1mself-insert  \e[22mfunction,  which just inserts the given character into the
        input line.  In vi insertion mode, all characters not specifically men-
        tioned are bound to \e[1mself-insert\e[22m.  Characters assigned to signal genera-
        tion by \e[4mstty\e[24m(1) or the terminal driver, such as C-Z or C-C, retain that
-       function.  Upper and lower case metafied characters are  bound  to  the
-       same  function in the emacs mode meta keymap.  The remaining characters
-       are unbound, which causes readline to ring the  bell  (subject  to  the
+       function.   Upper  and  lower case metafied characters are bound to the
+       same function in the emacs mode meta keymap.  The remaining  characters
+       are  unbound,  which  causes  readline to ring the bell (subject to the
        setting of the \e[1mbell-style \e[22mvariable).
 
    \e[1mEmacs Mode\e[0m
@@ -1097,14 +1098,14 @@ READLINE(3)                Library Functions Manual                READLINE(3)
        chet.ramey@case.edu
 
 \e[1mBUG REPORTS\e[0m
-       If  you  find  a bug in \e[1mreadline, \e[22myou should report it.  But first, you
-       should make sure that it really is a bug, and that it  appears  in  the
+       If you find a bug in \e[1mreadline, \e[22myou should report it.   But  first,  you
+       should  make  sure  that it really is a bug, and that it appears in the
        latest version of the \e[1mreadline \e[22mlibrary that you have.
 
-       Once  you have determined that a bug actually exists, mail a bug report
-       to \e[4mbug-readline\e[24m@\e[4mgnu.org\e[24m.  If you have a fix, you are  welcome  to  mail
-       that  as  well!   Suggestions  and  `philosophical'  bug reports may be
-       mailed to  \e[4mbug-readline\e[24m@\e[4mgnu.org\e[24m  or  posted  to  the  Usenet  newsgroup
+       Once you have determined that a bug actually exists, mail a bug  report
+       to  \e[4mbug-readline\e[24m@\e[4mgnu.org\e[24m.   If  you have a fix, you are welcome to mail
+       that as well!  Suggestions  and  `philosophical'  bug  reports  may  be
+       mailed  to  \e[4mbug-readline\e[24m@\e[4mgnu.org\e[24m  or  posted  to  the  Usenet newsgroup
        \e[1mgnu.bash.bug\e[22m.
 
        Comments and bug reports concerning this manual page should be directed
index 316783931790974d9b89df98329c45e0121fcec7..146236f11f16fa70427dfe9892486e1d304c294a 100644 (file)
Binary files a/doc/readline.dvi and b/doc/readline.dvi differ
index a342fd08f11cb0be1fb1c69bb6c9e7f905262624..53f68b0834b9f23480e02e5aa563b5f11e2af680 100644 (file)
@@ -1,6 +1,6 @@
 <HTML>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on January, 2  2018 by texi2html 1.64 -->
+<!-- Created on May, 21  2018 by texi2html 1.64 -->
 <!-- 
 Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -3560,13 +3560,22 @@ it points to (one of <CODE>ISFUNC</CODE>, <CODE>ISKMAP</CODE>, or <CODE>ISMACR</
 
 <A NAME="IDX284"></A>
 <DL>
+<DT><U>Function:</U> rl_command_func_t * <B>rl_function_of_keyseq_len</B> <I>(const char *keyseq, size_t len Keymap map, int *type)</I>
+<DD>Return the function invoked by <VAR>keyseq</VAR> of length <VAR>len</VAR>
+in keymap <VAR>map</VAR>. Equivalent to <CODE>rl_function_of_keyseq</CODE> with the
+addition of the <VAR>len</VAR> parameter.
+</DL>
+</P><P>
+
+<A NAME="IDX285"></A>
+<DL>
 <DT><U>Function:</U> char ** <B>rl_invoking_keyseqs</B> <I>(rl_command_func_t *function)</I>
 <DD>Return an array of strings representing the key sequences used to
 invoke <VAR>function</VAR> in the current keymap.
 </DL>
 </P><P>
 
-<A NAME="IDX285"></A>
+<A NAME="IDX286"></A>
 <DL>
 <DT><U>Function:</U> char ** <B>rl_invoking_keyseqs_in_map</B> <I>(rl_command_func_t *function, Keymap map)</I>
 <DD>Return an array of strings representing the key sequences used to
@@ -3574,7 +3583,7 @@ invoke <VAR>function</VAR> in the keymap <VAR>map</VAR>.
 </DL>
 </P><P>
 
-<A NAME="IDX286"></A>
+<A NAME="IDX287"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_function_dumper</B> <I>(int readable)</I>
 <DD>Print the readline function names and the key sequences currently
@@ -3584,14 +3593,14 @@ the list is formatted in such a way that it can be made part of an
 </DL>
 </P><P>
 
-<A NAME="IDX287"></A>
+<A NAME="IDX288"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_list_funmap_names</B> <I>(void)</I>
 <DD>Print the names of all bindable Readline functions to <CODE>rl_outstream</CODE>.
 </DL>
 </P><P>
 
-<A NAME="IDX288"></A>
+<A NAME="IDX289"></A>
 <DL>
 <DT><U>Function:</U> const char ** <B>rl_funmap_names</B> <I>(void)</I>
 <DD>Return a NULL terminated array of known function names.  The array is
@@ -3601,7 +3610,7 @@ should free the array, but not the pointers, using <CODE>free</CODE> or
 </DL>
 </P><P>
 
-<A NAME="IDX289"></A>
+<A NAME="IDX290"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_add_funmap_entry</B> <I>(const char *name, rl_command_func_t *function)</I>
 <DD>Add <VAR>name</VAR> to the list of bindable Readline command names, and make
@@ -3656,7 +3665,7 @@ tells what to undo, not how to undo it.  <CODE>UNDO_BEGIN</CODE> and
 <CODE>rl_end_undo_group()</CODE>.
 </P><P>
 
-<A NAME="IDX290"></A>
+<A NAME="IDX291"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_begin_undo_group</B> <I>(void)</I>
 <DD>Begins saving undo information in a group construct.  The undo
@@ -3666,7 +3675,7 @@ information usually comes from calls to <CODE>rl_insert_text()</CODE> and
 </DL>
 </P><P>
 
-<A NAME="IDX291"></A>
+<A NAME="IDX292"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_end_undo_group</B> <I>(void)</I>
 <DD>Closes the current undo group started with <CODE>rl_begin_undo_group
@@ -3675,7 +3684,7 @@ for each call to <CODE>rl_begin_undo_group()</CODE>.
 </DL>
 </P><P>
 
-<A NAME="IDX292"></A>
+<A NAME="IDX293"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_add_undo</B> <I>(enum undo_code what, int start, int end, char *text)</I>
 <DD>Remember how to undo an event (according to <VAR>what</VAR>).  The affected
@@ -3683,14 +3692,14 @@ text runs from <VAR>start</VAR> to <VAR>end</VAR>, and encompasses <VAR>text</VA
 </DL>
 </P><P>
 
-<A NAME="IDX293"></A>
+<A NAME="IDX294"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_free_undo_list</B> <I>(void)</I>
 <DD>Free the existing undo list.
 </DL>
 </P><P>
 
-<A NAME="IDX294"></A>
+<A NAME="IDX295"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_do_undo</B> <I>(void)</I>
 <DD>Undo the first thing on the undo list.  Returns <CODE>0</CODE> if there was
@@ -3704,7 +3713,7 @@ once, just before you modify the text.  You must supply the indices of
 the text range that you are going to modify.
 </P><P>
 
-<A NAME="IDX295"></A>
+<A NAME="IDX296"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_modifying</B> <I>(int start, int end)</I>
 <DD>Tell Readline to save the text between <VAR>start</VAR> and <VAR>end</VAR> as a
@@ -3731,7 +3740,7 @@ that text.
 <!--docid::SEC35::-->
 <P>
 
-<A NAME="IDX296"></A>
+<A NAME="IDX297"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_redisplay</B> <I>(void)</I>
 <DD>Change what's displayed on the screen to reflect the current contents
@@ -3739,7 +3748,7 @@ of <CODE>rl_line_buffer</CODE>.
 </DL>
 </P><P>
 
-<A NAME="IDX297"></A>
+<A NAME="IDX298"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_forced_update_display</B> <I>(void)</I>
 <DD>Force the line to be updated and redisplayed, whether or not
@@ -3747,7 +3756,7 @@ Readline thinks the screen display is correct.
 </DL>
 </P><P>
 
-<A NAME="IDX298"></A>
+<A NAME="IDX299"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_on_new_line</B> <I>(void)</I>
 <DD>Tell the update functions that we have moved onto a new (empty) line,
@@ -3755,7 +3764,7 @@ usually after outputting a newline.
 </DL>
 </P><P>
 
-<A NAME="IDX299"></A>
+<A NAME="IDX300"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_on_new_line_with_prompt</B> <I>(void)</I>
 <DD>Tell the update functions that we have moved onto a new line, with
@@ -3767,14 +3776,14 @@ It should be used after setting <VAR>rl_already_prompted</VAR>.
 </DL>
 </P><P>
 
-<A NAME="IDX300"></A>
+<A NAME="IDX301"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_clear_visible_line</B> <I>(void)</I>
 <DD>Clear the screen lines corresponding to the current line's contents.
 </DL>
 </P><P>
 
-<A NAME="IDX301"></A>
+<A NAME="IDX302"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_reset_line_state</B> <I>(void)</I>
 <DD>Reset the display state to a clean state and redisplay the current line
@@ -3782,14 +3791,14 @@ starting on a new line.
 </DL>
 </P><P>
 
-<A NAME="IDX302"></A>
+<A NAME="IDX303"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_crlf</B> <I>(void)</I>
 <DD>Move the cursor to the start of the next screen line.
 </DL>
 </P><P>
 
-<A NAME="IDX303"></A>
+<A NAME="IDX304"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_show_char</B> <I>(int c)</I>
 <DD>Display character <VAR>c</VAR> on <CODE>rl_outstream</CODE>.
@@ -3800,7 +3809,7 @@ redisplay.
 </DL>
 </P><P>
 
-<A NAME="IDX304"></A>
+<A NAME="IDX305"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_message</B> <I>(const char *, <small>...</small>)</I>
 <DD>The arguments are a format string as would be supplied to <CODE>printf</CODE>,
@@ -3813,7 +3822,7 @@ before calling this function.
 </DL>
 </P><P>
 
-<A NAME="IDX305"></A>
+<A NAME="IDX306"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_clear_message</B> <I>(void)</I>
 <DD>Clear the message in the echo area.  If the prompt was saved with a call to
@@ -3822,7 +3831,7 @@ call <CODE>rl_restore_prompt</CODE> before calling this function.
 </DL>
 </P><P>
 
-<A NAME="IDX306"></A>
+<A NAME="IDX307"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_save_prompt</B> <I>(void)</I>
 <DD>Save the local Readline prompt display state in preparation for
@@ -3830,7 +3839,7 @@ displaying a new message in the message area with <CODE>rl_message()</CODE>.
 </DL>
 </P><P>
 
-<A NAME="IDX307"></A>
+<A NAME="IDX308"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_restore_prompt</B> <I>(void)</I>
 <DD>Restore the local Readline prompt display state saved by the most
@@ -3841,7 +3850,7 @@ corresponding call to <CODE>rl_clear_message</CODE>.
 </DL>
 </P><P>
 
-<A NAME="IDX308"></A>
+<A NAME="IDX309"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_expand_prompt</B> <I>(char *prompt)</I>
 <DD>Expand any special character sequences in <VAR>prompt</VAR> and set up the
@@ -3859,7 +3868,7 @@ be used to embed terminal-specific escape sequences in prompts.
 </DL>
 </P><P>
 
-<A NAME="IDX309"></A>
+<A NAME="IDX310"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_set_prompt</B> <I>(const char *prompt)</I>
 <DD>Make Readline use <VAR>prompt</VAR> for subsequent redisplay.  This calls
@@ -3886,7 +3895,7 @@ to the result.
 <!--docid::SEC36::-->
 <P>
 
-<A NAME="IDX310"></A>
+<A NAME="IDX311"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_insert_text</B> <I>(const char *text)</I>
 <DD>Insert <VAR>text</VAR> into the line at the current cursor position.
@@ -3894,7 +3903,7 @@ Returns the number of characters inserted.
 </DL>
 </P><P>
 
-<A NAME="IDX311"></A>
+<A NAME="IDX312"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_delete_text</B> <I>(int start, int end)</I>
 <DD>Delete the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line.
@@ -3902,7 +3911,7 @@ Returns the number of characters deleted.
 </DL>
 </P><P>
 
-<A NAME="IDX312"></A>
+<A NAME="IDX313"></A>
 <DL>
 <DT><U>Function:</U> char * <B>rl_copy_text</B> <I>(int start, int end)</I>
 <DD>Return a copy of the text between <VAR>start</VAR> and <VAR>end</VAR> in
@@ -3910,7 +3919,7 @@ the current line.
 </DL>
 </P><P>
 
-<A NAME="IDX313"></A>
+<A NAME="IDX314"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_kill_text</B> <I>(int start, int end)</I>
 <DD>Copy the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line
@@ -3922,7 +3931,7 @@ not a kill, a new kill ring slot is used.
 </DL>
 </P><P>
 
-<A NAME="IDX314"></A>
+<A NAME="IDX315"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_push_macro_input</B> <I>(char *macro)</I>
 <DD>Cause <VAR>macro</VAR> to be inserted into the line, as if it had been invoked
@@ -3949,7 +3958,7 @@ by a key bound to a macro.  Not especially useful; use
 <!--docid::SEC37::-->
 <P>
 
-<A NAME="IDX315"></A>
+<A NAME="IDX316"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_read_key</B> <I>(void)</I>
 <DD>Return the next character available from Readline's current input stream.
@@ -3961,7 +3970,7 @@ the <CODE>rl_event_hook</CODE> variable.
 </DL>
 </P><P>
 
-<A NAME="IDX316"></A>
+<A NAME="IDX317"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_getc</B> <I>(FILE *stream)</I>
 <DD>Return the next character available from <VAR>stream</VAR>, which is assumed to
@@ -3969,7 +3978,7 @@ be the keyboard.
 </DL>
 </P><P>
 
-<A NAME="IDX317"></A>
+<A NAME="IDX318"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_stuff_char</B> <I>(int c)</I>
 <DD>Insert <VAR>c</VAR> into the Readline input stream.  It will be "read"
@@ -3980,7 +3989,7 @@ before Readline attempts to read characters from the terminal with
 </DL>
 </P><P>
 
-<A NAME="IDX318"></A>
+<A NAME="IDX319"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_execute_next</B> <I>(int c)</I>
 <DD>Make <VAR>c</VAR> be the next command to be executed when <CODE>rl_read_key()</CODE>
@@ -3988,7 +3997,7 @@ is called.  This sets <VAR>rl_pending_input</VAR>.
 </DL>
 </P><P>
 
-<A NAME="IDX319"></A>
+<A NAME="IDX320"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_clear_pending_input</B> <I>(void)</I>
 <DD>Unset <VAR>rl_pending_input</VAR>, effectively negating the effect of any
@@ -3997,7 +4006,7 @@ pending input has not already been read with <CODE>rl_read_key()</CODE>.
 </DL>
 </P><P>
 
-<A NAME="IDX320"></A>
+<A NAME="IDX321"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_set_keyboard_input_timeout</B> <I>(int u)</I>
 <DD>While waiting for keyboard input in <CODE>rl_read_key()</CODE>, Readline will
@@ -4027,7 +4036,7 @@ Returns the old timeout value.
 <!--docid::SEC38::-->
 <P>
 
-<A NAME="IDX321"></A>
+<A NAME="IDX322"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_prep_terminal</B> <I>(int meta_flag)</I>
 <DD>Modify the terminal settings for Readline's use, so <CODE>readline()</CODE>
@@ -4037,7 +4046,7 @@ read eight-bit input.
 </DL>
 </P><P>
 
-<A NAME="IDX322"></A>
+<A NAME="IDX323"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_deprep_terminal</B> <I>(void)</I>
 <DD>Undo the effects of <CODE>rl_prep_terminal()</CODE>, leaving the terminal in
@@ -4046,7 +4055,7 @@ the state in which it was before the most recent call to
 </DL>
 </P><P>
 
-<A NAME="IDX323"></A>
+<A NAME="IDX324"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_tty_set_default_bindings</B> <I>(Keymap kmap)</I>
 <DD>Read the operating system's terminal editing characters (as would be
@@ -4055,7 +4064,7 @@ The bindings are performed in <VAR>kmap</VAR>.
 </DL>
 </P><P>
 
-<A NAME="IDX324"></A>
+<A NAME="IDX325"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_tty_unset_default_bindings</B> <I>(Keymap kmap)</I>
 <DD>Reset the bindings manipulated by <CODE>rl_tty_set_default_bindings</CODE> so
@@ -4064,7 +4073,7 @@ The bindings are performed in <VAR>kmap</VAR>.
 </DL>
 </P><P>
 
-<A NAME="IDX325"></A>
+<A NAME="IDX326"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_tty_set_echoing</B> <I>(int value)</I>
 <DD>Set Readline's idea of whether or not it is echoing output to its output
@@ -4075,7 +4084,7 @@ This function returns the previous value.
 </DL>
 </P><P>
 
-<A NAME="IDX326"></A>
+<A NAME="IDX327"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_reset_terminal</B> <I>(const char *terminal_name)</I>
 <DD>Reinitialize Readline's idea of the terminal settings using
@@ -4103,7 +4112,7 @@ environment variable is used.
 <!--docid::SEC39::-->
 <P>
 
-<A NAME="IDX327"></A>
+<A NAME="IDX328"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_save_state</B> <I>(struct readline_state *sp)</I>
 <DD>Save a snapshot of Readline's internal state to <VAR>sp</VAR>.
@@ -4113,7 +4122,7 @@ The caller is responsible for allocating the structure.
 </DL>
 </P><P>
 
-<A NAME="IDX328"></A>
+<A NAME="IDX329"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_restore_state</B> <I>(struct readline_state *sp)</I>
 <DD>Restore Readline's internal state to that stored in <VAR>sp</VAR>, which must
@@ -4124,7 +4133,7 @@ The caller is responsible for freeing the structure.
 </DL>
 </P><P>
 
-<A NAME="IDX329"></A>
+<A NAME="IDX330"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_free</B> <I>(void *mem)</I>
 <DD>Deallocate the memory pointed to by <VAR>mem</VAR>.  <VAR>mem</VAR> must have been
@@ -4132,7 +4141,7 @@ allocated by <CODE>malloc</CODE>.
 </DL>
 </P><P>
 
-<A NAME="IDX330"></A>
+<A NAME="IDX331"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_replace_line</B> <I>(const char *text, int clear_undo)</I>
 <DD>Replace the contents of <CODE>rl_line_buffer</CODE> with <VAR>text</VAR>.
@@ -4142,7 +4151,7 @@ current line is cleared.
 </DL>
 </P><P>
 
-<A NAME="IDX331"></A>
+<A NAME="IDX332"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_extend_line_buffer</B> <I>(int len)</I>
 <DD>Ensure that <CODE>rl_line_buffer</CODE> has enough space to hold <VAR>len</VAR>
@@ -4150,7 +4159,7 @@ characters, possibly reallocating it if necessary.
 </DL>
 </P><P>
 
-<A NAME="IDX332"></A>
+<A NAME="IDX333"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_initialize</B> <I>(void)</I>
 <DD>Initialize or re-initialize Readline's internal state.
@@ -4159,21 +4168,21 @@ reading any input.
 </DL>
 </P><P>
 
-<A NAME="IDX333"></A>
+<A NAME="IDX334"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_ding</B> <I>(void)</I>
 <DD>Ring the terminal bell, obeying the setting of <CODE>bell-style</CODE>.
 </DL>
 </P><P>
 
-<A NAME="IDX334"></A>
+<A NAME="IDX335"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_alphabetic</B> <I>(int c)</I>
 <DD>Return 1 if <VAR>c</VAR> is an alphabetic character.
 </DL>
 </P><P>
 
-<A NAME="IDX335"></A>
+<A NAME="IDX336"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_display_match_list</B> <I>(char **matches, int len, int max)</I>
 <DD>A convenience function for displaying a list of strings in
@@ -4193,28 +4202,28 @@ The following are implemented as macros, defined in <CODE>chardefs.h</CODE>.
 Applications should refrain from using them.
 </P><P>
 
-<A NAME="IDX336"></A>
+<A NAME="IDX337"></A>
 <DL>
 <DT><U>Function:</U> int <B>_rl_uppercase_p</B> <I>(int c)</I>
 <DD>Return 1 if <VAR>c</VAR> is an uppercase alphabetic character.
 </DL>
 </P><P>
 
-<A NAME="IDX337"></A>
+<A NAME="IDX338"></A>
 <DL>
 <DT><U>Function:</U> int <B>_rl_lowercase_p</B> <I>(int c)</I>
 <DD>Return 1 if <VAR>c</VAR> is a lowercase alphabetic character.
 </DL>
 </P><P>
 
-<A NAME="IDX338"></A>
+<A NAME="IDX339"></A>
 <DL>
 <DT><U>Function:</U> int <B>_rl_digit_p</B> <I>(int c)</I>
 <DD>Return 1 if <VAR>c</VAR> is a numeric character.
 </DL>
 </P><P>
 
-<A NAME="IDX339"></A>
+<A NAME="IDX340"></A>
 <DL>
 <DT><U>Function:</U> int <B>_rl_to_upper</B> <I>(int c)</I>
 <DD>If <VAR>c</VAR> is a lowercase alphabetic character, return the corresponding
@@ -4222,7 +4231,7 @@ uppercase character.
 </DL>
 </P><P>
 
-<A NAME="IDX340"></A>
+<A NAME="IDX341"></A>
 <DL>
 <DT><U>Function:</U> int <B>_rl_to_lower</B> <I>(int c)</I>
 <DD>If <VAR>c</VAR> is an uppercase alphabetic character, return the corresponding
@@ -4230,7 +4239,7 @@ lowercase character.
 </DL>
 </P><P>
 
-<A NAME="IDX341"></A>
+<A NAME="IDX342"></A>
 <DL>
 <DT><U>Function:</U> int <B>_rl_digit_value</B> <I>(int c)</I>
 <DD>If <VAR>c</VAR> is a number, return the value it represents.
@@ -4255,7 +4264,7 @@ lowercase character.
 <!--docid::SEC40::-->
 <P>
 
-<A NAME="IDX342"></A>
+<A NAME="IDX343"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_macro_bind</B> <I>(const char *keyseq, const char *macro, Keymap map)</I>
 <DD>Bind the key sequence <VAR>keyseq</VAR> to invoke the macro <VAR>macro</VAR>.
@@ -4265,7 +4274,7 @@ use <CODE>rl_generic_bind()</CODE> instead.
 </DL>
 </P><P>
 
-<A NAME="IDX343"></A>
+<A NAME="IDX344"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_macro_dumper</B> <I>(int readable)</I>
 <DD>Print the key sequences bound to macros and their values, using
@@ -4275,7 +4284,7 @@ that it can be made part of an <CODE>inputrc</CODE> file and re-read.
 </DL>
 </P><P>
 
-<A NAME="IDX344"></A>
+<A NAME="IDX345"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_variable_bind</B> <I>(const char *variable, const char *value)</I>
 <DD>Make the Readline variable <VAR>variable</VAR> have <VAR>value</VAR>.
@@ -4285,7 +4294,7 @@ file (see section <A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax<
 </DL>
 </P><P>
 
-<A NAME="IDX345"></A>
+<A NAME="IDX346"></A>
 <DL>
 <DT><U>Function:</U> char * <B>rl_variable_value</B> <I>(const char *variable)</I>
 <DD>Return a string representing the value of the Readline variable <VAR>variable</VAR>.
@@ -4293,7 +4302,7 @@ For boolean variables, this string is either <SAMP>`on'</SAMP> or <SAMP>`off'</S
 </DL>
 </P><P>
 
-<A NAME="IDX346"></A>
+<A NAME="IDX347"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_variable_dumper</B> <I>(int readable)</I>
 <DD>Print the readline variable names and their current values
@@ -4303,7 +4312,7 @@ that it can be made part of an <CODE>inputrc</CODE> file and re-read.
 </DL>
 </P><P>
 
-<A NAME="IDX347"></A>
+<A NAME="IDX348"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_set_paren_blink_timeout</B> <I>(int u)</I>
 <DD>Set the time interval (in microseconds) that Readline waits when showing
@@ -4311,7 +4320,7 @@ a balancing character when <CODE>blink-matching-paren</CODE> has been enabled.
 </DL>
 </P><P>
 
-<A NAME="IDX348"></A>
+<A NAME="IDX349"></A>
 <DL>
 <DT><U>Function:</U> char * <B>rl_get_termcap</B> <I>(const char *cap)</I>
 <DD>Retrieve the string value of the termcap capability <VAR>cap</VAR>.
@@ -4323,7 +4332,7 @@ values for only those capabilities Readline uses.
 </DL>
 </P><P>
 
-<A NAME="IDX349"></A>
+<A NAME="IDX350"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_clear_history</B> <I>(void)</I>
 <DD>Clear the history list by deleting all of the entries, in the same manner
@@ -4359,7 +4368,7 @@ also be invoked as a `callback' function from an event loop.  There
 are functions available to make this easy.
 </P><P>
 
-<A NAME="IDX350"></A>
+<A NAME="IDX351"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_callback_handler_install</B> <I>(const char *prompt, rl_vcpfunc_t *lhandler)</I>
 <DD>Set up the terminal for readline I/O and display the initial
@@ -4372,7 +4381,7 @@ line when it it finished with it.
 </DL>
 </P><P>
 
-<A NAME="IDX351"></A>
+<A NAME="IDX352"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_callback_read_char</B> <I>(void)</I>
 <DD>Whenever an application determines that keyboard input is available, it
@@ -4392,7 +4401,7 @@ the terminal settings are modified for Readline's use again.
 </DL>
 </P><P>
 
-<A NAME="IDX352"></A>
+<A NAME="IDX353"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_callback_sigcleanup</B> <I>(void)</I>
 <DD>Clean up any internal state the callback interface uses to maintain state
@@ -4403,7 +4412,7 @@ calls this when appropriate.
 </DL>
 </P><P>
 
-<A NAME="IDX353"></A>
+<A NAME="IDX354"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_callback_handler_remove</B> <I>(void)</I>
 <DD>Restore the terminal to its initial state and remove the line handler.
@@ -4722,7 +4731,7 @@ values of these variables only when calling <CODE>readline()</CODE>, not in
 a signal handler, so Readline's internal signal state is not corrupted.
 </P><P>
 
-<A NAME="IDX354"></A>
+<A NAME="IDX355"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_catch_signals</B>
 <DD>If this variable is non-zero, Readline will install signal handlers for
@@ -4734,7 +4743,7 @@ The default value of <CODE>rl_catch_signals</CODE> is 1.
 </DL>
 </P><P>
 
-<A NAME="IDX355"></A>
+<A NAME="IDX356"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_catch_sigwinch</B>
 <DD>If this variable is set to a non-zero value,
@@ -4745,7 +4754,7 @@ The default value of <CODE>rl_catch_sigwinch</CODE> is 1.
 </DL>
 </P><P>
 
-<A NAME="IDX356"></A>
+<A NAME="IDX357"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_persistent_signal_handlers</B>
 <DD>If an application using the callback interface wishes Readline's signal
@@ -4758,7 +4767,7 @@ The default value of <CODE>rl_persistent_signal_handlers</CODE> is 0.
 </DL>
 </P><P>
 
-<A NAME="IDX357"></A>
+<A NAME="IDX358"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_change_environment</B>
 <DD>If this variable is set to a non-zero value,
@@ -4778,7 +4787,7 @@ Readline provides convenience functions to do the necessary terminal
 and internal state cleanup upon receipt of a signal.
 </P><P>
 
-<A NAME="IDX358"></A>
+<A NAME="IDX359"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_pending_signal</B> <I>(void)</I>
 <DD>Return the signal number of the most recent signal Readline received but
@@ -4786,7 +4795,7 @@ has not yet handled, or 0 if there is no pending signal.
 </DL>
 </P><P>
 
-<A NAME="IDX359"></A>
+<A NAME="IDX360"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_cleanup_after_signal</B> <I>(void)</I>
 <DD>This function will reset the state of the terminal to what it was before
@@ -4796,7 +4805,7 @@ all signals, depending on the values of <CODE>rl_catch_signals</CODE> and
 </DL>
 </P><P>
 
-<A NAME="IDX360"></A>
+<A NAME="IDX361"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_free_line_state</B> <I>(void)</I>
 <DD>This will free any partial state associated with the current input line
@@ -4808,7 +4817,7 @@ current input line.
 </DL>
 </P><P>
 
-<A NAME="IDX361"></A>
+<A NAME="IDX362"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_reset_after_signal</B> <I>(void)</I>
 <DD>This will reinitialize the terminal and reinstall any Readline signal
@@ -4825,7 +4834,7 @@ a custom <CODE>rl_getc_function</CODE> (see section <A HREF="readline.html#SEC28
 to handle signals received while waiting for input.
 </P><P>
 
-<A NAME="IDX362"></A>
+<A NAME="IDX363"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_check_signals</B> <I>(void)</I>
 <DD>If there are any pending signals, call Readline's internal signal handling
@@ -4840,7 +4849,7 @@ Readline to update its idea of the terminal size when a <CODE>SIGWINCH</CODE>
 is received.
 </P><P>
 
-<A NAME="IDX363"></A>
+<A NAME="IDX364"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_echo_signal_char</B> <I>(int sig)</I>
 <DD>If an application wishes to install its own signal handlers, but still
@@ -4850,14 +4859,14 @@ function with <VAR>sig</VAR> set to <CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>, o
 </DL>
 </P><P>
 
-<A NAME="IDX364"></A>
+<A NAME="IDX365"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_resize_terminal</B> <I>(void)</I>
 <DD>Update Readline's internal screen size by reading values from the kernel.
 </DL>
 </P><P>
 
-<A NAME="IDX365"></A>
+<A NAME="IDX366"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_set_screen_size</B> <I>(int rows, int cols)</I>
 <DD>Set Readline's idea of the terminal size to <VAR>rows</VAR> rows and
@@ -4871,7 +4880,7 @@ is still interested in the screen dimensions, Readline's idea of the screen
 size may be queried.
 </P><P>
 
-<A NAME="IDX366"></A>
+<A NAME="IDX367"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_get_screen_size</B> <I>(int *rows, int *cols)</I>
 <DD>Return Readline's idea of the terminal's size in the
@@ -4879,7 +4888,7 @@ variables pointed to by the arguments.
 </DL>
 </P><P>
 
-<A NAME="IDX367"></A>
+<A NAME="IDX368"></A>
 <DL>
 <DT><U>Function:</U> void <B>rl_reset_screen_size</B> <I>(void)</I>
 <DD>Cause Readline to reobtain the screen size and recalculate its dimensions.
@@ -4889,7 +4898,7 @@ variables pointed to by the arguments.
 The following functions install and remove Readline's signal handlers.
 </P><P>
 
-<A NAME="IDX368"></A>
+<A NAME="IDX369"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_set_signals</B> <I>(void)</I>
 <DD>Install Readline's signal handler for <CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>,
@@ -4899,7 +4908,7 @@ The following functions install and remove Readline's signal handlers.
 </DL>
 </P><P>
 
-<A NAME="IDX369"></A>
+<A NAME="IDX370"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_clear_signals</B> <I>(void)</I>
 <DD>Remove all of the Readline signal handlers installed by
@@ -5012,7 +5021,7 @@ Such a generator function is referred to as an
 </OL>
 <P>
 
-<A NAME="IDX370"></A>
+<A NAME="IDX371"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
 <DD>Complete the word at or before point.  You have supplied the function
@@ -5021,7 +5030,7 @@ that does the initial simple matching selection algorithm (see
 </DL>
 </P><P>
 
-<A NAME="IDX371"></A>
+<A NAME="IDX372"></A>
 <DL>
 <DT><U>Variable:</U> rl_compentry_func_t * <B>rl_completion_entry_function</B>
 <DD>This is a pointer to the generator function for
@@ -5057,7 +5066,7 @@ Here is the complete list of callable completion functions present in
 Readline.
 </P><P>
 
-<A NAME="IDX372"></A>
+<A NAME="IDX373"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_complete_internal</B> <I>(int what_to_do)</I>
 <DD>Complete the word at or before point.  <VAR>what_to_do</VAR> says what to do
@@ -5071,7 +5080,7 @@ a common prefix.
 </DL>
 </P><P>
 
-<A NAME="IDX373"></A>
+<A NAME="IDX374"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
 <DD>Complete the word at or before point.  You have supplied the function
@@ -5083,7 +5092,7 @@ argument depending on <VAR>invoking_key</VAR>.
 </DL>
 </P><P>
 
-<A NAME="IDX374"></A>
+<A NAME="IDX375"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_possible_completions</B> <I>(int count, int invoking_key)</I>
 <DD>List the possible completions.  See description of <CODE>rl_complete
@@ -5092,7 +5101,7 @@ argument depending on <VAR>invoking_key</VAR>.
 </DL>
 </P><P>
 
-<A NAME="IDX375"></A>
+<A NAME="IDX376"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_insert_completions</B> <I>(int count, int invoking_key)</I>
 <DD>Insert the list of possible completions into the line, deleting the
@@ -5101,7 +5110,7 @@ This calls <CODE>rl_complete_internal()</CODE> with an argument of <SAMP>`*'</SA
 </DL>
 </P><P>
 
-<A NAME="IDX376"></A>
+<A NAME="IDX377"></A>
 <DL>
 <DT><U>Function:</U> int <B>rl_completion_mode</B> <I>(rl_command_func_t *cfunc)</I>
 <DD>Returns the appropriate value to pass to <CODE>rl_complete_internal()</CODE>
@@ -5113,7 +5122,7 @@ the same interface as <CODE>rl_complete()</CODE>.
 </DL>
 </P><P>
 
-<A NAME="IDX377"></A>
+<A NAME="IDX378"></A>
 <DL>
 <DT><U>Function:</U> char ** <B>rl_completion_matches</B> <I>(const char *text, rl_compentry_func_t *entry_func)</I>
 <DD>Returns an array of strings which is a list of completions for
@@ -5131,7 +5140,7 @@ when there are no more matches.
 </DL>
 </P><P>
 
-<A NAME="IDX378"></A>
+<A NAME="IDX379"></A>
 <DL>
 <DT><U>Function:</U> char * <B>rl_filename_completion_function</B> <I>(const char *text, int state)</I>
 <DD>A generator function for filename completion in the general case.
@@ -5142,7 +5151,7 @@ Readline functions).
 </DL>
 </P><P>
 
-<A NAME="IDX379"></A>
+<A NAME="IDX380"></A>
 <DL>
 <DT><U>Function:</U> char * <B>rl_username_completion_function</B> <I>(const char *text, int state)</I>
 <DD>A completion generator for usernames.  <VAR>text</VAR> contains a partial
@@ -5170,7 +5179,7 @@ for subsequent calls.
 <!--docid::SEC48::-->
 <P>
 
-<A NAME="IDX380"></A>
+<A NAME="IDX381"></A>
 <DL>
 <DT><U>Variable:</U> rl_compentry_func_t * <B>rl_completion_entry_function</B>
 <DD>A pointer to the generator function for <CODE>rl_completion_matches()</CODE>.
@@ -5179,7 +5188,7 @@ the default filename completer.
 </DL>
 </P><P>
 
-<A NAME="IDX381"></A>
+<A NAME="IDX382"></A>
 <DL>
 <DT><U>Variable:</U> rl_completion_func_t * <B>rl_attempted_completion_function</B>
 <DD>A pointer to an alternative function to create matches.
@@ -5196,7 +5205,7 @@ completion even if this function returns no matches.
 </DL>
 </P><P>
 
-<A NAME="IDX382"></A>
+<A NAME="IDX383"></A>
 <DL>
 <DT><U>Variable:</U> rl_quote_func_t * <B>rl_filename_quoting_function</B>
 <DD>A pointer to a function that will quote a filename in an
@@ -5213,7 +5222,7 @@ to reset this character.
 </DL>
 </P><P>
 
-<A NAME="IDX383"></A>
+<A NAME="IDX384"></A>
 <DL>
 <DT><U>Variable:</U> rl_dequote_func_t * <B>rl_filename_dequoting_function</B>
 <DD>A pointer to a function that will remove application-specific quoting
@@ -5226,7 +5235,7 @@ that delimits the filename (usually <SAMP>`''</SAMP> or <SAMP>`"'</SAMP>).  If
 </DL>
 </P><P>
 
-<A NAME="IDX384"></A>
+<A NAME="IDX385"></A>
 <DL>
 <DT><U>Variable:</U> rl_linebuf_func_t * <B>rl_char_is_quoted_p</B>
 <DD>A pointer to a function to call that determines whether or not a specific
@@ -5239,7 +5248,7 @@ used to break words for the completer.
 </DL>
 </P><P>
 
-<A NAME="IDX385"></A>
+<A NAME="IDX386"></A>
 <DL>
 <DT><U>Variable:</U> rl_compignore_func_t * <B>rl_ignore_some_completions_function</B>
 <DD>This function, if defined, is called by the completer when real filename
@@ -5252,7 +5261,7 @@ from the array must be freed.
 </DL>
 </P><P>
 
-<A NAME="IDX386"></A>
+<A NAME="IDX387"></A>
 <DL>
 <DT><U>Variable:</U> rl_icppfunc_t * <B>rl_directory_completion_hook</B>
 <DD>This function, if defined, is allowed to modify the directory portion
@@ -5275,7 +5284,7 @@ The function should not modify the directory argument if it returns 0.
 </DL>
 </P><P>
 
-<A NAME="IDX387"></A>
+<A NAME="IDX388"></A>
 <DL>
 <DT><U>Variable:</U> rl_icppfunc_t * <B>rl_directory_rewrite_hook;</B>
 <DD>If non-zero, this is the address of a function to call when completing
@@ -5295,7 +5304,7 @@ The function should not modify the directory argument if it returns 0.
 </DL>
 </P><P>
 
-<A NAME="IDX388"></A>
+<A NAME="IDX389"></A>
 <DL>
 <DT><U>Variable:</U> rl_icppfunc_t * <B>rl_filename_stat_hook</B>
 <DD>If non-zero, this is the address of a function for the completer to
@@ -5311,7 +5320,7 @@ The function should not modify the directory argument if it returns 0.
 </DL>
 </P><P>
 
-<A NAME="IDX389"></A>
+<A NAME="IDX390"></A>
 <DL>
 <DT><U>Variable:</U> rl_dequote_func_t * <B>rl_filename_rewrite_hook</B>
 <DD>If non-zero, this is the address of a function called when reading
@@ -5330,7 +5339,7 @@ allocated string.
 </DL>
 </P><P>
 
-<A NAME="IDX390"></A>
+<A NAME="IDX391"></A>
 <DL>
 <DT><U>Variable:</U> rl_compdisp_func_t * <B>rl_completion_display_matches_hook</B>
 <DD>If non-zero, then this is the address of a function to call when
@@ -5347,7 +5356,7 @@ You may call that function from this hook.
 </DL>
 </P><P>
 
-<A NAME="IDX391"></A>
+<A NAME="IDX392"></A>
 <DL>
 <DT><U>Variable:</U> const char * <B>rl_basic_word_break_characters</B>
 <DD>The basic list of characters that signal a break between words for the
@@ -5357,14 +5366,14 @@ which break words for completion in Bash:
 </DL>
 </P><P>
 
-<A NAME="IDX392"></A>
+<A NAME="IDX393"></A>
 <DL>
 <DT><U>Variable:</U> const char * <B>rl_basic_quote_characters</B>
 <DD>A list of quote characters which can cause a word break.
 </DL>
 </P><P>
 
-<A NAME="IDX393"></A>
+<A NAME="IDX394"></A>
 <DL>
 <DT><U>Variable:</U> const char * <B>rl_completer_word_break_characters</B>
 <DD>The list of characters that signal a break between words for
@@ -5373,7 +5382,7 @@ which break words for completion in Bash:
 </DL>
 </P><P>
 
-<A NAME="IDX394"></A>
+<A NAME="IDX395"></A>
 <DL>
 <DT><U>Variable:</U> rl_cpvfunc_t * <B>rl_completion_word_break_hook</B>
 <DD>If non-zero, this is the address of a function to call when Readline is
@@ -5385,7 +5394,7 @@ returns <CODE>NULL</CODE>, <CODE>rl_completer_word_break_characters</CODE> is us
 </DL>
 </P><P>
 
-<A NAME="IDX395"></A>
+<A NAME="IDX396"></A>
 <DL>
 <DT><U>Variable:</U> const char * <B>rl_completer_quote_characters</B>
 <DD>A list of characters which can be used to quote a substring of the line.
@@ -5395,7 +5404,7 @@ unless they also appear within this list.
 </DL>
 </P><P>
 
-<A NAME="IDX396"></A>
+<A NAME="IDX397"></A>
 <DL>
 <DT><U>Variable:</U> const char * <B>rl_filename_quote_characters</B>
 <DD>A list of characters that cause a filename to be quoted by the completer
@@ -5403,7 +5412,7 @@ when they appear in a completed filename.  The default is the null string.
 </DL>
 </P><P>
 
-<A NAME="IDX397"></A>
+<A NAME="IDX398"></A>
 <DL>
 <DT><U>Variable:</U> const char * <B>rl_special_prefixes</B>
 <DD>The list of characters that are word break characters, but should be
@@ -5414,7 +5423,7 @@ shell variables and hostnames.
 </DL>
 </P><P>
 
-<A NAME="IDX398"></A>
+<A NAME="IDX399"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_completion_query_items</B>
 <DD>Up to this many items will be displayed in response to a
@@ -5424,7 +5433,7 @@ indicates that Readline should never ask the user.
 </DL>
 </P><P>
 
-<A NAME="IDX399"></A>
+<A NAME="IDX400"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_completion_append_character</B>
 <DD>When a single completion alternative matches at the end of the command
@@ -5437,7 +5446,7 @@ an application-specific command line syntax specification.
 </DL>
 </P><P>
 
-<A NAME="IDX400"></A>
+<A NAME="IDX401"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_completion_suppress_append</B>
 <DD>If non-zero, <VAR>rl_completion_append_character</VAR> is not appended to
@@ -5447,7 +5456,7 @@ is called, and may only be changed within such a function.
 </DL>
 </P><P>
 
-<A NAME="IDX401"></A>
+<A NAME="IDX402"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_completion_quote_character</B>
 <DD>When Readline is completing quoted text, as delimited by one of the
@@ -5457,7 +5466,7 @@ This is set before any application-specific completion function is called.
 </DL>
 </P><P>
 
-<A NAME="IDX402"></A>
+<A NAME="IDX403"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_completion_suppress_quote</B>
 <DD>If non-zero, Readline does not append a matching quote character when
@@ -5467,7 +5476,7 @@ is called, and may only be changed within such a function.
 </DL>
 </P><P>
 
-<A NAME="IDX403"></A>
+<A NAME="IDX404"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_completion_found_quote</B>
 <DD>When Readline is completing quoted text, it sets this variable
@@ -5477,7 +5486,7 @@ This is set before any application-specific completion function is called.
 </DL>
 </P><P>
 
-<A NAME="IDX404"></A>
+<A NAME="IDX405"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_completion_mark_symlink_dirs</B>
 <DD>If non-zero, a slash will be appended to completed filenames that are
@@ -5492,7 +5501,7 @@ function modifies the value, the user's preferences are honored.
 </DL>
 </P><P>
 
-<A NAME="IDX405"></A>
+<A NAME="IDX406"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_ignore_completion_duplicates</B>
 <DD>If non-zero, then duplicates in the matches are removed.
@@ -5500,7 +5509,7 @@ The default is 1.
 </DL>
 </P><P>
 
-<A NAME="IDX406"></A>
+<A NAME="IDX407"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_filename_completion_desired</B>
 <DD>Non-zero means that the results of the matches are to be treated as
@@ -5514,7 +5523,7 @@ characters in <CODE>rl_filename_quote_characters</CODE> and
 </DL>
 </P><P>
 
-<A NAME="IDX407"></A>
+<A NAME="IDX408"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_filename_quoting_desired</B>
 <DD>Non-zero means that the results of the matches are to be quoted using
@@ -5528,7 +5537,7 @@ by <CODE>rl_filename_quoting_function</CODE>.
 </DL>
 </P><P>
 
-<A NAME="IDX408"></A>
+<A NAME="IDX409"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_attempted_completion_over</B>
 <DD>If an application-specific completion function assigned to
@@ -5539,7 +5548,7 @@ It should be set only by an application's completion function.
 </DL>
 </P><P>
 
-<A NAME="IDX409"></A>
+<A NAME="IDX410"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_sort_completion_matches</B>
 <DD>If an application sets this variable to 0, Readline will not sort the
@@ -5551,7 +5560,7 @@ matches.
 </DL>
 </P><P>
 
-<A NAME="IDX410"></A>
+<A NAME="IDX411"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_completion_type</B>
 <DD>Set to a character describing the type of completion Readline is currently
@@ -5563,7 +5572,7 @@ the same interface as <CODE>rl_complete()</CODE>.
 </DL>
 </P><P>
 
-<A NAME="IDX411"></A>
+<A NAME="IDX412"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_completion_invoking_key</B>
 <DD>Set to the final character in the key sequence that invoked one of the
@@ -5573,7 +5582,7 @@ function is called.
 </DL>
 </P><P>
 
-<A NAME="IDX412"></A>
+<A NAME="IDX413"></A>
 <DL>
 <DT><U>Variable:</U> int <B>rl_inhibit_completion</B>
 <DD>If this variable is non-zero, completion is inhibited.  The completion
@@ -6812,12 +6821,12 @@ to permit their use in free software.
 <TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn__"></A>_</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX338"><CODE>_rl_digit_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX341"><CODE>_rl_digit_value</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX337"><CODE>_rl_lowercase_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX340"><CODE>_rl_to_lower</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX339"><CODE>_rl_to_upper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX336"><CODE>_rl_uppercase_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX339"><CODE>_rl_digit_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX342"><CODE>_rl_digit_value</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX338"><CODE>_rl_lowercase_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX341"><CODE>_rl_to_lower</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX340"><CODE>_rl_to_upper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX337"><CODE>_rl_uppercase_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_A"></A>A</TH><TD></TD><TD></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX179"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
@@ -7013,15 +7022,15 @@ to permit their use in free software.
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX187"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX188"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX255"><CODE>rl_add_defun</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC30">2.4.1 Naming a Function</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX289"><CODE>rl_add_funmap_entry</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX292"><CODE>rl_add_undo</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX334"><CODE>rl_alphabetic</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX290"><CODE>rl_add_funmap_entry</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX293"><CODE>rl_add_undo</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX335"><CODE>rl_alphabetic</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX226">rl_already_prompted</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX381">rl_attempted_completion_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX408">rl_attempted_completion_over</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX392">rl_basic_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX391">rl_basic_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX290"><CODE>rl_begin_undo_group</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX382">rl_attempted_completion_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX409">rl_attempted_completion_over</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX393">rl_basic_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX392">rl_basic_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX291"><CODE>rl_begin_undo_group</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX266"><CODE>rl_bind_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#IDX268"><CODE>rl_bind_key_if_unbound</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#IDX269"><CODE>rl_bind_key_if_unbound_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
@@ -7031,179 +7040,180 @@ to permit their use in free software.
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX278"><CODE>rl_bind_keyseq_if_unbound_in_map</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#IDX275"><CODE>rl_bind_keyseq_in_map</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#IDX246">rl_binding_keymap</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX350"><CODE>rl_callback_handler_install</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX353"><CODE>rl_callback_handler_remove</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX351"><CODE>rl_callback_read_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX352"><CODE>rl_callback_sigcleanup</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX354">rl_catch_signals</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX355">rl_catch_sigwinch</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX357">rl_change_environment</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX384">rl_char_is_quoted_p</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX362"><CODE>rl_check_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX359"><CODE>rl_cleanup_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX349"><CODE>rl_clear_history</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#IDX305"><CODE>rl_clear_message</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#IDX319"><CODE>rl_clear_pending_input</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#IDX369"><CODE>rl_clear_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX300"><CODE>rl_clear_visible_line</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#IDX370"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.1 How Completing Works</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX373"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX372"><CODE>rl_complete_internal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX395">rl_completer_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX393">rl_completer_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX399">rl_completion_append_character</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX390">rl_completion_display_matches_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX371">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.1 How Completing Works</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX380">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX403">rl_completion_found_quote</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX411">rl_completion_invoking_key</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX404">rl_completion_mark_symlink_dirs</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX377"><CODE>rl_completion_matches</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX376"><CODE>rl_completion_mode</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX398">rl_completion_query_items</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX401">rl_completion_quote_character</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX400">rl_completion_suppress_append</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX402">rl_completion_suppress_quote</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX410">rl_completion_type</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX394">rl_completion_word_break_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX351"><CODE>rl_callback_handler_install</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX354"><CODE>rl_callback_handler_remove</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX352"><CODE>rl_callback_read_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX353"><CODE>rl_callback_sigcleanup</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX355">rl_catch_signals</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX356">rl_catch_sigwinch</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX358">rl_change_environment</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX385">rl_char_is_quoted_p</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX363"><CODE>rl_check_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX360"><CODE>rl_cleanup_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX350"><CODE>rl_clear_history</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#IDX306"><CODE>rl_clear_message</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#IDX320"><CODE>rl_clear_pending_input</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#IDX370"><CODE>rl_clear_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX301"><CODE>rl_clear_visible_line</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#IDX371"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.1 How Completing Works</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX374"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX373"><CODE>rl_complete_internal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX396">rl_completer_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX394">rl_completer_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX400">rl_completion_append_character</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX391">rl_completion_display_matches_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX372">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.1 How Completing Works</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX381">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX404">rl_completion_found_quote</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX412">rl_completion_invoking_key</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX405">rl_completion_mark_symlink_dirs</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX378"><CODE>rl_completion_matches</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX377"><CODE>rl_completion_mode</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX399">rl_completion_query_items</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX402">rl_completion_quote_character</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX401">rl_completion_suppress_append</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX403">rl_completion_suppress_quote</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX411">rl_completion_type</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX395">rl_completion_word_break_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX257"><CODE>rl_copy_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#IDX312"><CODE>rl_copy_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX302"><CODE>rl_crlf</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#IDX311"><CODE>rl_delete_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX313"><CODE>rl_copy_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX303"><CODE>rl_crlf</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#IDX312"><CODE>rl_delete_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX244">rl_deprep_term_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX322"><CODE>rl_deprep_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX333"><CODE>rl_ding</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX386">rl_directory_completion_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX387">rl_directory_rewrite_hook;</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX323"><CODE>rl_deprep_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX334"><CODE>rl_ding</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX387">rl_directory_completion_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX388">rl_directory_rewrite_hook;</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX259"><CODE>rl_discard_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#IDX222">rl_dispatching</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX335"><CODE>rl_display_match_list</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX336"><CODE>rl_display_match_list</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX225">rl_display_prompt</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX294"><CODE>rl_do_undo</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX295"><CODE>rl_do_undo</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX219">rl_done</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX363"><CODE>rl_echo_signal_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX364"><CODE>rl_echo_signal_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX254">rl_editing_mode</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX261"><CODE>rl_empty_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#IDX217">rl_end</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX291"><CODE>rl_end_undo_group</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX292"><CODE>rl_end_undo_group</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX223">rl_erase_empty_line</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX238">rl_event_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX318"><CODE>rl_execute_next</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#IDX319"><CODE>rl_execute_next</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#IDX248">rl_executing_key</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX245">rl_executing_keymap</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX249">rl_executing_keyseq</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX247">rl_executing_macro</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX308"><CODE>rl_expand_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#IDX309"><CODE>rl_expand_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#IDX252">rl_explicit_arg</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX331"><CODE>rl_extend_line_buffer</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX406">rl_filename_completion_desired</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX378"><CODE>rl_filename_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX383">rl_filename_dequoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX396">rl_filename_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX407">rl_filename_quoting_desired</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX382">rl_filename_quoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX389">rl_filename_rewrite_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX388">rl_filename_stat_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX297"><CODE>rl_forced_update_display</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#IDX329"><CODE>rl_free</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX332"><CODE>rl_extend_line_buffer</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX407">rl_filename_completion_desired</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX379"><CODE>rl_filename_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX384">rl_filename_dequoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX397">rl_filename_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX408">rl_filename_quoting_desired</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX383">rl_filename_quoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX390">rl_filename_rewrite_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX389">rl_filename_stat_hook</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX298"><CODE>rl_forced_update_display</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#IDX330"><CODE>rl_free</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX260"><CODE>rl_free_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#IDX360"><CODE>rl_free_line_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX293"><CODE>rl_free_undo_list</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX286"><CODE>rl_function_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX361"><CODE>rl_free_line_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX294"><CODE>rl_free_undo_list</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX287"><CODE>rl_function_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX283"><CODE>rl_function_of_keyseq</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX288"><CODE>rl_funmap_names</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX284"><CODE>rl_function_of_keyseq_len</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX289"><CODE>rl_funmap_names</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX279"><CODE>rl_generic_bind</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#IDX262"><CODE>rl_get_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#IDX264"><CODE>rl_get_keymap_by_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#IDX265"><CODE>rl_get_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#IDX366"><CODE>rl_get_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX348"><CODE>rl_get_termcap</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#IDX316"><CODE>rl_getc</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#IDX367"><CODE>rl_get_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX349"><CODE>rl_get_termcap</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#IDX317"><CODE>rl_getc</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#IDX239">rl_getc_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX229">rl_gnu_readline_p</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX405">rl_ignore_completion_duplicates</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX385">rl_ignore_some_completions_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX412">rl_inhibit_completion</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX332"><CODE>rl_initialize</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX406">rl_ignore_completion_duplicates</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX386">rl_ignore_some_completions_function</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX413">rl_inhibit_completion</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX333"><CODE>rl_initialize</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX241">rl_input_available_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX375"><CODE>rl_insert_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX310"><CODE>rl_insert_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX376"><CODE>rl_insert_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX311"><CODE>rl_insert_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX232">rl_instream</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX284"><CODE>rl_invoking_keyseqs</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX285"><CODE>rl_invoking_keyseqs_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX285"><CODE>rl_invoking_keyseqs</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX286"><CODE>rl_invoking_keyseqs_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX250">rl_key_sequence_length</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX313"><CODE>rl_kill_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX314"><CODE>rl_kill_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX235">rl_last_func</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX227">rl_library_version</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX215">rl_line_buffer</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX287"><CODE>rl_list_funmap_names</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX342"><CODE>rl_macro_bind</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#IDX343"><CODE>rl_macro_dumper</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#IDX288"><CODE>rl_list_funmap_names</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX343"><CODE>rl_macro_bind</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#IDX344"><CODE>rl_macro_dumper</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#IDX256"><CODE>rl_make_bare_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#IDX258"><CODE>rl_make_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#IDX218">rl_mark</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX304"><CODE>rl_message</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#IDX295"><CODE>rl_modifying</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX305"><CODE>rl_message</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#IDX296"><CODE>rl_modifying</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX282"><CODE>rl_named_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX220">rl_num_chars_to_read</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX253">rl_numeric_arg</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX298"><CODE>rl_on_new_line</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#IDX299"><CODE>rl_on_new_line_with_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#IDX299"><CODE>rl_on_new_line</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#IDX300"><CODE>rl_on_new_line_with_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#IDX233">rl_outstream</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX280"><CODE>rl_parse_and_bind</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#IDX221">rl_pending_input</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX358"><CODE>rl_pending_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX356">rl_persistent_signal_handlers</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX359"><CODE>rl_pending_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX357">rl_persistent_signal_handlers</A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX216">rl_point</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX374"><CODE>rl_possible_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX375"><CODE>rl_possible_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX237">rl_pre_input_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX234">rl_prefer_env_winsize</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX243">rl_prep_term_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX321"><CODE>rl_prep_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX322"><CODE>rl_prep_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX224">rl_prompt</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX314"><CODE>rl_push_macro_input</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX315"><CODE>rl_push_macro_input</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX281"><CODE>rl_read_init_file</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#IDX315"><CODE>rl_read_key</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#IDX316"><CODE>rl_read_key</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#IDX231">rl_readline_name</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX251">rl_readline_state</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX228">rl_readline_version</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX296"><CODE>rl_redisplay</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#IDX297"><CODE>rl_redisplay</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#IDX242">rl_redisplay_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX330"><CODE>rl_replace_line</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX361"><CODE>rl_reset_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX301"><CODE>rl_reset_line_state</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_reset_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX326"><CODE>rl_reset_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX364"><CODE>rl_resize_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX307"><CODE>rl_restore_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#IDX328"><CODE>rl_restore_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX306"><CODE>rl_save_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#IDX327"><CODE>rl_save_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX331"><CODE>rl_replace_line</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX362"><CODE>rl_reset_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX302"><CODE>rl_reset_line_state</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#IDX368"><CODE>rl_reset_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX327"><CODE>rl_reset_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX365"><CODE>rl_resize_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX308"><CODE>rl_restore_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#IDX329"><CODE>rl_restore_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX307"><CODE>rl_save_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#IDX328"><CODE>rl_save_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX276"><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#IDX320"><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#IDX321"><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#IDX347"><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#IDX309"><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#IDX365"><CODE>rl_set_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX368"><CODE>rl_set_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX303"><CODE>rl_show_char</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#IDX348"><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#IDX310"><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#IDX366"><CODE>rl_set_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX369"><CODE>rl_set_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX304"><CODE>rl_show_char</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#IDX240">rl_signal_event_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX409">rl_sort_completion_matches</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX397">rl_special_prefixes</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX410">rl_sort_completion_matches</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX398">rl_special_prefixes</A></TD><TD valign=top><A HREF="readline.html#SEC48">2.6.3 Completion Variables</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX236">rl_startup_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX317"><CODE>rl_stuff_char</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#IDX318"><CODE>rl_stuff_char</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#IDX230">rl_terminal_name</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX323"><CODE>rl_tty_set_default_bindings</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX325"><CODE>rl_tty_set_echoing</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX324"><CODE>rl_tty_unset_default_bindings</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX324"><CODE>rl_tty_set_default_bindings</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX326"><CODE>rl_tty_set_echoing</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX325"><CODE>rl_tty_unset_default_bindings</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX273"><CODE>rl_unbind_command_in_map</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#IDX272"><CODE>rl_unbind_function_in_map</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#IDX270"><CODE>rl_unbind_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#IDX271"><CODE>rl_unbind_key_in_map</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#IDX379"><CODE>rl_username_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX344"><CODE>rl_variable_bind</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#IDX346"><CODE>rl_variable_dumper</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#IDX345"><CODE>rl_variable_value</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#IDX380"><CODE>rl_username_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.2 Completion Functions</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX345"><CODE>rl_variable_bind</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#IDX347"><CODE>rl_variable_dumper</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#IDX346"><CODE>rl_variable_value</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
 <TR><TD COLSPAN=3> <HR></TD></TR>
 <TR><TH><A NAME="fn_S"></A>S</TH><TD></TD><TD></TD></TR>
 <TR><TD></TD><TD valign=top><A HREF="readline.html#IDX107"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
@@ -7467,7 +7477,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 Ramey</I> on <I>January, 2  2018</I>
+This document was generated by <I>Chet Ramey</I> on <I>May, 21  2018</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 <P></P>  
@@ -7629,7 +7639,7 @@ the following structure:
 <BR>  
 <FONT SIZE="-1">
 This document was generated
-by <I>Chet Ramey</I> on <I>January, 2  2018</I>
+by <I>Chet Ramey</I> on <I>May, 21  2018</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 
index 3b5a5c7bf97cbf6b63dfa7f544a3e1d47dd5932f..5cbd709637838cbec7a649cd6266e7a598f2deae 100644 (file)
@@ -2264,6 +2264,12 @@ associate a new function name with an arbitrary function.
      type of the object is returned in the 'int' variable it points to
      (one of 'ISFUNC', 'ISKMAP', or 'ISMACR').
 
+ -- Function: rl_command_func_t * rl_function_of_keyseq_len (const char
+          *keyseq, size_t len Keymap map, int *type)
+     Return the function invoked by KEYSEQ of length LEN in keymap MAP.
+     Equivalent to 'rl_function_of_keyseq' with the addition of the LEN
+     parameter.
+
  -- Function: char ** rl_invoking_keyseqs (rl_command_func_t *function)
      Return an array of strings representing the key sequences used to
      invoke FUNCTION in the current keymap.
@@ -4722,7 +4728,7 @@ Function and Variable Index
                                                               (line  26)
 * rl_add_defun:                          Function Naming.     (line  18)
 * rl_add_funmap_entry:                   Associating Function Names and Bindings.
-                                                              (line  45)
+                                                              (line  51)
 * rl_add_undo:                           Allowing Undoing.    (line  39)
 * rl_alphabetic:                         Utility Functions.   (line  38)
 * rl_already_prompted:                   Readline Variables.  (line  63)
@@ -4863,11 +4869,13 @@ Function and Variable Index
                                                               (line 113)
 * rl_free_undo_list:                     Allowing Undoing.    (line  44)
 * rl_function_dumper:                    Associating Function Names and Bindings.
-                                                              (line  29)
+                                                              (line  35)
 * rl_function_of_keyseq:                 Associating Function Names and Bindings.
                                                               (line  13)
+* rl_function_of_keyseq_len:             Associating Function Names and Bindings.
+                                                              (line  20)
 * rl_funmap_names:                       Associating Function Names and Bindings.
-                                                              (line  39)
+                                                              (line  45)
 * rl_generic_bind:                       Binding Keys.        (line  87)
 * rl_getc:                               Character Input.     (line  14)
 * rl_getc_function:                      Readline Variables.  (line 128)
@@ -4892,16 +4900,16 @@ Function and Variable Index
 * rl_insert_text:                        Modifying Text.      (line   6)
 * rl_instream:                           Readline Variables.  (line  96)
 * rl_invoking_keyseqs:                   Associating Function Names and Bindings.
-                                                              (line  20)
+                                                              (line  26)
 * rl_invoking_keyseqs_in_map:            Associating Function Names and Bindings.
-                                                              (line  24)
+                                                              (line  30)
 * rl_key_sequence_length:                Readline Variables.  (line 199)
 * rl_kill_text:                          Modifying Text.      (line  18)
 * rl_last_func:                          Readline Variables.  (line 109)
 * rl_library_version:                    Readline Variables.  (line  72)
 * rl_line_buffer:                        Readline Variables.  (line   8)
 * rl_list_funmap_names:                  Associating Function Names and Bindings.
-                                                              (line  35)
+                                                              (line  41)
 * rl_macro_bind:                         Miscellaneous Functions.
                                                               (line   6)
 * rl_macro_dumper:                       Miscellaneous Functions.
@@ -5070,24 +5078,24 @@ Node: Function Naming\7f86357
 Node: Keymaps\7f87619
 Node: Binding Keys\7f89774
 Node: Associating Function Names and Bindings\7f94322
-Node: Allowing Undoing\7f96607
-Node: Redisplay\7f99157
-Node: Modifying Text\7f103181
-Node: Character Input\7f104428
-Node: Terminal Management\7f106326
-Node: Utility Functions\7f108149
-Node: Miscellaneous Functions\7f111477
-Node: Alternate Interface\7f114066
-Node: A Readline Example\7f116808
-Node: Alternate Interface Example\7f118747
-Node: Readline Signal Handling\7f122279
-Node: Custom Completers\7f131328
-Node: How Completing Works\7f132048
-Node: Completion Functions\7f135355
-Node: Completion Variables\7f138929
-Node: A Short Completion Example\7f154573
-Node: GNU Free Documentation License\7f167352
-Node: Concept Index\7f192526
-Node: Function and Variable Index\7f194047
+Node: Allowing Undoing\7f96893
+Node: Redisplay\7f99443
+Node: Modifying Text\7f103467
+Node: Character Input\7f104714
+Node: Terminal Management\7f106612
+Node: Utility Functions\7f108435
+Node: Miscellaneous Functions\7f111763
+Node: Alternate Interface\7f114352
+Node: A Readline Example\7f117094
+Node: Alternate Interface Example\7f119033
+Node: Readline Signal Handling\7f122565
+Node: Custom Completers\7f131614
+Node: How Completing Works\7f132334
+Node: Completion Functions\7f135641
+Node: Completion Variables\7f139215
+Node: A Short Completion Example\7f154859
+Node: GNU Free Documentation License\7f167638
+Node: Concept Index\7f192812
+Node: Function and Variable Index\7f194333
 \1f
 End Tag Table
index a28906f282f5da61c2179cc81dc6d3beec491287..f40a2ffd839f509d0722f0a58c53d8b0d0ee1a5c 100644 (file)
Binary files a/doc/readline.pdf and b/doc/readline.pdf differ
index 0be327295b659c7aa1fdd518a0f28b8cd3040896..8ec3b048e11cf00a576939f49085aace3e378afb 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Creator: dvips(k) 5.997 Copyright 2017 Radical Eye Software
 %%Title: readline.dvi
-%%CreationDate: Tue Jan  2 15:56:03 2018
+%%CreationDate: Mon May 21 14:32:51 2018
 %%Pages: 80
 %%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.01.02:1055
+%DVIPSSource:  TeX output 2018.05.21:1032
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -6615,12 +6615,12 @@ TeXDict begin 40258431 52099146 1000 600 600 (readline.dvi)
 39 39 39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39
 39 39 39 39 39 39 39 3[39 1[39 39 39 39 39 39 39 39 39
 39 39 39 39 39 39 39 1[39 39 39 33[{}86 74.7198 /CMTT9
-rf /Ff 134[53 53 72 53 55 39 39 39 53 55 50 55 83 28
-53 1[28 55 50 30 44 55 44 55 50 20[62 77 1[36 2[65 68
-22[28 1[28 1[50 28[55 55 12[{}34 99.6264 /CMSL10 rf /Fg
-214[35 35 40[{}2 90.9091 /CMSS10 rf /Fh 133[52 52 52
-52 52 52 52 52 52 52 52 52 52 52 52 52 1[52 52 52 52
-52 52 52 52 52 1[52 18[52 52 1[52 2[52 52 9[52 16[52
+rf /Ff 133[44 53 53 72 53 55 39 39 39 53 55 50 55 83
+28 53 1[28 55 50 30 44 55 44 55 50 20[62 77 1[36 2[65
+68 22[28 1[28 1[50 28[55 55 12[{}35 99.6264 /CMSL10 rf
+/Fg 214[35 35 40[{}2 90.9091 /CMSS10 rf /Fh 133[52 52
+52 52 52 52 52 52 52 52 52 52 52 52 52 52 1[52 52 52
+52 52 52 52 52 52 1[52 18[52 52 1[52 2[52 52 9[52 16[52
 42[{}33 99.6264 /CMTT10 rf /Fi 134[65 65 89 65 68 48
 48 50 1[68 61 68 102 34 65 1[34 68 61 37 56 68 55 68
 60 7[93 1[127 93 94 85 68 92 3[96 116 74 96 1[46 96 1[77
@@ -6853,13 +6853,13 @@ f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)31 b Ft(47)275 302
 y(2.6)92 b(Custom)29 b(Completers)e Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f
 (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
 h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)40 b Ft(49)399 412 y(2.6.1)93 b(Ho)m(w)31 b(Completing)g(W)-8
+(:)40 b Ft(50)399 412 y(2.6.1)93 b(Ho)m(w)31 b(Completing)g(W)-8
 b(orks)11 b Fn(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
 (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
 g(:)h(:)f(:)h(:)24 b Ft(50)399 521 y(2.6.2)93 b(Completion)31
 b(F)-8 b(unctions)28 b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
 f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)40 b Ft(50)399 631 y(2.6.3)93
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)40 b Ft(51)399 631 y(2.6.3)93
 b(Completion)31 b(V)-8 b(ariables)18 b Fn(:)e(:)g(:)f(:)g(:)h(:)f(:)h
 (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)
 f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)31 b
@@ -8476,7 +8476,7 @@ g(func-)150 3663 y(tion)33 b(called)h Fs(initialize_readline\(\))27
 b Ft(whic)m(h)33 b(p)s(erforms)e(this)h(and)h(other)g(desired)f
 (initializations,)150 3773 y(suc)m(h)e(as)h(installing)g(custom)g
 (completers)g(\(see)g(Section)h(2.6)f([Custom)f(Completers],)h(page)g
-(49\).)150 4023 y Fr(2.2)68 b(Custom)45 b(F)-11 b(unctions)150
+(50\).)150 4023 y Fr(2.2)68 b(Custom)45 b(F)-11 b(unctions)150
 4182 y Ft(Readline)28 b(pro)m(vides)f(man)m(y)g(functions)g(for)g
 (manipulating)h(the)f(text)h(of)g(the)f(line,)i(but)d(it)i(isn't)f(p)s
 (ossible)150 4292 y(to)37 b(an)m(ticipate)i(the)e(needs)f(of)h(all)g
@@ -9184,1140 +9184,1145 @@ 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 4453 y Ft(v)-5 b(ariable)31 b(it)g(p)s(oin)m(ts)
 f(to)h(\(one)g(of)g Fs(ISFUNC)p Ft(,)e Fs(ISKMAP)p Ft(,)g(or)h
 Fs(ISMACR)p Ft(\).)3350 4622 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 4732 y(*k)m(eyseq,)f(size)p
+1121 4732 V 44 w(t)g(len)g(Keymap)h(map,)f(in)m(t)g(*t)m(yp)s(e)p
+Fg(\))390 4842 y Ft(Return)g(the)h(function)f(in)m(v)m(ok)m(ed)i(b)m(y)
+f Fj(k)m(eyseq)i Ft(of)e(length)g Fj(len)g Ft(in)f(k)m(eymap)h
+Fj(map)p Ft(.)51 b(Equiv)-5 b(alen)m(t)34 b(to)390 4951
+y Fs(rl_function_of_keyseq)25 b Ft(with)30 b(the)g(addition)h(of)f(the)
+h Fj(len)f Ft(parameter.)3350 5121 y([F)-8 b(unction])-3599
 b Fh(char)54 b(**)e(rl_invoking_keyseqs)g Fg(\()p Ff(rl)p
-1717 4622 V 44 w(command)p 2181 4622 V 44 w(func)p 2409
-4622 V 45 w(t)33 b(*function)p Fg(\))390 4732 y Ft(Return)d(an)i(arra)m
+1717 5121 V 44 w(command)p 2181 5121 V 44 w(func)p 2409
+5121 V 45 w(t)33 b(*function)p Fg(\))390 5230 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 4842
-y(the)g(curren)m(t)f(k)m(eymap.)3350 5011 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 5011 V 44 w(command)p 2547 5011
-V 44 w(func)p 2775 5011 V 45 w(t)565 5121 y(*function,)34
-b(Keymap)g(map)p Fg(\))390 5230 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 5340 y(the)g(k)m(eymap)f
-Fj(map)p Ft(.)p eop end
+(to)i(in)m(v)m(ok)m(e)h Fj(function)e Ft(in)390 5340
+y(the)g(curren)m(t)f(k)m(eymap.)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(void)54 b(rl_function_dumper)c
-Fg(\()p Ff(in)m(t)34 b(readable)p Fg(\))390 408 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 518 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
-628 y(b)s(e)i(made)g(part)g(of)h(an)f Fs(inputrc)f Ft(\014le)h(and)g
-(re-read.)3350 813 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
-923 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 1109 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 1218 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 1328
-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 1438 y(the)j(p)s(oin)m(ters,)f(using)g
+299 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 299 30 5 v 44 w(command)p
+2547 299 V 44 w(func)p 2775 299 V 45 w(t)565 408 y(*function,)34
+b(Keymap)g(map)p Fg(\))390 518 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 628 y(the)g(k)m(eymap)f
+Fj(map)p Ft(.)3350 790 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 900 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 1009 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 1119 y(b)s(e)i(made)g(part)g(of)h
+(an)f Fs(inputrc)f Ft(\014le)h(and)g(re-read.)3350 1281
+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 1391 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 1553 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 1663 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 1772 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 1882 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
-1623 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 1623
-30 5 v 43 w(command)p 2794 1623 V 45 w(func)p 3023 1623
-V 45 w(t)565 1733 y(*function)p Fg(\))390 1843 y Ft(Add)e
+2044 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 2044
+V 43 w(command)p 2794 2044 V 45 w(func)p 3023 2044 V
+45 w(t)565 2154 y(*function)p Fg(\))390 2264 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
-1952 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 2152 y Fi(2.4.5)63 b(Allo)m(wing)41
-b(Undoing)150 2299 y Ft(Supp)s(orting)34 b(the)i(undo)e(command)i(is)g
+2373 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 2558 y Fi(2.4.5)63 b(Allo)m(wing)41
+b(Undoing)150 2705 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 2409 y(useful.)k(It)30 b(is)h(certainly)g(easy)g(to)g
+m(h)h(more)150 2814 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 2544 y(If)40 b(y)m(our)h(function)f(simply)g(inserts)h(text)h
+275 2942 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
-2654 y(text\(\))26 b Ft(or)i Fs(rl_delete_text\(\))23
+3051 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 2789 y(If)20 b(y)m(ou)g(do)h(m)m
+m(ou)h(automatically)-8 b(.)275 3178 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 2898
+(com)m(bination)h(of)e(these)h(op)s(erations,)150 3288
 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
-3008 y(group\(\))28 b Ft(and)i Fs(rl_end_undo_group\(\))p
-Ft(.)275 3143 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 3256 y Fe(enum)40 b(undo_code)h({)f
+3398 y(group\(\))28 b Ft(and)i Fs(rl_end_undo_group\(\))p
+Ft(.)275 3525 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 3630 y Fe(enum)40 b(undo_code)h({)f
 (UNDO_DELETE,)i(UNDO_INSERT,)g(UNDO_BEGIN,)g(UNDO_END)f(};)275
-3391 y Ft(Notice)32 b(that)f Fs(UNDO_DELETE)c Ft(means)j(to)h(insert)f
+3757 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
-3501 y(some)d(text.)41 b(That)27 b(is,)i(the)e(undo)g(co)s(de)h(tells)g
+3866 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 3610 y Fs(UNDO_END)j
+b Fs(UNDO_BEGIN)25 b Ft(and)150 3976 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 3796
+b Ft(and)30 b Fs(rl_end_undo_group\(\))p Ft(.)3350 4138
 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 3906 y Ft(Begins)32 b(sa)m(ving)g(undo)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 4248 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 4015 y(comes)42 b(from)f(calls)i(to)
+b(undo)g(information)h(usually)390 4358 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 4125 y(result)30
-b(of)h(calls)g(to)g Fs(rl_add_undo\(\))p Ft(.)3350 4311
+Ft(,)f(but)h(could)h(b)s(e)f(the)390 4467 y(result)30
+b(of)h(calls)g(to)g Fs(rl_add_undo\(\))p Ft(.)3350 4630
 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 4420 y Ft(Closes)29 b(the)h(curren)m(t)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 4739 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 4530 y(b)s(e)h(one)g(call)i(to)f
+Ft(.)39 b(There)29 b(should)390 4849 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 4716 y([F)-8 b(unction])-3599
+Fs(rl_begin_undo_group\(\))p Ft(.)3350 5011 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 4716 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 4825 y(*text)p Fg(\))390 4935 y Ft(Remem)m(b)s(er)g
+b(undo)p 1558 5011 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 5121 y(*text)p Fg(\))390 5230 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
-5045 y Fj(start)h Ft(to)e Fj(end)p Ft(,)f(and)g(encompasses)h
-Fj(text)p Ft(.)3350 5230 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
-5340 y Ft(F)-8 b(ree)31 b(the)g(existing)g(undo)f(list.)p
-eop end
+5340 y Fj(start)h Ft(to)e Fj(end)p Ft(,)f(and)g(encompasses)h
+Fj(text)p Ft(.)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)3350
-299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_do_undo)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 408 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
-518 y(if)30 b(something)h(w)m(as)g(undone.)275 698 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
-808 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 917 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 1098 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
-1207 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 1317 y(assumed)30 b(that)h(y)m(ou)f(will)h
-(subsequen)m(tly)f(mo)s(dify)f(that)i(text.)150 1513
-y Fi(2.4.6)63 b(Redispla)m(y)3350 1707 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 1817 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 1926 y(buffer)p Ft(.)3350 2106 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 2216 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 2326
-y(screen)30 b(displa)m(y)h(is)f(correct.)3350 2506 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 2615 y Ft(T)-8 b(ell)31 b(the)f(up)s(date)f
-(functions)g(that)i(w)m(e)f(ha)m(v)m(e)h(mo)m(v)m(ed)g(on)m(to)g(a)f
-(new)f(\(empt)m(y\))i(line,)g(usually)e(after)390 2725
-y(outputting)i(a)f(newline.)3350 2905 y([F)-8 b(unction])-3599
+299 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 408 y Ft(F)-8 b(ree)31
+b(the)g(existing)g(undo)f(list.)3350 608 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_do_undo)c Fg(\()p Ff(v)m(oid)p Fg(\))390
+718 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 828 y(if)30 b(something)h(w)m(as)g(undone.)275
+1028 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 1137 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 1247
+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 1447 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 1556 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 1666 y(assumed)30 b(that)h(y)m(ou)f(will)h(subsequen)m(tly)f
+(mo)s(dify)f(that)i(text.)150 1873 y Fi(2.4.6)63 b(Redispla)m(y)3350
+2077 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 2187 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 2297
+y(buffer)p Ft(.)3350 2497 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 2606 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 2716 y(screen)30 b(displa)m(y)h(is)f(correct.)3350
+2916 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 3025 y Ft(T)-8 b(ell)31
+b(the)f(up)s(date)f(functions)g(that)i(w)m(e)f(ha)m(v)m(e)h(mo)m(v)m
+(ed)g(on)m(to)g(a)f(new)f(\(empt)m(y\))i(line,)g(usually)e(after)390
+3135 y(outputting)i(a)f(newline.)3350 3335 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_on_new_line_with_p)q(romp)q(t)f Fg(\()p
-Ff(v)m(oid)p Fg(\))390 3015 y Ft(T)-8 b(ell)25 b(the)f(up)s(date)f
+Ff(v)m(oid)p Fg(\))390 3444 y Ft(T)-8 b(ell)25 b(the)f(up)s(date)f
 (functions)h(that)h(w)m(e)f(ha)m(v)m(e)h(mo)m(v)m(ed)g(on)m(to)h(a)e
-(new)g(line,)i(with)d Fj(rl)p 3106 3015 28 4 v 40 w(prompt)i
-Ft(already)390 3124 y(displa)m(y)m(ed.)41 b(This)28 b(could)g(b)s(e)g
+(new)g(line,)i(with)d Fj(rl)p 3106 3444 28 4 v 40 w(prompt)i
+Ft(already)390 3554 y(displa)m(y)m(ed.)41 b(This)28 b(could)g(b)s(e)g
 (used)g(b)m(y)g(applications)i(that)f(w)m(an)m(t)h(to)f(output)f(the)h
-(prompt)f(string)390 3234 y(themselv)m(es,)h(but)e(still)h(need)g
+(prompt)f(string)390 3664 y(themselv)m(es,)h(but)e(still)h(need)g
 (Readline)g(to)g(kno)m(w)f(the)h(prompt)e(string)h(length)h(for)f
-(redispla)m(y)-8 b(.)41 b(It)390 3343 y(should)29 b(b)s(e)h(used)g
-(after)h(setting)g Fj(rl)p 1590 3343 V 40 w(already)p
-1920 3343 V 41 w(prompted)p Ft(.)3350 3524 y([F)-8 b(unction])-3599
+(redispla)m(y)-8 b(.)41 b(It)390 3773 y(should)29 b(b)s(e)h(used)g
+(after)h(setting)g Fj(rl)p 1590 3773 V 40 w(already)p
+1920 3773 V 41 w(prompted)p Ft(.)3350 3973 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_clear_visible_line)f Fg(\()p Ff(v)m(oid)p
-Fg(\))390 3633 y Ft(Clear)31 b(the)f(screen)h(lines)f(corresp)s(onding)
+Fg(\))390 4083 y Ft(Clear)31 b(the)f(screen)h(lines)f(corresp)s(onding)
 g(to)h(the)f(curren)m(t)g(line's)h(con)m(ten)m(ts.)3350
-3813 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_reset_line_state)e
-Fg(\()p Ff(v)m(oid)p Fg(\))390 3923 y Ft(Reset)36 b(the)e(displa)m(y)h
+4283 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_reset_line_state)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 4392 y Ft(Reset)36 b(the)e(displa)m(y)h
 (state)h(to)g(a)f(clean)g(state)h(and)e(redispla)m(y)h(the)g(curren)m
-(t)g(line)g(starting)g(on)g(a)390 4032 y(new)30 b(line.)3350
-4213 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_crlf)48
-b Fg(\()p Ff(v)m(oid)p Fg(\))390 4322 y Ft(Mo)m(v)m(e)32
+(t)g(line)g(starting)g(on)g(a)390 4502 y(new)30 b(line.)3350
+4702 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_crlf)48
+b Fg(\()p Ff(v)m(oid)p Fg(\))390 4811 y Ft(Mo)m(v)m(e)32
 b(the)f(cursor)f(to)h(the)f(start)h(of)g(the)f(next)h(screen)f(line.)
-3350 4502 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_show_char)c
-Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 4612 y Ft(Displa)m(y)g(c)m
+3350 5011 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_show_char)c
+Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 5121 y Ft(Displa)m(y)g(c)m
 (haracter)g Fj(c)k Ft(on)32 b Fs(rl_outstream)p Ft(.)44
 b(If)32 b(Readline)h(has)g(not)f(b)s(een)g(set)h(to)g(displa)m(y)g
-(meta)390 4721 y(c)m(haracters)27 b(directly)-8 b(,)29
+(meta)390 5230 y(c)m(haracters)27 b(directly)-8 b(,)29
 b(this)c(will)i(con)m(v)m(ert)g(meta)g(c)m(haracters)h(to)e(a)h
-(meta-pre\014xed)f(k)m(ey)g(sequence.)390 4831 y(This)k(is)g(in)m
+(meta-pre\014xed)f(k)m(ey)g(sequence.)390 5340 y(This)k(is)g(in)m
 (tended)g(for)g(use)g(b)m(y)h(applications)g(whic)m(h)f(wish)g(to)h(do)
-f(their)h(o)m(wn)f(redispla)m(y)-8 b(.)3350 5011 y([F)g(unction])-3599
-b Fh(int)53 b(rl_message)c Fg(\()p Ff(const)34 b(c)m(har)g(*,)k(.)24
-b(.)g(.)12 b Fg(\))390 5121 y Ft(The)20 b(argumen)m(ts)h(are)g(a)g
-(format)g(string)g(as)f(w)m(ould)h(b)s(e)f(supplied)f(to)j
-Fs(printf)p Ft(,)f(p)s(ossibly)e(con)m(taining)390 5230
-y(con)m(v)m(ersion)45 b(sp)s(eci\014cations)g(suc)m(h)f(as)g(`)p
-Fs(\045d)p Ft(',)k(and)c(an)m(y)g(additional)h(argumen)m(ts)g
-(necessary)f(to)390 5340 y(satisfy)e(the)f(con)m(v)m(ersion)i(sp)s
-(eci\014cations.)74 b(The)41 b(resulting)h(string)f(is)g(displa)m(y)m
-(ed)h(in)f(the)h Fj(ec)m(ho)p eop end
+f(their)h(o)m(wn)f(redispla)m(y)-8 b(.)p eop end
 %%Page: 38 42
 TeXDict begin 38 41 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(38)390
-299 y Fj(area)p Ft(.)63 b(The)37 b(ec)m(ho)i(area)f(is)g(also)g(used)f
-(to)h(displa)m(y)g(n)m(umeric)f(argumen)m(ts)h(and)f(searc)m(h)h
-(strings.)390 408 y(Y)-8 b(ou)34 b(should)e(call)j Fs(rl_save_prompt)29
-b Ft(to)34 b(sa)m(v)m(e)h(the)f(prompt)e(information)i(b)s(efore)f
-(calling)i(this)390 518 y(function.)3350 678 y([F)-8
-b(unction])-3599 b Fh(int)53 b(rl_clear_message)e Fg(\()p
-Ff(v)m(oid)p Fg(\))390 788 y Ft(Clear)29 b(the)g(message)h(in)f(the)g
-(ec)m(ho)h(area.)41 b(If)29 b(the)g(prompt)f(w)m(as)h(sa)m(v)m(ed)h
-(with)f(a)g(call)i(to)e Fs(rl_save_)390 897 y(prompt)38
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(38)3350
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_message)c
+Fg(\()p Ff(const)34 b(c)m(har)g(*,)k(.)24 b(.)g(.)12
+b Fg(\))390 408 y Ft(The)20 b(argumen)m(ts)h(are)g(a)g(format)g(string)
+g(as)f(w)m(ould)h(b)s(e)f(supplied)f(to)j Fs(printf)p
+Ft(,)f(p)s(ossibly)e(con)m(taining)390 518 y(con)m(v)m(ersion)45
+b(sp)s(eci\014cations)g(suc)m(h)f(as)g(`)p Fs(\045d)p
+Ft(',)k(and)c(an)m(y)g(additional)h(argumen)m(ts)g(necessary)f(to)390
+628 y(satisfy)e(the)f(con)m(v)m(ersion)i(sp)s(eci\014cations.)74
+b(The)41 b(resulting)h(string)f(is)g(displa)m(y)m(ed)h(in)f(the)h
+Fj(ec)m(ho)390 737 y(area)p Ft(.)63 b(The)37 b(ec)m(ho)i(area)f(is)g
+(also)g(used)f(to)h(displa)m(y)g(n)m(umeric)f(argumen)m(ts)h(and)f
+(searc)m(h)h(strings.)390 847 y(Y)-8 b(ou)34 b(should)e(call)j
+Fs(rl_save_prompt)29 b Ft(to)34 b(sa)m(v)m(e)h(the)f(prompt)e
+(information)i(b)s(efore)f(calling)i(this)390 956 y(function.)3350
+1136 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_clear_message)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 1245 y Ft(Clear)29 b(the)g(message)h(in)
+f(the)g(ec)m(ho)h(area.)41 b(If)29 b(the)g(prompt)f(w)m(as)h(sa)m(v)m
+(ed)h(with)f(a)g(call)i(to)e Fs(rl_save_)390 1355 y(prompt)38
 b Ft(b)s(efore)h(the)g(last)h(call)h(to)f Fs(rl_message)p
 Ft(,)f(call)i Fs(rl_restore_prompt)34 b Ft(b)s(efore)39
-b(calling)390 1007 y(this)30 b(function.)3350 1167 y([F)-8
+b(calling)390 1464 y(this)30 b(function.)3350 1644 y([F)-8
 b(unction])-3599 b Fh(void)54 b(rl_save_prompt)49 b Fg(\()p
-Ff(v)m(oid)p Fg(\))390 1276 y Ft(Sa)m(v)m(e)44 b(the)f(lo)s(cal)i
+Ff(v)m(oid)p Fg(\))390 1753 y Ft(Sa)m(v)m(e)44 b(the)f(lo)s(cal)i
 (Readline)e(prompt)f(displa)m(y)i(state)g(in)f(preparation)g(for)g
-(displa)m(ying)g(a)g(new)390 1386 y(message)31 b(in)g(the)f(message)i
-(area)f(with)f Fs(rl_message\(\))p Ft(.)3350 1546 y([F)-8
+(displa)m(ying)g(a)g(new)390 1863 y(message)31 b(in)g(the)f(message)i
+(area)f(with)f Fs(rl_message\(\))p Ft(.)3350 2042 y([F)-8
 b(unction])-3599 b Fh(void)54 b(rl_restore_prompt)c Fg(\()p
-Ff(v)m(oid)p Fg(\))390 1656 y Ft(Restore)44 b(the)e(lo)s(cal)i
+Ff(v)m(oid)p Fg(\))390 2152 y Ft(Restore)44 b(the)e(lo)s(cal)i
 (Readline)g(prompt)d(displa)m(y)i(state)h(sa)m(v)m(ed)g(b)m(y)f(the)f
-(most)h(recen)m(t)h(call)g(to)390 1765 y Fs(rl_save_prompt)p
+(most)h(recen)m(t)h(call)g(to)390 2261 y Fs(rl_save_prompt)p
 Ft(.)69 b(if)41 b Fs(rl_save_prompt)d Ft(w)m(as)j(called)i(to)f(sa)m(v)
-m(e)h(the)e(prompt)f(b)s(efore)h(a)h(call)390 1875 y(to)37
+m(e)h(the)e(prompt)f(b)s(efore)h(a)h(call)390 2371 y(to)37
 b Fs(rl_message)p Ft(,)f(this)h(function)f(should)g(b)s(e)g(called)i(b)
 s(efore)f(the)g(corresp)s(onding)e(call)j(to)g Fs(rl_)390
-1984 y(clear_message)p Ft(.)3350 2144 y([F)-8 b(unction])-3599
+2480 y(clear_message)p Ft(.)3350 2660 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_expand_prompt)e Fg(\()p Ff(c)m(har)34
-b(*prompt)p Fg(\))390 2254 y Ft(Expand)41 b(an)m(y)j(sp)s(ecial)f(c)m
+b(*prompt)p Fg(\))390 2769 y Ft(Expand)41 b(an)m(y)j(sp)s(ecial)f(c)m
 (haracter)h(sequences)f(in)g Fj(prompt)g Ft(and)f(set)i(up)d(the)i(lo)s
-(cal)h(Readline)390 2364 y(prompt)35 b(redispla)m(y)h(v)-5
+(cal)h(Readline)390 2879 y(prompt)35 b(redispla)m(y)h(v)-5
 b(ariables.)57 b(This)35 b(function)h(is)g(called)h(b)m(y)e
 Fs(readline\(\))p Ft(.)55 b(It)35 b(ma)m(y)i(also)g(b)s(e)390
-2473 y(called)22 b(to)g(expand)f(the)g(primary)f(prompt)g(if)i(the)f
+2988 y(called)22 b(to)g(expand)f(the)g(primary)f(prompt)g(if)i(the)f
 Fs(rl_on_new_line_with_prom)o(pt\()o(\))15 b Ft(function)390
-2583 y(or)25 b Fs(rl_already_prompted)c Ft(v)-5 b(ariable)26
+3098 y(or)25 b Fs(rl_already_prompted)c Ft(v)-5 b(ariable)26
 b(is)f(used.)39 b(It)25 b(returns)f(the)i(n)m(um)m(b)s(er)e(of)i
-(visible)f(c)m(haracters)390 2692 y(on)34 b(the)g(last)g(line)g(of)g
+(visible)f(c)m(haracters)390 3208 y(on)34 b(the)g(last)g(line)g(of)g
 (the)g(\(p)s(ossibly)f(m)m(ulti-line\))j(prompt.)50 b(Applications)34
-b(ma)m(y)h(indicate)f(that)390 2802 y(the)28 b(prompt)f(con)m(tains)i
+b(ma)m(y)h(indicate)f(that)390 3317 y(the)28 b(prompt)f(con)m(tains)i
 (c)m(haracters)g(that)g(tak)m(e)g(up)e(no)h(ph)m(ysical)g(screen)g
-(space)g(when)f(displa)m(y)m(ed)390 2912 y(b)m(y)41 b(brac)m(k)m(eting)
+(space)g(when)f(displa)m(y)m(ed)390 3427 y(b)m(y)41 b(brac)m(k)m(eting)
 i(a)e(sequence)g(of)g(suc)m(h)g(c)m(haracters)h(with)f(the)g(sp)s
-(ecial)h(mark)m(ers)f Fs(RL_PROMPT_)390 3021 y(START_IGNORE)29
+(ecial)h(mark)m(ers)f Fs(RL_PROMPT_)390 3536 y(START_IGNORE)29
 b Ft(and)j Fs(RL_PROMPT_END_IGNORE)26 b Ft(\(declared)33
 b(in)f Fs(readline.h)p Ft(\).)44 b(This)32 b(ma)m(y)h(b)s(e)390
-3131 y(used)d(to)h(em)m(b)s(ed)f(terminal-sp)s(eci\014c)h(escap)s(e)f
-(sequences)h(in)f(prompts.)3350 3291 y([F)-8 b(unction])-3599
+3646 y(used)d(to)h(em)m(b)s(ed)f(terminal-sp)s(eci\014c)h(escap)s(e)f
+(sequences)h(in)f(prompts.)3350 3825 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_set_prompt)d Fg(\()p Ff(const)34 b(c)m(har)g(*prompt)p
-Fg(\))390 3400 y Ft(Mak)m(e)28 b(Readline)g(use)f Fj(prompt)h
+Fg(\))390 3935 y Ft(Mak)m(e)28 b(Readline)g(use)f Fj(prompt)h
 Ft(for)e(subsequen)m(t)h(redispla)m(y)-8 b(.)40 b(This)26
-b(calls)i Fs(rl_expand_prompt\(\))390 3510 y Ft(to)j(expand)f(the)g
+b(calls)i Fs(rl_expand_prompt\(\))390 4044 y Ft(to)j(expand)f(the)g
 (prompt)g(and)g(sets)g Fs(rl_prompt)e Ft(to)j(the)g(result.)150
-3693 y Fi(2.4.7)63 b(Mo)s(difying)43 b(T)-10 b(ext)3350
-3874 y Ft([F)i(unction])-3599 b Fh(int)53 b(rl_insert_text)d
-Fg(\()p Ff(const)34 b(c)m(har)g(*text)p Fg(\))390 3983
+4240 y Fi(2.4.7)63 b(Mo)s(difying)43 b(T)-10 b(ext)3350
+4434 y Ft([F)i(unction])-3599 b Fh(int)53 b(rl_insert_text)d
+Fg(\()p Ff(const)34 b(c)m(har)g(*text)p Fg(\))390 4543
 y Ft(Insert)d Fj(text)k Ft(in)m(to)d(the)g(line)g(at)g(the)g(curren)m
 (t)f(cursor)g(p)s(osition.)45 b(Returns)30 b(the)i(n)m(um)m(b)s(er)f
-(of)g(c)m(har-)390 4093 y(acters)g(inserted.)3350 4253
+(of)g(c)m(har-)390 4653 y(acters)g(inserted.)3350 4832
 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_delete_text)d
 Fg(\()p Ff(in)m(t)33 b(start,)g(in)m(t)g(end)p Fg(\))390
-4362 y Ft(Delete)40 b(the)e(text)h(b)s(et)m(w)m(een)f
+4942 y Ft(Delete)40 b(the)e(text)h(b)s(et)m(w)m(een)f
 Fj(start)i Ft(and)d Fj(end)k Ft(in)c(the)h(curren)m(t)g(line.)63
-b(Returns)36 b(the)i(n)m(um)m(b)s(er)f(of)390 4472 y(c)m(haracters)32
-b(deleted.)3350 4632 y([F)-8 b(unction])-3599 b Fh(char)54
+b(Returns)36 b(the)i(n)m(um)m(b)s(er)f(of)390 5051 y(c)m(haracters)32
+b(deleted.)3350 5230 y([F)-8 b(unction])-3599 b Fh(char)54
 b(*)e(rl_copy_text)d Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)h(end)p
-Fg(\))390 4742 y Ft(Return)d(a)g(cop)m(y)h(of)g(the)g(text)g(b)s(et)m
+Fg(\))390 5340 y Ft(Return)d(a)g(cop)m(y)h(of)g(the)g(text)g(b)s(et)m
 (w)m(een)g Fj(start)i Ft(and)d Fj(end)j Ft(in)d(the)h(curren)m(t)f
-(line.)3350 4902 y([F)-8 b(unction])-3599 b Fh(int)53
-b(rl_kill_text)c Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i(end)p
-Fg(\))390 5011 y Ft(Cop)m(y)g(the)g(text)i(b)s(et)m(w)m(een)e
-Fj(start)j Ft(and)d Fj(end)j Ft(in)d(the)g(curren)m(t)g(line)g(to)h
-(the)f(kill)h(ring,)g(app)s(ending)390 5121 y(or)f(prep)s(ending)e(to)j
-(the)f(last)h(kill)f(if)g(the)g(last)h(command)f(w)m(as)g(a)h(kill)f
-(command.)51 b(The)34 b(text)h(is)390 5230 y(deleted.)51
-b(If)33 b Fj(start)j Ft(is)e(less)g(than)f Fj(end)p Ft(,)h(the)g(text)g
-(is)g(app)s(ended,)f(otherwise)h(prep)s(ended.)48 b(If)33
-b(the)390 5340 y(last)e(command)f(w)m(as)h(not)g(a)f(kill,)i(a)f(new)e
-(kill)i(ring)g(slot)g(is)f(used.)p eop end
+(line.)p eop end
 %%Page: 39 43
 TeXDict begin 39 42 bop 150 -116 a Ft(Chapter)30 b(2:)41
 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(39)3350
-299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_push_macro_input)e
-Fg(\()p Ff(c)m(har)35 b(*macro)p Fg(\))390 408 y Ft(Cause)28
-b Fj(macro)33 b Ft(to)c(b)s(e)f(inserted)g(in)m(to)h(the)g(line,)g(as)f
-(if)h(it)f(had)g(b)s(een)g(in)m(v)m(ok)m(ed)h(b)m(y)f(a)h(k)m(ey)g(b)s
-(ound)d(to)390 518 y(a)31 b(macro.)41 b(Not)31 b(esp)s(ecially)h
-(useful;)e(use)g Fs(rl_insert_text\(\))c Ft(instead.)150
-710 y Fi(2.4.8)63 b(Character)39 b(Input)3350 899 y Ft([F)-8
-b(unction])-3599 b Fh(int)53 b(rl_read_key)c Fg(\()p
-Ff(v)m(oid)p Fg(\))390 1009 y Ft(Return)29 b(the)g(next)h(c)m(haracter)
-h(a)m(v)-5 b(ailable)32 b(from)d(Readline's)h(curren)m(t)f(input)g
-(stream.)41 b(This)28 b(han-)390 1118 y(dles)e(input)g(inserted)g(in)m
-(to)i(the)e(input)g(stream)h(via)g Fj(rl)p 2226 1118
-28 4 v 40 w(p)s(ending)p 2583 1118 V 38 w(input)h Ft(\(see)f(Section)h
-(2.3)f([Read-)390 1228 y(line)40 b(V)-8 b(ariables],)43
-b(page)d(27\))g(and)f Fs(rl_stuff_char\(\))p Ft(,)f(macros,)k(and)d(c)m
-(haracters)h(read)f(from)390 1337 y(the)34 b(k)m(eyb)s(oard.)52
-b(While)35 b(w)m(aiting)g(for)f(input,)g(this)g(function)g(will)g(call)
-i(an)m(y)e(function)g(assigned)390 1447 y(to)d(the)g
-Fs(rl_event_hook)26 b Ft(v)-5 b(ariable.)3350 1620 y([F)d(unction])
--3599 b Fh(int)53 b(rl_getc)48 b Fg(\()p Ff(FILE)33 b(*stream)p
-Fg(\))390 1729 y Ft(Return)20 b(the)i(next)f(c)m(haracter)i(a)m(v)-5
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_kill_text)c
+Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i(end)p Fg(\))390
+408 y Ft(Cop)m(y)g(the)g(text)i(b)s(et)m(w)m(een)e Fj(start)j
+Ft(and)d Fj(end)j Ft(in)d(the)g(curren)m(t)g(line)g(to)h(the)f(kill)h
+(ring,)g(app)s(ending)390 518 y(or)f(prep)s(ending)e(to)j(the)f(last)h
+(kill)f(if)g(the)g(last)h(command)f(w)m(as)g(a)h(kill)f(command.)51
+b(The)34 b(text)h(is)390 628 y(deleted.)51 b(If)33 b
+Fj(start)j Ft(is)e(less)g(than)f Fj(end)p Ft(,)h(the)g(text)g(is)g(app)
+s(ended,)f(otherwise)h(prep)s(ended.)48 b(If)33 b(the)390
+737 y(last)e(command)f(w)m(as)h(not)g(a)f(kill,)i(a)f(new)e(kill)i
+(ring)g(slot)g(is)f(used.)3350 931 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_push_macro_input)e Fg(\()p Ff(c)m(har)35
+b(*macro)p Fg(\))390 1040 y Ft(Cause)28 b Fj(macro)33
+b Ft(to)c(b)s(e)f(inserted)g(in)m(to)h(the)g(line,)g(as)f(if)h(it)f
+(had)g(b)s(een)g(in)m(v)m(ok)m(ed)h(b)m(y)f(a)h(k)m(ey)g(b)s(ound)d(to)
+390 1150 y(a)31 b(macro.)41 b(Not)31 b(esp)s(ecially)h(useful;)e(use)g
+Fs(rl_insert_text\(\))c Ft(instead.)150 1354 y Fi(2.4.8)63
+b(Character)39 b(Input)3350 1555 y Ft([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_read_key)c Fg(\()p Ff(v)m(oid)p Fg(\))390
+1665 y Ft(Return)29 b(the)g(next)h(c)m(haracter)h(a)m(v)-5
+b(ailable)32 b(from)d(Readline's)h(curren)m(t)f(input)g(stream.)41
+b(This)28 b(han-)390 1775 y(dles)e(input)g(inserted)g(in)m(to)i(the)e
+(input)g(stream)h(via)g Fj(rl)p 2226 1775 28 4 v 40 w(p)s(ending)p
+2583 1775 V 38 w(input)h Ft(\(see)f(Section)h(2.3)f([Read-)390
+1884 y(line)40 b(V)-8 b(ariables],)43 b(page)d(27\))g(and)f
+Fs(rl_stuff_char\(\))p Ft(,)f(macros,)k(and)d(c)m(haracters)h(read)f
+(from)390 1994 y(the)34 b(k)m(eyb)s(oard.)52 b(While)35
+b(w)m(aiting)g(for)f(input,)g(this)g(function)g(will)g(call)i(an)m(y)e
+(function)g(assigned)390 2103 y(to)d(the)g Fs(rl_event_hook)26
+b Ft(v)-5 b(ariable.)3350 2297 y([F)d(unction])-3599
+b Fh(int)53 b(rl_getc)48 b Fg(\()p Ff(FILE)33 b(*stream)p
+Fg(\))390 2407 y Ft(Return)20 b(the)i(next)f(c)m(haracter)i(a)m(v)-5
 b(ailable)24 b(from)c Fj(stream)p Ft(,)k(whic)m(h)d(is)g(assumed)g(to)h
-(b)s(e)e(the)i(k)m(eyb)s(oard.)3350 1902 y([F)-8 b(unction])-3599
+(b)s(e)e(the)i(k)m(eyb)s(oard.)3350 2600 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_stuff_char)d Fg(\()p Ff(in)m(t)33 b(c)p
-Fg(\))390 2012 y Ft(Insert)f Fj(c)39 b Ft(in)m(to)34
+Fg(\))390 2710 y Ft(Insert)f Fj(c)39 b Ft(in)m(to)34
 b(the)f(Readline)g(input)f(stream.)49 b(It)33 b(will)g(b)s(e)f
 Fs(")p Ft(read)p Fs(")g Ft(b)s(efore)h(Readline)g(attempts)390
-2122 y(to)27 b(read)g(c)m(haracters)h(from)f(the)g(terminal)g(with)f
+2819 y(to)27 b(read)g(c)m(haracters)h(from)f(the)g(terminal)g(with)f
 Fs(rl_read_key\(\))p Ft(.)36 b(Up)27 b(to)g(512)h(c)m(haracters)g(ma)m
-(y)390 2231 y(b)s(e)i(pushed)f(bac)m(k.)42 b Fs(rl_stuff_char)27
+(y)390 2929 y(b)s(e)i(pushed)f(bac)m(k.)42 b Fs(rl_stuff_char)27
 b Ft(returns)i(1)i(if)f(the)h(c)m(haracter)h(w)m(as)f(successfully)g
-(inserted;)390 2341 y(0)g(otherwise.)3350 2514 y([F)-8
+(inserted;)390 3039 y(0)g(otherwise.)3350 3232 y([F)-8
 b(unction])-3599 b Fh(int)53 b(rl_execute_next)d Fg(\()p
-Ff(in)m(t)34 b(c)p Fg(\))390 2623 y Ft(Mak)m(e)j Fj(c)42
+Ff(in)m(t)34 b(c)p Fg(\))390 3342 y Ft(Mak)m(e)j Fj(c)42
 b Ft(b)s(e)35 b(the)h(next)f(command)h(to)g(b)s(e)f(executed)i(when)d
-Fs(rl_read_key\(\))e Ft(is)k(called.)58 b(This)390 2733
-y(sets)31 b Fj(rl)p 635 2733 V 40 w(p)s(ending)p 992
-2733 V 38 w(input)p Ft(.)3350 2906 y([F)-8 b(unction])-3599
+Fs(rl_read_key\(\))e Ft(is)k(called.)58 b(This)390 3451
+y(sets)31 b Fj(rl)p 635 3451 V 40 w(p)s(ending)p 992
+3451 V 38 w(input)p Ft(.)3350 3645 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_clear_pending_inpu)q(t)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 3016 y Ft(Unset)42 b Fj(rl)p 729 3016 V 40
-w(p)s(ending)p 1086 3016 V 38 w(input)p Ft(,)i(e\013ectiv)m(ely)h
+Fg(\))390 3755 y Ft(Unset)42 b Fj(rl)p 729 3755 V 40
+w(p)s(ending)p 1086 3755 V 38 w(input)p Ft(,)i(e\013ectiv)m(ely)h
 (negating)e(the)f(e\013ect)h(of)f(an)m(y)g(previous)f(call)i(to)g
-Fs(rl_)390 3125 y(execute_next\(\))p Ft(.)59 b(This)36
+Fs(rl_)390 3864 y(execute_next\(\))p Ft(.)59 b(This)36
 b(w)m(orks)i(only)g(if)f(the)h(p)s(ending)e(input)h(has)g(not)h
-(already)g(b)s(een)f(read)390 3235 y(with)30 b Fs(rl_read_key\(\))p
-Ft(.)3350 3408 y([F)-8 b(unction])-3599 b Fh(int)53 b
+(already)g(b)s(een)f(read)390 3974 y(with)30 b Fs(rl_read_key\(\))p
+Ft(.)3350 4167 y([F)-8 b(unction])-3599 b Fh(int)53 b
 (rl_set_keyboard_input)q(_tim)q(eou)q(t)e Fg(\()p Ff(in)m(t)34
-b(u)p Fg(\))390 3517 y Ft(While)41 b(w)m(aiting)g(for)f(k)m(eyb)s(oard)
+b(u)p Fg(\))390 4277 y Ft(While)41 b(w)m(aiting)g(for)f(k)m(eyb)s(oard)
 g(input)f(in)h Fs(rl_read_key\(\))p Ft(,)f(Readline)i(will)f(w)m(ait)h
-(for)f Fj(u)g Ft(mi-)390 3627 y(croseconds)31 b(for)g(input)f(b)s
+(for)f Fj(u)g Ft(mi-)390 4387 y(croseconds)31 b(for)g(input)f(b)s
 (efore)g(calling)j(an)m(y)e(function)f(assigned)i(to)f
 Fs(rl_event_hook)p Ft(.)39 b Fj(u)30 b Ft(m)m(ust)390
-3736 y(b)s(e)h(greater)i(than)f(or)g(equal)g(to)h(zero)f(\(a)h
+4496 y(b)s(e)h(greater)i(than)f(or)g(equal)g(to)h(zero)f(\(a)h
 (zero-length)g(timeout)g(is)f(equiv)-5 b(alen)m(t)33
-b(to)g(a)f(p)s(oll\).)45 b(The)390 3846 y(default)31
+b(to)g(a)f(p)s(oll\).)45 b(The)390 4606 y(default)31
 b(w)m(aiting)g(p)s(erio)s(d)e(is)i(one-ten)m(th)g(of)g(a)g(second.)40
 b(Returns)30 b(the)g(old)h(timeout)g(v)-5 b(alue.)150
-4038 y Fi(2.4.9)63 b(T)-10 b(erminal)41 b(Managemen)m(t)3350
-4227 y Ft([F)-8 b(unction])-3599 b Fh(void)54 b(rl_prep_terminal)c
-Fg(\()p Ff(in)m(t)33 b(meta)p 1704 4227 30 5 v 44 w(\015ag)p
-Fg(\))390 4336 y Ft(Mo)s(dify)42 b(the)h(terminal)g(settings)g(for)f
+4810 y Fi(2.4.9)63 b(T)-10 b(erminal)41 b(Managemen)m(t)3350
+5011 y Ft([F)-8 b(unction])-3599 b Fh(void)54 b(rl_prep_terminal)c
+Fg(\()p Ff(in)m(t)33 b(meta)p 1704 5011 30 5 v 44 w(\015ag)p
+Fg(\))390 5121 y Ft(Mo)s(dify)42 b(the)h(terminal)g(settings)g(for)f
 (Readline's)i(use,)h(so)e Fs(readline\(\))c Ft(can)k(read)f(a)h(single)
-390 4446 y(c)m(haracter)32 b(at)g(a)f(time)h(from)e(the)h(k)m(eyb)s
-(oard.)43 b(The)30 b Fj(meta)p 2376 4446 28 4 v 41 w(\015ag)39
-b Ft(argumen)m(t)31 b(should)f(b)s(e)g(non-zero)390 4556
-y(if)g(Readline)h(should)f(read)g(eigh)m(t-bit)i(input.)3350
-4729 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_deprep_terminal)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 4838 y Ft(Undo)31 b(the)h(e\013ects)h
-(of)f Fs(rl_prep_terminal\(\))p Ft(,)27 b(lea)m(ving)33
-b(the)f(terminal)g(in)f(the)h(state)h(in)e(whic)m(h)390
-4948 y(it)g(w)m(as)g(b)s(efore)f(the)g(most)h(recen)m(t)g(call)h(to)f
-Fs(rl_prep_terminal\(\))p Ft(.)3350 5121 y([F)-8 b(unction])-3599
-b Fh(void)54 b(rl_tty_set_default_bindi)q(ngs)e Fg(\()p
-Ff(Keymap)34 b(kmap)p Fg(\))390 5230 y Ft(Read)j(the)g(op)s(erating)h
-(system's)f(terminal)g(editing)h(c)m(haracters)g(\(as)g(w)m(ould)e(b)s
-(e)h(displa)m(y)m(ed)g(b)m(y)390 5340 y Fs(stty)p Ft(\))30
-b(to)h(their)f(Readline)h(equiv)-5 b(alen)m(ts.)42 b(The)30
-b(bindings)f(are)i(p)s(erformed)e(in)h Fj(kmap)p Ft(.)p
+390 5230 y(c)m(haracter)32 b(at)g(a)f(time)h(from)e(the)h(k)m(eyb)s
+(oard.)43 b(The)30 b Fj(meta)p 2376 5230 28 4 v 41 w(\015ag)39
+b Ft(argumen)m(t)31 b(should)f(b)s(e)g(non-zero)390 5340
+y(if)g(Readline)h(should)f(read)g(eigh)m(t-bit)i(input.)p
 eop end
 %%Page: 40 44
 TeXDict begin 40 43 bop 150 -116 a Ft(Chapter)30 b(2:)41
 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(40)3350
-299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_tty_unset_default_bin)q
-(din)q(gs)e Fg(\()p Ff(Keymap)34 b(kmap)p Fg(\))390 408
-y Ft(Reset)f(the)f(bindings)e(manipulated)i(b)m(y)g Fs
-(rl_tty_set_default_bind)o(ing)o(s)26 b Ft(so)32 b(that)g(the)g(ter-)
-390 518 y(minal)40 b(editing)g(c)m(haracters)h(are)f(b)s(ound)e(to)i
-Fs(rl_insert)p Ft(.)66 b(The)39 b(bindings)f(are)i(p)s(erformed)e(in)
-390 628 y Fj(kmap)p Ft(.)3350 826 y([F)-8 b(unction])-3599
+299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_deprep_terminal)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Undo)31 b(the)h(e\013ects)h(of)
+f Fs(rl_prep_terminal\(\))p Ft(,)27 b(lea)m(ving)33 b(the)f(terminal)g
+(in)f(the)h(state)h(in)e(whic)m(h)390 518 y(it)g(w)m(as)g(b)s(efore)f
+(the)g(most)h(recen)m(t)g(call)h(to)f Fs(rl_prep_terminal\(\))p
+Ft(.)3350 694 y([F)-8 b(unction])-3599 b Fh(void)54 b
+(rl_tty_set_default_bindi)q(ngs)e Fg(\()p Ff(Keymap)34
+b(kmap)p Fg(\))390 804 y Ft(Read)j(the)g(op)s(erating)h(system's)f
+(terminal)g(editing)h(c)m(haracters)g(\(as)g(w)m(ould)e(b)s(e)h(displa)
+m(y)m(ed)g(b)m(y)390 914 y Fs(stty)p Ft(\))30 b(to)h(their)f(Readline)h
+(equiv)-5 b(alen)m(ts.)42 b(The)30 b(bindings)f(are)i(p)s(erformed)e
+(in)h Fj(kmap)p Ft(.)3350 1090 y([F)-8 b(unction])-3599
+b Fh(void)54 b(rl_tty_unset_default_bin)q(din)q(gs)e
+Fg(\()p Ff(Keymap)34 b(kmap)p Fg(\))390 1200 y Ft(Reset)f(the)f
+(bindings)e(manipulated)i(b)m(y)g Fs(rl_tty_set_default_bind)o(ing)o(s)
+26 b Ft(so)32 b(that)g(the)g(ter-)390 1309 y(minal)40
+b(editing)g(c)m(haracters)h(are)f(b)s(ound)e(to)i Fs(rl_insert)p
+Ft(.)66 b(The)39 b(bindings)f(are)i(p)s(erformed)e(in)390
+1419 y Fj(kmap)p Ft(.)3350 1595 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_tty_set_echoing)e Fg(\()p Ff(in)m(t)34
-b(v)-6 b(alue)p Fg(\))390 935 y Ft(Set)48 b(Readline's)g(idea)g(of)g
+b(v)-6 b(alue)p Fg(\))390 1705 y Ft(Set)48 b(Readline's)g(idea)g(of)g
 (whether)f(or)g(not)h(it)g(is)f(ec)m(hoing)i(output)e(to)i(its)e
-(output)h(stream)390 1045 y(\()p Fj(rl)p 492 1045 28
+(output)h(stream)390 1814 y(\()p Fj(rl)p 492 1814 28
 4 v 40 w(outstream)p Ft(\).)j(If)32 b Fj(v)-5 b(alue)39
 b Ft(is)34 b(0,)g(Readline)g(do)s(es)f(not)h(displa)m(y)f(output)g(to)h
-Fj(rl)p 3115 1045 V 40 w(outstream)p Ft(;)i(an)m(y)390
-1154 y(other)43 b(v)-5 b(alue)43 b(enables)h(output.)77
+Fj(rl)p 3115 1814 V 40 w(outstream)p Ft(;)i(an)m(y)390
+1924 y(other)43 b(v)-5 b(alue)43 b(enables)h(output.)77
 b(The)43 b(initial)h(v)-5 b(alue)43 b(is)g(set)g(when)f(Readline)i
-(initializes)h(the)390 1264 y(terminal)31 b(settings.)42
+(initializes)h(the)390 2033 y(terminal)31 b(settings.)42
 b(This)29 b(function)h(returns)f(the)i(previous)f(v)-5
-b(alue.)3350 1462 y([F)d(unction])-3599 b Fh(int)53 b
+b(alue.)3350 2210 y([F)d(unction])-3599 b Fh(int)53 b
 (rl_reset_terminal)e Fg(\()p Ff(const)34 b(c)m(har)g(*terminal)p
-2232 1462 30 5 v 43 w(name)p Fg(\))390 1572 y Ft(Reinitialize)26
+2232 2210 30 5 v 43 w(name)p Fg(\))390 2319 y Ft(Reinitialize)26
 b(Readline's)f(idea)f(of)g(the)g(terminal)h(settings)f(using)g
-Fj(terminal)p 2977 1572 28 4 v 40 w(name)29 b Ft(as)24
-b(the)g(termi-)390 1681 y(nal)32 b(t)m(yp)s(e)g(\(e.g.,)i
-Fs(vt100)p Ft(\).)44 b(If)31 b Fj(terminal)p 1753 1681
+Fj(terminal)p 2977 2319 28 4 v 40 w(name)29 b Ft(as)24
+b(the)g(termi-)390 2429 y(nal)32 b(t)m(yp)s(e)g(\(e.g.,)i
+Fs(vt100)p Ft(\).)44 b(If)31 b Fj(terminal)p 1753 2429
 V 41 w(name)37 b Ft(is)31 b Fs(NULL)p Ft(,)h(the)g(v)-5
 b(alue)32 b(of)g(the)g Fs(TERM)e Ft(en)m(vironmen)m(t)390
-1791 y(v)-5 b(ariable)31 b(is)g(used.)150 1997 y Fi(2.4.10)63
-b(Utilit)m(y)40 b(F)-10 b(unctions)3350 2200 y Ft([F)i(unction])-3599
+2539 y(v)-5 b(ariable)31 b(is)g(used.)150 2732 y Fi(2.4.10)63
+b(Utilit)m(y)40 b(F)-10 b(unctions)3350 2924 y Ft([F)i(unction])-3599
 b Fh(int)53 b(rl_save_state)d Fg(\()p Ff(struct)34 b(readline)p
-1759 2200 30 5 v 44 w(state)f(*sp)p Fg(\))390 2310 y
+1759 2924 30 5 v 44 w(state)f(*sp)p Fg(\))390 3034 y
 Ft(Sa)m(v)m(e)d(a)f(snapshot)e(of)i(Readline's)g(in)m(ternal)g(state)h
 (to)f Fj(sp)p Ft(.)40 b(The)28 b(con)m(ten)m(ts)i(of)e(the)h
-Fj(readline)p 3518 2310 28 4 v 40 w(state)390 2420 y
+Fj(readline)p 3518 3034 28 4 v 40 w(state)390 3143 y
 Ft(structure)g(are)g(do)s(cumen)m(ted)g(in)g Fs(readline.h)p
 Ft(.)38 b(The)28 b(caller)j(is)e(resp)s(onsible)f(for)h(allo)s(cating)j
-(the)390 2529 y(structure.)3350 2727 y([F)-8 b(unction])-3599
+(the)390 3253 y(structure.)3350 3429 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_restore_state)e Fg(\()p Ff(struct)34
-b(readline)p 1916 2727 30 5 v 44 w(state)f(*sp)p Fg(\))390
-2837 y Ft(Restore)23 b(Readline's)g(in)m(ternal)g(state)g(to)g(that)g
+b(readline)p 1916 3429 30 5 v 44 w(state)f(*sp)p Fg(\))390
+3539 y Ft(Restore)23 b(Readline's)g(in)m(ternal)g(state)g(to)g(that)g
 (stored)f(in)g Fj(sp)p Ft(,)i(whic)m(h)d(m)m(ust)h(ha)m(v)m(e)i(b)s
-(een)d(sa)m(v)m(ed)i(b)m(y)g(a)390 2946 y(call)30 b(to)g
+(een)d(sa)m(v)m(ed)i(b)m(y)g(a)390 3648 y(call)30 b(to)g
 Fs(rl_save_state)p Ft(.)37 b(The)28 b(con)m(ten)m(ts)j(of)e(the)g
-Fj(readline)p 2470 2946 28 4 v 41 w(state)35 b Ft(structure)29
-b(are)g(do)s(cumen)m(ted)390 3056 y(in)h Fs(readline.h)p
+Fj(readline)p 2470 3648 28 4 v 41 w(state)35 b Ft(structure)29
+b(are)g(do)s(cumen)m(ted)390 3758 y(in)h Fs(readline.h)p
 Ft(.)38 b(The)30 b(caller)i(is)e(resp)s(onsible)f(for)i(freeing)f(the)h
-(structure.)3350 3254 y([F)-8 b(unction])-3599 b Fh(void)54
+(structure.)3350 3934 y([F)-8 b(unction])-3599 b Fh(void)54
 b(rl_free)47 b Fg(\()p Ff(v)m(oid)33 b(*mem)p Fg(\))390
-3364 y Ft(Deallo)s(cate)25 b(the)c(memory)g(p)s(oin)m(ted)g(to)h(b)m(y)
+4044 y Ft(Deallo)s(cate)25 b(the)c(memory)g(p)s(oin)m(ted)g(to)h(b)m(y)
 f Fj(mem)p Ft(.)38 b Fj(mem)21 b Ft(m)m(ust)g(ha)m(v)m(e)i(b)s(een)d
-(allo)s(cated)j(b)m(y)e Fs(malloc)p Ft(.)3350 3562 y([F)-8
+(allo)s(cated)j(b)m(y)e Fs(malloc)p Ft(.)3350 4220 y([F)-8
 b(unction])-3599 b Fh(void)54 b(rl_replace_line)c Fg(\()p
 Ff(const)34 b(c)m(har)f(*text,)g(in)m(t)g(clear)p 2406
-3562 30 5 v 44 w(undo)p Fg(\))390 3671 y Ft(Replace)41
+4220 30 5 v 44 w(undo)p Fg(\))390 4330 y Ft(Replace)41
 b(the)e(con)m(ten)m(ts)i(of)f Fs(rl_line_buffer)35 b
 Ft(with)k Fj(text)p Ft(.)69 b(The)39 b(p)s(oin)m(t)h(and)e(mark)h(are)h
-(pre-)390 3781 y(serv)m(ed,)27 b(if)e(p)s(ossible.)39
-b(If)25 b Fj(clear)p 1422 3781 28 4 v 41 w(undo)k Ft(is)d(non-zero,)h
+(pre-)390 4439 y(serv)m(ed,)27 b(if)e(p)s(ossible.)39
+b(If)25 b Fj(clear)p 1422 4439 28 4 v 41 w(undo)k Ft(is)d(non-zero,)h
 (the)f(undo)e(list)i(asso)s(ciated)h(with)e(the)h(curren)m(t)390
-3890 y(line)31 b(is)f(cleared.)3350 4088 y([F)-8 b(unction])-3599
+4549 y(line)31 b(is)f(cleared.)3350 4725 y([F)-8 b(unction])-3599
 b Fh(void)54 b(rl_extend_line_buffer)d Fg(\()p Ff(in)m(t)34
-b(len)p Fg(\))390 4198 y Ft(Ensure)29 b(that)h Fs(rl_line_buffer)d
+b(len)p Fg(\))390 4835 y Ft(Ensure)29 b(that)h Fs(rl_line_buffer)d
 Ft(has)j(enough)f(space)i(to)g(hold)f Fj(len)g Ft(c)m(haracters,)i(p)s
-(ossibly)d(real-)390 4308 y(lo)s(cating)j(it)f(if)f(necessary)-8
-b(.)3350 4506 y([F)g(unction])-3599 b Fh(int)53 b(rl_initialize)d
-Fg(\()p Ff(v)m(oid)p Fg(\))390 4615 y Ft(Initialize)39
+(ossibly)d(real-)390 4944 y(lo)s(cating)j(it)f(if)f(necessary)-8
+b(.)3350 5121 y([F)g(unction])-3599 b Fh(int)53 b(rl_initialize)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 5230 y Ft(Initialize)39
 b(or)e(re-initialize)i(Readline's)f(in)m(ternal)f(state.)62
 b(It's)37 b(not)g(strictly)h(necessary)f(to)h(call)390
-4725 y(this;)31 b Fs(readline\(\))c Ft(calls)32 b(it)f(b)s(efore)f
-(reading)g(an)m(y)h(input.)3350 4923 y([F)-8 b(unction])-3599
-b Fh(int)53 b(rl_ding)48 b Fg(\()p Ff(v)m(oid)p Fg(\))390
-5032 y Ft(Ring)30 b(the)h(terminal)g(b)s(ell,)f(ob)s(eying)h(the)f
-(setting)i(of)e Fs(bell-style)p Ft(.)3350 5230 y([F)-8
-b(unction])-3599 b Fh(int)53 b(rl_alphabetic)d Fg(\()p
-Ff(in)m(t)33 b(c)p Fg(\))390 5340 y Ft(Return)d(1)g(if)h
-Fj(c)36 b Ft(is)30 b(an)h(alphab)s(etic)g(c)m(haracter.)p
-eop end
+5340 y(this;)31 b Fs(readline\(\))c Ft(calls)32 b(it)f(b)s(efore)f
+(reading)g(an)m(y)h(input.)p eop end
 %%Page: 41 45
 TeXDict begin 41 44 bop 150 -116 a Ft(Chapter)30 b(2:)41
 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(41)3350
-299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_display_match_list)d
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_ding)48
+b Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Ring)30 b(the)h(terminal)g(b)
+s(ell,)f(ob)s(eying)h(the)f(setting)i(of)e Fs(bell-style)p
+Ft(.)3350 598 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_alphabetic)d
+Fg(\()p Ff(in)m(t)33 b(c)p Fg(\))390 708 y Ft(Return)d(1)g(if)h
+Fj(c)36 b Ft(is)30 b(an)h(alphab)s(etic)g(c)m(haracter.)3350
+898 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_display_match_list)d
 Fg(\()p Ff(c)m(har)35 b(**matc)m(hes,)e(in)m(t)g(len,)h(in)m(t)f(max)p
-Fg(\))390 408 y Ft(A)i(con)m(v)m(enience)h(function)e(for)g(displa)m
+Fg(\))390 1008 y Ft(A)i(con)m(v)m(enience)h(function)e(for)g(displa)m
 (ying)h(a)g(list)g(of)g(strings)f(in)g(columnar)g(format)h(on)f(Read-)
-390 518 y(line's)g(output)f(stream.)51 b Fs(matches)31
+390 1117 y(line's)g(output)f(stream.)51 b Fs(matches)31
 b Ft(is)j(the)f(list)i(of)e(strings,)i(in)e(argv)h(format,)h(suc)m(h)e
-(as)h(a)g(list)g(of)390 628 y(completion)26 b(matc)m(hes.)39
+(as)h(a)g(list)g(of)390 1227 y(completion)26 b(matc)m(hes.)39
 b Fs(len)24 b Ft(is)g(the)g(n)m(um)m(b)s(er)f(of)i(strings)f(in)g
 Fs(matches)p Ft(,)f(and)h Fs(max)f Ft(is)i(the)f(length)h(of)390
-737 y(the)h(longest)i(string)e(in)g Fs(matches)p Ft(.)37
+1336 y(the)h(longest)i(string)e(in)g Fs(matches)p Ft(.)37
 b(This)25 b(function)h(uses)g(the)g(setting)i(of)e Fs
-(print-completions-)390 847 y(horizontally)33 b Ft(to)k(select)h(ho)m
+(print-completions-)390 1446 y(horizontally)33 b Ft(to)k(select)h(ho)m
 (w)e(the)g(matc)m(hes)i(are)e(displa)m(y)m(ed)h(\(see)g(Section)g
-(1.3.1)h([Readline)390 956 y(Init)30 b(File)h(Syn)m(tax],)g(page)g
+(1.3.1)h([Readline)390 1556 y(Init)30 b(File)h(Syn)m(tax],)g(page)g
 (4\).)42 b(When)29 b(displa)m(ying)i(completions,)h(this)e(function)g
-(sets)g(the)g(n)m(um-)390 1066 y(b)s(er)23 b(of)g(columns)g(used)g(for)
+(sets)g(the)g(n)m(um-)390 1665 y(b)s(er)23 b(of)g(columns)g(used)g(for)
 h(displa)m(y)f(to)i(the)e(v)-5 b(alue)24 b(of)g Fs
 (completion-display-width)p Ft(,)19 b(the)k(v)-5 b(alue)390
-1176 y(of)31 b(the)f(en)m(vironmen)m(t)h(v)-5 b(ariable)31
+1775 y(of)31 b(the)f(en)m(vironmen)m(t)h(v)-5 b(ariable)31
 b Fs(COLUMNS)p Ft(,)e(or)h(the)h(screen)f(width,)g(in)g(that)h(order.)
-275 1374 y(The)g(follo)m(wing)j(are)e(implemen)m(ted)h(as)f(macros,)h
+275 1965 y(The)g(follo)m(wing)j(are)e(implemen)m(ted)h(as)f(macros,)h
 (de\014ned)e(in)h Fs(chardefs.h)p Ft(.)43 b(Applications)33
-b(should)150 1483 y(refrain)d(from)g(using)g(them.)3350
-1681 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_uppercase_p)d
-Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 1791 y Ft(Return)c(1)g(if)h
+b(should)150 2074 y(refrain)d(from)g(using)g(them.)3350
+2264 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_uppercase_p)d
+Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 2374 y Ft(Return)c(1)g(if)h
 Fj(c)36 b Ft(is)30 b(an)h(upp)s(ercase)e(alphab)s(etic)i(c)m(haracter.)
-3350 1989 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_lowercase_p)d
-Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 2098 y Ft(Return)c(1)g(if)h
+3350 2564 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_lowercase_p)d
+Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 2673 y Ft(Return)c(1)g(if)h
 Fj(c)36 b Ft(is)30 b(a)h(lo)m(w)m(ercase)i(alphab)s(etic)e(c)m
-(haracter.)3350 2296 y([F)-8 b(unction])-3599 b Fh(int)53
+(haracter.)3350 2863 y([F)-8 b(unction])-3599 b Fh(int)53
 b(_rl_digit_p)c Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390
-2406 y Ft(Return)c(1)g(if)h Fj(c)36 b Ft(is)30 b(a)h(n)m(umeric)f(c)m
-(haracter.)3350 2604 y([F)-8 b(unction])-3599 b Fh(int)53
+2973 y Ft(Return)c(1)g(if)h Fj(c)36 b Ft(is)30 b(a)h(n)m(umeric)f(c)m
+(haracter.)3350 3163 y([F)-8 b(unction])-3599 b Fh(int)53
 b(_rl_to_upper)c Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390
-2714 y Ft(If)23 b Fj(c)30 b Ft(is)24 b(a)g(lo)m(w)m(ercase)i(alphab)s
+3273 y Ft(If)23 b Fj(c)30 b Ft(is)24 b(a)g(lo)m(w)m(ercase)i(alphab)s
 (etic)e(c)m(haracter,)j(return)c(the)h(corresp)s(onding)e(upp)s(ercase)
-h(c)m(haracter.)3350 2912 y([F)-8 b(unction])-3599 b
+h(c)m(haracter.)3350 3462 y([F)-8 b(unction])-3599 b
 Fh(int)53 b(_rl_to_lower)c Fg(\()p Ff(in)m(t)34 b(c)p
-Fg(\))390 3021 y Ft(If)28 b Fj(c)35 b Ft(is)29 b(an)g(upp)s(ercase)f
+Fg(\))390 3572 y Ft(If)28 b Fj(c)35 b Ft(is)29 b(an)g(upp)s(ercase)f
 (alphab)s(etic)h(c)m(haracter,)i(return)d(the)h(corresp)s(onding)f(lo)m
-(w)m(ercase)j(c)m(harac-)390 3131 y(ter.)3350 3329 y([F)-8
+(w)m(ercase)j(c)m(harac-)390 3682 y(ter.)3350 3872 y([F)-8
 b(unction])-3599 b Fh(int)53 b(_rl_digit_value)d Fg(\()p
-Ff(in)m(t)34 b(c)p Fg(\))390 3438 y Ft(If)c Fj(c)36 b
+Ff(in)m(t)34 b(c)p Fg(\))390 3981 y Ft(If)c Fj(c)36 b
 Ft(is)31 b(a)f(n)m(um)m(b)s(er,)g(return)f(the)h(v)-5
-b(alue)31 b(it)g(represen)m(ts.)150 3644 y Fi(2.4.11)63
-b(Miscellaneous)42 b(F)-10 b(unctions)3350 3848 y Ft([F)i(unction])
+b(alue)31 b(it)g(represen)m(ts.)150 4183 y Fi(2.4.11)63
+b(Miscellaneous)42 b(F)-10 b(unctions)3350 4383 y Ft([F)i(unction])
 -3599 b Fh(int)53 b(rl_macro_bind)d Fg(\()p Ff(const)34
 b(c)m(har)g(*k)m(eyseq,)e(const)i(c)m(har)g(*macro,)565
-3958 y(Keymap)g(map)p Fg(\))390 4067 y Ft(Bind)23 b(the)g(k)m(ey)h
+4492 y(Keymap)g(map)p Fg(\))390 4602 y Ft(Bind)23 b(the)g(k)m(ey)h
 (sequence)g Fj(k)m(eyseq)i Ft(to)e(in)m(v)m(ok)m(e)h(the)f(macro)f
 Fj(macro)p Ft(.)39 b(The)23 b(binding)f(is)i(p)s(erformed)d(in)390
-4177 y Fj(map)p Ft(.)39 b(When)28 b Fj(k)m(eyseq)i Ft(is)e(in)m(v)m(ok)
+4712 y Fj(map)p Ft(.)39 b(When)28 b Fj(k)m(eyseq)i Ft(is)e(in)m(v)m(ok)
 m(ed,)i(the)d Fj(macro)33 b Ft(will)28 b(b)s(e)f(inserted)g(in)m(to)i
-(the)e(line.)41 b(This)26 b(function)390 4286 y(is)k(deprecated;)i(use)
-e Fs(rl_generic_bind\(\))25 b Ft(instead.)3350 4484 y([F)-8
+(the)e(line.)41 b(This)26 b(function)390 4821 y(is)k(deprecated;)i(use)
+e Fs(rl_generic_bind\(\))25 b Ft(instead.)3350 5011 y([F)-8
 b(unction])-3599 b Fh(void)54 b(rl_macro_dumper)c Fg(\()p
-Ff(in)m(t)33 b(readable)p Fg(\))390 4594 y Ft(Prin)m(t)27
+Ff(in)m(t)33 b(readable)p Fg(\))390 5121 y Ft(Prin)m(t)27
 b(the)g(k)m(ey)h(sequences)g(b)s(ound)d(to)j(macros)f(and)g(their)g(v)
 -5 b(alues,)28 b(using)f(the)g(curren)m(t)g(k)m(eymap,)390
-4704 y(to)32 b Fs(rl_outstream)p Ft(.)40 b(If)31 b Fj(readable)36
+5230 y(to)32 b Fs(rl_outstream)p Ft(.)40 b(If)31 b Fj(readable)36
 b Ft(is)c(non-zero,)g(the)f(list)h(is)f(formatted)h(in)f(suc)m(h)g(a)g
-(w)m(a)m(y)i(that)e(it)390 4813 y(can)g(b)s(e)e(made)i(part)f(of)h(an)f
-Fs(inputrc)e Ft(\014le)j(and)e(re-read.)3350 5011 y([F)-8
-b(unction])-3599 b Fh(int)53 b(rl_variable_bind)e Fg(\()p
-Ff(const)34 b(c)m(har)f(*v)-6 b(ariable,)33 b(const)h(c)m(har)f(*v)-6
-b(alue)p Fg(\))390 5121 y Ft(Mak)m(e)31 b(the)e(Readline)g(v)-5
+(w)m(a)m(y)i(that)e(it)390 5340 y(can)g(b)s(e)e(made)i(part)f(of)h(an)f
+Fs(inputrc)e Ft(\014le)j(and)e(re-read.)p eop end
+%%Page: 42 46
+TeXDict begin 42 45 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(42)3350
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_variable_bind)e
+Fg(\()p Ff(const)34 b(c)m(har)f(*v)-6 b(ariable,)33 b(const)h(c)m(har)f
+(*v)-6 b(alue)p Fg(\))390 408 y Ft(Mak)m(e)31 b(the)e(Readline)g(v)-5
 b(ariable)30 b Fj(v)-5 b(ariable)35 b Ft(ha)m(v)m(e)30
 b Fj(v)-5 b(alue)p Ft(.)41 b(This)28 b(b)s(eha)m(v)m(es)h(as)h(if)f
-(the)g(readline)g(com-)390 5230 y(mand)h(`)p Fs(set)g
+(the)g(readline)g(com-)390 518 y(mand)h(`)p Fs(set)g
 Fl(variable)e(value)p Ft(')h(had)h(b)s(een)h(executed)g(in)g(an)f
 Fs(inputrc)f Ft(\014le)i(\(see)h(Section)f(1.3.1)390
-5340 y([Readline)g(Init)f(File)i(Syn)m(tax],)f(page)g(4\).)p
-eop end
-%%Page: 42 46
-TeXDict begin 42 45 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(42)3350
-299 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_variable_value)f
+628 y([Readline)g(Init)f(File)i(Syn)m(tax],)f(page)g(4\).)3350
+813 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_variable_value)f
 Fg(\()p Ff(const)34 b(c)m(har)g(*v)-6 b(ariable)p Fg(\))390
-408 y Ft(Return)28 b(a)i(string)f(represen)m(ting)h(the)f(v)-5
+923 y Ft(Return)28 b(a)i(string)f(represen)m(ting)h(the)f(v)-5
 b(alue)30 b(of)f(the)h(Readline)g(v)-5 b(ariable)30 b
 Fj(v)-5 b(ariable)p Ft(.)41 b(F)-8 b(or)30 b(b)s(o)s(olean)390
-518 y(v)-5 b(ariables,)31 b(this)g(string)f(is)g(either)h(`)p
-Fs(on)p Ft(')f(or)h(`)p Fs(off)p Ft('.)3350 698 y([F)-8
+1032 y(v)-5 b(ariables,)31 b(this)g(string)f(is)g(either)h(`)p
+Fs(on)p Ft(')f(or)h(`)p Fs(off)p Ft('.)3350 1217 y([F)-8
 b(unction])-3599 b Fh(void)54 b(rl_variable_dumper)c
-Fg(\()p Ff(in)m(t)34 b(readable)p Fg(\))390 808 y Ft(Prin)m(t)29
+Fg(\()p Ff(in)m(t)34 b(readable)p Fg(\))390 1327 y Ft(Prin)m(t)29
 b(the)f(readline)h(v)-5 b(ariable)30 b(names)e(and)g(their)h(curren)m
 (t)f(v)-5 b(alues)29 b(to)h Fs(rl_outstream)p Ft(.)37
-b(If)28 b Fj(read-)390 917 y(able)40 b Ft(is)34 b(non-zero,)i(the)e
+b(If)28 b Fj(read-)390 1437 y(able)40 b Ft(is)34 b(non-zero,)i(the)e
 (list)g(is)g(formatted)h(in)f(suc)m(h)g(a)g(w)m(a)m(y)h(that)g(it)f
-(can)g(b)s(e)g(made)g(part)g(of)g(an)390 1027 y Fs(inputrc)28
-b Ft(\014le)j(and)f(re-read.)3350 1207 y([F)-8 b(unction])-3599
+(can)g(b)s(e)g(made)g(part)g(of)g(an)390 1546 y Fs(inputrc)28
+b Ft(\014le)j(and)f(re-read.)3350 1732 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_set_paren_blink_ti)q(meou)q(t)f Fg(\()p
-Ff(in)m(t)33 b(u)p Fg(\))390 1317 y Ft(Set)25 b(the)h(time)f(in)m(terv)
+Ff(in)m(t)33 b(u)p Fg(\))390 1841 y Ft(Set)25 b(the)h(time)f(in)m(terv)
 -5 b(al)27 b(\(in)e(microseconds\))h(that)g(Readline)f(w)m(aits)h(when)
-e(sho)m(wing)i(a)f(balancing)390 1426 y(c)m(haracter)32
+e(sho)m(wing)i(a)f(balancing)390 1951 y(c)m(haracter)32
 b(when)d Fs(blink-matching-paren)c Ft(has)30 b(b)s(een)g(enabled.)3350
-1607 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_get_termcap)e
-Fg(\()p Ff(const)34 b(c)m(har)g(*cap)p Fg(\))390 1716
+2136 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_get_termcap)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*cap)p Fg(\))390 2246
 y Ft(Retriev)m(e)29 b(the)e(string)g(v)-5 b(alue)27 b(of)g(the)h
 (termcap)f(capabilit)m(y)i Fj(cap)p Ft(.)40 b(Readline)27
-b(fetc)m(hes)h(the)g(termcap)390 1826 y(en)m(try)34 b(for)f(the)h
+b(fetc)m(hes)h(the)g(termcap)390 2355 y(en)m(try)34 b(for)f(the)h
 (curren)m(t)f(terminal)h(name)g(and)f(uses)g(those)h(capabilities)h(to)
-f(mo)m(v)m(e)h(around)e(the)390 1935 y(screen)21 b(line)h(and)e(p)s
+f(mo)m(v)m(e)h(around)e(the)390 2465 y(screen)21 b(line)h(and)e(p)s
 (erform)g(other)h(terminal-sp)s(eci\014c)h(op)s(erations,)h(lik)m(e)f
-(erasing)g(a)f(line.)38 b(Readline)390 2045 y(do)s(es)d(not)g(use)g
+(erasing)g(a)f(line.)38 b(Readline)390 2574 y(do)s(es)d(not)g(use)g
 (all)g(of)h(a)f(terminal's)g(capabilities,)k(and)34 b(this)h(function)g
-(will)g(return)f(v)-5 b(alues)35 b(for)390 2155 y(only)30
-b(those)h(capabilities)i(Readline)e(uses.)3350 2335 y([F)-8
+(will)g(return)f(v)-5 b(alues)35 b(for)390 2684 y(only)30
+b(those)h(capabilities)i(Readline)e(uses.)3350 2869 y([F)-8
 b(unction])-3599 b Fh(void)54 b(rl_clear_history)c Fg(\()p
-Ff(v)m(oid)p Fg(\))390 2444 y Ft(Clear)27 b(the)h(history)f(list)h(b)m
+Ff(v)m(oid)p Fg(\))390 2979 y Ft(Clear)27 b(the)h(history)f(list)h(b)m
 (y)f(deleting)h(all)g(of)f(the)h(en)m(tries,)h(in)d(the)i(same)f
-(manner)g(as)g(the)g(History)390 2554 y(library's)42
+(manner)g(as)g(the)g(History)390 3088 y(library's)42
 b Fs(clear_history\(\))d Ft(function.)78 b(This)42 b(di\013ers)g(from)g
-Fs(clear_history)e Ft(b)s(ecause)i(it)390 2664 y(frees)30
+Fs(clear_history)e Ft(b)s(ecause)i(it)390 3198 y(frees)30
 b(priv)-5 b(ate)31 b(data)g(Readline)g(sa)m(v)m(es)h(in)e(the)h
-(history)f(list.)150 2860 y Fi(2.4.12)63 b(Alternate)40
-b(In)m(terface)150 3007 y Ft(An)21 b(alternate)j(in)m(terface)f(is)f(a)
+(history)f(list.)150 3398 y Fi(2.4.12)63 b(Alternate)40
+b(In)m(terface)150 3545 y Ft(An)21 b(alternate)j(in)m(terface)f(is)f(a)
 m(v)-5 b(ailable)24 b(to)e(plain)g Fs(readline\(\))p
 Ft(.)35 b(Some)21 b(applications)i(need)f(to)g(in)m(terlea)m(v)m(e)150
-3117 y(k)m(eyb)s(oard)35 b(I/O)h(with)f(\014le,)i(device,)h(or)e(windo)
+3654 y(k)m(eyb)s(oard)35 b(I/O)h(with)f(\014le,)i(device,)h(or)e(windo)
 m(w)f(system)g(I/O,)h(t)m(ypically)i(b)m(y)d(using)g(a)h(main)g(lo)s
-(op)f(to)150 3226 y Fs(select\(\))42 b Ft(on)i(v)-5 b(arious)45
+(op)f(to)150 3764 y Fs(select\(\))42 b Ft(on)i(v)-5 b(arious)45
 b(\014le)f(descriptors.)83 b(T)-8 b(o)45 b(accommo)s(date)h(this)e
-(need,)k(readline)d(can)f(also)i(b)s(e)150 3336 y(in)m(v)m(ok)m(ed)33
+(need,)k(readline)d(can)f(also)i(b)s(e)150 3873 y(in)m(v)m(ok)m(ed)33
 b(as)e(a)h(`callbac)m(k')h(function)e(from)g(an)g(ev)m(en)m(t)h(lo)s
 (op.)44 b(There)30 b(are)i(functions)f(a)m(v)-5 b(ailable)33
-b(to)f(mak)m(e)150 3445 y(this)e(easy)-8 b(.)3350 3626
+b(to)f(mak)m(e)150 3983 y(this)e(easy)-8 b(.)3350 4168
 y([F)g(unction])-3599 b Fh(void)54 b(rl_callback_handler_inst)q(all)e
-Fg(\()p Ff(const)34 b(c)m(har)g(*prompt,)565 3735 y(rl)p
-639 3735 30 5 v 44 w(v)m(cpfunc)p 1016 3735 V 45 w(t)f(*lhandler)p
-Fg(\))390 3845 y Ft(Set)25 b(up)f(the)h(terminal)g(for)f(readline)i
+Fg(\()p Ff(const)34 b(c)m(har)g(*prompt,)565 4278 y(rl)p
+639 4278 30 5 v 44 w(v)m(cpfunc)p 1016 4278 V 45 w(t)f(*lhandler)p
+Fg(\))390 4388 y Ft(Set)25 b(up)f(the)h(terminal)g(for)f(readline)i
 (I/O)e(and)g(displa)m(y)h(the)g(initial)h(expanded)e(v)-5
-b(alue)26 b(of)f Fj(prompt)p Ft(.)390 3954 y(Sa)m(v)m(e)34
+b(alue)26 b(of)f Fj(prompt)p Ft(.)390 4497 y(Sa)m(v)m(e)34
 b(the)f(v)-5 b(alue)33 b(of)g Fj(lhandler)39 b Ft(to)34
 b(use)e(as)h(a)g(handler)f(function)h(to)g(call)h(when)e(a)h(complete)i
-(line)390 4064 y(of)h(input)f(has)g(b)s(een)g(en)m(tered.)57
+(line)390 4607 y(of)h(input)f(has)g(b)s(een)g(en)m(tered.)57
 b(The)35 b(handler)g(function)g(receiv)m(es)j(the)e(text)g(of)g(the)g
-(line)g(as)g(an)390 4173 y(argumen)m(t.)k(As)29 b(with)f
+(line)g(as)g(an)390 4716 y(argumen)m(t.)k(As)29 b(with)f
 Fs(readline\(\))p Ft(,)e(the)j(handler)e(function)h(should)g
-Fs(free)f Ft(the)h(line)h(when)e(it)i(it)390 4283 y(\014nished)g(with)h
-(it.)3350 4463 y([F)-8 b(unction])-3599 b Fh(void)54
+Fs(free)f Ft(the)h(line)h(when)e(it)i(it)390 4826 y(\014nished)g(with)h
+(it.)3350 5011 y([F)-8 b(unction])-3599 b Fh(void)54
 b(rl_callback_read_char)d Fg(\()p Ff(v)m(oid)p Fg(\))390
-4573 y Ft(Whenev)m(er)34 b(an)g(application)h(determines)e(that)i(k)m
+5121 y Ft(Whenev)m(er)34 b(an)g(application)h(determines)e(that)i(k)m
 (eyb)s(oard)e(input)g(is)h(a)m(v)-5 b(ailable,)37 b(it)d(should)f(call)
-390 4682 y Fs(rl_callback_read_char\(\))p Ft(,)17 b(whic)m(h)22
+390 5230 y Fs(rl_callback_read_char\(\))p Ft(,)17 b(whic)m(h)22
 b(will)g(read)f(the)h(next)g(c)m(haracter)h(from)f(the)f(curren)m(t)h
-(input)390 4792 y(source.)40 b(If)27 b(that)i(c)m(haracter)g(completes)
+(input)390 5340 y(source.)40 b(If)27 b(that)i(c)m(haracter)g(completes)
 h(the)e(line,)h Fs(rl_callback_read_char)22 b Ft(will)28
-b(in)m(v)m(ok)m(e)i(the)390 4902 y Fj(lhandler)47 b Ft(function)40
-b(installed)i(b)m(y)e Fs(rl_callback_handler_insta)o(ll)35
-b Ft(to)41 b(pro)s(cess)f(the)h(line.)390 5011 y(Before)j(calling)h
-(the)e Fj(lhandler)49 b Ft(function,)e(the)c(terminal)h(settings)g(are)
-g(reset)f(to)h(the)g(v)-5 b(alues)390 5121 y(they)44
-b(had)e(b)s(efore)h(calling)i Fs(rl_callback_handler_insta)o(ll)p
-Ft(.)73 b(If)43 b(the)h Fj(lhandler)49 b Ft(function)390
-5230 y(returns,)27 b(and)h(the)g(line)g(handler)f(remains)h(installed,)
-i(the)e(terminal)g(settings)h(are)f(mo)s(di\014ed)f(for)390
-5340 y(Readline's)k(use)f(again.)42 b Fs(EOF)29 b Ft(is)i(indicated)g
-(b)m(y)f(calling)i Fj(lhandler)k Ft(with)30 b(a)h Fs(NULL)e
-Ft(line.)p eop end
+b(in)m(v)m(ok)m(e)i(the)p eop end
 %%Page: 43 47
 TeXDict begin 43 46 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(43)3350
-299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_callback_sigcleanup)e
-Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Clean)26 b(up)e(an)m(y)i(in)m
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(43)390
+299 y Fj(lhandler)47 b Ft(function)40 b(installed)i(b)m(y)e
+Fs(rl_callback_handler_insta)o(ll)35 b Ft(to)41 b(pro)s(cess)f(the)h
+(line.)390 408 y(Before)j(calling)h(the)e Fj(lhandler)49
+b Ft(function,)e(the)c(terminal)h(settings)g(are)g(reset)f(to)h(the)g
+(v)-5 b(alues)390 518 y(they)44 b(had)e(b)s(efore)h(calling)i
+Fs(rl_callback_handler_insta)o(ll)p Ft(.)73 b(If)43 b(the)h
+Fj(lhandler)49 b Ft(function)390 628 y(returns,)27 b(and)h(the)g(line)g
+(handler)f(remains)h(installed,)i(the)e(terminal)g(settings)h(are)f(mo)
+s(di\014ed)f(for)390 737 y(Readline's)k(use)f(again.)42
+b Fs(EOF)29 b Ft(is)i(indicated)g(b)m(y)f(calling)i Fj(lhandler)k
+Ft(with)30 b(a)h Fs(NULL)e Ft(line.)3350 931 y([F)-8
+b(unction])-3599 b Fh(void)54 b(rl_callback_sigcleanup)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 1040 y Ft(Clean)26 b(up)e(an)m(y)i(in)m
 (ternal)g(state)h(the)e(callbac)m(k)j(in)m(terface)f(uses)e(to)h(main)m
-(tain)g(state)h(b)s(et)m(w)m(een)f(calls)390 518 y(to)35
-b(rl)p 572 518 28 4 v 40 w(callbac)m(k)p 928 518 V 42
-w(read)p 1142 518 V 40 w(c)m(har)f(\(e.g.,)j(the)e(state)g(of)f(an)m(y)
-h(activ)m(e)h(incremen)m(tal)f(searc)m(hes\).)54 b(This)33
-b(is)390 628 y(in)m(tended)f(to)h(b)s(e)e(used)g(b)m(y)h(applications)h
-(that)g(wish)e(to)i(p)s(erform)d(their)j(o)m(wn)f(signal)g(handling;)
-390 737 y(Readline's)f(in)m(ternal)g(signal)g(handler)f(calls)h(this)g
-(when)e(appropriate.)3350 918 y([F)-8 b(unction])-3599
-b Fh(void)54 b(rl_callback_handler_remo)q(ve)e Fg(\()p
-Ff(v)m(oid)p Fg(\))390 1027 y Ft(Restore)37 b(the)f(terminal)g(to)g
-(its)h(initial)g(state)g(and)e(remo)m(v)m(e)i(the)f(line)g(handler.)56
-b(Y)-8 b(ou)36 b(ma)m(y)h(call)390 1137 y(this)25 b(function)g(from)g
-(within)g(a)h(callbac)m(k)i(as)d(w)m(ell)i(as)f(indep)s(enden)m(tly)-8
-b(.)38 b(If)25 b(the)h Fj(lhandler)31 b Ft(installed)390
-1247 y(b)m(y)25 b Fs(rl_callback_handler_insta)o(ll)19
-b Ft(do)s(es)25 b(not)h(exit)g(the)g(program,)g(either)g(this)f
-(function)g(or)390 1356 y(the)32 b(function)f(referred)f(to)i(b)m(y)g
+(tain)g(state)h(b)s(et)m(w)m(een)f(calls)390 1150 y(to)35
+b(rl)p 572 1150 28 4 v 40 w(callbac)m(k)p 928 1150 V
+42 w(read)p 1142 1150 V 40 w(c)m(har)f(\(e.g.,)j(the)e(state)g(of)f(an)
+m(y)h(activ)m(e)h(incremen)m(tal)f(searc)m(hes\).)54
+b(This)33 b(is)390 1259 y(in)m(tended)f(to)h(b)s(e)e(used)g(b)m(y)h
+(applications)h(that)g(wish)e(to)i(p)s(erform)d(their)j(o)m(wn)f
+(signal)g(handling;)390 1369 y(Readline's)f(in)m(ternal)g(signal)g
+(handler)f(calls)h(this)g(when)e(appropriate.)3350 1562
+y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_callback_handler_remo)q(ve)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 1672 y Ft(Restore)37 b(the)f(terminal)g
+(to)g(its)h(initial)g(state)g(and)e(remo)m(v)m(e)i(the)f(line)g
+(handler.)56 b(Y)-8 b(ou)36 b(ma)m(y)h(call)390 1782
+y(this)25 b(function)g(from)g(within)g(a)h(callbac)m(k)i(as)d(w)m(ell)i
+(as)f(indep)s(enden)m(tly)-8 b(.)38 b(If)25 b(the)h Fj(lhandler)31
+b Ft(installed)390 1891 y(b)m(y)25 b Fs(rl_callback_handler_insta)o(ll)
+19 b Ft(do)s(es)25 b(not)h(exit)g(the)g(program,)g(either)g(this)f
+(function)g(or)390 2001 y(the)32 b(function)f(referred)f(to)i(b)m(y)g
 (the)f(v)-5 b(alue)32 b(of)g Fs(rl_deprep_term_function)25
-b Ft(should)30 b(b)s(e)h(called)390 1466 y(b)s(efore)f(the)h(program)f
+b Ft(should)30 b(b)s(e)h(called)390 2110 y(b)s(efore)f(the)h(program)f
 (exits)h(to)g(reset)g(the)f(terminal)h(settings.)150
-1663 y Fi(2.4.13)63 b(A)41 b(Readline)f(Example)150 1809
+2314 y Fi(2.4.13)63 b(A)41 b(Readline)f(Example)150 2461
 y Ft(Here)34 b(is)g(a)g(function)g(whic)m(h)g(c)m(hanges)g(lo)m(w)m
 (ercase)j(c)m(haracters)e(to)f(their)g(upp)s(ercase)f(equiv)-5
-b(alen)m(ts,)37 b(and)150 1919 y(upp)s(ercase)d(c)m(haracters)j(to)f
+b(alen)m(ts,)37 b(and)150 2571 y(upp)s(ercase)d(c)m(haracters)j(to)f
 (lo)m(w)m(ercase.)58 b(If)35 b(this)g(function)g(w)m(as)h(b)s(ound)d
 (to)j(`)p Fs(M-c)p Ft(',)h(then)e(t)m(yping)g(`)p Fs(M-c)p
-Ft(')150 2029 y(w)m(ould)c(c)m(hange)i(the)f(case)g(of)g(the)g(c)m
+Ft(')150 2680 y(w)m(ould)c(c)m(hange)i(the)f(case)g(of)g(the)g(c)m
 (haracter)h(under)d(p)s(oin)m(t.)44 b(T)m(yping)31 b(`)p
 Fs(M-1)f(0)g(M-c)p Ft(')h(w)m(ould)g(c)m(hange)i(the)150
-2138 y(case)e(of)g(the)g(follo)m(wing)g(10)h(c)m(haracters,)g(lea)m
+2790 y(case)e(of)g(the)g(follo)m(wing)g(10)h(c)m(haracters,)g(lea)m
 (ving)g(the)e(cursor)g(on)g(the)h(last)g(c)m(haracter)h(c)m(hanged.)390
-2271 y Fs(/*)47 b(Invert)f(the)h(case)g(of)g(the)g(COUNT)f(following)g
-(characters.)e(*/)390 2381 y(int)390 2491 y(invert_case_line)f
-(\(count,)j(key\))629 2600 y(int)h(count,)f(key;)390
-2710 y({)485 2819 y(register)g(int)h(start,)f(end,)h(i;)485
-3039 y(start)g(=)g(rl_point;)485 3258 y(if)h(\(rl_point)d(>=)i
-(rl_end\))581 3367 y(return)f(\(0\);)485 3587 y(if)i(\(count)e(<)h(0\))
-581 3696 y({)676 3806 y(direction)f(=)h(-1;)676 3915
-y(count)g(=)g(-count;)581 4025 y(})485 4134 y(else)581
-4244 y(direction)e(=)j(1;)485 4463 y(/*)g(Find)e(the)h(end)g(of)g(the)g
-(range)g(to)g(modify.)f(*/)485 4573 y(end)h(=)h(start)e(+)i(\(count)e
-(*)h(direction\);)485 4792 y(/*)h(Force)e(it)h(to)g(be)h(within)e
-(range.)g(*/)485 4902 y(if)i(\(end)e(>)i(rl_end\))581
-5011 y(end)f(=)g(rl_end;)485 5121 y(else)g(if)g(\(end)g(<)g(0\))581
-5230 y(end)g(=)g(0;)p eop end
+2929 y Fs(/*)47 b(Invert)f(the)h(case)g(of)g(the)g(COUNT)f(following)g
+(characters.)e(*/)390 3039 y(int)390 3148 y(invert_case_line)f
+(\(count,)j(key\))629 3258 y(int)h(count,)f(key;)390
+3367 y({)485 3477 y(register)g(int)h(start,)f(end,)h(i;)485
+3696 y(start)g(=)g(rl_point;)485 3915 y(if)h(\(rl_point)d(>=)i
+(rl_end\))581 4025 y(return)f(\(0\);)485 4244 y(if)i(\(count)e(<)h(0\))
+581 4354 y({)676 4463 y(direction)f(=)h(-1;)676 4573
+y(count)g(=)g(-count;)581 4682 y(})485 4792 y(else)581
+4902 y(direction)e(=)j(1;)485 5121 y(/*)g(Find)e(the)h(end)g(of)g(the)g
+(range)g(to)g(modify.)f(*/)485 5230 y(end)h(=)h(start)e(+)i(\(count)e
+(*)h(direction\);)p eop end
 %%Page: 44 48
 TeXDict begin 44 47 bop 150 -116 a Ft(Chapter)30 b(2:)41
 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(44)485
-299 y Fs(if)48 b(\(start)e(==)h(end\))581 408 y(return)f(\(0\);)485
-628 y(if)i(\(start)e(>)h(end\))581 737 y({)676 847 y(int)g(temp)g(=)g
-(start;)676 956 y(start)g(=)g(end;)676 1066 y(end)g(=)h(temp;)581
-1176 y(})485 1395 y(/*)g(Tell)e(readline)g(that)g(we)i(are)f(modifying)
-e(the)i(line,)629 1504 y(so)g(it)g(will)g(save)f(the)h(undo)g
-(information.)d(*/)485 1614 y(rl_modifying)h(\(start,)h(end\);)485
-1833 y(for)h(\(i)h(=)f(start;)f(i)i(!=)f(end;)f(i++\))581
-1943 y({)676 2052 y(if)i(\(_rl_uppercase_p)43 b
-(\(rl_line_buffer[i]\)\))772 2162 y(rl_line_buffer[i])g(=)k
-(_rl_to_lower)e(\(rl_line_buffer[i]\);)676 2271 y(else)i(if)g
-(\(_rl_lowercase_p)d(\(rl_line_buffer[i]\)\))772 2381
+299 y Fs(/*)48 b(Force)e(it)h(to)g(be)h(within)e(range.)g(*/)485
+408 y(if)i(\(end)e(>)i(rl_end\))581 518 y(end)f(=)g(rl_end;)485
+628 y(else)g(if)g(\(end)g(<)g(0\))581 737 y(end)g(=)g(0;)485
+956 y(if)h(\(start)e(==)h(end\))581 1066 y(return)f(\(0\);)485
+1285 y(if)i(\(start)e(>)h(end\))581 1395 y({)676 1504
+y(int)g(temp)g(=)g(start;)676 1614 y(start)g(=)g(end;)676
+1724 y(end)g(=)h(temp;)581 1833 y(})485 2052 y(/*)g(Tell)e(readline)g
+(that)g(we)i(are)f(modifying)e(the)i(line,)629 2162 y(so)g(it)g(will)g
+(save)f(the)h(undo)g(information.)d(*/)485 2271 y(rl_modifying)h
+(\(start,)h(end\);)485 2491 y(for)h(\(i)h(=)f(start;)f(i)i(!=)f(end;)f
+(i++\))581 2600 y({)676 2710 y(if)i(\(_rl_uppercase_p)43
+b(\(rl_line_buffer[i]\)\))772 2819 y(rl_line_buffer[i])g(=)k
+(_rl_to_lower)e(\(rl_line_buffer[i]\);)676 2929 y(else)i(if)g
+(\(_rl_lowercase_p)d(\(rl_line_buffer[i]\)\))772 3039
 y(rl_line_buffer[i])f(=)k(_rl_to_upper)e(\(rl_line_buffer[i]\);)581
-2491 y(})485 2600 y(/*)j(Move)e(point)h(to)g(on)g(top)g(of)g(the)g
-(last)g(character)e(changed.)g(*/)485 2710 y(rl_point)h(=)h
+3148 y(})485 3258 y(/*)j(Move)e(point)h(to)g(on)g(top)g(of)g(the)g
+(last)g(character)e(changed.)g(*/)485 3367 y(rl_point)h(=)h
 (\(direction)e(==)j(1\))f(?)g(end)g(-)h(1)f(:)h(start;)485
-2819 y(return)f(\(0\);)390 2929 y(})150 3162 y Fi(2.4.14)63
-b(Alternate)40 b(In)m(terface)g(Example)150 3309 y Ft(Here)f(is)g(a)g
+3477 y(return)f(\(0\);)390 3587 y(})150 3819 y Fi(2.4.14)63
+b(Alternate)40 b(In)m(terface)g(Example)150 3966 y Ft(Here)f(is)g(a)g
 (complete)h(program)e(that)h(illustrates)h(Readline's)f(alternate)h(in)
-m(terface.)67 b(It)38 b(reads)h(lines)150 3418 y(from)30
+m(terface.)67 b(It)38 b(reads)h(lines)150 4076 y(from)30
 b(the)i(terminal)f(and)f(displa)m(ys)h(them,)h(pro)m(viding)f(the)g
 (standard)f(history)h(and)f(T)-8 b(AB)32 b(completion)150
-3528 y(functions.)40 b(It)31 b(understands)d(the)j(EOF)f(c)m(haracter)i
+4186 y(functions.)40 b(It)31 b(understands)d(the)j(EOF)f(c)m(haracter)i
 (or)e Fs(")p Ft(exit)p Fs(")h Ft(to)g(exit)g(the)g(program.)390
-3696 y Fs(/*)47 b(Standard)f(include)g(files.)g(stdio.h)f(is)j
-(required.)d(*/)390 3806 y(#include)h(<stdlib.h>)390
-3915 y(#include)g(<string.h>)390 4025 y(#include)g(<unistd.h>)390
-4134 y(#include)g(<locale.h>)390 4354 y(/*)h(Used)g(for)g(select\(2\))e
-(*/)390 4463 y(#include)h(<sys/types.h>)390 4573 y(#include)g
-(<sys/select.h>)390 4792 y(#include)g(<signal.h>)390
-5011 y(#include)g(<stdio.h>)390 5230 y(/*)h(Standard)f(readline)f
-(include)h(files.)g(*/)390 5340 y(#include)g(<readline/readline.h>)p
-eop end
+4354 y Fs(/*)47 b(Standard)f(include)g(files.)g(stdio.h)f(is)j
+(required.)d(*/)390 4463 y(#include)h(<stdlib.h>)390
+4573 y(#include)g(<string.h>)390 4682 y(#include)g(<unistd.h>)390
+4792 y(#include)g(<locale.h>)390 5011 y(/*)h(Used)g(for)g(select\(2\))e
+(*/)390 5121 y(#include)h(<sys/types.h>)390 5230 y(#include)g
+(<sys/select.h>)p eop end
 %%Page: 45 49
 TeXDict begin 45 48 bop 150 -116 a Ft(Chapter)30 b(2:)41
 b(Programming)30 b(with)g(GNU)h(Readline)1683 b(45)390
-299 y Fs(#include)46 b(<readline/history.h>)390 518 y(static)g(void)h
-(cb_linehandler)d(\(char)i(*\);)390 628 y(static)g(void)h(sighandler)e
-(\(int\);)390 847 y(int)i(running;)390 956 y(int)g(sigwinch_received;)
-390 1066 y(const)f(char)h(*prompt)f(=)h("rltest$)f(";)390
-1285 y(/*)h(Handle)f(SIGWINCH)g(and)h(window)f(size)g(changes)g(when)h
-(readline)e(is)j(not)f(active)f(and)p 3922 1305 42 84
-v 533 1395 a(reading)g(a)h(character.)e(*/)390 1504 y(static)h(void)390
-1614 y(sighandler)f(\(int)i(sig\))390 1724 y({)485 1833
-y(sigwinch_received)d(=)j(1;)390 1943 y(})390 2162 y(/*)g(Callback)f
+299 y Fs(#include)46 b(<signal.h>)390 518 y(#include)g(<stdio.h>)390
+737 y(/*)h(Standard)f(readline)f(include)h(files.)g(*/)390
+847 y(#include)g(<readline/readline.h>)390 956 y(#include)g
+(<readline/history.h>)390 1176 y(static)g(void)h(cb_linehandler)d
+(\(char)i(*\);)390 1285 y(static)g(void)h(sighandler)e(\(int\);)390
+1504 y(int)i(running;)390 1614 y(int)g(sigwinch_received;)390
+1724 y(const)f(char)h(*prompt)f(=)h("rltest$)f(";)390
+1943 y(/*)h(Handle)f(SIGWINCH)g(and)h(window)f(size)g(changes)g(when)h
+(readline)e(is)j(not)f(active)f(and)p 3922 1963 42 84
+v 533 2052 a(reading)g(a)h(character.)e(*/)390 2162 y(static)h(void)390
+2271 y(sighandler)f(\(int)i(sig\))390 2381 y({)485 2491
+y(sigwinch_received)d(=)j(1;)390 2600 y(})390 2819 y(/*)g(Callback)f
 (function)f(called)h(for)h(each)g(line)g(when)f(accept-line)f
-(executed,)g(EOF)533 2271 y(seen,)i(or)g(EOF)g(character)e(read.)94
+(executed,)g(EOF)533 2929 y(seen,)i(or)g(EOF)g(character)e(read.)94
 b(This)47 b(sets)f(a)i(flag)e(and)h(returns;)f(it)h(could)533
-2381 y(also)g(call)f(exit\(3\).)g(*/)390 2491 y(static)g(void)390
-2600 y(cb_linehandler)e(\(char)i(*line\))390 2710 y({)485
-2819 y(/*)i(Can)f(use)f(^D)i(\(stty)e(eof\))h(or)g(`exit')f(to)h(exit.)
-f(*/)485 2929 y(if)i(\(line)e(==)h(NULL)g(||)g(strcmp)f(\(line,)g
-("exit"\))g(==)h(0\))581 3039 y({)676 3148 y(if)h(\(line)e(==)h(0\))772
-3258 y(printf)f(\("\\n"\);)676 3367 y(printf)g(\("exit\\n"\);)676
-3477 y(/*)i(This)e(function)g(needs)g(to)h(be)g(called)g(to)g(reset)f
-(the)h(terminal)f(settings,)p 3874 3497 V 820 3587 a(and)g(calling)g
+3039 y(also)g(call)f(exit\(3\).)g(*/)390 3148 y(static)g(void)390
+3258 y(cb_linehandler)e(\(char)i(*line\))390 3367 y({)485
+3477 y(/*)i(Can)f(use)f(^D)i(\(stty)e(eof\))h(or)g(`exit')f(to)h(exit.)
+f(*/)485 3587 y(if)i(\(line)e(==)h(NULL)g(||)g(strcmp)f(\(line,)g
+("exit"\))g(==)h(0\))581 3696 y({)676 3806 y(if)h(\(line)e(==)h(0\))772
+3915 y(printf)f(\("\\n"\);)676 4025 y(printf)g(\("exit\\n"\);)676
+4134 y(/*)i(This)e(function)g(needs)g(to)h(be)g(called)g(to)g(reset)f
+(the)h(terminal)f(settings,)p 3874 4155 V 820 4244 a(and)g(calling)g
 (it)h(from)g(the)g(line)g(handler)e(keeps)i(one)g(extra)f(prompt)g
-(from)p 3874 3607 42 76 v 820 3696 a(being)g(displayed.)f(*/)676
-3806 y(rl_callback_handler_remove)c(\(\);)676 4025 y(running)46
-b(=)i(0;)581 4134 y(})485 4244 y(else)581 4354 y({)676
-4463 y(if)g(\(*line\))772 4573 y(add_history)d(\(line\);)676
-4682 y(printf)h(\("input)g(line:)h(\045s\\n",)f(line\);)676
-4792 y(free)h(\(line\);)581 4902 y(})390 5011 y(})390
-5230 y(int)390 5340 y(main)g(\(int)f(c,)h(char)g(**v\))p
+(from)p 3874 4264 42 76 v 820 4354 a(being)g(displayed.)f(*/)676
+4463 y(rl_callback_handler_remove)c(\(\);)676 4682 y(running)46
+b(=)i(0;)581 4792 y(})485 4902 y(else)581 5011 y({)676
+5121 y(if)g(\(*line\))772 5230 y(add_history)d(\(line\);)676
+5340 y(printf)h(\("input)g(line:)h(\045s\\n",)f(line\);)p
 eop end
 %%Page: 46 50
 TeXDict begin 46 49 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(46)390
-299 y Fs({)485 408 y(fd_set)47 b(fds;)485 518 y(int)g(r;)485
-737 y(/*)h(Set)f(the)f(default)g(locale)g(values)g(according)g(to)h
-(environment)e(variables.)g(*/)p 3874 757 42 84 v 485
-847 a(setlocale)h(\(LC_ALL,)f(""\);)485 1066 y(/*)j(Handle)e(window)g
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(46)676
+299 y Fs(free)47 b(\(line\);)581 408 y(})390 518 y(})390
+737 y(int)390 847 y(main)g(\(int)f(c,)h(char)g(**v\))390
+956 y({)485 1066 y(fd_set)g(fds;)485 1176 y(int)g(r;)485
+1395 y(/*)h(Set)f(the)f(default)g(locale)g(values)g(according)g(to)h
+(environment)e(variables.)g(*/)p 3874 1415 42 84 v 485
+1504 a(setlocale)h(\(LC_ALL,)f(""\);)485 1724 y(/*)j(Handle)e(window)g
 (size)g(changes)g(when)h(readline)e(is)j(not)f(active)f(and)h(reading)
-629 1176 y(characters.)d(*/)485 1285 y(signal)j(\(SIGWINCH,)e
-(sighandler\);)485 1504 y(/*)j(Install)d(the)i(line)g(handler.)f(*/)485
-1614 y(rl_callback_handler_instal)o(l)c(\(prompt,)j(cb_linehandler\);)
-485 1833 y(/*)j(Enter)e(a)h(simple)g(event)f(loop.)94
+629 1833 y(characters.)d(*/)485 1943 y(signal)j(\(SIGWINCH,)e
+(sighandler\);)485 2162 y(/*)j(Install)d(the)i(line)g(handler.)f(*/)485
+2271 y(rl_callback_handler_instal)o(l)c(\(prompt,)j(cb_linehandler\);)
+485 2491 y(/*)j(Enter)e(a)h(simple)g(event)f(loop.)94
 b(This)47 b(waits)f(until)g(something)g(is)h(available)629
-1943 y(to)g(read)f(on)i(readline's)d(input)h(stream)g(\(defaults)f(to)j
-(standard)d(input\))h(and)629 2052 y(calls)g(the)h(builtin)f(character)
+2600 y(to)g(read)f(on)i(readline's)d(input)h(stream)g(\(defaults)f(to)j
+(standard)d(input\))h(and)629 2710 y(calls)g(the)h(builtin)f(character)
 f(read)i(callback)e(to)i(read)g(it.)95 b(It)47 b(does)f(not)629
-2162 y(have)g(to)h(modify)g(the)f(user's)h(terminal)e(settings.)g(*/)
-485 2271 y(running)h(=)i(1;)485 2381 y(while)f(\(running\))581
-2491 y({)676 2600 y(FD_ZERO)f(\(&fds\);)676 2710 y(FD_SET)g(\(fileno)g
-(\(rl_instream\),)e(&fds\);)676 2929 y(r)k(=)f(select)f(\(FD_SETSIZE,)f
-(&fds,)h(NULL,)h(NULL,)f(NULL\);)676 3039 y(if)i(\(r)f(<)g(0)h(&&)f
-(errno)f(!=)h(EINTR\))772 3148 y({)867 3258 y(perror)f(\("rltest:)g
-(select"\);)867 3367 y(rl_callback_handler_remov)o(e)c(\(\);)867
-3477 y(break;)772 3587 y(})676 3696 y(if)48 b(\(sigwinch_received\))390
-3806 y({)485 3915 y(rl_resize_terminal)43 b(\(\);)485
-4025 y(sigwinch_received)h(=)j(0;)390 4134 y(})676 4244
-y(if)h(\(r)f(<)g(0\))390 4354 y(continue;)676 4573 y(if)h(\(FD_ISSET)d
-(\(fileno)h(\(rl_instream\),)e(&fds\)\))772 4682 y
-(rl_callback_read_char)e(\(\);)581 4792 y(})485 5011
-y(printf)47 b(\("rltest:)e(Event)h(loop)h(has)g(exited\\n"\);)485
-5121 y(return)g(0;)390 5230 y(})p eop end
+2819 y(have)g(to)h(modify)g(the)f(user's)h(terminal)e(settings.)g(*/)
+485 2929 y(running)h(=)i(1;)485 3039 y(while)f(\(running\))581
+3148 y({)676 3258 y(FD_ZERO)f(\(&fds\);)676 3367 y(FD_SET)g(\(fileno)g
+(\(rl_instream\),)e(&fds\);)676 3587 y(r)k(=)f(select)f(\(FD_SETSIZE,)f
+(&fds,)h(NULL,)h(NULL,)f(NULL\);)676 3696 y(if)i(\(r)f(<)g(0)h(&&)f
+(errno)f(!=)h(EINTR\))772 3806 y({)867 3915 y(perror)f(\("rltest:)g
+(select"\);)867 4025 y(rl_callback_handler_remov)o(e)c(\(\);)867
+4134 y(break;)772 4244 y(})676 4354 y(if)48 b(\(sigwinch_received\))390
+4463 y({)485 4573 y(rl_resize_terminal)43 b(\(\);)485
+4682 y(sigwinch_received)h(=)j(0;)390 4792 y(})676 4902
+y(if)h(\(r)f(<)g(0\))390 5011 y(continue;)676 5230 y(if)h(\(FD_ISSET)d
+(\(fileno)h(\(rl_instream\),)e(&fds\)\))772 5340 y
+(rl_callback_read_char)e(\(\);)p eop end
 %%Page: 47 51
 TeXDict begin 47 50 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(47)150
-299 y Fr(2.5)68 b(Readline)47 b(Signal)e(Handling)150
-458 y Ft(Signals)31 b(are)f(async)m(hronous)g(ev)m(en)m(ts)i(sen)m(t)f
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(47)581
+299 y Fs(})485 518 y(printf)47 b(\("rltest:)e(Event)h(loop)h(has)g
+(exited\\n"\);)485 628 y(return)g(0;)390 737 y(})150
+1021 y Fr(2.5)68 b(Readline)47 b(Signal)e(Handling)150
+1180 y Ft(Signals)31 b(are)f(async)m(hronous)g(ev)m(en)m(ts)i(sen)m(t)f
 (to)g(a)g(pro)s(cess)f(b)m(y)h(the)f(Unix)g(k)m(ernel,)i(sometimes)f
-(on)g(b)s(ehalf)150 568 y(of)k(another)g(pro)s(cess.)53
+(on)g(b)s(ehalf)150 1290 y(of)k(another)g(pro)s(cess.)53
 b(They)34 b(are)h(in)m(tended)g(to)g(indicate)h(exceptional)g(ev)m(en)m
-(ts,)i(lik)m(e)e(a)f(user)f(pressing)150 677 y(the)g(in)m(terrupt)f(k)m
-(ey)h(on)g(his)f(terminal,)i(or)f(a)g(net)m(w)m(ork)g(connection)h(b)s
+(ts,)i(lik)m(e)e(a)f(user)f(pressing)150 1400 y(the)g(in)m(terrupt)f(k)
+m(ey)h(on)g(his)f(terminal,)i(or)f(a)g(net)m(w)m(ork)g(connection)h(b)s
 (eing)e(brok)m(en.)50 b(There)34 b(is)f(a)h(class)150
-787 y(of)29 b(signals)g(that)h(can)f(b)s(e)f(sen)m(t)h(to)h(the)f(pro)s
-(cess)f(curren)m(tly)h(reading)g(input)f(from)g(the)h(k)m(eyb)s(oard.)
-40 b(Since)150 897 y(Readline)45 b(c)m(hanges)g(the)g(terminal)g
+1509 y(of)29 b(signals)g(that)h(can)f(b)s(e)f(sen)m(t)h(to)h(the)f(pro)
+s(cess)f(curren)m(tly)h(reading)g(input)f(from)g(the)h(k)m(eyb)s(oard.)
+40 b(Since)150 1619 y(Readline)45 b(c)m(hanges)g(the)g(terminal)g
 (attributes)g(when)e(it)i(is)g(called,)k(it)c(needs)f(to)h(p)s(erform)e
-(sp)s(ecial)150 1006 y(pro)s(cessing)27 b(when)g(suc)m(h)g(a)h(signal)g
+(sp)s(ecial)150 1728 y(pro)s(cessing)27 b(when)g(suc)m(h)g(a)h(signal)g
 (is)g(receiv)m(ed)h(in)e(order)g(to)h(restore)h(the)e(terminal)h(to)h
-(a)f(sane)f(state,)j(or)150 1116 y(pro)m(vide)g(application)i(writers)e
+(a)f(sane)f(state,)j(or)150 1838 y(pro)m(vide)g(application)i(writers)e
 (with)g(functions)g(to)h(do)g(so)f(man)m(ually)-8 b(.)275
-1281 y(Readline)40 b(con)m(tains)i(an)e(in)m(ternal)h(signal)g(handler)
+2001 y(Readline)40 b(con)m(tains)i(an)e(in)m(ternal)h(signal)g(handler)
 f(that)h(is)f(installed)h(for)f(a)h(n)m(um)m(b)s(er)e(of)h(signals)150
-1391 y(\()p Fs(SIGINT)p Ft(,)e Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p
+2111 y(\()p Fs(SIGINT)p Ft(,)e Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p
 Ft(,)g Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)g Fs(SIGTSTP)p
 Ft(,)g Fs(SIGTTIN)p Ft(,)g(and)g Fs(SIGTTOU)p Ft(\).)59
-b(When)150 1500 y(one)27 b(of)g(these)g(signals)g(is)g(receiv)m(ed,)i
+b(When)150 2220 y(one)27 b(of)g(these)g(signals)g(is)g(receiv)m(ed,)i
 (the)e(signal)g(handler)f(will)h(reset)h(the)e(terminal)i(attributes)f
-(to)g(those)150 1610 y(that)33 b(w)m(ere)g(in)f(e\013ect)h(b)s(efore)f
+(to)g(those)150 2330 y(that)33 b(w)m(ere)g(in)f(e\013ect)h(b)s(efore)f
 Fs(readline\(\))e Ft(w)m(as)i(called,)j(reset)d(the)h(signal)g
-(handling)f(to)h(what)f(it)h(w)m(as)150 1720 y(b)s(efore)26
+(handling)f(to)h(what)f(it)h(w)m(as)150 2439 y(b)s(efore)26
 b Fs(readline\(\))e Ft(w)m(as)j(called,)i(and)d(resend)g(the)h(signal)g
 (to)h(the)f(calling)h(application.)41 b(If)26 b(and)g(when)150
-1829 y(the)34 b(calling)i(application's)f(signal)g(handler)e(returns,)h
+2549 y(the)34 b(calling)i(application's)f(signal)g(handler)e(returns,)h
 (Readline)g(will)h(reinitialize)h(the)e(terminal)h(and)150
-1939 y(con)m(tin)m(ue)29 b(to)g(accept)h(input.)39 b(When)28
+2659 y(con)m(tin)m(ue)29 b(to)g(accept)h(input.)39 b(When)28
 b(a)h Fs(SIGINT)d Ft(is)j(receiv)m(ed,)h(the)e(Readline)h(signal)g
-(handler)f(p)s(erforms)150 2048 y(some)39 b(additional)h(w)m(ork,)h
+(handler)f(p)s(erforms)150 2768 y(some)39 b(additional)h(w)m(ork,)h
 (whic)m(h)d(will)h(cause)g(an)m(y)h(partially-en)m(tered)g(line)f(to)h
-(b)s(e)e(ab)s(orted)g(\(see)i(the)150 2158 y(description)30
+(b)s(e)e(ab)s(orted)g(\(see)i(the)150 2878 y(description)30
 b(of)h Fs(rl_free_line_state\(\))25 b Ft(b)s(elo)m(w\).)275
-2323 y(There)e(is)i(an)f(additional)h(Readline)g(signal)g(handler,)g
+3041 y(There)e(is)i(an)f(additional)h(Readline)g(signal)g(handler,)g
 (for)f Fs(SIGWINCH)p Ft(,)g(whic)m(h)g(the)g(k)m(ernel)h(sends)e(to)j
-(a)150 2433 y(pro)s(cess)i(whenev)m(er)h(the)g(terminal's)g(size)h(c)m
+(a)150 3151 y(pro)s(cess)i(whenev)m(er)h(the)g(terminal's)g(size)h(c)m
 (hanges)g(\(for)f(example,)h(if)f(a)g(user)f(resizes)i(an)e
-Fs(xterm)p Ft(\).)39 b(The)150 2542 y(Readline)d Fs(SIGWINCH)e
+Fs(xterm)p Ft(\).)39 b(The)150 3260 y(Readline)d Fs(SIGWINCH)e
 Ft(handler)g(up)s(dates)h(Readline's)h(in)m(ternal)h(screen)e(size)i
-(information,)g(and)e(then)150 2652 y(calls)g(an)m(y)f
+(information,)g(and)e(then)150 3370 y(calls)g(an)m(y)f
 Fs(SIGWINCH)e Ft(signal)i(handler)f(the)h(calling)h(application)g(has)f
-(installed.)51 b(Readline)35 b(calls)g(the)150 2762 y(application's)i
+(installed.)51 b(Readline)35 b(calls)g(the)150 3479 y(application's)i
 Fs(SIGWINCH)c Ft(signal)i(handler)g(without)g(resetting)h(the)g
-(terminal)f(to)h(its)g(original)g(state.)150 2871 y(If)31
+(terminal)f(to)h(its)g(original)g(state.)150 3589 y(If)31
 b(the)i(application's)g(signal)g(handler)e(do)s(es)g(more)h(than)g(up)s
 (date)f(its)i(idea)f(of)g(the)g(terminal)h(size)g(and)150
-2981 y(return)28 b(\(for)i(example,)h(a)f Fs(longjmp)d
+3699 y(return)28 b(\(for)i(example,)h(a)f Fs(longjmp)d
 Ft(bac)m(k)k(to)f(a)g(main)g(pro)s(cessing)f(lo)s(op\),)h(it)g
-Fk(must)39 b Ft(call)31 b Fs(rl_cleanup_)150 3090 y(after_signal\(\))26
+Fk(must)39 b Ft(call)31 b Fs(rl_cleanup_)150 3808 y(after_signal\(\))26
 b Ft(\(describ)s(ed)k(b)s(elo)m(w\),)h(to)g(restore)g(the)g(terminal)g
-(state.)275 3256 y(When)38 b(an)h(application)h(is)f(using)g(the)g
+(state.)275 3971 y(When)38 b(an)h(application)h(is)f(using)g(the)g
 (callbac)m(k)i(in)m(terface)f(\(see)g(Section)g(2.4.12)h([Alternate)f
-(In-)150 3365 y(terface],)48 b(page)c(42\),)j(Readline)c(installs)h
+(In-)150 4081 y(terface],)48 b(page)c(42\),)j(Readline)c(installs)h
 (signal)g(handlers)e(only)h(for)f(the)h(duration)g(of)g(the)g(call)h
-(to)150 3475 y Fs(rl_callback_read_char)p Ft(.)c(Applications)33
+(to)150 4190 y Fs(rl_callback_read_char)p Ft(.)c(Applications)33
 b(using)f(the)g(callbac)m(k)j(in)m(terface)e(should)f(b)s(e)f(prepared)
-g(to)150 3585 y(clean)d(up)d(Readline's)j(state)g(if)e(they)h(wish)f
+g(to)150 4300 y(clean)d(up)d(Readline's)j(state)g(if)e(they)h(wish)f
 (to)h(handle)f(the)h(signal)h(b)s(efore)e(the)h(line)g(handler)f
-(completes)150 3694 y(and)k(restores)h(the)f(terminal)h(state.)275
-3860 y(If)k(an)g(application)i(using)f(the)g(callbac)m(k)h(in)m
+(completes)150 4410 y(and)k(restores)h(the)f(terminal)h(state.)275
+4573 y(If)k(an)g(application)i(using)f(the)g(callbac)m(k)h(in)m
 (terface)h(wishes)d(to)h(ha)m(v)m(e)h(Readline)g(install)f(its)g
-(signal)150 3969 y(handlers)22 b(at)h(the)g(time)h(the)e(application)j
+(signal)150 4682 y(handlers)22 b(at)h(the)g(time)h(the)e(application)j
 (calls)e Fs(rl_callback_handler_instal)o(l)17 b Ft(and)22
-b(remo)m(v)m(e)i(them)150 4079 y(only)f(when)g(a)g(complete)i(line)f
+b(remo)m(v)m(e)i(them)150 4792 y(only)f(when)g(a)g(complete)i(line)f
 (of)f(input)f(has)h(b)s(een)g(read,)i(it)e(should)g(set)g(the)h
-Fs(rl_persistent_signal_)150 4188 y(handlers)c Ft(v)-5
+Fs(rl_persistent_signal_)150 4902 y(handlers)c Ft(v)-5
 b(ariable)23 b(to)f(a)h(non-zero)f(v)-5 b(alue.)39 b(This)21
 b(allo)m(ws)i(an)f(application)i(to)f(defer)e(all)i(of)f(the)h
-(handling)150 4298 y(of)j(the)h(signals)f(Readline)h(catc)m(hes)h(to)f
+(handling)150 5011 y(of)j(the)h(signals)f(Readline)h(catc)m(hes)h(to)f
 (Readline.)39 b(Applications)27 b(should)f(use)f(this)h(v)-5
-b(ariable)27 b(with)f(care;)150 4407 y(it)d(can)g(result)g(in)f
+b(ariable)27 b(with)f(care;)150 5121 y(it)d(can)g(result)g(in)f
 (Readline)h(catc)m(hing)i(signals)e(and)f(not)h(acting)h(on)f(them)f
-(\(or)h(allo)m(wing)i(the)e(application)150 4517 y(to)36
+(\(or)h(allo)m(wing)i(the)e(application)150 5230 y(to)36
 b(react)g(to)g(them\))g(un)m(til)f(the)h(application)g(calls)h
 Fs(rl_callback_read_char)p Ft(.)49 b(This)35 b(can)g(result)g(in)150
-4627 y(an)30 b(application)h(b)s(ecoming)f(less)g(resp)s(onsiv)m(e)f
+5340 y(an)30 b(application)h(b)s(ecoming)f(less)g(resp)s(onsiv)m(e)f
 (to)i(k)m(eyb)s(oard)e(signals)h(lik)m(e)h(SIGINT.)f(If)f(an)h
-(application)150 4736 y(do)s(es)24 b(not)g(w)m(an)m(t)h(or)g(need)f(to)
-h(p)s(erform)d(an)m(y)j(signal)g(handling,)g(or)f(do)s(es)g(not)h(need)
-f(to)g(do)h(an)m(y)f(pro)s(cessing)150 4846 y(b)s(et)m(w)m(een)31
-b(calls)h(to)f Fs(rl_callback_read_char)p Ft(,)24 b(setting)32
-b(this)e(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(desirable.)275
-5011 y(Readline)f(pro)m(vides)f(t)m(w)m(o)i(v)-5 b(ariables)29
-b(that)h(allo)m(w)g(application)g(writers)e(to)h(con)m(trol)h(whether)e
-(or)h(not)150 5121 y(it)34 b(will)f(catc)m(h)i(certain)f(signals)f(and)
-g(act)h(on)f(them)g(when)f(they)i(are)f(receiv)m(ed.)51
-b(It)33 b(is)g(imp)s(ortan)m(t)g(that)150 5230 y(applications)38
-b(c)m(hange)g(the)e(v)-5 b(alues)37 b(of)g(these)g(v)-5
-b(ariables)37 b(only)g(when)f(calling)i Fs(readline\(\))p
-Ft(,)d(not)i(in)g(a)150 5340 y(signal)31 b(handler,)f(so)g(Readline's)i
-(in)m(ternal)f(signal)g(state)h(is)e(not)h(corrupted.)p
-eop end
+(application)p eop end
 %%Page: 48 52
 TeXDict begin 48 51 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(48)3371
-299 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_signals)390
-408 y Ft(If)28 b(this)h(v)-5 b(ariable)30 b(is)f(non-zero,)h(Readline)f
-(will)g(install)h(signal)f(handlers)f(for)h Fs(SIGINT)p
-Ft(,)f Fs(SIGQUIT)p Ft(,)390 518 y Fs(SIGTERM)p Ft(,)h
-Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)f Fs(SIGTSTP)p Ft(,)h
-Fs(SIGTTIN)p Ft(,)f(and)i Fs(SIGTTOU)p Ft(.)390 645 y(The)g(default)g
-(v)-5 b(alue)31 b(of)g Fs(rl_catch_signals)26 b Ft(is)k(1.)3371
-808 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_sigwinch)390
-918 y Ft(If)37 b(this)h(v)-5 b(ariable)38 b(is)g(set)g(to)g(a)g
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(48)150
+299 y(do)s(es)24 b(not)g(w)m(an)m(t)h(or)g(need)f(to)h(p)s(erform)d(an)
+m(y)j(signal)g(handling,)g(or)f(do)s(es)g(not)h(need)f(to)g(do)h(an)m
+(y)f(pro)s(cessing)150 408 y(b)s(et)m(w)m(een)31 b(calls)h(to)f
+Fs(rl_callback_read_char)p Ft(,)24 b(setting)32 b(this)e(v)-5
+b(ariable)31 b(ma)m(y)g(b)s(e)f(desirable.)275 545 y(Readline)f(pro)m
+(vides)f(t)m(w)m(o)i(v)-5 b(ariables)29 b(that)h(allo)m(w)g
+(application)g(writers)e(to)h(con)m(trol)h(whether)e(or)h(not)150
+655 y(it)34 b(will)f(catc)m(h)i(certain)f(signals)f(and)g(act)h(on)f
+(them)g(when)f(they)i(are)f(receiv)m(ed.)51 b(It)33 b(is)g(imp)s(ortan)
+m(t)g(that)150 764 y(applications)38 b(c)m(hange)g(the)e(v)-5
+b(alues)37 b(of)g(these)g(v)-5 b(ariables)37 b(only)g(when)f(calling)i
+Fs(readline\(\))p Ft(,)d(not)i(in)g(a)150 874 y(signal)31
+b(handler,)f(so)g(Readline's)i(in)m(ternal)f(signal)g(state)h(is)e(not)
+h(corrupted.)3371 1062 y([V)-8 b(ariable])-3598 b Fh(int)53
+b(rl_catch_signals)390 1172 y Ft(If)28 b(this)h(v)-5
+b(ariable)30 b(is)f(non-zero,)h(Readline)f(will)g(install)h(signal)f
+(handlers)f(for)h Fs(SIGINT)p Ft(,)f Fs(SIGQUIT)p Ft(,)390
+1282 y Fs(SIGTERM)p Ft(,)h Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p
+Ft(,)f Fs(SIGTSTP)p Ft(,)h Fs(SIGTTIN)p Ft(,)f(and)i
+Fs(SIGTTOU)p Ft(.)390 1418 y(The)g(default)g(v)-5 b(alue)31
+b(of)g Fs(rl_catch_signals)26 b Ft(is)k(1.)3371 1607
+y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_sigwinch)390
+1716 y Ft(If)37 b(this)h(v)-5 b(ariable)38 b(is)g(set)g(to)g(a)g
 (non-zero)g(v)-5 b(alue,)40 b(Readline)f(will)f(install)g(a)g(signal)g
-(handler)f(for)390 1027 y Fs(SIGWINCH)p Ft(.)390 1154
+(handler)f(for)390 1826 y Fs(SIGWINCH)p Ft(.)390 1963
 y(The)30 b(default)g(v)-5 b(alue)31 b(of)g Fs(rl_catch_sigwinch)25
-b Ft(is)31 b(1.)3371 1317 y([V)-8 b(ariable])-3598 b
+b Ft(is)31 b(1.)3371 2151 y([V)-8 b(ariable])-3598 b
 Fh(int)53 b(rl_persistent_signal_)q(hand)q(ler)q(s)390
-1427 y Ft(If)31 b(an)h(application)g(using)g(the)f(callbac)m(k)j(in)m
+2261 y Ft(If)31 b(an)h(application)g(using)g(the)f(callbac)m(k)j(in)m
 (terface)f(wishes)e(Readline's)h(signal)h(handlers)d(to)j(b)s(e)390
-1536 y(installed)21 b(and)f(activ)m(e)j(during)d(the)h(set)g(of)f
+2370 y(installed)21 b(and)f(activ)m(e)j(during)d(the)h(set)g(of)f
 (calls)i(to)g Fs(rl_callback_read_char)14 b Ft(that)22
-b(constitutes)390 1646 y(an)30 b(en)m(tire)i(single)f(line,)g(it)f
+b(constitutes)390 2480 y(an)30 b(en)m(tire)i(single)f(line,)g(it)f
 (should)g(set)h(this)f(v)-5 b(ariable)31 b(to)g(a)g(non-zero)g(v)-5
-b(alue.)390 1773 y(The)30 b(default)g(v)-5 b(alue)31
+b(alue.)390 2617 y(The)30 b(default)g(v)-5 b(alue)31
 b(of)g Fs(rl_persistent_signal_han)o(dle)o(rs)24 b Ft(is)31
-b(0.)3371 1936 y([V)-8 b(ariable])-3598 b Fh(int)53 b
-(rl_change_environment)390 2045 y Ft(If)31 b(this)g(v)-5
+b(0.)3371 2805 y([V)-8 b(ariable])-3598 b Fh(int)53 b
+(rl_change_environment)390 2915 y Ft(If)31 b(this)g(v)-5
 b(ariable)32 b(is)f(set)h(to)g(a)g(non-zero)g(v)-5 b(alue,)32
 b(and)f(Readline)h(is)f(handling)g Fs(SIGWINCH)p Ft(,)e(Read-)390
-2155 y(line)h(will)h(mo)s(dify)e(the)h Fj(LINES)35 b
+3024 y(line)h(will)h(mo)s(dify)e(the)h Fj(LINES)35 b
 Ft(and)29 b Fj(COLUMNS)35 b Ft(en)m(vironmen)m(t)30 b(v)-5
-b(ariables)31 b(up)s(on)d(receipt)j(of)g(a)390 2264 y
-Fs(SIGWINCH)390 2392 y Ft(The)f(default)g(v)-5 b(alue)31
+b(ariables)31 b(up)s(on)d(receipt)j(of)g(a)390 3134 y
+Fs(SIGWINCH)390 3271 y Ft(The)f(default)g(v)-5 b(alue)31
 b(of)g Fs(rl_change_environment)24 b Ft(is)31 b(1.)275
-2554 y(If)f(an)h(application)h(do)s(es)f(not)g(wish)f(to)i(ha)m(v)m(e)g
+3459 y(If)f(an)h(application)h(do)s(es)f(not)g(wish)f(to)i(ha)m(v)m(e)g
 (Readline)g(catc)m(h)g(an)m(y)f(signals,)h(or)f(to)h(handle)e(signals)
-150 2664 y(other)39 b(than)f(those)h(Readline)h(catc)m(hes)g(\()p
+150 3569 y(other)39 b(than)f(those)h(Readline)h(catc)m(hes)g(\()p
 Fs(SIGHUP)p Ft(,)g(for)e(example\),)k(Readline)d(pro)m(vides)g(con)m(v)
-m(enience)150 2773 y(functions)30 b(to)h(do)f(the)h(necessary)g
+m(enience)150 3678 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 2936 y([F)-8 b(unction])-3599
+i(of)g(a)f(signal.)3350 3867 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_pending_signal)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 3046 y Ft(Return)27 b(the)g(signal)h(n)m(um)m(b)s(er)e(of)i
+Fg(\))390 3977 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 3155 y(handled,)i(or)g(0)h(if)f(there)h(is)f(no)g(p)s
-(ending)f(signal.)3350 3318 y([F)-8 b(unction])-3599
+(not)h(y)m(et)390 4086 y(handled,)i(or)g(0)h(if)f(there)h(is)f(no)g(p)s
+(ending)f(signal.)3350 4275 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 3427 y Ft(This)33 b(function)h(will)g(reset)g(the)g(state)i
+Fg(\))390 4384 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 3537 y Ft(w)m(as)c(called,)h(and)d(remo)m(v)m(e)j
+Fs(readline\(\))390 4494 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 3647 y(v)-5 b(alues)31 b(of)f
+(ending)d(on)h(the)390 4603 y(v)-5 b(alues)31 b(of)f
 Fs(rl_catch_signals)c Ft(and)k Fs(rl_catch_sigwinch)p
-Ft(.)3350 3809 y([F)-8 b(unction])-3599 b Fh(void)54
+Ft(.)3350 4792 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
-3919 y Ft(This)38 b(will)i(free)f(an)m(y)h(partial)g(state)g(asso)s
+4902 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
-4028 y(mation,)46 b(an)m(y)d(partial)h(history)e(en)m(try)-8
+5011 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 4138 y(partially-en)m(tered)50
+b(and)42 b(an)m(y)390 5121 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 4248 y(after_signal\(\))p
+(b)s(efore)e Fs(rl_cleanup_)390 5230 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
-4357 y(curren)m(t)30 b(input)g(line.)3350 4520 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 4629 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 4739 y(ing)j(on)f(the)g(v)-5
+5340 y(curren)m(t)30 b(input)g(line.)p eop end
+%%Page: 49 53
+TeXDict begin 49 52 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(49)3350
+299 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 408 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 518 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 4902 y(If)j(an)g(application)i(w)m(an)m
+(rl_catch_sigwinch)p Ft(.)275 699 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 5011 y(it)j(has)g(b)s(een)f
+(ha)m(v)m(e)h(arriv)m(ed)f(while)150 809 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
-5121 y(there)i(are)g(an)m(y)g(p)s(ending)e(signals.)61
+918 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 5230 y(a)h(custom)g Fs(rl_getc_function)33
+(that)f(use)150 1028 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 5340 y(handle)30
-b(signals)h(receiv)m(ed)h(while)e(w)m(aiting)i(for)e(input.)p
-eop end
-%%Page: 49 53
-TeXDict begin 49 52 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(49)3350
-299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_check_signals)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(If)40 b(there)h(are)g(an)m(y)g
+b(page)c(27\))h(and)e(wish)g(to)150 1137 y(handle)30
+b(signals)h(receiv)m(ed)h(while)e(w)m(aiting)i(for)e(input.)3350
+1318 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_check_signals)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 1428 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 518 y(to)j(pro)s(cess)g(them.)77
+(handling)f(functions)390 1538 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 628 y(whether)30 b(or)g(not)h(there)f
-(are)h(an)m(y)g(p)s(ending)e(signals.)275 838 y(If)38
+(enden)m(tly)f(to)j(determine)390 1647 y(whether)30 b(or)g(not)h(there)
+f(are)h(an)m(y)g(p)s(ending)e(signals.)275 1828 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
-947 y(terminal\(\))24 b Ft(or)j Fs(rl_set_screen_size\(\))22
+1938 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 1057 y(size)k(when)f(a)g Fs(SIGWINCH)e
-Ft(is)j(receiv)m(ed.)3350 1267 y([F)-8 b(unction])-3599
+g(terminal)150 2047 y(size)k(when)f(a)g Fs(SIGWINCH)e
+Ft(is)j(receiv)m(ed.)3350 2228 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 1377 y Ft(If)43 b(an)g(application)i(wishes)e(to)i
+b(sig)p Fg(\))390 2338 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 1486 y(displa)m(y)31 b(c)m(haracters)h(that)f
+(e)g(readline)390 2447 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 1596
+Fj(sig)39 b Ft(set)31 b(to)g Fs(SIGINT)p Ft(,)390 2557
 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 1806 y([F)-8
+m(haracter)i(generating)g(that)f(signal.)3350 2738 y([F)-8
 b(unction])-3599 b Fh(void)54 b(rl_resize_terminal)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 1915 y Ft(Up)s(date)30
+Fg(\()p Ff(v)m(oid)p Fg(\))390 2848 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 2126 y([F)-8
+b(alues)31 b(from)f(the)g(k)m(ernel.)3350 3029 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
-2235 y Ft(Set)28 b(Readline's)h(idea)f(of)g(the)g(terminal)g(size)h(to)
+3138 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 2345 y Ft(or)35 b Fj(columns)k
+b(If)27 b(either)h Fj(ro)m(ws)390 3248 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 2454 y(unc)m(hanged.)275
-2664 y(If)d(an)i(application)g(do)s(es)f(not)h(w)m(an)m(t)g(to)g
+(that)h(terminal)f(dimension)g(is)390 3357 y(unc)m(hanged.)275
+3538 y(If)d(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 2774 y(the)d(screen)f(dimensions,)g(Readline's)h
+(terested)g(in)150 3648 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
-2984 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_get_screen_size)c
+3829 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
-3094 y Ft(Return)c(Readline's)i(idea)g(of)f(the)g(terminal's)h(size)g
+3938 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 3203 y(men)m(ts.)3350 3413 y([F)-8 b(unction])-3599
+(argu-)390 4048 y(men)m(ts.)3350 4229 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 3523 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 3733
+Fg(\))390 4339 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 4519
 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 3943 y([F)-8 b(unction])-3599
+(Readline's)f(signal)g(handlers.)3350 4700 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_set_signals)d Fg(\()p Ff(v)m(oid)p Fg(\))390
-4053 y Ft(Install)40 b(Readline's)h(signal)f(handler)f(for)h
+4810 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 4162 y Fs(SIGTSTP)p
+Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)390 4920 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 4272 y(signals)28 b Ft(and)i
-Fs(rl_catch_sigwinch)p Ft(.)3350 4482 y([F)-8 b(unction])-3599
+b(of)f Fs(rl_catch_)390 5029 y(signals)28 b Ft(and)i
+Fs(rl_catch_sigwinch)p Ft(.)3350 5210 y([F)-8 b(unction])-3599
 b Fh(int)53 b(rl_clear_signals)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 4592 y Ft(Remo)m(v)m(e)32 b(all)f(of)g(the)g(Readline)g
+Fg(\))390 5320 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 4852 y Fr(2.6)68 b(Custom)45 b(Completers)150
-5011 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 5121 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 5230 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 5340 y(co)s(op)s(erate)j(to)h(pro)
-m(vide)e(this)g(service.)p eop end
+Ft(.)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)150
-299 y Fi(2.6.1)63 b(Ho)m(w)40 b(Completing)i(W)-10 b(orks)150
-446 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 555 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 665 y(w)m(ords)33
+299 y Fr(2.6)68 b(Custom)45 b(Completers)150 458 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 568
+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
+677 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 787 y(co)s(op)s(erate)j(to)h(pro)m(vide)e(this)g
+(service.)150 970 y Fi(2.6.1)63 b(Ho)m(w)40 b(Completing)i(W)-10
+b(orks)150 1117 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 1227 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 1336 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 775 y(to)d(completion,)h(and)e(t)m(w)m(o)i(of)e(the)h
+(terface)150 1446 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 884 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 994 y(section)32
+b(and)e(username.)150 1555 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 1665 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 1159 y(There)e(are)i(three)g(ma)
+(and)g(pro)m(vides)g(an)h(example.)275 1791 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
-1324 y(1.)61 b(The)43 b(user-in)m(terface)h(function)f
+1918 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 1433 y(argumen)m(ts)36 b(as)g(other)g(bindable)f
+e(the)h(same)330 2027 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 1433 28 4 v 41 w(k)m(ey)p Ft(.)57
-b(It)36 b(isolates)330 1543 y(the)i(w)m(ord)f(to)h(b)s(e)f(completed)i
+Fj(in)m(v)m(oking)p 3107 2027 28 4 v 41 w(k)m(ey)p Ft(.)57
+b(It)36 b(isolates)330 2137 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 1653 y(p)s(ossible)31
+b(generate)g(a)f(list)g(of)330 2247 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 1762
+(completions,)h(inserts)f(the)g(p)s(ossible)330 2356
 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
-1872 y(desired.)199 2021 y(2.)61 b(The)33 b(in)m(ternal)h(function)g
+2466 y(desired.)199 2592 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 2131 y(ator)44
+(application-supplied)h Fj(gener-)330 2702 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
-2241 y(these)h(matc)m(hes.)68 b(The)39 b(caller)h(should)e(place)i(the)
+2811 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
-2350 y(completion_entry_functio)o(n)p Ft(.)199 2500 y(3.)61
+2921 y(completion_entry_functio)o(n)p Ft(.)199 3047 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 2610
+Fs(rl_completion_matches\(\))o Ft(,)c(returning)330 3157
 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 2719 y Ft(is)32 b(the)g(partial)h(w)m
+Fj(state)p Ft(.)49 b Fj(text)330 3267 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
-2829 y(allo)m(wing)46 b(the)e(generator)h(to)f(p)s(erform)f(an)m(y)h
+3376 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 2938 y(zero)30 b(in)m(teger)h(for)d(eac)m(h)j(subsequen)m(t)d
+330 3486 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 3048 y(inform)37 b Fs
+Fs(\(char)h(*\)NULL)e Ft(to)330 3595 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 3158 y(the)39
+(p)s(ossibilities)h(left.)65 b(Usually)330 3705 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
-3267 y(and)25 b(returns)f(them)i(one)f(at)i(a)f(time)g(on)f(subsequen)m
+3814 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
-3377 y(returns)31 b(as)h(a)g(matc)m(h)h(m)m(ust)f(b)s(e)f(allo)s(cated)
+3924 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 3486 y(it)i(has)g(\014nished)e(with)i(them.)51
+(when)330 4034 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 3596 y(sp)s(eci\014c)d(completion)i(function)p
-Ft(.)3350 3841 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete)c
+e Fj(application-)330 4143 y(sp)s(eci\014c)d(completion)i(function)p
+Ft(.)3350 4303 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 3841 30 5 v 43 w(k)m(ey)p Fg(\))390 3951 y Ft(Complete)d(the)g(w)m
+2020 4303 30 5 v 43 w(k)m(ey)p Fg(\))390 4413 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
-4060 y(initial)42 b(simple)f(matc)m(hing)i(selection)f(algorithm)h
+4522 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
-4170 y(default)31 b(is)f(to)h(do)f(\014lename)h(completion.)3371
-4415 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 4525
+4632 y(default)31 b(is)f(to)h(do)f(\014lename)h(completion.)3371
+4792 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 4902
 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 4634 y(v)-5 b(alue)24 b(of)g Fs
+b(If)40 b(the)390 5011 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
-4744 y(function,)49 b Fs(rl_filename_completion_)o(fun)o(ctio)o(n\(\))p
+5121 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
-4854 y(completion)22 b(function)f Ft(is)g(a)h(function)e(whose)h
+5230 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
-4963 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
-5193 y Fi(2.6.2)63 b(Completion)41 b(F)-10 b(unctions)150
-5340 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.)p
+5340 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.)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)3350
-299 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 299 30 5 v 44 w(to)p
-1994 299 V 43 w(do)p Fg(\))390 408 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 408
-28 4 v 40 w(to)p 2328 408 V 41 w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e
-(with)g(the)h(com-)390 518 y(pletion.)44 b(A)31 b(v)-5
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(51)150
+299 y Fi(2.6.2)63 b(Completion)41 b(F)-10 b(unctions)150
+446 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
+640 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 640 30 5 v 44 w(to)p
+1994 640 V 43 w(do)p Fg(\))390 749 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 749
+28 4 v 40 w(to)p 2328 749 V 41 w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e
+(with)g(the)h(com-)390 859 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
-628 y(completion.)44 b(`)p Fs(*)p Ft(')32 b(means)f(insert)g(all)h(of)f
+969 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 737 y(of)k(the)f(p)s(ossible)g
+b(means)f(to)h(displa)m(y)f(all)390 1078 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 847 y(completion.)41
+(as)g(p)s(erforming)e(partial)390 1188 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 956 y(completions)32 b(share)e(a)g(common)h
-(pre\014x.)3350 1203 y([F)-8 b(unction])-3599 b Fh(int)53
+(the)g(p)s(ossible)390 1297 y(completions)32 b(share)e(a)g(common)h
+(pre\014x.)3350 1491 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 1203 30 5 v 43 w(k)m(ey)p Fg(\))390 1312
+(oking)p 2020 1491 30 5 v 43 w(k)m(ey)p Fg(\))390 1601
 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 1422 y(the)33 b(initial)h(simple)f(matc)m(hing)h(selection)h
+s(es)390 1710 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 1532 y Fs(rl_completion_entry_func)o(tion)o
+b Ft(and)390 1820 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 1641 y(calls)32 b Fs(rl_complete_internal\(\))24
+59 b(This)390 1930 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 1641 28 4 v 41 w(k)m(ey)p Ft(.)3350
-1888 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_possible_completio)q(ns)
+Fj(in)m(v)m(oking)p 3314 1930 28 4 v 41 w(k)m(ey)p Ft(.)3350
+2124 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 1888 30 5 v 43 w(k)m(ey)p Fg(\))390 1997 y Ft(List)41
+2622 2124 30 5 v 43 w(k)m(ey)p Fg(\))390 2233 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 2107 y(complete_internal\(\))25 b Ft(with)30
-b(an)g(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)3350 2353
+Fs(rl_)390 2343 y(complete_internal\(\))25 b Ft(with)30
+b(an)g(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)3350 2537
 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 2353 V 44 w(k)m(ey)p Fg(\))390 2463 y Ft(Insert)g(the)h(list)g(of)
+2517 2537 V 44 w(k)m(ey)p Fg(\))390 2646 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 2572 y(w)m(ord.)44 b(See)32
+(partially-completed)390 2756 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
-2682 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p Ft('.)3350
-2928 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_completion_mode)e
-Fg(\()p Ff(rl)p 1455 2928 V 44 w(command)p 1919 2928
-V 44 w(func)p 2147 2928 V 46 w(t)33 b(*cfunc)p Fg(\))390
-3038 y Ft(Returns)40 b(the)i(appropriate)g(v)-5 b(alue)41
+2865 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p Ft('.)3350
+3059 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_completion_mode)e
+Fg(\()p Ff(rl)p 1455 3059 V 44 w(command)p 1919 3059
+V 44 w(func)p 2147 3059 V 46 w(t)33 b(*cfunc)p Fg(\))390
+3169 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 3147 y(whether)g Fj(cfunc)46 b Ft(w)m(as)41
+b(on)390 3279 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 3257 y(ambiguous)25
+b(alues)41 b(of)g(the)g Fs(show-all-if-)390 3388 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 3367
+b(Application-sp)s(eci\014c)29 b(completion)390 3498
 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
-3613 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e
+3692 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
-3723 y(rl)p 639 3723 V 44 w(comp)s(en)m(try)p 1145 3723
-V 44 w(func)p 1373 3723 V 45 w(t)f(*en)m(try)p 1767 3723
-V 44 w(func)p Fg(\))390 3832 y Ft(Returns)k(an)h(arra)m(y)g(of)g
+3801 y(rl)p 639 3801 V 44 w(comp)s(en)m(try)p 1145 3801
+V 44 w(func)p 1373 3801 V 45 w(t)f(*en)m(try)p 1767 3801
+V 44 w(func)p Fg(\))390 3911 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 3942
+Fj(text)p Ft(.)64 b(If)38 b(there)g(are)g(no)390 4020
 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 4051 y(for)26 b Fj(text)p Ft(.)40 b(The)26
+(substitution)390 4130 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 4161 y(with)k(a)h
-Fs(NULL)e Ft(p)s(oin)m(ter.)390 4326 y Fj(en)m(try)p
-603 4326 28 4 v 40 w(func)44 b Ft(is)c(a)g(function)f(of)h(t)m(w)m(o)g
+b(The)26 b(arra)m(y)h(is)f(terminated)390 4240 y(with)k(a)h
+Fs(NULL)e Ft(p)s(oin)m(ter.)390 4379 y Fj(en)m(try)p
+603 4379 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 4436 y Fj(text)p
+b(The)39 b(\014rst)g(argumen)m(t)h(is)390 4489 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
-4546 y(subsequen)m(t)33 b(calls.)52 b Fj(en)m(try)p 1320
-4546 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 4655
+4598 y(subsequen)m(t)33 b(calls.)52 b Fj(en)m(try)p 1320
+4598 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 4708
 y(more)d(matc)m(hes.)3350 4902 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 5011
@@ -10725,7 +10730,7 @@ b(rl_completion_type)390 3337 y Ft(Set)35 b(to)h(a)f(c)m(haracter)i
 (describing)e(the)g(t)m(yp)s(e)g(of)g(completion)i(Readline)e(is)g
 (curren)m(tly)h(attempt-)390 3447 y(ing;)f(see)f(the)g(description)f
 (of)g Fs(rl_complete_internal\(\))28 b Ft(\(see)34 b(Section)g(2.6.2)h
-([Completion)390 3557 y(F)-8 b(unctions],)39 b(page)f(50\))f(for)g(the)
+([Completion)390 3557 y(F)-8 b(unctions],)39 b(page)f(51\))f(for)g(the)
 g(list)g(of)g(c)m(haracters.)61 b(This)36 b(is)g(set)i(to)f(the)g
 (appropriate)f(v)-5 b(alue)390 3666 y(b)s(efore)31 b(an)m(y)h
 (application-sp)s(eci\014c)h(completion)g(function)f(is)f(called,)j
@@ -11668,7 +11673,7 @@ eop end
 TeXDict begin 73 76 bop 150 -116 a Ft(Concept)31 b(Index)2927
 b(73)150 100 y Fp(Concept)52 b(Index)146 434 y Fr(A)150
 550 y Fb(application-sp)r(eci\014c)27 b(completion)f(functions)e
-Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(49)146 796 y
+Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(50)146 796 y
 Fr(C)150 913 y Fb(command)26 b(editing)6 b Fa(:)14 b(:)f(:)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(:)21 b Fb(1)146 1159
@@ -11979,7 +11984,7 @@ 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(:)25 b Fb(36)2025 1197 y
 Fe(rl_alphabetic)g 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(40)2025 1284 y Fe(rl_begin_undo_group)7
+(:)g(:)g(:)37 b Fb(41)2025 1284 y Fe(rl_begin_undo_group)7
 b Fa(:)17 b(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
 (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(36)2025
 1371 y Fe(rl_bind_key)10 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
@@ -12049,10 +12054,10 @@ 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(38)2025 3730 y
 Fe(rl_deprep_terminal)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(39)2025 3818 y Fe(rl_ding)e Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+b Fb(40)2025 3818 y Fe(rl_ding)e Fa(:)13 b(:)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(:)g(:)h(:)f(:)g(:)35
-b Fb(40)2025 3905 y Fe(rl_discard_keymap)12 b Fa(:)17
+b Fb(41)2025 3905 y Fe(rl_discard_keymap)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(33)2025
 3992 y Fe(rl_display_match_list)d Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h
@@ -12089,7 +12094,7 @@ Fe(rl_free_line_state)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(48)2025 5128 y Fe(rl_free_undo_list)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(36)p eop
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(37)p eop
 end
 %%Page: 76 80
 TeXDict begin 76 79 bop 150 -116 a Ft(F)-8 b(unction)31
@@ -12098,225 +12103,227 @@ Fe(rl_function_dumper)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(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(35)150 434 y Fe(rl_funmap_names)17
+(:)g(:)g(:)h(:)f(:)33 b Fb(35)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(35)150 521 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 522 y Fe(rl_generic_bind)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)
+b Fb(36)150 609 y Fe(rl_generic_bind)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(35)150 609 y Fe(rl_get_keymap)25
+(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(35)150 696 y Fe(rl_get_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 696 y Fe(rl_get_keymap_by_name)24 b Fa(:)13
+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 783 y Fe(rl_get_keymap_name)10
+(:)g(:)g(:)h(:)f(:)33 b Fb(33)150 870 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
-871 y Fe(rl_get_screen_size)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
+957 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(49)150 958 y Fe(rl_get_termcap)f Fa(:)13
+g(:)24 b Fb(49)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
 (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34
-b Fb(42)150 1045 y Fe(rl_getc)22 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)
+b Fb(42)150 1132 y Fe(rl_getc)22 b Fa(:)13 b(:)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(:)g(:)h(:)f(:)g(:)g(:)g(:)35
-b Fb(39)150 1132 y Fe(rl_initialize)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
+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(40)150 1220 y
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 1306 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 1307 y Fe(rl_insert_text)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f
+b Fb(51)150 1393 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(38)150 1394 y Fe
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(38)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(35)150 1481 y Fe(rl_invoking_keyseqs_in_map)7 b
+b Fb(35)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(35)150 1568 y Fe(rl_kill_text)8 b Fa(:)16
+g(:)g(:)21 b Fb(36)150 1655 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(38)150 1656 y Fe(rl_list_funmap_names)k Fa(:)13
+b Fb(39)150 1742 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 1743 y Fe(rl_macro_bind)25
+(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(36)150 1829 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(41)150 1830 y Fe(rl_macro_dumper)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g
+b Fb(41)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(41)150 1917 y Fe(rl_make_bare_keymap)7
+g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(41)150 2004 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
-2005 y Fe(rl_make_keymap)i Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+2091 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 2092 y Fe(rl_message)13
+(:)f(:)g(:)g(:)34 b Fb(33)150 2178 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(37)150 2179 y Fe(rl_modifying)8 b Fa(:)16
+(:)g(:)27 b Fb(38)150 2265 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 2266 y Fe(rl_named_function)12 b Fa(:)17
+b Fb(37)150 2353 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
-2354 y Fe(rl_on_new_line)d Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+2440 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 2441 y Fe(rl_on_new_line_with_prompt)7
+(:)f(:)g(:)g(:)34 b Fb(37)150 2527 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(37)150 2528 y Fe(rl_parse_and_bind)12
+(:)g(:)g(:)21 b Fb(37)150 2614 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
-2615 y Fe(rl_pending_signal)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g
+2701 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(48)150 2703 y Fe(rl_possible_completions)14
+g(:)h(:)26 b Fb(48)150 2789 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 2790 y Fe(rl_prep_terminal)15
+(:)g(:)h(:)f(:)g(:)28 b Fb(51)150 2876 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(39)150 2877 y Fe(rl_push_macro_input)7 b Fa(:)17 b(:)d(:)f(:)g(:)g
+Fb(39)150 2963 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 2964 y Fe(rl_read_init_file)12
+g(:)h(:)f(:)21 b Fb(39)150 3050 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
-3052 y Fe(rl_read_key)10 b Fa(:)16 b(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+3137 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 3139 y
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(39)150 3225 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 3226 y Fe(rl_replace_line)17
+g(:)g(:)h(:)f(:)g(:)22 b Fb(37)150 3312 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(40)150 3313 y Fe(rl_reset_after_signal)24 b Fa(:)13
+b Fb(40)150 3399 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(48)150 3401 y Fe(rl_reset_line_state)7
+(:)g(:)g(:)h(:)f(:)33 b Fb(49)150 3486 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(37)150
-3488 y Fe(rl_reset_screen_size)26 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
+3573 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(49)150 3575 y Fe(rl_reset_terminal)12 b Fa(:)17
+b Fb(49)150 3661 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
-3662 y Fe(rl_resize_terminal)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
+3748 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 3749 y Fe(rl_restore_prompt)12 b Fa(:)17
+g(:)24 b Fb(49)150 3835 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
-3837 y Fe(rl_restore_state)15 b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+3922 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(40)150 3924 y Fe(rl_save_prompt)23 b
+g(:)g(:)29 b Fb(40)150 4009 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 4011 y Fe(rl_save_state)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
+b Fb(38)150 4097 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 4098 y
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 4184 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 4186 y Fe
+g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(35)150 4271 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(39)150 4273 y Fe(rl_set_keymap)25
+(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(39)150 4358 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 4360 y Fe(rl_set_paren_blink_timeout)7 b
+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 4447 y Fe(rl_set_prompt)k Fa(:)13
+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(38)150 4535 y Fe(rl_set_screen_size)10 b Fa(:)17
+b Fb(38)150 4620 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 4622
+(:)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(49)150 4709 y Fe(rl_show_char)8 b Fa(:)16
+g(:)g(:)34 b Fb(49)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(37)150 4796 y Fe(rl_stuff_char)j Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(37)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(39)2025 347 y
+(:)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 435 y Fe(rl_tty_unset_default_bindings)16
+b Fb(40)2025 436 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 523 y Fe(rl_unbind_command_in_map)11 b Fa(:)19
+b Fb(40)2025 524 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 610 y Fe(rl_unbind_function_in_map)9
+g(:)g(:)26 b Fb(34)2025 613 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 698 y Fe(rl_unbind_key)i Fa(:)13
+(:)g(:)h(:)23 b Fb(34)2025 701 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 786 y Fe(rl_unbind_key_in_map)26 b Fa(:)13
+b Fb(34)2025 789 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 873 y Fe
+(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(34)2025 877 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
-961 y Fe(rl_variable_bind)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+965 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(41)2025 1048 y Fe(rl_variable_dumper)10
+h(:)f(:)29 b Fb(42)2025 1054 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
-1136 y Fe(rl_variable_value)12 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)h(:)f(:)g
+1141 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 1380 y Fr(S)2025 1497 y Fe(self-insert)h(\(a,)e
+g(:)g(:)27 b Fb(42)2021 1397 y Fr(S)2025 1516 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 1585 y Fe(set-mark)e(\(C-@\))10
+(:)g(:)g(:)h(:)f(:)29 b Fb(19)2025 1605 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 1672 y(sho)n(w-all-if-am)n(biguous)e Fa(:)13
+b Fb(22)2025 1693 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 1760
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fb(9)2025 1781
 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 1848 y(sho)n(w-mo)r(de-in-prompt)15
+(:)g(:)27 b Fb(9)2025 1869 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
-1935 y(skip-completed-text)17 b Fa(:)11 b(:)j(:)f(:)g(:)g(:)g(:)g(:)g
+1957 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 2023 y Fe(skip-csi-sequence)d(\(\))11
+g(:)g(:)g(:)32 b Fb(9)2025 2046 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 2110
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(23)2025 2133
 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 2353 y Fr(T)2025 2470 y Fe(tab-insert)j(\(M-TAB\))16
+b Fb(21)2021 2388 y Fr(T)2025 2507 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
-2558 y Fe(tilde-expand)d(\(M-~\))16 b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)
+2596 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 2646 y Fe(transpose-chars)e(\(C-t\))9
+(:)g(:)31 b Fb(22)2025 2684 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 2733 y
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23 b Fb(19)2025 2771 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 2986 y Fr(U)2025 3104 y Fe(undo)j(\(C-_)h(or)f(C-x)g
+b Fb(19)2021 3037 y Fr(U)2025 3156 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
-3191 y Fe(universal-argument)i(\(\))9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g
+3244 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 3279 y Fe(unix-filename-rubout)30 b(\(\))21
+23 b Fb(21)2025 3332 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 3367 y Fe(unix-line-discard)29
+(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3421 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 3454
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3509
 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 3541 y Fe(upcase-word)28 b(\(M-u\))20 b
+b Fb(20)2025 3596 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
-3795 y Fr(V)2025 3912 y Fb(vi-cmd-mo)r(de-string)18 b
+3862 y Fr(V)2025 3981 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
-4000 y Fe(vi-editing-mode)c(\(M-C-j\))22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)
+4069 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 4087 y(vi-ins-mo)r(de-string)8 b Fa(:)13
+b Fb(23)2025 4157 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
-4175 y(visible-stats)11 b Fa(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+4244 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 4417 y
-Fr(Y)2025 4534 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 4499 y
+Fr(Y)2025 4618 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 4622 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))10
+Fb(20)2025 4706 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 4709 y Fe(yank-nth-arg)k(\(M-C-y\))11
+f(:)g(:)24 b Fb(18)2025 4794 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 4796
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(18)2025 4881
 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 6d9aad454e4e25df47114fc57e2fab4128df45d6..c7b925e1f5fa79ea3be72c85fa1e95fd9a003b7f 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
 %%Creator: groff version 1.22.3
-%%CreationDate: Tue Jan  2 10:56:04 2018
+%%CreationDate: Mon May 21 10:32:52 2018
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%+ font Times-Italic
@@ -518,13 +518,13 @@ F0 .062(The string that is inserted in)144 480 R F1(vi)2.562 E F0 .062
 (command is e)2.562 F -.15(xe)-.15 G 2.562(cuted. This).15 F(com-)2.562
 E(mand is bound to)144 492 Q F1(M\255#)2.5 E F0(in emacs mode and to)2.5
 E F1(#)2.5 E F0(in vi command mode.)2.5 E F1
-(completion\255display\255width \(-1\))108 504 Q F0 1.453(The number of\
screen columns used to display possible matches when performing comple\
-tion.)144 516 R .194(The v)144 528 R .193(alue is ignored if it is less\
- than 0 or greater than the terminal screen width.)-.25 F 2.693(Av)5.193
-G .193(alue of 0 will)-2.943 F
+(completion\255display\255width \(\2551\))108 504 Q F0 1.453(The number\
of screen columns used to display possible matches when performing com\
+pletion.)144 516 R .194(The v)144 528 R .193(alue is ignored if it is l\
+ess than 0 or greater than the terminal screen width.)-.25 F 2.693(Av)
+5.193 G .193(alue of 0 will)-2.943 F
 (cause matches to be displayed one per line.)144 540 Q(The def)5 E
-(ault v)-.1 E(alue is -1.)-.25 E F1(completion\255ignor)108 552 Q
+(ault v)-.1 E(alue is \2551.)-.25 E F1(completion\255ignor)108 552 Q
 (e\255case \(Off\))-.18 E F0(If set to)144 564 Q F1(On)2.5 E F0 2.5(,r)C
 (eadline performs \214lename matching and completion in a case\255insen\
 siti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1
@@ -1364,20 +1364,19 @@ F1 -.25(Ke)87 525.6 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr)
 (call\255last\255kbd\255macr)108 585.6 Q 2.5(o\()-.18 G(C\255x e\))-2.5
 E F0(Re-e)144 597.6 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1
 G .999(board macro de\214ned, by making the characters in the macro app\
-ear as if).15 F .662(typed at the k)144 609.6 R -.15(ey)-.1 G(board.).15
-E F1(print\255last\255kbd\255macr)5.663 E 3.163(o\()-.18 G(\))-3.163 E
-F0 .663(Print the last k)3.163 F -.15(ey)-.1 G .663
-(board macro de\214ned in a for).15 F(-)-.2 E(mat suitable for the)144
-621.6 Q F4(inputr)2.5 E(c)-.37 E F0(\214le.)2.5 E F1(Miscellaneous)87
-638.4 Q -.18(re)108 650.4 S<ad72>.18 E
-(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777
-(Read in the contents of the)144 662.4 R F4(inputr)4.277 E(c)-.37 E F0
-1.776(\214le, and incorporate an)4.276 F 4.276(yb)-.15 G 1.776
-(indings or v)-4.276 F 1.776(ariable assignments)-.25 F(found there.)144
-674.4 Q F1(abort \(C\255g\))108 686.4 Q F0 3.248
-(Abort the current editing command and ring the terminal')144 698.4 R
-5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1
-(bell\255style)144 710.4 Q F0(\).)A(GNU Readline 7.0)72 768 Q
+ear as if).15 F(typed at the k)144 609.6 Q -.15(ey)-.1 G(board.).15 E F1
+(print\255last\255kbd\255macr)108 621.6 Q 2.5(o\()-.18 G(\))-2.5 E F0
+(Print the last k)144 633.6 Q -.15(ey)-.1 G
+(board macro de\214ned in a format suitable for the).15 E F4(inputr)2.5
+E(c)-.37 E F0(\214le.)2.5 E F1(Miscellaneous)87 650.4 Q -.18(re)108
+662.4 S<ad72>.18 E(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0
+1.776(Read in the contents of the)144 674.4 R F4(inputr)4.276 E(c)-.37 E
+F0 1.777(\214le, and incorporate an)4.276 F 4.277(yb)-.15 G 1.777
+(indings or v)-4.277 F 1.777(ariable assignments)-.25 F(found there.)144
+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
 (2017 December 28)121.245 E(11)185.955 E 0 Cg EP
 %%Page: 12 12
 %%BeginPageSetup
@@ -1387,9 +1386,9 @@ BP
 (Functions Manual)2.5 E(READLINE\(3\))119.855 E/F1 10/Times-Bold@0 SF
 (do\255lo)108 84 Q(wer)-.1 E(case\255v)-.18 E
 (ersion \(M\255A, M\255B, M\255)-.1 E/F2 10/Times-Italic@0 SF(x)A F1 2.5
-(,.)C(..\))-2.5 E F0 1.739(If the meta\214ed character)144 96 R F2(x)
-4.239 E F0 1.739
-(is uppercase, run the command that is bound to the corresponding)4.239
+(,.)C(..\))-2.5 E F0 1.738(If the meta\214ed character)144 96 R F2(x)
+4.238 E F0 1.739
+(is uppercase, run the command that is bound to the corresponding)4.238
 F(meta\214ed lo)144 108 Q(wercase character)-.25 E 5(.T)-.55 G(he beha)
 -5 E(vior is unde\214ned if)-.2 E F2(x)2.5 E F0(is already lo)2.5 E
 (wercase.)-.25 E F1(pr)108 120 Q(e\214x\255meta \(ESC\))-.18 E F0
@@ -1408,56 +1407,57 @@ F0 1.095(command enough times to)3.595 F
 (Set the mark to the point.)144 240 Q(If a numeric ar)5 E
 (gument is supplied, the mark is set to that position.)-.18 E F1
 (exchange\255point\255and\255mark \(C\255x C\255x\))108 252 Q F0(Sw)144
-264 Q .283(ap the point with the mark.)-.1 F .283
+264 Q .282(ap the point with the mark.)-.1 F .283
 (The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G
-2.782(dp).15 G .282(osition, and the old)-2.782 F(cursor position is sa)
+2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa)
 144 276 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
-(character\255sear)108 288 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144 300 S
-.535(haracter is read and point is mo)-3.035 F -.15(ve)-.15 G 3.035(dt)
+(character\255sear)108 288 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144 300 S
+.536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G 3.035(dt)
 .15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535
-(xt occurrence of that character)-.15 F 5.536(.A)-.55 G(ne)-2.5 E -.05
-(ga)-.15 G(ti).05 E .836 -.15(ve c)-.25 H(ount).15 E(searches for pre)
+(xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05
+(ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre)
 144 312 Q(vious occurrences.)-.25 E F1(character\255sear)108 324 Q
-(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 336 S 1.044
-(haracter is read and point is mo)-3.544 F -.15(ve)-.15 G 3.544(dt).15 G
+(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 336 S 1.043
+(haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G
 3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044
-(vious occurrence of that character)-.25 F 6.043(.A)-.55 G(ne)-2.5 E
+(vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E
 -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G
 (count searches for subsequent occurrences.)144 348 Q F1
-(skip\255csi\255sequence)108 360 Q F0 1.826
+(skip\255csi\255sequence)108 360 Q F0 1.827
 (Read enough characters to consume a multi-k)144 372 R 2.126 -.15(ey s)
--.1 H 1.827(equence such as those de\214ned for k).15 F -.15(ey)-.1 G
-4.327(sl).15 G(ik)-4.327 E(e)-.1 E .791(Home and End.)144 384 R .791
-(Such sequences be)5.791 F .791
+-.1 H 1.826(equence such as those de\214ned for k).15 F -.15(ey)-.1 G
+4.326(sl).15 G(ik)-4.326 E(e)-.1 E .79(Home and End.)144 384 R .791
+(Such sequences be)5.79 F .791
 (gin with a Control Sequence Indicator \(CSI\), usually ESC\255[.)-.15 F
-.331(If this sequence is bound to "\\[", k)144 396 R -.15(ey)-.1 G 2.831
-(sp).15 G .331(roducing such sequences will ha)-2.831 F .632 -.15(ve n)
--.2 H 2.832(oe).15 G -.25(ff)-2.832 G .332(ect unless e).25 F(xplic-)
+.332(If this sequence is bound to "\\[", k)144 396 R -.15(ey)-.1 G 2.831
+(sp).15 G .331(roducing such sequences will ha)-2.831 F .631 -.15(ve n)
+-.2 H 2.831(oe).15 G -.25(ff)-2.831 G .331(ect unless e).25 F(xplic-)
 -.15 E .026(itly bound to a readline command, instead of inserting stra\
 y characters into the editing b)144 408 R(uf)-.2 E(fer)-.25 E 5.026(.T)
 -.55 G(his)-5.026 E(is unbound by def)144 420 Q(ault, b)-.1 E
 (ut usually bound to ESC\255[.)-.2 E F1(insert\255comment \(M\255#\))108
-432 Q F0 -.4(Wi)144 444 S .48(thout a numeric ar).4 F .48(gument, the v)
--.18 F .481(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0
--.25(va)2.981 G .481(riable is inserted at the).25 F(be)144 456 Q .245
-(ginning of the current line.)-.15 F .245(If a numeric ar)5.245 F .244
-(gument is supplied, this command acts as a toggle: if)-.18 F .321
+432 Q F0 -.4(Wi)144 444 S .481(thout a numeric ar).4 F .481
+(gument, the v)-.18 F .481(alue of the readline)-.25 F F1
+(comment\255begin)2.981 E F0 -.25(va)2.981 G .48
+(riable is inserted at the).25 F(be)144 456 Q .244
+(ginning of the current line.)-.15 F .245(If a numeric ar)5.244 F .245
+(gument is supplied, this command acts as a toggle: if)-.18 F .322
 (the characters at the be)144 468 R .321
 (ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1
-(comment\255begin)2.821 E F0 2.822(,t)C .322(he v)-2.822 F .322(alue is)
--.25 F 1.014(inserted, otherwise the characters in)144 480 R F1
-(comment-begin)3.514 E F0 1.014(are deleted from the be)3.514 F 1.013
-(ginning of the line.)-.15 F 1.468
+(comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is)
+-.25 F 1.013(inserted, otherwise the characters in)144 480 R F1
+(comment-begin)3.514 E F0 1.014(are deleted from the be)3.514 F 1.014
+(ginning of the line.)-.15 F 1.469
 (In either case, the line is accepted as if a ne)144 492 R 1.468
-(wline had been typed.)-.25 F 1.469(The def)6.469 F 1.469(ault v)-.1 F
-1.469(alue of)-.25 F F1(com-)3.969 E(ment\255begin)144 504 Q F0(mak)
-2.983 E .483(es the current line a shell comment.)-.1 F .483
-(If a numeric ar)5.483 F .482(gument causes the comment)-.18 F
+(wline had been typed.)-.25 F 1.468(The def)6.468 F 1.468(ault v)-.1 F
+1.468(alue of)-.25 F F1(com-)3.968 E(ment\255begin)144 504 Q F0(mak)
+2.982 E .483(es the current line a shell comment.)-.1 F .483
+(If a numeric ar)5.483 F .483(gument causes the comment)-.18 F
 (character to be remo)144 516 Q -.15(ve)-.15 G(d, the line will be e).15
 E -.15(xe)-.15 G(cuted by the shell.).15 E F1(dump\255functions)108 528
-Q F0 .626(Print all of the functions and their k)144 540 R .926 -.15
-(ey b)-.1 H .627(indings to the readline output stream.).15 F .627
-(If a numeric ar)5.627 F(gu-)-.18 E
+Q F0 .627(Print all of the functions and their k)144 540 R .927 -.15
+(ey b)-.1 H .626(indings to the readline output stream.).15 F .626
+(If a numeric ar)5.626 F(gu-)-.18 E
 (ment is supplied, the output is formatted in such a w)144 552 Q
 (ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0
 (\214le.)2.5 E F1(dump\255v)108 564 Q(ariables)-.1 E F0 .283
@@ -1466,22 +1466,22 @@ Q F0 .626(Print all of the functions and their k)144 540 R .926 -.15
 5.283 F(gu-)-.18 E
 (ment is supplied, the output is formatted in such a w)144 588 Q
 (ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0
-(\214le.)2.5 E F1(dump\255macr)108 600 Q(os)-.18 E F0 .592
-(Print all of the readline k)144 612 R .892 -.15(ey s)-.1 H .592
-(equences bound to macros and the strings the).15 F 3.093(yo)-.15 G
-3.093(utput. If)-3.093 F 3.093(an)3.093 G(umeric)-3.093 E(ar)144 624 Q
+(\214le.)2.5 E F1(dump\255macr)108 600 Q(os)-.18 E F0 .593
+(Print all of the readline k)144 612 R .893 -.15(ey s)-.1 H .592
+(equences bound to macros and the strings the).15 F 3.092(yo)-.15 G
+3.092(utput. If)-3.092 F 3.092(an)3.092 G(umeric)-3.092 E(ar)144 624 Q
 .528(gument is supplied, the output is formatted in such a w)-.18 F .528
-(ay that it can be made part of an)-.1 F F2(inputr)3.027 E(c)-.37 E F0
+(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0
 (\214le.)144 636 Q F1(emacs\255editing\255mode \(C\255e\))108 648 Q F0
 (When in)144 660 Q F1(vi)2.5 E F0(command mode, this causes a switch to)
 2.5 E F1(emacs)2.5 E F0(editing mode.)2.5 E F1
 (vi\255editing\255mode \(M\255C\255j\))108 672 Q F0(When in)144 684 Q F1
 (emacs)2.5 E F0(editing mode, this causes a switch to)2.5 E F1(vi)2.5 E
 F0(editing mode.)2.5 E/F4 10.95/Times-Bold@0 SF(DEF)72 700.8 Q -.548(AU)
--.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .064(The follo)
-108 712.8 R .064(wing is a list of the def)-.25 F .064
-(ault emacs and vi bindings.)-.1 F .065
-(Characters with the eighth bit set are written as)5.065 F .527
+-.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .065(The follo)
+108 712.8 R .065(wing is a list of the def)-.25 F .065
+(ault emacs and vi bindings.)-.1 F .064
+(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
@@ -1491,21 +1491,21 @@ F0(editing mode.)2.5 E/F4 10.95/Times-Bold@0 SF(DEF)72 700.8 Q -.548(AU)
 BP
 %%EndPageSetup
 /F0 10/Times-Roman@0 SF 117.355(READLINE\(3\) Library)72 48 R
-(Functions Manual)2.5 E(READLINE\(3\))119.855 E 1.115
+(Functions Manual)2.5 E(READLINE\(3\))119.855 E 1.116
 (in the list of emacs standard bindings are bound to the)108 84 R/F1 10
-/Times-Bold@0 SF(self\255insert)3.615 E F0 1.116
+/Times-Bold@0 SF(self\255insert)3.615 E F0 1.115
 (function, which just inserts the gi)3.615 F -.15(ve)-.25 G(n).15 E .945
 (character into the input line.)108 96 R .945(In vi insertion mode, all\
  characters not speci\214cally mentioned are bound to)5.945 F F1
-(self\255insert)108 108 Q F0 5.358(.C)C .358
-(haracters assigned to signal generation by)-5.358 F/F2 10
+(self\255insert)108 108 Q F0 5.359(.C)C .359
+(haracters assigned to signal generation by)-5.359 F/F2 10
 /Times-Italic@0 SF(stty)2.859 E F0 .359(\(1\) or the terminal dri).32 F
--.15(ve)-.25 G 1.159 -.4(r, s).15 H .359(uch as C-Z or C-C,).4 F .188
-(retain that function.)108 120 R .188(Upper and lo)5.188 F .188(wer cas\
+-.15(ve)-.25 G 1.159 -.4(r, s).15 H .358(uch as C-Z or C-C,).4 F .187
+(retain that function.)108 120 R .187(Upper and lo)5.187 F .188(wer cas\
 e meta\214ed characters are bound to the same function in the emacs)-.25
-F .304(mode meta k)108 132 R -.15(ey)-.1 G 2.804(map. The).15 F .305(re\
+F .305(mode meta k)108 132 R -.15(ey)-.1 G 2.805(map. The).15 F .305(re\
 maining characters are unbound, which causes readline to ring the bell \
-\(subject)2.804 F(to the setting of the)108 144 Q F1(bell\255style)2.5 E
+\(subject)2.805 F(to the setting of the)108 144 Q F1(bell\255style)2.5 E
 F0 -.25(va)2.5 G(riable\).).25 E F1(Emacs Mode)87 160.8 Q F0
 (Emacs Standard bindings)151.2 172.8 Q 2.5("C-@" set-mark)151.2 196.8 R
 2.5("C-A" be)151.2 208.8 R(ginning-of-line)-.15 E 2.5("C-B" backw)151.2
@@ -1653,19 +1653,19 @@ F0(initialization \214le)2.5 E F1 -.548(AU)72 578.4 S(THORS).548 E F0
 (bfox@gnu.or)108 602.4 Q(g)-.18 E(Chet Rame)108 619.2 Q 1.3 -.65(y, C)
 -.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)
 -.25 G(rsity).15 E(chet.rame)108 631.2 Q(y@case.edu)-.15 E F1 -.11(BU)72
-648 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .691(If you \214nd a b)
-108 660 R .691(ug in)-.2 F F3 -.18(re)3.191 G(adline,).18 E F0 .691
-(you should report it.)3.191 F .69(But \214rst, you should mak)5.69 F
-3.19(es)-.1 G .69(ure that it really is a b)-3.19 F(ug,)-.2 E
+648 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .69(If you \214nd a b)
+108 660 R .69(ug in)-.2 F F3 -.18(re)3.19 G(adline,).18 E F0 .69
+(you should report it.)3.19 F .691(But \214rst, you should mak)5.69 F
+3.191(es)-.1 G .691(ure that it really is a b)-3.191 F(ug,)-.2 E
 (and that it appears in the latest v)108 672 Q(ersion of the)-.15 E F3
 -.18(re)2.5 G(adline).18 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.)
-.15 E .704(Once you ha)108 688.8 R 1.004 -.15(ve d)-.2 H .704
+.15 E .705(Once you ha)108 688.8 R 1.005 -.15(ve d)-.2 H .705
 (etermined that a b).15 F .704(ug actually e)-.2 F .704(xists, mail a b)
--.15 F .705(ug report to)-.2 F F2 -.2(bu)3.205 G(g\255r).2 E(eadline)
--.37 E F0(@)A F2(gnu.or)A(g)-.37 E F0 5.705(.I)C 3.205(fy)-5.705 G(ou)
--3.205 E(ha)108 700.8 Q 1.81 -.15(ve a \214)-.2 H 1.51
-(x, you are welcome to mail that as well!).15 F 1.509
-(Suggestions and `philosophical' b)6.509 F 1.509(ug reports may be)-.2 F
+-.15 F .704(ug report to)-.2 F F2 -.2(bu)3.204 G(g\255r).2 E(eadline)
+-.37 E F0(@)A F2(gnu.or)A(g)-.37 E F0 5.704(.I)C 3.204(fy)-5.704 G(ou)
+-3.204 E(ha)108 700.8 Q 1.809 -.15(ve a \214)-.2 H 1.509
+(x, you are welcome to mail that as well!).15 F 1.51
+(Suggestions and `philosophical' b)6.51 F 1.51(ug reports may be)-.2 F
 (mailed to)108 712.8 Q F2 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F2
 (gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3
 (gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 729.6 Q
index 7d22b2cb6af6d0dc13085566349cac02f2c6d724..baf036df56ba36ac6853ae53a5730ccb1b0075d1 100644 (file)
@@ -846,12 +846,16 @@ Return the function invoked by @var{keyseq} in keymap @var{map}.
 If @var{map} is @code{NULL}, the current keymap is used.  If @var{type} is
 not @code{NULL}, the type of the object is returned in the @code{int} variable
 it points to (one of @code{ISFUNC}, @code{ISKMAP}, or @code{ISMACR}).
+It takes a "translated" key sequence and should not be used if the key sequence
+can include NUL.
 @end deftypefun
 
-@deftypefun {rl_command_func_t *} rl_function_of_keyseq_len (const char *keyseq, size_t len Keymap map, int *type)
+@deftypefun {rl_command_func_t *} rl_function_of_keyseq_len (const char *keyseq, size_t len, Keymap map, int *type)
 Return the function invoked by @var{keyseq} of length @var{len}
 in keymap @var{map}. Equivalent to @code{rl_function_of_keyseq} with the
 addition of the @var{len} parameter.
+It takes a "translated" key sequence and should be used if the key sequence
+can include NUL.
 @end deftypefun
 
 @deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function)
index 1c9acdcc1791bdc334f4db9b061b4a93aa73b3c1..1acc8cda9ef717944815c3059ed3221c9659c893 100644 (file)
@@ -475,6 +475,7 @@ The default value is @samp{off}.
 If set to @samp{on}, and @var{completion-ignore-case} is enabled, Readline
 treats hyphens (@samp{-}) and underscores (@samp{_}) as equivalent when
 performing case-insensitive filename matching and completion.
+The default value is @samp{off}.
 
 @item completion-prefix-display-length
 @vindex completion-prefix-display-length
@@ -802,7 +803,7 @@ Meta-Rubout: backward-kill-word
 Control-o: "> output"
 @end example
 
-In the above example, @kbd{C-u} is bound to the function
+In the example above, @kbd{C-u} is bound to the function
 @code{universal-argument},
 @kbd{M-DEL} is bound to the function @code{backward-kill-word}, and
 @kbd{C-o} is bound to run the macro
@@ -1352,7 +1353,7 @@ This function is intended to be bound to the "bracketed paste" escape
 sequence sent by some terminals, and such a binding is assigned by default.
 It allows Readline to insert the pasted text as a single unit without treating
 each character as if it had been read from the keyboard.  The characters
-are inserted as if each one was bound to @code{self-insert}) instead of
+are inserted as if each one was bound to @code{self-insert} instead of
 executing any editing commands.
 
 @item transpose-chars (C-t)
@@ -2019,10 +2020,10 @@ matches were generated.
 @item complete
 @btindex complete
 @example
-@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-DE] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
-[-F @var{function}] [-C @var{command}] [-X @var{filterpat}]
+@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-DEI] [-A @var{action}] [-G @var{globpat}]
+[-W @var{wordlist}] [-F @var{function}] [-C @var{command}] [-X @var{filterpat}]
 [-P @var{prefix}] [-S @var{suffix}] @var{name} [@var{name} @dots{}]}
-@code{complete -pr [-DE] [@var{name} @dots{}]}
+@code{complete -pr [-DEI] [@var{name} @dots{}]}
 @end example
 
 Specify how arguments to each @var{name} should be completed.
@@ -2032,16 +2033,24 @@ reused as input.
 The @option{-r} option removes a completion specification for
 each @var{name}, or, if no @var{name}s are supplied, all
 completion specifications.
-The @option{-D} option indicates that the remaining options and actions should
+The @option{-D} option indicates that other supplied options and actions should
 apply to the ``default'' command completion; that is, completion attempted
 on a command for which no completion has previously been defined.
-The @option{-E} option indicates that the remaining options and actions should
+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
+command delimiter such as @samp{;} or @samp{|}, which is usually command
+name completion.
+If multiple options are supplied, the @option{-D} option takes precedence
+over @option{-E}, and both take precedence over @option{-I}.
+If any of @option{-D}, @option{-E}, or @option{-I} are supplied, any other
+@var{name} arguments are ignored; these completions only apply to the case
+specified by the option.
 
 The process of applying these completion specifications when word completion
-is attempted is described above (@pxref{Programmable Completion}).  The
-@option{-D} option takes precedence over @option{-E}.
+is attempted is described above (@pxref{Programmable Completion}).
 
 Other options, if specified, have the following meanings.
 The arguments to the @option{-G}, @option{-W}, and @option{-X} options
@@ -2071,7 +2080,7 @@ Perform directory name completion if the compspec generates no matches.
 
 @item filenames
 Tell Readline that the compspec generates filenames, so it can perform any
-filename-specific processing (like adding a slash to directory names
+filename-specific processing (like adding a slash to directory names,
 quoting special characters, or suppressing trailing spaces).
 This option is intended to be used with shell functions specified
 with @option{-F}.
@@ -2226,7 +2235,7 @@ an error occurs adding a completion specification.
 @item compopt
 @btindex compopt
 @example
-@code{compopt} [-o @var{option}] [-DE] [+o @var{option}] [@var{name}]
+@code{compopt} [-o @var{option}] [-DEI] [+o @var{option}] [@var{name}]
 @end example
 Modify completion options for each @var{name} according to the
 @var{option}s, or for the currently-executing completion if no @var{name}s
@@ -2235,14 +2244,19 @@ If no @var{option}s are given, display the completion options for each
 @var{name} or the current completion.
 The possible values of @var{option} are those valid for the @code{complete}
 builtin described above.
-The @option{-D} option indicates that the remaining options should
+The @option{-D} option indicates that other supplied options should
 apply to the ``default'' command completion; that is, completion attempted
 on a command for which no completion has previously been defined.
-The @option{-E} option indicates that the remaining options should
+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
+command delimiter such as @samp{;} or @samp{|}, which is usually command
+name completion.
 
-The @option{-D} option takes precedence over @option{-E}.
+If multiple options are supplied, the @option{-D} option takes precedence
+over @option{-E}, and both take precedence over @option{-I}
 
 The return value is true unless an invalid option is supplied, an attempt
 is made to modify the options for a @var{name} for which no completion
@@ -2289,7 +2303,7 @@ _comp_cd()
     local cur _skipdot _cdpath
     local i j k
 
-    # Tilde expansion, with side effect of expanding tilde to full pathname
+    # Tilde expansion, which also expands tilde to full pathname
     case "$2" in
     \~*)    eval cur="$2" ;;
     *)      cur=$2 ;;
index 09e7fc62e21533f1b0f6288ecd815e74ca9f15a5..dbd7f7eac215b811960c70437d4b83f6502e79e5 100644 (file)
Binary files a/doc/rluserman.dvi and b/doc/rluserman.dvi differ
index 730f0d5a78cd4691fafd23673248f14bbf263041..e8cfe978d324bffa23a613bfe6646c2744e11472 100644 (file)
@@ -1,6 +1,6 @@
 <HTML>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on January, 2  2018 by texi2html 1.64 -->
+<!-- Created on May, 21  2018 by texi2html 1.64 -->
 <!-- 
 Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
             Karl Berry  <karl@freefriends.org>
@@ -2979,7 +2979,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 Ramey</I> on <I>January, 2  2018</I>
+This document was generated by <I>Chet Ramey</I> on <I>May, 21  2018</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 <P></P>  
@@ -3141,7 +3141,7 @@ the following structure:
 <BR>  
 <FONT SIZE="-1">
 This document was generated
-by <I>Chet Ramey</I> on <I>January, 2  2018</I>
+by <I>Chet Ramey</I> on <I>May, 21  2018</I>
 using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
 "><I>texi2html</I></A>
 
index 5dfc6cef97558601a4869a361b1cd459beae441d..3580f60b62a90b83d50645c567382f72b88d0f10 100644 (file)
Binary files a/doc/rluserman.pdf and b/doc/rluserman.pdf differ
index 887cacf7875682b0a2e7e500167d8261dbfb9e06..19c70714ceb812b4f69cd9222a2b72dfc07293e5 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Creator: dvips(k) 5.997 Copyright 2017 Radical Eye Software
 %%Title: rluserman.dvi
-%%CreationDate: Tue Jan  2 15:56:03 2018
+%%CreationDate: Mon May 21 14:32:51 2018
 %%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.01.02:1056
+%DVIPSSource:  TeX output 2018.05.21:1032
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
index 9fefcfae8a02940e1bfeec48c9c4661d50337078..79f419175082f835aabd60bfc41deaa92a214ff2 100644 (file)
@@ -1,10 +1,10 @@
 @ignore
-Copyright (C) 1988-2017 Free Software Foundation, Inc. 
+Copyright (C) 1988-2018 Free Software Foundation, Inc. 
 @end ignore
 
-@set EDITION 7.0
-@set VERSION 7.0
-@set UPDATED 28 December 2017
-@set UPDATED-MONTH December 2017
+@set EDITION 8.0
+@set VERSION 8.0
+@set UPDATED 6 July 2018
+@set UPDATED-MONTH July 2018
 
-@set LASTCHANGE Thu Dec 28 14:44:16 EST 2017
+@set LASTCHANGE Fri Jul  6 16:25:22 MDT 2018
index 2ecee899c3b0bb1e7b0c9a3be05fec1aa2529abf..f820eba6aaab4db0c1835dde183c9f85532e7bd5 100644 (file)
@@ -38,6 +38,8 @@
 #define STREQN(a, b, n) ((n == 0) ? (1) \
                                   : ((a)[0] == (b)[0] && strncmp(a, b, n) == 0))
 
+int hist_erasedups (void);
+
 static void
 usage()
 {
index d836d146ebd58aecd106485e901cf82bf03f8e31..7992d810dd00c96fa1c6eecb1a8544b1624dfa56 100644 (file)
@@ -43,6 +43,8 @@
 
 #define PURGE_REGEXP   0x01
 
+int hist_purgecmd (char *, int);
+
 static void
 usage()
 {
index 3b43674f79dd9142a7e4ae798a84fdecd7a684ac..309d769b3845e254132dab0aac3fb11050b4e150 100644 (file)
 #  include <readline/history.h>
 #endif
 
+#include <unistd.h>
+#include <stdlib.h>
 #include <string.h>
 
+int
 main (argc, argv)
      int argc;
      char **argv;
index 77f1887ad89bd54e19b7127bd5d3d204b70e1d24..8143cb02aa0742a4dd4e040515a11bcdb6740138 100644 (file)
 #  include <config.h>
 #endif
 
+#ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+#else
+extern int getopt();
+extern int sleep();
+#endif
+
 #include <stdio.h>
 #include <sys/types.h>
 
index 78e2608688506c82870962c8477c79cd931be8e4..65abe87cc044d39175d58408d60ad27674c3e8be 100644 (file)
@@ -46,6 +46,7 @@ extern void exit();
 
 extern HIST_ENTRY **history_list ();
 
+int
 main ()
 {
   char *temp, *prompt;
index e9c333d7e7cb6b0924b2f1f31e3e5caf09261392..adcf5dcb4e3cbfdfb29a2904452795e83acdd9ab 100644 (file)
@@ -1,6 +1,6 @@
 /* histexpand.c -- history expansion. */
 
-/* Copyright (C) 1989-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file contains the GNU History Library (History), a set of
    routines for managing the text of previously typed lines.
@@ -55,6 +55,8 @@
 
 #define slashify_in_quotes "\\`\"$"
 
+#define fielddelim(c)  (whitespace(c) || (c) == '\n')
+
 typedef int _hist_search_func_t PARAMS((const char *, int));
 
 static char error_pointer;
@@ -107,6 +109,8 @@ char *history_word_delimiters = HISTORY_WORD_DELIMITERS;
    particular history expansion should be performed. */
 rl_linebuf_func_t *history_inhibit_expansion_function;
 
+int history_quoting_state = 0;
+
 /* **************************************************************** */
 /*                                                                 */
 /*                     History Expansion                           */
@@ -767,7 +771,7 @@ history_expand_internal (char *string, int start, int qc, int *end_index_ptr, ch
                   the last time. */
                if (subst_bywords && si > we)
                  {
-                   for (; temp[si] && whitespace (temp[si]); si++)
+                   for (; temp[si] && fielddelim (temp[si]); si++)
                      ;
                    ws = si;
                    we = history_tokenize_word (temp, si);
@@ -961,7 +965,22 @@ history_expand (char *hstring, char **output)
 
       /* `!' followed by one of the characters in history_no_expand_chars
         is NOT an expansion. */
-      for (i = dquote = squote = 0; string[i]; i++)
+      dquote = history_quoting_state == '"';
+      squote = history_quoting_state == '\'';
+
+      /* If the calling application tells us we are already reading a
+        single-quoted string, consume the rest of the string right now
+        and then go on. */
+      i = 0;
+      if (squote && history_quotes_inhibit_expansion)
+       {
+         hist_string_extract_single_quoted (string, &i, 0);
+         squote = 0;
+         if (string[i])
+           i++;
+       }
+
+      for ( ; string[i]; i++)
        {
 #if defined (HANDLE_MULTIBYTE)
          if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
@@ -1049,7 +1068,29 @@ history_expand (char *hstring, char **output)
     }
 
   /* Extract and perform the substitution. */
-  for (passc = dquote = squote = i = j = 0; i < l; i++)
+  dquote = history_quoting_state == '"';
+  squote = history_quoting_state == '\'';
+
+  /* If the calling application tells us we are already reading a
+     single-quoted string, consume the rest of the string right now
+     and then go on. */
+  i = j = 0;
+  if (squote && history_quotes_inhibit_expansion)
+    {
+      int c;
+
+      hist_string_extract_single_quoted (string, &i, 0);
+      squote = 0;
+      for (c = 0; c < i; c++)
+       ADD_CHAR (string[c]);      
+      if (string[i])
+       {
+         ADD_CHAR (string[i]);
+         i++;
+       }
+    }
+
+  for (passc = 0; i < l; i++)
     {
       int qc, tchar = string[i];
 
@@ -1407,7 +1448,7 @@ history_tokenize_word (const char *string, int ind)
   i = ind;
   delimiter = nestdelim = 0;
 
-  if (member (string[i], "()\n"))
+  if (member (string[i], "()\n"))      /* XXX - included \n, but why? been here forever */
     {
       i++;
       return i;
@@ -1429,11 +1470,11 @@ history_tokenize_word (const char *string, int ind)
        }
     }
 
-  if (member (string[i], "<>;&|$"))
+  if (member (string[i], "<>;&|"))
     {
       int peek = string[i + 1];
 
-      if (peek == string[i] && peek != '$')
+      if (peek == string[i])
        {
          if (peek == '<' && string[i + 2] == '-')
            i++;
@@ -1456,9 +1497,8 @@ history_tokenize_word (const char *string, int ind)
          i += 2;
          return i;
        }
-      /* XXX - separated out for later -- bash-4.2 */
-      else if ((peek == '(' && (string[i] == '>' || string[i] == '<')) || /* ) */
-              (peek == '(' && string[i] == '$')) /*)*/
+      /* XXX - process substitution -- separated out for later -- bash-4.2 */
+      else if (peek == '(' && (string[i] == '>' || string[i] == '<')) /*)*/
        {
          i += 2;
          delimopen = '(';
@@ -1466,34 +1506,9 @@ history_tokenize_word (const char *string, int ind)
          nestdelim = 1;
          goto get_word;
        }
-#if 0
-      else if (peek == '\'' && string[i] == '$')
-        {
-         i += 2;       /* XXX */
-         return i;
-        }
-#endif
 
-      if (string[i] != '$')
-       {
-         i++;
-         return i;
-       }
-    }
-
-  /* same code also used for $(...)/<(...)/>(...) above */
-  if (member (string[i], "!@?+*"))
-    {
-      int peek = string[i + 1];
-
-      if (peek == '(')         /*)*/
-       {
-         /* Shell extended globbing patterns */
-         i += 2;
-         delimopen = '(';
-         delimiter = ')';      /* XXX - not perfect */
-         nestdelim = 1;
-       }
+      i++;
+      return i;
     }
 
 get_word:
@@ -1538,6 +1553,16 @@ get_word:
          continue;
        }
 
+      /* Command and process substitution; shell extended globbing patterns */
+      if (nestdelim == 0 && delimiter == 0 && member (string[i], "<>$!@?+*") && string[i+1] == '(') /*)*/
+       {
+         i += 2;
+         delimopen = '(';
+         delimiter = ')';
+         nestdelim = 1;
+         continue;
+       }
+      
       if (delimiter == 0 && (member (string[i], history_word_delimiters)))
        break;
 
@@ -1581,7 +1606,7 @@ history_tokenize_internal (const char *string, int wind, int *indp)
   for (i = result_index = size = 0, result = (char **)NULL; string[i]; )
     {
       /* Skip leading whitespace. */
-      for (; string[i] && whitespace (string[i]); i++)
+      for (; string[i] && fielddelim (string[i]); i++)
        ;
       if (string[i] == 0 || string[i] == history_comment_char)
        return (result);
index 399bcc39f9978f82881b62cf724b9a35ca341914..dc64bde1c5acf8c117080eb7c783a2cd3181311d 100644 (file)
@@ -1,6 +1,6 @@
 /* histfile.c - functions to manipulate the history file. */
 
-/* Copyright (C) 1989-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file contains the GNU History Library (History), a set of
    routines for managing the text of previously typed lines.
@@ -396,7 +396,7 @@ read_history_range (const char *filename, int from, int to)
          {
            if (HIST_TIMESTAMP_START(line_start) == 0)
              {
-               if (last_ts == NULL && history_multiline_entries)
+               if (last_ts == NULL && history_length > 0 && history_multiline_entries)
                  _hs_append_history_line (history_length - 1, line_start);
                else
                  add_history (line_start);
index fceb99cae52c0cbf3bb33a02077539b35ba6d1c1..cc3de29a64231d083d7b282e2eb247d692dbe521 100644 (file)
--- a/history.h
+++ b/history.h
@@ -261,7 +261,9 @@ extern char *history_word_delimiters;
 extern char history_comment_char;
 extern char *history_no_expand_chars;
 extern char *history_search_delimiter_chars;
+
 extern int history_quotes_inhibit_expansion;
+extern int history_quoting_state;
 
 extern int history_write_timestamps;
 
diff --git a/kill.c b/kill.c
index 983a98482d92fecc27e7cd1246d64a030987aa9f..9fdfc77280cc43c23fdb42fbb493eea446bf9fea 100644 (file)
--- a/kill.c
+++ b/kill.c
@@ -322,7 +322,7 @@ rl_unix_word_rubout (int count, int key)
            rl_point--;
 
          while (rl_point && (whitespace (rl_line_buffer[rl_point - 1]) == 0))
-           rl_point--;
+           rl_point--;         /* XXX - multibyte? */
        }
 
       rl_kill_text (orig_point, rl_point);
@@ -359,7 +359,7 @@ rl_unix_filename_rubout (int count, int key)
 
          while (rl_point && (whitespace (c) == 0) && c != '/')
            {
-             rl_point--;
+             rl_point--;       /* XXX - multibyte? */
              c = rl_line_buffer[rl_point - 1];
            }
        }
@@ -677,7 +677,7 @@ rl_bracketed_paste_begin (int count, int key)
   size_t len, cap;
   char *buf;
 
-  retval = 1;
+  retval = 0;
   len = 0;
   buf = xmalloc (cap = 64);
 
@@ -708,7 +708,7 @@ rl_bracketed_paste_begin (int count, int key)
       if (len == cap)
        buf = xrealloc (buf, cap + 1);
       buf[len] = '\0';
-      retval = rl_insert_text (buf);
+      retval = rl_insert_text (buf) == len ? 0 : 1;
     }
 
   xfree (buf);
index 65543416cb64c2bf0ccbde5d7143ce805aab1ea9..17716357feb0c31b686636ccece7a1567426db35 100644 (file)
--- a/mbutil.c
+++ b/mbutil.c
@@ -75,6 +75,57 @@ int _rl_utf8locale = 0;
 
 #if defined(HANDLE_MULTIBYTE)
 
+/* **************************************************************** */
+/*                                                                 */
+/*             UTF-8 specific Character Utility Functions          */
+/*                                                                 */
+/* **************************************************************** */
+
+/* Return the length in bytes of the possibly-multibyte character beginning
+   at S. Encoding is UTF-8. */
+static int
+_rl_utf8_mblen (const char *s, size_t n)
+{
+  unsigned char c, c1;
+
+  if (s == 0)
+    return (0);        /* no shift states */
+  if (n <= 0)
+    return (-1);
+
+  c = (unsigned char)*s;
+  if (c < 0x80)
+    return (c != 0);
+  if (c >= 0xc2)
+    {
+      c1 = (unsigned char)s[1];
+      if (c < 0xe0)
+       {
+         if (n >= 2 && (s[1] ^ 0x80) < 0x40)
+           return 2;
+       }
+      else if (c < 0xf0)
+       {
+         if (n >= 3
+               && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+               && (c >= 0xe1 || c1 >= 0xa0)
+               && (c != 0xed || c1 < 0xa0))
+           return 3;
+       }
+      else if (c < 0xf8)
+       {
+         if (n >= 4
+               && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+               && (s[3] ^ 0x80) < 0x40
+               && (c >= 0xf1 || c1 >= 0x90)
+               && (c < 0xf4 || (c == 0xf4 && c1 < 0x90)))
+           return 4;
+       }
+    }
+  /* invalid or incomplete multibyte character */
+  return -1;
+}
+
 static int
 _rl_find_next_mbchar_internal (char *string, int seed, int count, int find_non_zero)
 {
@@ -228,11 +279,16 @@ _rl_get_char_len (char *src, mbstate_t *ps)
 
   /* Look at no more than MB_CUR_MAX characters */
   l = (size_t)strlen (src);
-  mb_cur_max = MB_CUR_MAX;
-  tmp = mbrlen((const char *)src, (l < mb_cur_max) ? l : mb_cur_max, ps);
+  if (_rl_utf8locale && l > 0 && UTF8_SINGLEBYTE(*src))
+    tmp = (*src != 0) ? 1 : 0;
+  else
+    {
+      mb_cur_max = MB_CUR_MAX;
+      tmp = mbrlen((const char *)src, (l < mb_cur_max) ? l : mb_cur_max, ps);
+    }
   if (tmp == (size_t)(-2))
     {
-      /* shorted to compose multibyte char */
+      /* too short to compose multibyte char */
       if (ps)
        memset (ps, 0, sizeof(mbstate_t));
       return -2;
index 4842a02e0524a90cd32aaee65825d4de91739d5a..678f989c51aba1d522b366e67ed93968ced01cc1 100644 (file)
@@ -214,6 +214,9 @@ int _rl_eof_char = CTRL ('D');
 /* Non-zero makes this the next keystroke to read. */
 int rl_pending_input = 0;
 
+/* If non-zero when readline_internal returns, it means we found EOF */
+int _rl_eof_found = 0;
+
 /* Pointer to a useful terminal name. */
 const char *rl_terminal_name = (const char *)NULL;
 
@@ -222,7 +225,7 @@ int _rl_horizontal_scroll_mode = 0;
 
 /* Non-zero means to display an asterisk at the starts of history lines
    which have been modified. */
-int _rl_mark_modified_lines = 0;  
+int _rl_mark_modified_lines = 0;
 
 /* The style of `bell' notification preferred.  This can be set to NO_BELL,
    AUDIBLE_BELL, or VISIBLE_BELL. */
@@ -664,11 +667,9 @@ readline_internal_charloop (void)
 static char *
 readline_internal (void)
 {
-  int eof;
-
   readline_internal_setup ();
-  eof = readline_internal_charloop ();
-  return (readline_internal_teardown (eof));
+  _rl_eof_found = readline_internal_charloop ();
+  return (readline_internal_teardown (_rl_eof_found));
 }
 
 void
@@ -1055,7 +1056,7 @@ _rl_subseq_result (int r, Keymap map, int key, int got_subseq)
        /* We probably shadowed a keymap, so keep going. */
        r = _rl_dispatch (ANYOTHERKEY, m);
     }
-  else if (r && map[ANYOTHERKEY].function)
+  else if (r < 0 && map[ANYOTHERKEY].function)
     {
       /* We didn't match (r is probably -1), so return something to
         tell the caller that it should try ANYOTHERKEY for an
index 2081b197b68adfb33158291663dbeea4730bbbf2..4e08b2e97db4e4298fdea2f6c682b075e5e3fea1 100644 (file)
@@ -39,8 +39,8 @@ extern "C" {
 #endif
 
 /* Hex-encoded Readline version number. */
-#define RL_READLINE_VERSION    0x0700          /* Readline 7.0 */
-#define RL_VERSION_MAJOR       7
+#define RL_READLINE_VERSION    0x0800          /* Readline 8.0 */
+#define RL_VERSION_MAJOR       8
 #define RL_VERSION_MINOR       0
 
 /* Readline data structures. */
index 8b88de40afbc17cf519a9a6bd6a8c7730c3d6414..6fd03f6a0c1e5819f47f74e25d93ddee5f14ff9e 100644 (file)
@@ -173,6 +173,8 @@ _rl_wcwidth (wc)
 #endif
 
 #define UTF8_SINGLEBYTE(c)     (((c) & 0x80) == 0)
+#define UTF8_MBFIRSTCHAR(c)    (((c) & 0xc0) == 0xc0)
+#define UTF8_MBCHAR(c)         (((c) & 0xc0) == 0x80)
 
 #else /* !HANDLE_MULTIBYTE */
 
index 05ee9302b1b6b2c71481d37ef7b057e55257eb08..69943de5270eac2316a4730b6a413002294866d8 100644 (file)
@@ -382,6 +382,7 @@ extern void _rl_set_cursor PARAMS((int, int));
 extern void _rl_fix_point PARAMS((int));
 extern int _rl_replace_text PARAMS((const char *, int, int));
 extern int _rl_forward_char_internal PARAMS((int));
+extern int _rl_backward_char_internal PARAMS((int));
 extern int _rl_insert_char PARAMS((int, int));
 extern int _rl_overwrite_char PARAMS((int, int));
 extern int _rl_overwrite_rubout PARAMS((int, int));
@@ -511,6 +512,7 @@ extern FILE *_rl_in_stream;
 extern FILE *_rl_out_stream;
 extern int _rl_last_command_was_kill;
 extern int _rl_eof_char;
+extern int _rl_eof_found;
 extern procenv_t _rl_top_level;
 extern _rl_keyseq_cxt *_rl_kscxt;
 extern int _rl_keyseq_timeout;
diff --git a/rltty.c b/rltty.c
index 6d9071921b3d6a00db129c20bf3a4022da158785..2ee36a7cb5a283c7eb853404e1db7a27b251476d 100644 (file)
--- a/rltty.c
+++ b/rltty.c
@@ -691,7 +691,11 @@ rl_deprep_terminal (void)
   tty = rl_instream ? fileno (rl_instream) : fileno (stdin);
 
   if (terminal_prepped & TPX_BRACKPASTE)
-    fprintf (rl_outstream, BRACK_PASTE_FINI);
+    {
+      fprintf (rl_outstream, BRACK_PASTE_FINI);
+      if (_rl_eof_found)
+       fprintf (rl_outstream, "\n");
+    }
 
   if (_rl_enable_keypad)
     _rl_control_keypad (0);
old mode 100644 (file)
new mode 100755 (executable)
index 770cb5c..883a671
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2017 Free Software Foundation, Inc.
+#   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2017-12-17'
+timestamp='2018-05-19'
 
 # 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
@@ -50,7 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2017 Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -106,10 +106,10 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
  { 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 ;
+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
+         if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
             CC_FOR_BUILD="$c"; break ;
          fi ;
        done ;
@@ -132,14 +132,14 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-case "${UNAME_SYSTEM}" in
+case "$UNAME_SYSTEM" in
 Linux|GNU|GNU/*)
        # If the system lacks a compiler, then just pick glibc.
        # We could probably try harder.
        LIBC=gnu
 
-       eval $set_cc_for_build
-       cat <<-EOF > $dummy.c
+       eval "$set_cc_for_build"
+       cat <<-EOF > "$dummy.c"
        #include <features.h>
        #if defined(__UCLIBC__)
        LIBC=uclibc
@@ -149,13 +149,20 @@ Linux|GNU|GNU/*)
        LIBC=gnu
        #endif
        EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+       eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+
+       # If ldd exists, use it to detect musl libc.
+       if command -v ldd >/dev/null && \
+               ldd --version 2>&1 | grep -q ^musl
+       then
+           LIBC=musl
+       fi
        ;;
 esac
 
 # Note: order is significant - the case branches are not exclusive.
 
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
     *:NetBSD:*:*)
        # NetBSD (nbsd) targets should (where applicable) match one or
        # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -169,30 +176,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # portion of the name.  We always set it to "unknown".
        sysctl="sysctl -n hw.machine_arch"
        UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
-           /sbin/$sysctl 2>/dev/null || \
-           /usr/sbin/$sysctl 2>/dev/null || \
+           "/sbin/$sysctl" 2>/dev/null || \
+           "/usr/sbin/$sysctl" 2>/dev/null || \
            echo unknown)`
-       case "${UNAME_MACHINE_ARCH}" in
+       case "$UNAME_MACHINE_ARCH" in
            armeb) machine=armeb-unknown ;;
            arm*) machine=arm-unknown ;;
            sh3el) machine=shl-unknown ;;
            sh3eb) machine=sh-unknown ;;
            sh5el) machine=sh5le-unknown ;;
            earmv*)
-               arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
-               endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
-               machine=${arch}${endian}-unknown
+               arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+               endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+               machine="${arch}${endian}"-unknown
                ;;
-           *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+           *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
        esac
        # The Operating System including object format, if it has switched
        # to ELF recently (or will in the future) and ABI.
-       case "${UNAME_MACHINE_ARCH}" in
+       case "$UNAME_MACHINE_ARCH" in
            earm*)
                os=netbsdelf
                ;;
            arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-               eval $set_cc_for_build
+               eval "$set_cc_for_build"
                if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
                        | grep -q __ELF__
                then
@@ -208,10 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                ;;
        esac
        # Determine ABI tags.
-       case "${UNAME_MACHINE_ARCH}" in
+       case "$UNAME_MACHINE_ARCH" in
            earm*)
                expr='s/^earmv[0-9]/-eabi/;s/eb$//'
-               abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+               abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
                ;;
        esac
        # The OS release
@@ -219,51 +226,51 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # thus, need a distinct triplet. However, they do not need
        # kernel version information, so it can be replaced with a
        # suitable tag, in the style of linux-gnu.
-       case "${UNAME_VERSION}" in
+       case "$UNAME_VERSION" in
            Debian*)
                release='-gnu'
                ;;
            *)
-               release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
+               release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
                ;;
        esac
        # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
        # contains redundant information, the shorter form:
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-       echo "${machine}-${os}${release}${abi}"
+       echo "$machine-${os}${release}${abi-}"
        exit ;;
     *:Bitrig:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+       echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
        exit ;;
     *:OpenBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
        exit ;;
     *:LibertyBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
        exit ;;
     *:MidnightBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
        exit ;;
     *:ekkoBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
        exit ;;
     *:SolidBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
        exit ;;
     macppc:MirBSD:*:*)
-       echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+       echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
        exit ;;
     *:MirBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
        exit ;;
     *:Sortix:*:*)
-       echo ${UNAME_MACHINE}-unknown-sortix
+       echo "$UNAME_MACHINE"-unknown-sortix
        exit ;;
     *:Redox:*:*)
-       echo ${UNAME_MACHINE}-unknown-redox
+       echo "$UNAME_MACHINE"-unknown-redox
        exit ;;
     mips:OSF1:*.*)
         echo mips-dec-osf1
@@ -319,7 +326,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # A Tn.n version is a released field test version.
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+       echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
        # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
        exitcode=$?
        trap '' 0
@@ -328,10 +335,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        echo m68k-unknown-sysv4
        exit ;;
     *:[Aa]miga[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-amigaos
+       echo "$UNAME_MACHINE"-unknown-amigaos
        exit ;;
     *:[Mm]orph[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-morphos
+       echo "$UNAME_MACHINE"-unknown-morphos
        exit ;;
     *:OS/390:*:*)
        echo i370-ibm-openedition
@@ -343,7 +350,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        echo powerpc-ibm-os400
        exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-       echo arm-acorn-riscix${UNAME_RELEASE}
+       echo arm-acorn-riscix"$UNAME_RELEASE"
        exit ;;
     arm*:riscos:*:*|arm*:RISCOS:*:*)
        echo arm-unknown-riscos
@@ -370,19 +377,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
            sparc) echo sparc-icl-nx7; exit ;;
        esac ;;
     s390x:SunOS:*:*)
-       echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
        exit ;;
     sun4H:SunOS:5.*:*)
-       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
        exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
        exit ;;
     i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-       echo i386-pc-auroraux${UNAME_RELEASE}
+       echo i386-pc-auroraux"$UNAME_RELEASE"
        exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-       eval $set_cc_for_build
+       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.
@@ -395,13 +402,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                SUN_ARCH=x86_64
            fi
        fi
-       echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
        exit ;;
     sun4*:SunOS:6*:*)
        # According to config.sub, this is the proper way to canonicalize
        # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
        # it's likely to be more like Solaris than SunOS4.
-       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
        exit ;;
     sun4*:SunOS:*:*)
        case "`/usr/bin/arch -k`" in
@@ -410,25 +417,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                ;;
        esac
        # Japanese Language versions have a version number like `4.1.3-JL'.
-       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+       echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
        exit ;;
     sun3*:SunOS:*:*)
-       echo m68k-sun-sunos${UNAME_RELEASE}
+       echo m68k-sun-sunos"$UNAME_RELEASE"
        exit ;;
     sun*:*:4.2BSD:*)
        UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-       test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
+       test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
        case "`/bin/arch`" in
            sun3)
-               echo m68k-sun-sunos${UNAME_RELEASE}
+               echo m68k-sun-sunos"$UNAME_RELEASE"
                ;;
            sun4)
-               echo sparc-sun-sunos${UNAME_RELEASE}
+               echo sparc-sun-sunos"$UNAME_RELEASE"
                ;;
        esac
        exit ;;
     aushp:SunOS:*:*)
-       echo sparc-auspex-sunos${UNAME_RELEASE}
+       echo sparc-auspex-sunos"$UNAME_RELEASE"
        exit ;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
@@ -439,44 +446,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint"$UNAME_RELEASE"
        exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint"$UNAME_RELEASE"
        exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint"$UNAME_RELEASE"
        exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-       echo m68k-milan-mint${UNAME_RELEASE}
+       echo m68k-milan-mint"$UNAME_RELEASE"
        exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-       echo m68k-hades-mint${UNAME_RELEASE}
+       echo m68k-hades-mint"$UNAME_RELEASE"
        exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-       echo m68k-unknown-mint${UNAME_RELEASE}
+       echo m68k-unknown-mint"$UNAME_RELEASE"
        exit ;;
     m68k:machten:*:*)
-       echo m68k-apple-machten${UNAME_RELEASE}
+       echo m68k-apple-machten"$UNAME_RELEASE"
        exit ;;
     powerpc:machten:*:*)
-       echo powerpc-apple-machten${UNAME_RELEASE}
+       echo powerpc-apple-machten"$UNAME_RELEASE"
        exit ;;
     RISC*:Mach:*:*)
        echo mips-dec-mach_bsd4.3
        exit ;;
     RISC*:ULTRIX:*:*)
-       echo mips-dec-ultrix${UNAME_RELEASE}
+       echo mips-dec-ultrix"$UNAME_RELEASE"
        exit ;;
     VAX*:ULTRIX*:*:*)
-       echo vax-dec-ultrix${UNAME_RELEASE}
+       echo vax-dec-ultrix"$UNAME_RELEASE"
        exit ;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
-       echo clipper-intergraph-clix${UNAME_RELEASE}
+       echo clipper-intergraph-clix"$UNAME_RELEASE"
        exit ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
+       eval "$set_cc_for_build"
+       sed 's/^        //' << EOF > "$dummy.c"
 #ifdef __cplusplus
 #include <stdio.h>  /* for printf() prototype */
        int main (int argc, char *argv[]) {
@@ -497,11 +504,11 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
          exit (-1);
        }
 EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c &&
-         dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
-         SYSTEM_NAME=`$dummy $dummyarg` &&
+       $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+         dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+         SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
            { echo "$SYSTEM_NAME"; exit; }
-       echo mips-mips-riscos${UNAME_RELEASE}
+       echo mips-mips-riscos"$UNAME_RELEASE"
        exit ;;
     Motorola:PowerMAX_OS:*:*)
        echo powerpc-motorola-powermax
@@ -527,17 +534,17 @@ EOF
     AViiON:dgux:*:*)
        # DG/UX returns AViiON for all architectures
        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+       if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
        then
-           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-              [ ${TARGET_BINARY_INTERFACE}x = x ]
+           if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
+              [ "$TARGET_BINARY_INTERFACE"x = x ]
            then
-               echo m88k-dg-dgux${UNAME_RELEASE}
+               echo m88k-dg-dgux"$UNAME_RELEASE"
            else
-               echo m88k-dg-dguxbcs${UNAME_RELEASE}
+               echo m88k-dg-dguxbcs"$UNAME_RELEASE"
            fi
        else
-           echo i586-dg-dgux${UNAME_RELEASE}
+           echo i586-dg-dgux"$UNAME_RELEASE"
        fi
        exit ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
@@ -554,7 +561,7 @@ EOF
        echo m68k-tektronix-bsd
        exit ;;
     *:IRIX*:*:*)
-       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+       echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
        exit ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
        echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
@@ -566,14 +573,14 @@ EOF
        if [ -x /usr/bin/oslevel ] ; then
                IBM_REV=`/usr/bin/oslevel`
        else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+               IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
        fi
-       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+       echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
        exit ;;
     *:AIX:2:3)
        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-               eval $set_cc_for_build
-               sed 's/^                //' << EOF >$dummy.c
+               eval "$set_cc_for_build"
+               sed 's/^                //' << EOF > "$dummy.c"
                #include <sys/systemcfg.h>
 
                main()
@@ -584,7 +591,7 @@ EOF
                        exit(0);
                        }
 EOF
-               if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+               if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
                then
                        echo "$SYSTEM_NAME"
                else
@@ -598,7 +605,7 @@ EOF
        exit ;;
     *:AIX:*:[4567])
        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+       if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
                IBM_ARCH=rs6000
        else
                IBM_ARCH=powerpc
@@ -607,9 +614,9 @@ EOF
                IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
                           awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
        else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+               IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
        fi
-       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+       echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
        exit ;;
     *:AIX:*:*)
        echo rs6000-ibm-aix
@@ -618,7 +625,7 @@ EOF
        echo romp-ibm-bsd4.4
        exit ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+       echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
        exit ;;                             # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
        echo rs6000-bull-bosx
@@ -633,28 +640,28 @@ EOF
        echo m68k-hp-bsd4.4
        exit ;;
     9000/[34678]??:HP-UX:*:*)
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       case "${UNAME_MACHINE}" in
+       HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+       case "$UNAME_MACHINE" in
            9000/31?)            HP_ARCH=m68000 ;;
            9000/[34]??)         HP_ARCH=m68k ;;
            9000/[678][0-9][0-9])
                if [ -x /usr/bin/getconf ]; then
                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                   case "${sc_cpu_version}" in
+                   case "$sc_cpu_version" in
                      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
                      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
                      532)                      # CPU_PA_RISC2_0
-                       case "${sc_kernel_bits}" in
+                       case "$sc_kernel_bits" in
                          32) HP_ARCH=hppa2.0n ;;
                          64) HP_ARCH=hppa2.0w ;;
                          '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
                        esac ;;
                    esac
                fi
-               if [ "${HP_ARCH}" = "" ]; then
-                   eval $set_cc_for_build
-                   sed 's/^            //' << EOF >$dummy.c
+               if [ "$HP_ARCH" = "" ]; then
+                   eval "$set_cc_for_build"
+                   sed 's/^            //' << EOF > "$dummy.c"
 
                #define _HPUX_SOURCE
                #include <stdlib.h>
@@ -687,13 +694,13 @@ EOF
                    exit (0);
                }
 EOF
-                   (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+                   (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
                    test -z "$HP_ARCH" && HP_ARCH=hppa
                fi ;;
        esac
-       if [ ${HP_ARCH} = hppa2.0w ]
+       if [ "$HP_ARCH" = hppa2.0w ]
        then
-           eval $set_cc_for_build
+           eval "$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
@@ -712,15 +719,15 @@ EOF
                HP_ARCH=hppa64
            fi
        fi
-       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+       echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
        exit ;;
     ia64:HP-UX:*:*)
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       echo ia64-hp-hpux${HPUX_REV}
+       HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+       echo ia64-hp-hpux"$HPUX_REV"
        exit ;;
     3050*:HI-UX:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
+       eval "$set_cc_for_build"
+       sed 's/^        //' << EOF > "$dummy.c"
        #include <unistd.h>
        int
        main ()
@@ -745,7 +752,7 @@ EOF
          exit (0);
        }
 EOF
-       $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+       $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
                { echo "$SYSTEM_NAME"; exit; }
        echo unknown-hitachi-hiuxwe2
        exit ;;
@@ -766,9 +773,9 @@ EOF
        exit ;;
     i*86:OSF1:*:*)
        if [ -x /usr/sbin/sysversion ] ; then
-           echo ${UNAME_MACHINE}-unknown-osf1mk
+           echo "$UNAME_MACHINE"-unknown-osf1mk
        else
-           echo ${UNAME_MACHINE}-unknown-osf1
+           echo "$UNAME_MACHINE"-unknown-osf1
        fi
        exit ;;
     parisc*:Lites*:*:*)
@@ -793,109 +800,109 @@ EOF
        echo c4-convex-bsd
        exit ;;
     CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*[A-Z]90:*:*:*)
-       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+       echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
        | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
              -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
              -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*TS:*:*:*)
-       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*T3E:*:*:*)
-       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*SV1:*:*:*)
-       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     *:UNICOS/mp:*:*)
-       echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
        FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
        FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
-       FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+       FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     5000:UNIX_System_V:4.*:*)
        FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
-       FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+       FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
        exit ;;
     sparc*:BSD/OS:*:*)
-       echo sparc-unknown-bsdi${UNAME_RELEASE}
+       echo sparc-unknown-bsdi"$UNAME_RELEASE"
        exit ;;
     *:BSD/OS:*:*)
-       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
        exit ;;
     *:FreeBSD:*:*)
        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       case ${UNAME_PROCESSOR} in
+       case "$UNAME_PROCESSOR" in
            amd64)
                UNAME_PROCESSOR=x86_64 ;;
            i386)
                UNAME_PROCESSOR=i586 ;;
        esac
-       echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
        exit ;;
     i*:CYGWIN*:*)
-       echo ${UNAME_MACHINE}-pc-cygwin
+       echo "$UNAME_MACHINE"-pc-cygwin
        exit ;;
     *:MINGW64*:*)
-       echo ${UNAME_MACHINE}-pc-mingw64
+       echo "$UNAME_MACHINE"-pc-mingw64
        exit ;;
     *:MINGW*:*)
-       echo ${UNAME_MACHINE}-pc-mingw32
+       echo "$UNAME_MACHINE"-pc-mingw32
        exit ;;
     *:MSYS*:*)
-       echo ${UNAME_MACHINE}-pc-msys
+       echo "$UNAME_MACHINE"-pc-msys
        exit ;;
     i*:PW*:*)
-       echo ${UNAME_MACHINE}-pc-pw32
+       echo "$UNAME_MACHINE"-pc-pw32
        exit ;;
     *:Interix*:*)
-       case ${UNAME_MACHINE} in
+       case "$UNAME_MACHINE" in
            x86)
-               echo i586-pc-interix${UNAME_RELEASE}
+               echo i586-pc-interix"$UNAME_RELEASE"
                exit ;;
            authenticamd | genuineintel | EM64T)
-               echo x86_64-unknown-interix${UNAME_RELEASE}
+               echo x86_64-unknown-interix"$UNAME_RELEASE"
                exit ;;
            IA64)
-               echo ia64-unknown-interix${UNAME_RELEASE}
+               echo ia64-unknown-interix"$UNAME_RELEASE"
                exit ;;
        esac ;;
     i*:UWIN*:*)
-       echo ${UNAME_MACHINE}-pc-uwin
+       echo "$UNAME_MACHINE"-pc-uwin
        exit ;;
     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
        echo x86_64-unknown-cygwin
        exit ;;
     prep*:SunOS:5.*:*)
-       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
        exit ;;
     *:GNU:*:*)
        # the GNU system
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
        exit ;;
     *:GNU/*:*:*)
        # 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}
+       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
+       echo "$UNAME_MACHINE"-pc-minix
        exit ;;
     aarch64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     aarch64_be:Linux:*:*)
        UNAME_MACHINE=aarch64_be
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     alpha:Linux:*:*)
        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -909,63 +916,63 @@ EOF
        esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
        if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     arc:Linux:*:* | arceb:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     arm*:Linux:*:*)
-       eval $set_cc_for_build
+       eval "$set_cc_for_build"
        if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_EABI__
        then
-           echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+           echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        else
            if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
                | grep -q __ARM_PCS_VFP
            then
-               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+               echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
            else
-               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+               echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
            fi
        fi
        exit ;;
     avr32*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     cris:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+       echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
        exit ;;
     crisv32:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+       echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
        exit ;;
     e2k:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     frv:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     hexagon:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     i*86:Linux:*:*)
-       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
        exit ;;
     ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     k1om:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     m32r*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
+       eval "$set_cc_for_build"
+       sed 's/^        //' << EOF > "$dummy.c"
        #undef CPU
        #undef ${UNAME_MACHINE}
        #undef ${UNAME_MACHINE}el
@@ -979,70 +986,70 @@ EOF
        #endif
        #endif
 EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+       eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
+       test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
        ;;
     mips64el:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     openrisc*:Linux:*:*)
-       echo or1k-unknown-linux-${LIBC}
+       echo or1k-unknown-linux-"$LIBC"
        exit ;;
     or32:Linux:*:* | or1k*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     padre:Linux:*:*)
-       echo sparc-unknown-linux-${LIBC}
+       echo sparc-unknown-linux-"$LIBC"
        exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-${LIBC}
+       echo hppa64-unknown-linux-"$LIBC"
        exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
        # Look for CPU level
        case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
-         PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
-         *)    echo hppa-unknown-linux-${LIBC} ;;
+         PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
+         PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
+         *)    echo hppa-unknown-linux-"$LIBC" ;;
        esac
        exit ;;
     ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-${LIBC}
+       echo powerpc64-unknown-linux-"$LIBC"
        exit ;;
     ppc:Linux:*:*)
-       echo powerpc-unknown-linux-${LIBC}
+       echo powerpc-unknown-linux-"$LIBC"
        exit ;;
     ppc64le:Linux:*:*)
-       echo powerpc64le-unknown-linux-${LIBC}
+       echo powerpc64le-unknown-linux-"$LIBC"
        exit ;;
     ppcle:Linux:*:*)
-       echo powerpcle-unknown-linux-${LIBC}
+       echo powerpcle-unknown-linux-"$LIBC"
        exit ;;
     riscv32:Linux:*:* | riscv64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+       echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
        exit ;;
     sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     tile*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     vax:Linux:*:*)
-       echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+       echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
        exit ;;
     x86_64:Linux:*:*)
-       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
        exit ;;
     xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
        exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1056,34 +1063,34 @@ EOF
        # I am not positive that other SVR4 systems won't match this,
        # I just have to hope.  -- rms.
        # Use sysv4.2uw... so that sysv4* matches it.
-       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+       echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
        exit ;;
     i*86:OS/2:*:*)
        # If we were able to find `uname', then EMX Unix compatibility
        # is probably installed.
-       echo ${UNAME_MACHINE}-pc-os2-emx
+       echo "$UNAME_MACHINE"-pc-os2-emx
        exit ;;
     i*86:XTS-300:*:STOP)
-       echo ${UNAME_MACHINE}-unknown-stop
+       echo "$UNAME_MACHINE"-unknown-stop
        exit ;;
     i*86:atheos:*:*)
-       echo ${UNAME_MACHINE}-unknown-atheos
+       echo "$UNAME_MACHINE"-unknown-atheos
        exit ;;
     i*86:syllable:*:*)
-       echo ${UNAME_MACHINE}-pc-syllable
+       echo "$UNAME_MACHINE"-pc-syllable
        exit ;;
     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-       echo i386-unknown-lynxos${UNAME_RELEASE}
+       echo i386-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     i*86:*DOS:*:*)
-       echo ${UNAME_MACHINE}-pc-msdosdjgpp
+       echo "$UNAME_MACHINE"-pc-msdosdjgpp
        exit ;;
     i*86:*:4.*:*)
-       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+       UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+               echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
        else
-               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+               echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
        fi
        exit ;;
     i*86:*:5:[678]*)
@@ -1093,12 +1100,12 @@ EOF
            *Pentium)        UNAME_MACHINE=i586 ;;
            *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
        esac
-       echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
        exit ;;
     i*86:*:3.2:*)
        if test -f /usr/options/cb.name; then
                UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+               echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
        elif /bin/uname -X 2>/dev/null >/dev/null ; then
                UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
                (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1108,9 +1115,9 @@ EOF
                        && UNAME_MACHINE=i686
                (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
                        && UNAME_MACHINE=i686
-               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+               echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
        else
-               echo ${UNAME_MACHINE}-pc-sysv32
+               echo "$UNAME_MACHINE"-pc-sysv32
        fi
        exit ;;
     pc:*:*:*)
@@ -1130,9 +1137,9 @@ EOF
        exit ;;
     i860:*:4.*:*) # i860-SVR4
        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+         echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
        else # Add other i860-SVR4 vendors below as they are discovered.
-         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+         echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
        fi
        exit ;;
     mini*:CTIX:SYS*5:*)
@@ -1152,9 +1159,9 @@ EOF
        test -r /etc/.relid \
        && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-         && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+         && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-         && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+         && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
          && { echo i486-ncr-sysv4; exit; } ;;
@@ -1163,28 +1170,28 @@ EOF
        test -r /etc/.relid \
            && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-           && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+           && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-           && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+           && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
        /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
-           && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+           && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-       echo m68k-unknown-lynxos${UNAME_RELEASE}
+       echo m68k-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     mc68030:UNIX_System_V:4.*:*)
        echo m68k-atari-sysv4
        exit ;;
     TSUNAMI:LynxOS:2.*:*)
-       echo sparc-unknown-lynxos${UNAME_RELEASE}
+       echo sparc-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     rs6000:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos${UNAME_RELEASE}
+       echo rs6000-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-       echo powerpc-unknown-lynxos${UNAME_RELEASE}
+       echo powerpc-unknown-lynxos"$UNAME_RELEASE"
        exit ;;
     SM[BE]S:UNIX_SV:*:*)
-       echo mips-dde-sysv${UNAME_RELEASE}
+       echo mips-dde-sysv"$UNAME_RELEASE"
        exit ;;
     RM*:ReliantUNIX-*:*:*)
        echo mips-sni-sysv4
@@ -1195,7 +1202,7 @@ EOF
     *:SINIX-*:*:*)
        if uname -p 2>/dev/null >/dev/null ; then
                UNAME_MACHINE=`(uname -p) 2>/dev/null`
-               echo ${UNAME_MACHINE}-sni-sysv4
+               echo "$UNAME_MACHINE"-sni-sysv4
        else
                echo ns32k-sni-sysv
        fi
@@ -1215,23 +1222,23 @@ EOF
        exit ;;
     i*86:VOS:*:*)
        # From Paul.Green@stratus.com.
-       echo ${UNAME_MACHINE}-stratus-vos
+       echo "$UNAME_MACHINE"-stratus-vos
        exit ;;
     *:VOS:*:*)
        # From Paul.Green@stratus.com.
        echo hppa1.1-stratus-vos
        exit ;;
     mc68*:A/UX:*:*)
-       echo m68k-apple-aux${UNAME_RELEASE}
+       echo m68k-apple-aux"$UNAME_RELEASE"
        exit ;;
     news*:NEWS-OS:6*:*)
        echo mips-sony-newsos6
        exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
        if [ -d /usr/nec ]; then
-               echo mips-nec-sysv${UNAME_RELEASE}
+               echo mips-nec-sysv"$UNAME_RELEASE"
        else
-               echo mips-unknown-sysv${UNAME_RELEASE}
+               echo mips-unknown-sysv"$UNAME_RELEASE"
        fi
        exit ;;
     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
@@ -1250,39 +1257,39 @@ EOF
        echo x86_64-unknown-haiku
        exit ;;
     SX-4:SUPER-UX:*:*)
-       echo sx4-nec-superux${UNAME_RELEASE}
+       echo sx4-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-5:SUPER-UX:*:*)
-       echo sx5-nec-superux${UNAME_RELEASE}
+       echo sx5-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-6:SUPER-UX:*:*)
-       echo sx6-nec-superux${UNAME_RELEASE}
+       echo sx6-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-7:SUPER-UX:*:*)
-       echo sx7-nec-superux${UNAME_RELEASE}
+       echo sx7-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-8:SUPER-UX:*:*)
-       echo sx8-nec-superux${UNAME_RELEASE}
+       echo sx8-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-8R:SUPER-UX:*:*)
-       echo sx8r-nec-superux${UNAME_RELEASE}
+       echo sx8r-nec-superux"$UNAME_RELEASE"
        exit ;;
     SX-ACE:SUPER-UX:*:*)
-       echo sxace-nec-superux${UNAME_RELEASE}
+       echo sxace-nec-superux"$UNAME_RELEASE"
        exit ;;
     Power*:Rhapsody:*:*)
-       echo powerpc-apple-rhapsody${UNAME_RELEASE}
+       echo powerpc-apple-rhapsody"$UNAME_RELEASE"
        exit ;;
     *:Rhapsody:*:*)
-       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
        exit ;;
     *:Darwin:*:*)
        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       eval $set_cc_for_build
+       eval "$set_cc_for_build"
        if test "$UNAME_PROCESSOR" = unknown ; then
            UNAME_PROCESSOR=powerpc
        fi
-       if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+       if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
            if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
                if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
                       (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
@@ -1310,7 +1317,7 @@ EOF
            # that Apple uses in portable devices.
            UNAME_PROCESSOR=x86_64
        fi
-       echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+       echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
        exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
        UNAME_PROCESSOR=`uname -p`
@@ -1318,22 +1325,25 @@ EOF
                UNAME_PROCESSOR=i386
                UNAME_MACHINE=pc
        fi
-       echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+       echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
        exit ;;
     *:QNX:*:4*)
        echo i386-pc-qnx
        exit ;;
     NEO-*:NONSTOP_KERNEL:*:*)
-       echo neo-tandem-nsk${UNAME_RELEASE}
+       echo neo-tandem-nsk"$UNAME_RELEASE"
        exit ;;
     NSE-*:NONSTOP_KERNEL:*:*)
-       echo nse-tandem-nsk${UNAME_RELEASE}
+       echo nse-tandem-nsk"$UNAME_RELEASE"
        exit ;;
     NSR-*:NONSTOP_KERNEL:*:*)
-       echo nsr-tandem-nsk${UNAME_RELEASE}
+       echo nsr-tandem-nsk"$UNAME_RELEASE"
+       exit ;;
+    NSV-*:NONSTOP_KERNEL:*:*)
+       echo nsv-tandem-nsk"$UNAME_RELEASE"
        exit ;;
     NSX-*:NONSTOP_KERNEL:*:*)
-       echo nsx-tandem-nsk${UNAME_RELEASE}
+       echo nsx-tandem-nsk"$UNAME_RELEASE"
        exit ;;
     *:NonStop-UX:*:*)
        echo mips-compaq-nonstopux
@@ -1342,7 +1352,7 @@ EOF
        echo bs2000-siemens-sysv
        exit ;;
     DS/*:UNIX_System_V:*:*)
-       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+       echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
        exit ;;
     *:Plan9:*:*)
        # "uname -m" is not consistent, so use $cputype instead. 386
@@ -1353,7 +1363,7 @@ EOF
        else
            UNAME_MACHINE="$cputype"
        fi
-       echo ${UNAME_MACHINE}-unknown-plan9
+       echo "$UNAME_MACHINE"-unknown-plan9
        exit ;;
     *:TOPS-10:*:*)
        echo pdp10-unknown-tops10
@@ -1374,14 +1384,14 @@ EOF
        echo pdp10-unknown-its
        exit ;;
     SEI:*:*:SEIUX)
-       echo mips-sei-seiux${UNAME_RELEASE}
+       echo mips-sei-seiux"$UNAME_RELEASE"
        exit ;;
     *:DragonFly:*:*)
-       echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
        exit ;;
     *:*VMS:*:*)
        UNAME_MACHINE=`(uname -p) 2>/dev/null`
-       case "${UNAME_MACHINE}" in
+       case "$UNAME_MACHINE" in
            A*) echo alpha-dec-vms ; exit ;;
            I*) echo ia64-dec-vms ; exit ;;
            V*) echo vax-dec-vms ; exit ;;
@@ -1390,16 +1400,16 @@ EOF
        echo i386-pc-xenix
        exit ;;
     i*86:skyos:*:*)
-       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
+       echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
        exit ;;
     i*86:rdos:*:*)
-       echo ${UNAME_MACHINE}-pc-rdos
+       echo "$UNAME_MACHINE"-pc-rdos
        exit ;;
     i*86:AROS:*:*)
-       echo ${UNAME_MACHINE}-pc-aros
+       echo "$UNAME_MACHINE"-pc-aros
        exit ;;
     x86_64:VMkernel:*:*)
-       echo ${UNAME_MACHINE}-unknown-esx
+       echo "$UNAME_MACHINE"-unknown-esx
        exit ;;
     amd64:Isilon\ OneFS:*:*)
        echo x86_64-unknown-onefs
@@ -1408,7 +1418,7 @@ esac
 
 echo "$0: unable to guess system type" >&2
 
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in
+case "$UNAME_MACHINE:$UNAME_SYSTEM" in
     mips:Linux | mips64:Linux)
        # If we got here on MIPS GNU/Linux, output extra information.
        cat >&2 <<EOF
@@ -1450,16 +1460,16 @@ hostinfo               = `(hostinfo) 2>/dev/null`
 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
 
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM  = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
 EOF
 
 exit 1
 
 # Local variables:
-# eval: (add-hook 'write-file-functions 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
old mode 100644 (file)
new mode 100755 (executable)
index b6c4d8f..fc5913d
@@ -2,27 +2,13 @@
 # Output a system dependent set of variables, describing how to set the
 # run time search path of shared libraries in an executable.
 #
-#   Copyright 1996-2003 Free Software Foundation, Inc.
+#   Copyright 1996-2018 Free Software Foundation, Inc.
 #   Taken from GNU libtool, 2001
 #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 #
-#   This program is free software: you can redistribute it and/or modify
-#   it under the terms of the GNU General Public License as published by
-#   the Free Software Foundation, either version 3 of the License, or
-#   (at your option) any later version.
-#
-#   This program is distributed in the hope that it will be useful,
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#   GNU General Public License for more details.
-#
-#   You should have received a copy of the GNU General Public License
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-#   As a special exception to the GNU General Public License, if you
-#   distribute this file as part of a program that contains a
-#   configuration script generated by Autoconf, you may include it under
-#   the same distribution terms that you use for the rest of that program.
+#   This file is free software; the Free Software Foundation gives
+#   unlimited permission to copy and/or distribute it, with or without
+#   modifications, as long as this notice is preserved.
 #
 # The first argument passed to this file is the canonical host specification,
 #    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
@@ -39,7 +25,7 @@
 #   known workaround is to choose shorter directory names for the build
 #   directory and/or the installation directory.
 
-# All known linkers require a `.a' archive for static linking (except M$VC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
 # which needs '.lib').
 libext=a
 shrext=.so
@@ -49,7 +35,19 @@ host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
 host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
 host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+# Code taken from libtool.m4's _LT_CC_BASENAME.
+
+for cc_temp in $CC""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
+
+# Code taken from libtool.m4's _LT_COMPILER_PIC.
 
 wl=
 if test "$GCC" = yes; then
@@ -59,7 +57,7 @@ else
     aix*)
       wl='-Wl,'
       ;;
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
       ;;
     hpux9* | hpux10* | hpux11*)
       wl='-Wl,'
@@ -67,40 +65,83 @@ else
     irix5* | irix6* | nonstopux*)
       wl='-Wl,'
       ;;
-    newsos6)
-      ;;
-    linux*)
-      case $CC in
-        icc|ecc)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+        ecc*)
+          wl='-Wl,'
+          ;;
+        icc* | ifort*)
+          wl='-Wl,'
+          ;;
+        lf95*)
+          wl='-Wl,'
+          ;;
+        nagfor*)
+          wl='-Wl,-Wl,,'
+          ;;
+        pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+          wl='-Wl,'
+          ;;
+        ccc*)
           wl='-Wl,'
           ;;
-        ccc)
+        xl* | bgxl* | bgf* | mpixl*)
           wl='-Wl,'
           ;;
+        como)
+          wl='-lopt='
+          ;;
+        *)
+          case `$CC -V 2>&1 | sed 5q` in
+            *Sun\ F* | *Sun*Fortran*)
+              wl=
+              ;;
+            *Sun\ C*)
+              wl='-Wl,'
+              ;;
+          esac
+          ;;
       esac
       ;;
+    newsos6)
+      ;;
+    *nto* | *qnx*)
+      ;;
     osf3* | osf4* | osf5*)
       wl='-Wl,'
       ;;
-    sco3.2v5*)
+    rdos*)
       ;;
     solaris*)
-      wl='-Wl,'
+      case $cc_basename in
+        f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+          wl='-Qoption ld '
+          ;;
+        *)
+          wl='-Wl,'
+          ;;
+      esac
       ;;
     sunos4*)
       wl='-Qoption ld '
       ;;
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    sysv4 | sysv4.2uw2* | sysv4.3*)
       wl='-Wl,'
       ;;
     sysv4*MP*)
       ;;
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      wl='-Wl,'
+      ;;
+    unicos*)
+      wl='-Wl,'
+      ;;
     uts4*)
       ;;
   esac
 fi
 
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
 
 hardcode_libdir_flag_spec=
 hardcode_libdir_separator=
@@ -108,7 +149,7 @@ hardcode_direct=no
 hardcode_minus_L=no
 
 case "$host_os" in
-  cygwin* | mingw* | pw32*)
+  cygwin* | mingw* | pw32* | cegcc*)
     # FIXME: the MSVC++ port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
     # Microsoft Visual C++.
@@ -116,6 +157,10 @@ case "$host_os" in
       with_gnu_ld=no
     fi
     ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
   openbsd*)
     with_gnu_ld=no
     ;;
@@ -123,32 +168,37 @@ esac
 
 ld_shlibs=yes
 if test "$with_gnu_ld" = yes; then
+  # Set some defaults for GNU ld with shared library support. These
+  # are reset later if shared libraries are not supported. Putting them
+  # here allows them to be overridden if necessary.
+  # Unlike libtool, we use -rpath here, not --rpath, since the documented
+  # option of GNU ld is called -rpath, not --rpath.
+  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
   case "$host_os" in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
         ld_shlibs=no
       fi
       ;;
     amigaos*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can use
-      # them.
-      ld_shlibs=no
+      case "$host_cpu" in
+        powerpc)
+          ;;
+        m68k)
+          hardcode_libdir_flag_spec='-L$libdir'
+          hardcode_minus_L=yes
+          ;;
+      esac
       ;;
     beos*)
-      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
         :
       else
         ld_shlibs=no
       fi
       ;;
-    cygwin* | mingw* | pw32*)
+    cygwin* | mingw* | pw32* | cegcc*)
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
       hardcode_libdir_flag_spec='-L$libdir'
@@ -158,32 +208,57 @@ if test "$with_gnu_ld" = yes; then
         ld_shlibs=no
       fi
       ;;
+    haiku*)
+      ;;
+    interix[3-9]*)
+      hardcode_direct=no
+      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      ;;
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
     netbsd*)
       ;;
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
         ld_shlibs=no
-      elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
         :
       else
         ld_shlibs=no
       fi
       ;;
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+          ld_shlibs=no
+          ;;
+        *)
+          if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+            hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+          else
+            ld_shlibs=no
+          fi
+          ;;
+      esac
+      ;;
     sunos4*)
       hardcode_direct=yes
       ;;
     *)
-      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
         :
       else
         ld_shlibs=no
       fi
       ;;
   esac
-  if test "$ld_shlibs" = yes; then
-    # Unlike libtool, we use -rpath here, not --rpath, since the documented
-    # option of GNU ld is called -rpath, not --rpath.
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+  if test "$ld_shlibs" = no; then
+    hardcode_libdir_flag_spec=
   fi
 else
   case "$host_os" in
@@ -197,7 +272,7 @@ else
         hardcode_direct=unsupported
       fi
       ;;
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
         # On IA64, the linker does run time linking by default, so we don't
         # have to do anything special.
@@ -207,13 +282,14 @@ else
         # Test if we are trying to use run time linking or normal
         # AIX style linking. If -brtl is somewhere in LDFLAGS, we
         # need to do runtime linking.
-        case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+        case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
           for ld_flag in $LDFLAGS; do
             if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
               aix_use_runtimelinking=yes
               break
             fi
           done
+          ;;
         esac
       fi
       hardcode_direct=yes
@@ -225,7 +301,7 @@ else
             strings "$collect2name" | grep resolve_lib_name >/dev/null
           then
             # We have reworked collect2
-            hardcode_direct=yes
+            :
           else
             # We have old collect2
             hardcode_direct=unsupported
@@ -233,6 +309,7 @@ else
             hardcode_libdir_flag_spec='-L$libdir'
             hardcode_libdir_separator=
           fi
+          ;;
         esac
       fi
       # Begin _LT_AC_SYS_LIBPATH_AIX.
@@ -260,14 +337,18 @@ else
       fi
       ;;
     amigaos*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs=no
+      case "$host_cpu" in
+        powerpc)
+          ;;
+        m68k)
+          hardcode_libdir_flag_spec='-L$libdir'
+          hardcode_minus_L=yes
+          ;;
+      esac
       ;;
-    bsdi4*)
+    bsdi[45]*)
       ;;
-    cygwin* | mingw* | pw32*)
+    cygwin* | mingw* | pw32* | cegcc*)
       # When not using gcc, we currently assume that we are using
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -276,25 +357,21 @@ else
       libext=lib
       ;;
     darwin* | rhapsody*)
-      if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then
-        hardcode_direct=no
+      hardcode_direct=no
+      if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then
+        :
+      else
+        ld_shlibs=no
       fi
       ;;
     dgux*)
       hardcode_libdir_flag_spec='-L$libdir'
       ;;
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-    freebsd2.2*)
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      ;;
-    freebsd2*)
+    freebsd2.[01]*)
       hardcode_direct=yes
       hardcode_minus_L=yes
       ;;
-    freebsd*)
+    freebsd* | dragonfly*)
       hardcode_libdir_flag_spec='-R$libdir'
       hardcode_direct=yes
       ;;
@@ -306,24 +383,25 @@ else
       # but as the default location of the library.
       hardcode_minus_L=yes
       ;;
-    hpux10* | hpux11*)
+    hpux10*)
       if test "$with_gnu_ld" = no; then
-        case "$host_cpu" in
-          hppa*64*)
-            hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-            hardcode_libdir_separator=:
-            hardcode_direct=no
-            ;;
-          ia64*)
-            hardcode_libdir_flag_spec='-L$libdir'
+        hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+        hardcode_libdir_separator=:
+        hardcode_direct=yes
+        # hardcode_minus_L: Not really in the search PATH,
+        # but as the default location of the library.
+        hardcode_minus_L=yes
+      fi
+      ;;
+    hpux11*)
+      if test "$with_gnu_ld" = no; then
+        hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+        hardcode_libdir_separator=:
+        case $host_cpu in
+          hppa*64*|ia64*)
             hardcode_direct=no
-            # hardcode_minus_L: Not really in the search PATH,
-            # but as the default location of the library.
-            hardcode_minus_L=yes
             ;;
           *)
-            hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-            hardcode_libdir_separator=:
             hardcode_direct=yes
             # hardcode_minus_L: Not really in the search PATH,
             # but as the default location of the library.
@@ -345,19 +423,25 @@ else
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
       hardcode_libdir_separator=:
       ;;
+    *nto* | *qnx*)
+      ;;
     openbsd*)
-      hardcode_direct=yes
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      if test -f /usr/libexec/ld.so; then
+        hardcode_direct=yes
+        if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+          hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+        else
+          case "$host_os" in
+            openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+              hardcode_libdir_flag_spec='-R$libdir'
+              ;;
+            *)
+              hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+              ;;
+          esac
+        fi
       else
-        case "$host_os" in
-          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-            hardcode_libdir_flag_spec='-R$libdir'
-            ;;
-          *)
-            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-            ;;
-        esac
+        ld_shlibs=no
       fi
       ;;
     os2*)
@@ -377,8 +461,6 @@ else
       fi
       hardcode_libdir_separator=:
       ;;
-    sco3.2v5*)
-      ;;
     solaris*)
       hardcode_libdir_flag_spec='-R$libdir'
       ;;
@@ -407,14 +489,11 @@ else
         ld_shlibs=yes
       fi
       ;;
-    sysv4.2uw2*)
-      hardcode_direct=yes
-      hardcode_minus_L=no
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
       ;;
-    sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      ;;
-    sysv5*)
-      hardcode_libdir_flag_spec=
+    sysv5* | sco3.2v5* | sco5v6*)
+      hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator=':'
       ;;
     uts4*)
       hardcode_libdir_flag_spec='-L$libdir'
@@ -426,35 +505,59 @@ else
 fi
 
 # Check dynamic linker characteristics
-# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
+# Unlike libtool.m4, here we don't care about _all_ names of the library, but
+# only about the one the linker finds when passed -lNAME. This is the last
+# element of library_names_spec in libtool.m4, or possibly two of them if the
+# linker has special search rules.
+library_names_spec=      # the last element of library_names_spec in libtool.m4
 libname_spec='lib$name'
 case "$host_os" in
   aix3*)
+    library_names_spec='$libname.a'
     ;;
-  aix4* | aix5*)
+  aix[4-9]*)
+    library_names_spec='$libname$shrext'
     ;;
   amigaos*)
+    case "$host_cpu" in
+      powerpc*)
+        library_names_spec='$libname$shrext' ;;
+      m68k)
+        library_names_spec='$libname.a' ;;
+    esac
     ;;
   beos*)
+    library_names_spec='$libname$shrext'
     ;;
-  bsdi4*)
+  bsdi[45]*)
+    library_names_spec='$libname$shrext'
     ;;
-  cygwin* | mingw* | pw32*)
+  cygwin* | mingw* | pw32* | cegcc*)
     shrext=.dll
+    library_names_spec='$libname.dll.a $libname.lib'
     ;;
   darwin* | rhapsody*)
     shrext=.dylib
+    library_names_spec='$libname$shrext'
     ;;
   dgux*)
+    library_names_spec='$libname$shrext'
     ;;
-  freebsd1*)
+  freebsd[23].*)
+    library_names_spec='$libname$shrext$versuffix'
     ;;
-  freebsd*)
+  freebsd* | dragonfly*)
+    library_names_spec='$libname$shrext'
     ;;
   gnu*)
+    library_names_spec='$libname$shrext'
+    ;;
+  haiku*)
+    library_names_spec='$libname$shrext'
     ;;
   hpux9* | hpux10* | hpux11*)
-    case "$host_cpu" in
+    case $host_cpu in
       ia64*)
         shrext=.so
         ;;
@@ -465,8 +568,13 @@ case "$host_os" in
         shrext=.sl
         ;;
     esac
+    library_names_spec='$libname$shrext'
+    ;;
+  interix[3-9]*)
+    library_names_spec='$libname$shrext'
     ;;
   irix5* | irix6* | nonstopux*)
+    library_names_spec='$libname$shrext'
     case "$host_os" in
       irix5* | nonstopux*)
         libsuff= shlibsuff=
@@ -483,42 +591,65 @@ case "$host_os" in
     ;;
   linux*oldld* | linux*aout* | linux*coff*)
     ;;
-  linux*)
+  linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    library_names_spec='$libname$shrext'
+    ;;
+  knetbsd*-gnu)
+    library_names_spec='$libname$shrext'
     ;;
   netbsd*)
+    library_names_spec='$libname$shrext'
     ;;
   newsos6)
+    library_names_spec='$libname$shrext'
     ;;
-  nto-qnx)
+  *nto* | *qnx*)
+    library_names_spec='$libname$shrext'
     ;;
   openbsd*)
+    library_names_spec='$libname$shrext$versuffix'
     ;;
   os2*)
     libname_spec='$name'
     shrext=.dll
+    library_names_spec='$libname.a'
     ;;
   osf3* | osf4* | osf5*)
+    library_names_spec='$libname$shrext'
     ;;
-  sco3.2v5*)
+  rdos*)
     ;;
   solaris*)
+    library_names_spec='$libname$shrext'
     ;;
   sunos4*)
+    library_names_spec='$libname$shrext$versuffix'
     ;;
-  sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  sysv4 | sysv4.3*)
+    library_names_spec='$libname$shrext'
     ;;
   sysv4*MP*)
+    library_names_spec='$libname$shrext'
+    ;;
+  sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+    library_names_spec='$libname$shrext'
+    ;;
+  tpf*)
+    library_names_spec='$libname$shrext'
     ;;
   uts4*)
+    library_names_spec='$libname$shrext'
     ;;
 esac
 
 sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
 escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
 shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
 escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
 
-sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
 
 # How to pass a linker flag through the compiler.
 wl="$escaped_wl"
@@ -529,6 +660,12 @@ libext="$libext"
 # Shared library suffix (normally "so").
 shlibext="$shlibext"
 
+# Format of library name prefix.
+libname_spec="$escaped_libname_spec"
+
+# Library names that the linker finds when passed -lNAME.
+library_names_spec="$escaped_library_names_spec"
+
 # Flag to hardcode \$libdir into a binary during linking.
 # This must work even if \$libdir does not exist.
 hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
old mode 100644 (file)
new mode 100755 (executable)
index 00f68b8..f38250f
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2017 Free Software Foundation, Inc.
+#   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2017-11-23'
+timestamp='2018-05-19'
 
 # 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
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2017 Free Software Foundation, Inc.
+Copyright 1992-2018 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -94,7 +94,7 @@ while test $# -gt 0 ; do
 
     *local*)
        # First pass through any local machine types.
-       echo $1
+       echo "$1"
        exit ;;
 
     * )
@@ -110,28 +110,434 @@ case $# in
     exit 1;;
 esac
 
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
-  kopensolaris*-gnu* | cloudabi*-eabi* | \
-  storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  android-linux)
-    os=-linux-android
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
+# Split fields of configuration type
+IFS="-" read -r field1 field2 field3 field4 <<EOF
+$1
+EOF
+
+# Separate into logical components for further validation
+case $1 in
+       *-*-*-*-*)
+               echo Invalid configuration \`"$1"\': more than four components >&2
+               exit 1
+               ;;
+       *-*-*-*)
+               basic_machine=$field1-$field2
+               os=$field3-$field4
+               ;;
+       *-*-*)
+               # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+               # parts
+               maybe_os=$field2-$field3
+               case $maybe_os in
+                       nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
+                       | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
+                       | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+                       | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+                       | storm-chaos* | os2-emx* | rtmk-nova*)
+                               basic_machine=$field1
+                               os=$maybe_os
+                               ;;
+                       android-linux)
+                               basic_machine=$field1-unknown
+                               os=linux-android
+                               ;;
+                       *)
+                               basic_machine=$field1-$field2
+                               os=$field3
+                               ;;
+               esac
+               ;;
+       *-*)
+               basic_machine=$field1
+               os=$field2
+               ;;
+       *)
+               # Convert single-component short-hands not valid as part of
+               # multi-component configurations.
+               case $field1 in
+                       386bsd)
+                               basic_machine=i386-pc
+                               os=bsd
+                               ;;
+                       a29khif)
+                               basic_machine=a29k-amd
+                               os=udi
+                               ;;
+                       adobe68k)
+                               basic_machine=m68010-adobe
+                               os=scout
+                               ;;
+                       am29k)
+                               basic_machine=a29k-none
+                               os=bsd
+                               ;;
+                       amdahl)
+                               basic_machine=580-amdahl
+                               os=sysv
+                               ;;
+                       amigaos | amigados)
+                               basic_machine=m68k-unknown
+                               os=amigaos
+                               ;;
+                       amigaunix | amix)
+                               basic_machine=m68k-unknown
+                               os=sysv4
+                               ;;
+                       apollo68)
+                               basic_machine=m68k-apollo
+                               os=sysv
+                               ;;
+                       apollo68bsd)
+                               basic_machine=m68k-apollo
+                               os=bsd
+                               ;;
+                       aros)
+                               basic_machine=i386-pc
+                               os=aros
+                               ;;
+                       aux)
+                               basic_machine=m68k-apple
+                               os=aux
+                               ;;
+                       balance)
+                               basic_machine=ns32k-sequent
+                               os=dynix
+                               ;;
+                       blackfin)
+                               basic_machine=bfin-unknown
+                               os=linux
+                               ;;
+                       cegcc)
+                               basic_machine=arm-unknown
+                               os=cegcc
+                               ;;
+                       cray)
+                               basic_machine=j90-cray
+                               os=unicos
+                               ;;
+                       craynv)
+                               basic_machine=craynv-cray
+                               os=unicosmp
+                               ;;
+                       delta88)
+                               basic_machine=m88k-motorola
+                               os=sysv3
+                               ;;
+                       dicos)
+                               basic_machine=i686-pc
+                               os=dicos
+                               ;;
+                       djgpp)
+                               basic_machine=i586-pc
+                               os=msdosdjgpp
+                               ;;
+                       ebmon29k)
+                               basic_machine=a29k-amd
+                               os=ebmon
+                               ;;
+                       es1800 | OSE68k | ose68k | ose | OSE)
+                               basic_machine=m68k-ericsson
+                               os=ose
+                               ;;
+                       gmicro)
+                               basic_machine=tron-gmicro
+                               os=sysv
+                               ;;
+                       go32)
+                               basic_machine=i386-pc
+                               os=go32
+                               ;;
+                       h8300hms)
+                               basic_machine=h8300-hitachi
+                               os=hms
+                               ;;
+                       h8300xray)
+                               basic_machine=h8300-hitachi
+                               os=xray
+                               ;;
+                       h8500hms)
+                               basic_machine=h8500-hitachi
+                               os=hms
+                               ;;
+                       harris)
+                               basic_machine=m88k-harris
+                               os=sysv3
+                               ;;
+                       hp300bsd)
+                               basic_machine=m68k-hp
+                               os=bsd
+                               ;;
+                       hp300hpux)
+                               basic_machine=m68k-hp
+                               os=hpux
+                               ;;
+                       hppaosf)
+                               basic_machine=hppa1.1-hp
+                               os=osf
+                               ;;
+                       hppro)
+                               basic_machine=hppa1.1-hp
+                               os=proelf
+                               ;;
+                       i386mach)
+                               basic_machine=i386-mach
+                               os=mach
+                               ;;
+                       vsta)
+                               basic_machine=i386-unknown
+                               os=vsta
+                               ;;
+                       isi68 | isi)
+                               basic_machine=m68k-isi
+                               os=sysv
+                               ;;
+                       m68knommu)
+                               basic_machine=m68k-unknown
+                               os=linux
+                               ;;
+                       magnum | m3230)
+                               basic_machine=mips-mips
+                               os=sysv
+                               ;;
+                       merlin)
+                               basic_machine=ns32k-utek
+                               os=sysv
+                               ;;
+                       mingw64)
+                               basic_machine=x86_64-pc
+                               os=mingw64
+                               ;;
+                       mingw32)
+                               basic_machine=i686-pc
+                               os=mingw32
+                               ;;
+                       mingw32ce)
+                               basic_machine=arm-unknown
+                               os=mingw32ce
+                               ;;
+                       monitor)
+                               basic_machine=m68k-rom68k
+                               os=coff
+                               ;;
+                       morphos)
+                               basic_machine=powerpc-unknown
+                               os=morphos
+                               ;;
+                       moxiebox)
+                               basic_machine=moxie-unknown
+                               os=moxiebox
+                               ;;
+                       msdos)
+                               basic_machine=i386-pc
+                               os=msdos
+                               ;;
+                       msys)
+                               basic_machine=i686-pc
+                               os=msys
+                               ;;
+                       mvs)
+                               basic_machine=i370-ibm
+                               os=mvs
+                               ;;
+                       nacl)
+                               basic_machine=le32-unknown
+                               os=nacl
+                               ;;
+                       ncr3000)
+                               basic_machine=i486-ncr
+                               os=sysv4
+                               ;;
+                       netbsd386)
+                               basic_machine=i386-unknown
+                               os=netbsd
+                               ;;
+                       netwinder)
+                               basic_machine=armv4l-rebel
+                               os=linux
+                               ;;
+                       news | news700 | news800 | news900)
+                               basic_machine=m68k-sony
+                               os=newsos
+                               ;;
+                       news1000)
+                               basic_machine=m68030-sony
+                               os=newsos
+                               ;;
+                       necv70)
+                               basic_machine=v70-nec
+                               os=sysv
+                               ;;
+                       nh3000)
+                               basic_machine=m68k-harris
+                               os=cxux
+                               ;;
+                       nh[45]000)
+                               basic_machine=m88k-harris
+                               os=cxux
+                               ;;
+                       nindy960)
+                               basic_machine=i960-intel
+                               os=nindy
+                               ;;
+                       mon960)
+                               basic_machine=i960-intel
+                               os=mon960
+                               ;;
+                       nonstopux)
+                               basic_machine=mips-compaq
+                               os=nonstopux
+                               ;;
+                       os400)
+                               basic_machine=powerpc-ibm
+                               os=os400
+                               ;;
+                       OSE68000 | ose68000)
+                               basic_machine=m68000-ericsson
+                               os=ose
+                               ;;
+                       os68k)
+                               basic_machine=m68k-none
+                               os=os68k
+                               ;;
+                       paragon)
+                               basic_machine=i860-intel
+                               os=osf
+                               ;;
+                       parisc)
+                               basic_machine=hppa-unknown
+                               os=linux
+                               ;;
+                       pw32)
+                               basic_machine=i586-unknown
+                               os=pw32
+                               ;;
+                       rdos | rdos64)
+                               basic_machine=x86_64-pc
+                               os=rdos
+                               ;;
+                       rdos32)
+                               basic_machine=i386-pc
+                               os=rdos
+                               ;;
+                       rom68k)
+                               basic_machine=m68k-rom68k
+                               os=coff
+                               ;;
+                       sa29200)
+                               basic_machine=a29k-amd
+                               os=udi
+                               ;;
+                       sei)
+                               basic_machine=mips-sei
+                               os=seiux
+                               ;;
+                       sps7)
+                               basic_machine=m68k-bull
+                               os=sysv2
+                               ;;
+                       stratus)
+                               basic_machine=i860-stratus
+                               os=sysv4
+                               ;;
+                       sun2os3)
+                               basic_machine=m68000-sun
+                               os=sunos3
+                               ;;
+                       sun2os4)
+                               basic_machine=m68000-sun
+                               os=sunos4
+                               ;;
+                       sun3os3)
+                               basic_machine=m68k-sun
+                               os=sunos3
+                               ;;
+                       sun3os4)
+                               basic_machine=m68k-sun
+                               os=sunos4
+                               ;;
+                       sun4os3)
+                               basic_machine=sparc-sun
+                               os=sunos3
+                               ;;
+                       sun4os4)
+                               basic_machine=sparc-sun
+                               os=sunos4
+                               ;;
+                       sun4sol2)
+                               basic_machine=sparc-sun
+                               os=solaris2
+                               ;;
+                       sv1)
+                               basic_machine=sv1-cray
+                               os=unicos
+                               ;;
+                       symmetry)
+                               basic_machine=i386-sequent
+                               os=dynix
+                               ;;
+                       t3e)
+                               basic_machine=alphaev5-cray
+                               os=unicos
+                               ;;
+                       t90)
+                               basic_machine=t90-cray
+                               os=unicos
+                               ;;
+                       toad1)
+                               basic_machine=pdp10-xkl
+                               os=tops20
+                               ;;
+                       tpf)
+                               basic_machine=s390x-ibm
+                               os=tpf
+                               ;;
+                       udi29k)
+                               basic_machine=a29k-amd
+                               os=udi
+                               ;;
+                       ultra3)
+                               basic_machine=a29k-nyu
+                               os=sym1
+                               ;;
+                       v810 | necv810)
+                               basic_machine=v810-nec
+                               os=none
+                               ;;
+                       vaxv)
+                               basic_machine=vax-dec
+                               os=sysv
+                               ;;
+                       vms)
+                               basic_machine=vax-dec
+                               os=vms
+                               ;;
+                       vxworks960)
+                               basic_machine=i960-wrs
+                               os=vxworks
+                               ;;
+                       vxworks68)
+                               basic_machine=m68k-wrs
+                               os=vxworks
+                               ;;
+                       vxworks29k)
+                               basic_machine=a29k-wrs
+                               os=vxworks
+                               ;;
+                       xbox)
+                               basic_machine=i686-pc
+                               os=mingw32
+                               ;;
+                       ymp)
+                               basic_machine=ymp-cray
+                               os=unicos
+                               ;;
+                       *)
+                               basic_machine=$1
+                               os=
+                               ;;
+               esac
+               ;;
 esac
 
 ### Let's recognize common machines as not being operating systems so
@@ -139,102 +545,102 @@ esac
 ### recognize some manufacturers as not being operating systems, so we
 ### can provide default operating systems below.
 case $os in
-       -sun*os*)
+       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*)
+       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
+       bluegene*)
+               os=cnk
                ;;
-       -sim | -cisco | -oki | -wec | -winbond)
+       sim | cisco | oki | wec | winbond)
                os=
                basic_machine=$1
                ;;
-       -scout)
+       scout)
                ;;
-       -wrs)
-               os=-vxworks
+       wrs)
+               os=vxworks
                basic_machine=$1
                ;;
-       -chorusos*)
-               os=-chorusos
+       chorusos*)
+               os=chorusos
                basic_machine=$1
                ;;
-       -chorusrdb)
-               os=-chorusrdb
+       chorusrdb)
+               os=chorusrdb
                basic_machine=$1
                ;;
-       -hiux*)
-               os=-hiuxwe2
+       hiux*)
+               os=hiuxwe2
                ;;
-       -sco6)
-               os=-sco5v6
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+       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/'`
+       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/'`
+       sco4)
+               os=sco3.2v4
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -sco3.2.[4-9]*)
+       sco3.2.[4-9]*)
                os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -sco3.2v[4-9]*)
+       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/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -sco5v6*)
+       sco5v6*)
                # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -sco*)
-               os=-sco3.2v2
-               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/'`
+       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/'`
+       isc)
+               os=isc2.2
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -clix*)
+       clix*)
                basic_machine=clipper-intergraph
                ;;
-       -isc*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+       isc*)
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
                ;;
-       -lynx*178)
-               os=-lynxos178
+       lynx*178)
+               os=lynxos178
                ;;
-       -lynx*5)
-               os=-lynxos5
+       lynx*5)
+               os=lynxos5
                ;;
-       -lynx*)
-               os=-lynxos
+       lynx*)
+               os=lynxos
                ;;
-       -ptx*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+       ptx*)
+               basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
                ;;
-       -psos*)
-               os=-psos
+       psos*)
+               os=psos
                ;;
-       -mint | -mint[0-9]*)
+       mint | mint[0-9]*)
                basic_machine=m68k-atari
-               os=-mint
+               os=mint
                ;;
 esac
 
@@ -249,12 +655,12 @@ case $basic_machine in
        | 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] | armv7[arm] \
+       | 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 \
+       | c4x | c8051 | clipper | csky \
        | d10v | d30v | dlx | dsp16xx \
        | e2k | epiphany \
        | fido | fr30 | frv | ft32 \
@@ -293,10 +699,11 @@ case $basic_machine in
        | mt \
        | msp430 \
        | nds32 | nds32le | nds32be \
+       | nfp \
        | nios | nios2 | nios2eb | nios2el \
        | ns16k | ns32k \
        | open8 | or1k | or1knd | or32 \
-       | pdp10 | pdp11 | pj | pjl \
+       | pdp10 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pru \
        | pyramid \
@@ -331,20 +738,23 @@ case $basic_machine in
                ;;
        m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
                basic_machine=$basic_machine-unknown
-               os=-none
+               os=${os:-none}
+               ;;
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
                ;;
-       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+       m9s12z | m68hcs12z | hcs12z | s12z)
+               basic_machine=s12z-unknown
+               os=${os:-none}
                ;;
        ms1)
                basic_machine=mt-unknown
                ;;
-
        strongarm | thumb | xscale)
                basic_machine=arm-unknown
                ;;
        xgate)
                basic_machine=$basic_machine-unknown
-               os=-none
+               os=${os:-none}
                ;;
        xscaleeb)
                basic_machine=armeb-unknown
@@ -360,11 +770,6 @@ case $basic_machine in
        i*86 | x86_64)
          basic_machine=$basic_machine-pc
          ;;
-       # Object if more than one company name word.
-       *-*-*)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-               exit 1
-               ;;
        # Recognize the basic CPU types with company name.
        580-* \
        | a29k-* \
@@ -378,7 +783,7 @@ case $basic_machine in
        | be32-* | be64-* \
        | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* \
-       | c8051-* | clipper-* | craynv-* | cydra-* \
+       | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
        | e2k-* | elxsi-* \
        | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -419,6 +824,7 @@ case $basic_machine in
        | mt-* \
        | msp430-* \
        | nds32-* | nds32le-* | nds32be-* \
+       | nfp-* \
        | nios-* | nios2-* | nios2eb-* | nios2el-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
        | open8-* \
@@ -456,141 +862,77 @@ case $basic_machine in
                ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
-       386bsd)
-               basic_machine=i386-unknown
-               os=-bsd
-               ;;
        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
                basic_machine=m68000-att
                ;;
        3b*)
                basic_machine=we32k-att
                ;;
-       a29khif)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
        abacus)
                basic_machine=abacus-unknown
                ;;
-       adobe68k)
-               basic_machine=m68010-adobe
-               os=-scout
-               ;;
        alliant | fx80)
                basic_machine=fx80-alliant
                ;;
        altos | altos3068)
                basic_machine=m68k-altos
                ;;
-       am29k)
-               basic_machine=a29k-none
-               os=-bsd
-               ;;
        amd64)
                basic_machine=x86_64-pc
                ;;
        amd64-*)
-               basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       amdahl)
-               basic_machine=580-amdahl
-               os=-sysv
+               basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        amiga | amiga-*)
                basic_machine=m68k-unknown
                ;;
-       amigaos | amigados)
-               basic_machine=m68k-unknown
-               os=-amigaos
-               ;;
-       amigaunix | amix)
-               basic_machine=m68k-unknown
-               os=-sysv4
-               ;;
-       apollo68)
-               basic_machine=m68k-apollo
-               os=-sysv
-               ;;
-       apollo68bsd)
-               basic_machine=m68k-apollo
-               os=-bsd
-               ;;
-       aros)
-               basic_machine=i386-pc
-               os=-aros
-               ;;
        asmjs)
                basic_machine=asmjs-unknown
                ;;
-       aux)
-               basic_machine=m68k-apple
-               os=-aux
-               ;;
-       balance)
-               basic_machine=ns32k-sequent
-               os=-dynix
-               ;;
-       blackfin)
-               basic_machine=bfin-unknown
-               os=-linux
-               ;;
        blackfin-*)
-               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
+               basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               os=linux
                ;;
        bluegene*)
                basic_machine=powerpc-ibm
-               os=-cnk
+               os=cnk
                ;;
        c54x-*)
-               basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        c55x-*)
-               basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        c6x-*)
-               basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        c90)
                basic_machine=c90-cray
-               os=-unicos
-               ;;
-       cegcc)
-               basic_machine=arm-unknown
-               os=-cegcc
+               os=${os:-unicos}
                ;;
        convex-c1)
                basic_machine=c1-convex
-               os=-bsd
+               os=bsd
                ;;
        convex-c2)
                basic_machine=c2-convex
-               os=-bsd
+               os=bsd
                ;;
        convex-c32)
                basic_machine=c32-convex
-               os=-bsd
+               os=bsd
                ;;
        convex-c34)
                basic_machine=c34-convex
-               os=-bsd
+               os=bsd
                ;;
        convex-c38)
                basic_machine=c38-convex
-               os=-bsd
-               ;;
-       cray | j90)
-               basic_machine=j90-cray
-               os=-unicos
-               ;;
-       craynv)
-               basic_machine=craynv-cray
-               os=-unicosmp
+               os=bsd
                ;;
        cr16 | cr16-*)
                basic_machine=cr16-unknown
-               os=-elf
+               os=${os:-elf}
                ;;
        crds | unos)
                basic_machine=m68k-crds
@@ -603,7 +945,7 @@ case $basic_machine in
                ;;
        crx)
                basic_machine=crx-unknown
-               os=-elf
+               os=${os:-elf}
                ;;
        da30 | da30-*)
                basic_machine=m68k-da30
@@ -613,58 +955,38 @@ case $basic_machine in
                ;;
        decsystem10* | dec10*)
                basic_machine=pdp10-dec
-               os=-tops10
+               os=tops10
                ;;
        decsystem20* | dec20*)
                basic_machine=pdp10-dec
-               os=-tops20
+               os=tops20
                ;;
        delta | 3300 | motorola-3300 | motorola-delta \
              | 3300-motorola | delta-motorola)
                basic_machine=m68k-motorola
                ;;
-       delta88)
-               basic_machine=m88k-motorola
-               os=-sysv3
-               ;;
-       dicos)
-               basic_machine=i686-pc
-               os=-dicos
-               ;;
-       djgpp)
-               basic_machine=i586-pc
-               os=-msdosdjgpp
-               ;;
        dpx20 | dpx20-*)
                basic_machine=rs6000-bull
-               os=-bosx
+               os=${os:-bosx}
                ;;
        dpx2*)
                basic_machine=m68k-bull
-               os=-sysv3
+               os=sysv3
                ;;
        e500v[12])
                basic_machine=powerpc-unknown
                os=$os"spe"
                ;;
        e500v[12]-*)
-               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                os=$os"spe"
                ;;
-       ebmon29k)
-               basic_machine=a29k-amd
-               os=-ebmon
-               ;;
-       elxsi)
-               basic_machine=elxsi-elxsi
-               os=-bsd
-               ;;
        encore | umax | mmax)
                basic_machine=ns32k-encore
                ;;
-       es1800 | OSE68k | ose68k | ose | OSE)
-               basic_machine=m68k-ericsson
-               os=-ose
+       elxsi)
+               basic_machine=elxsi-elxsi
+               os=${os:-bsd}
                ;;
        fx2800)
                basic_machine=i860-alliant
@@ -672,45 +994,13 @@ case $basic_machine in
        genix)
                basic_machine=ns32k-ns
                ;;
-       gmicro)
-               basic_machine=tron-gmicro
-               os=-sysv
-               ;;
-       go32)
-               basic_machine=i386-pc
-               os=-go32
-               ;;
        h3050r* | hiux*)
                basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       h8300hms)
-               basic_machine=h8300-hitachi
-               os=-hms
-               ;;
-       h8300xray)
-               basic_machine=h8300-hitachi
-               os=-xray
-               ;;
-       h8500hms)
-               basic_machine=h8500-hitachi
-               os=-hms
-               ;;
-       harris)
-               basic_machine=m88k-harris
-               os=-sysv3
+               os=hiuxwe2
                ;;
        hp300-*)
                basic_machine=m68k-hp
                ;;
-       hp300bsd)
-               basic_machine=m68k-hp
-               os=-bsd
-               ;;
-       hp300hpux)
-               basic_machine=m68k-hp
-               os=-hpux
-               ;;
        hp3k9[0-9][0-9] | hp9[0-9][0-9])
                basic_machine=hppa1.0-hp
                ;;
@@ -740,200 +1030,82 @@ case $basic_machine in
        hp9k8[0-9][0-9] | hp8[0-9][0-9])
                basic_machine=hppa1.0-hp
                ;;
-       hppa-next)
-               os=-nextstep3
-               ;;
-       hppaosf)
-               basic_machine=hppa1.1-hp
-               os=-osf
-               ;;
-       hppro)
-               basic_machine=hppa1.1-hp
-               os=-proelf
-               ;;
        i370-ibm* | ibm*)
                basic_machine=i370-ibm
                ;;
        i*86v32)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv32
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=sysv32
                ;;
        i*86v4*)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv4
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=sysv4
                ;;
        i*86v)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=sysv
                ;;
        i*86sol2)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-solaris2
+               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               os=solaris2
                ;;
-       i386mach)
-               basic_machine=i386-mach
-               os=-mach
-               ;;
-       i386-vsta | vsta)
-               basic_machine=i386-unknown
-               os=-vsta
+       j90 | j90-cray)
+               basic_machine=j90-cray
+               os=${os:-unicos}
                ;;
        iris | iris4d)
                basic_machine=mips-sgi
                case $os in
-                   -irix*)
+                   irix*)
                        ;;
                    *)
-                       os=-irix4
+                       os=irix4
                        ;;
                esac
                ;;
-       isi68 | isi)
-               basic_machine=m68k-isi
-               os=-sysv
-               ;;
        leon-*|leon[3-9]-*)
-               basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
-               ;;
-       m68knommu)
-               basic_machine=m68k-unknown
-               os=-linux
+               basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
                ;;
        m68knommu-*)
-               basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
-               ;;
-       m88k-omron*)
-               basic_machine=m88k-omron
-               ;;
-       magnum | m3230)
-               basic_machine=mips-mips
-               os=-sysv
-               ;;
-       merlin)
-               basic_machine=ns32k-utek
-               os=-sysv
+               basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               os=linux
                ;;
        microblaze*)
                basic_machine=microblaze-xilinx
                ;;
-       mingw64)
-               basic_machine=x86_64-pc
-               os=-mingw64
-               ;;
-       mingw32)
-               basic_machine=i686-pc
-               os=-mingw32
-               ;;
-       mingw32ce)
-               basic_machine=arm-unknown
-               os=-mingw32ce
-               ;;
        miniframe)
                basic_machine=m68000-convergent
                ;;
-       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+       *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
                basic_machine=m68k-atari
-               os=-mint
+               os=mint
                ;;
        mips3*-*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
                ;;
        mips3*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-               ;;
-       monitor)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
-       morphos)
-               basic_machine=powerpc-unknown
-               os=-morphos
-               ;;
-       moxiebox)
-               basic_machine=moxie-unknown
-               os=-moxiebox
-               ;;
-       msdos)
-               basic_machine=i386-pc
-               os=-msdos
+               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
                ;;
        ms1-*)
-               basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
-               ;;
-       msys)
-               basic_machine=i686-pc
-               os=-msys
-               ;;
-       mvs)
-               basic_machine=i370-ibm
-               os=-mvs
-               ;;
-       nacl)
-               basic_machine=le32-unknown
-               os=-nacl
-               ;;
-       ncr3000)
-               basic_machine=i486-ncr
-               os=-sysv4
-               ;;
-       netbsd386)
-               basic_machine=i386-unknown
-               os=-netbsd
-               ;;
-       netwinder)
-               basic_machine=armv4l-rebel
-               os=-linux
-               ;;
-       news | news700 | news800 | news900)
-               basic_machine=m68k-sony
-               os=-newsos
-               ;;
-       news1000)
-               basic_machine=m68030-sony
-               os=-newsos
+               basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
                ;;
        news-3600 | risc-news)
                basic_machine=mips-sony
-               os=-newsos
-               ;;
-       necv70)
-               basic_machine=v70-nec
-               os=-sysv
+               os=newsos
                ;;
        next | m*-next)
                basic_machine=m68k-next
                case $os in
-                   -nextstep* )
+                   nextstep* )
                        ;;
-                   -ns2*)
-                     os=-nextstep2
+                   ns2*)
+                     os=nextstep2
                        ;;
                    *)
-                     os=-nextstep3
+                     os=nextstep3
                        ;;
                esac
                ;;
-       nh3000)
-               basic_machine=m68k-harris
-               os=-cxux
-               ;;
-       nh[45]000)
-               basic_machine=m88k-harris
-               os=-cxux
-               ;;
-       nindy960)
-               basic_machine=i960-intel
-               os=-nindy
-               ;;
-       mon960)
-               basic_machine=i960-intel
-               os=-mon960
-               ;;
-       nonstopux)
-               basic_machine=mips-compaq
-               os=-nonstopux
-               ;;
        np1)
                basic_machine=np1-gould
                ;;
@@ -946,43 +1118,26 @@ case $basic_machine in
        nsr-tandem)
                basic_machine=nsr-tandem
                ;;
+       nsv-tandem)
+               basic_machine=nsv-tandem
+               ;;
        nsx-tandem)
                basic_machine=nsx-tandem
                ;;
        op50n-* | op60c-*)
                basic_machine=hppa1.1-oki
-               os=-proelf
+               os=proelf
                ;;
        openrisc | openrisc-*)
                basic_machine=or32-unknown
                ;;
-       os400)
-               basic_machine=powerpc-ibm
-               os=-os400
-               ;;
-       OSE68000 | ose68000)
-               basic_machine=m68000-ericsson
-               os=-ose
-               ;;
-       os68k)
-               basic_machine=m68k-none
-               os=-os68k
-               ;;
        pa-hitachi)
                basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       paragon)
-               basic_machine=i860-intel
-               os=-osf
-               ;;
-       parisc)
-               basic_machine=hppa-unknown
-               os=-linux
+               os=hiuxwe2
                ;;
        parisc-*)
-               basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
-               os=-linux
+               basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+               os=linux
                ;;
        pbd)
                basic_machine=sparc-tti
@@ -997,7 +1152,7 @@ case $basic_machine in
                basic_machine=i386-pc
                ;;
        pc98-*)
-               basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pentium | p5 | k5 | k6 | nexgen | viac3)
                basic_machine=i586-pc
@@ -1012,16 +1167,16 @@ case $basic_machine in
                basic_machine=i786-pc
                ;;
        pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pentiumpro-* | p6-* | 6x86-* | athlon-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pentium4-*)
-               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        pn)
                basic_machine=pn-gould
@@ -1031,43 +1186,27 @@ case $basic_machine in
        ppc | ppcbe)    basic_machine=powerpc-unknown
                ;;
        ppc-* | ppcbe-*)
-               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        ppcle | powerpclittle)
                basic_machine=powerpcle-unknown
                ;;
        ppcle-* | powerpclittle-*)
-               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        ppc64)  basic_machine=powerpc64-unknown
                ;;
-       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+       ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        ppc64le | powerpc64little)
                basic_machine=powerpc64le-unknown
                ;;
        ppc64le-* | powerpc64little-*)
-               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        ps2)
                basic_machine=i386-ibm
                ;;
-       pw32)
-               basic_machine=i586-unknown
-               os=-pw32
-               ;;
-       rdos | rdos64)
-               basic_machine=x86_64-pc
-               os=-rdos
-               ;;
-       rdos32)
-               basic_machine=i386-pc
-               os=-rdos
-               ;;
-       rom68k)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
        rm[46]00)
                basic_machine=mips-siemens
                ;;
@@ -1080,10 +1219,6 @@ case $basic_machine in
        s390x | s390x-*)
                basic_machine=s390x-ibm
                ;;
-       sa29200)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
        sb1)
                basic_machine=mipsisa64sb1-unknown
                ;;
@@ -1092,32 +1227,17 @@ case $basic_machine in
                ;;
        sde)
                basic_machine=mipsisa32-sde
-               os=-elf
-               ;;
-       sei)
-               basic_machine=mips-sei
-               os=-seiux
+               os=${os:-elf}
                ;;
        sequent)
                basic_machine=i386-sequent
                ;;
-       sh)
-               basic_machine=sh-hitachi
-               os=-hms
-               ;;
        sh5el)
                basic_machine=sh5le-unknown
                ;;
-       sh64)
-               basic_machine=sh64-unknown
-               ;;
-       sparclite-wrs | simso-wrs)
+       simso-wrs)
                basic_machine=sparclite-wrs
-               os=-vxworks
-               ;;
-       sps7)
-               basic_machine=m68k-bull
-               os=-sysv2
+               os=vxworks
                ;;
        spur)
                basic_machine=spur-unknown
@@ -1125,44 +1245,12 @@ case $basic_machine in
        st2000)
                basic_machine=m68k-tandem
                ;;
-       stratus)
-               basic_machine=i860-stratus
-               os=-sysv4
-               ;;
        strongarm-* | thumb-*)
-               basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+               basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
                ;;
        sun2)
                basic_machine=m68000-sun
                ;;
-       sun2os3)
-               basic_machine=m68000-sun
-               os=-sunos3
-               ;;
-       sun2os4)
-               basic_machine=m68000-sun
-               os=-sunos4
-               ;;
-       sun3os3)
-               basic_machine=m68k-sun
-               os=-sunos3
-               ;;
-       sun3os4)
-               basic_machine=m68k-sun
-               os=-sunos4
-               ;;
-       sun4os3)
-               basic_machine=sparc-sun
-               os=-sunos3
-               ;;
-       sun4os4)
-               basic_machine=sparc-sun
-               os=-sunos4
-               ;;
-       sun4sol2)
-               basic_machine=sparc-sun
-               os=-solaris2
-               ;;
        sun3 | sun3-*)
                basic_machine=m68k-sun
                ;;
@@ -1172,25 +1260,9 @@ case $basic_machine in
        sun386 | sun386i | roadrunner)
                basic_machine=i386-sun
                ;;
-       sv1)
-               basic_machine=sv1-cray
-               os=-unicos
-               ;;
-       symmetry)
-               basic_machine=i386-sequent
-               os=-dynix
-               ;;
-       t3e)
-               basic_machine=alphaev5-cray
-               os=-unicos
-               ;;
-       t90)
-               basic_machine=t90-cray
-               os=-unicos
-               ;;
        tile*)
                basic_machine=$basic_machine-unknown
-               os=-linux-gnu
+               os=linux-gnu
                ;;
        tx39)
                basic_machine=mipstx39-unknown
@@ -1198,91 +1270,32 @@ case $basic_machine in
        tx39el)
                basic_machine=mipstx39el-unknown
                ;;
-       toad1)
-               basic_machine=pdp10-xkl
-               os=-tops20
-               ;;
        tower | tower-32)
                basic_machine=m68k-ncr
                ;;
-       tpf)
-               basic_machine=s390x-ibm
-               os=-tpf
-               ;;
-       udi29k)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       ultra3)
-               basic_machine=a29k-nyu
-               os=-sym1
-               ;;
-       v810 | necv810)
-               basic_machine=v810-nec
-               os=-none
-               ;;
-       vaxv)
-               basic_machine=vax-dec
-               os=-sysv
-               ;;
-       vms)
-               basic_machine=vax-dec
-               os=-vms
-               ;;
        vpp*|vx|vx-*)
                basic_machine=f301-fujitsu
                ;;
-       vxworks960)
-               basic_machine=i960-wrs
-               os=-vxworks
-               ;;
-       vxworks68)
-               basic_machine=m68k-wrs
-               os=-vxworks
-               ;;
-       vxworks29k)
-               basic_machine=a29k-wrs
-               os=-vxworks
-               ;;
-       wasm32)
-               basic_machine=wasm32-unknown
-               ;;
        w65*)
                basic_machine=w65-wdc
-               os=-none
+               os=none
                ;;
        w89k-*)
                basic_machine=hppa1.1-winbond
-               os=-proelf
+               os=proelf
                ;;
        x64)
                basic_machine=x86_64-pc
                ;;
-       xbox)
-               basic_machine=i686-pc
-               os=-mingw32
-               ;;
        xps | xps100)
                basic_machine=xps100-honeywell
                ;;
        xscale-* | xscalee[bl]-*)
-               basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
-               ;;
-       ymp)
-               basic_machine=ymp-cray
-               os=-unicos
-               ;;
-       z8k-*-coff)
-               basic_machine=z8k-unknown
-               os=-sim
-               ;;
-       z80-*-coff)
-               basic_machine=z80-unknown
-               os=-sim
+               basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
                ;;
        none)
                basic_machine=none-none
-               os=-none
+               os=${os:-none}
                ;;
 
 # Here we handle the default manufacturer of certain CPU types.  It is in
@@ -1308,10 +1321,6 @@ case $basic_machine in
        vax)
                basic_machine=vax-dec
                ;;
-       pdp10)
-               # there are many clones, so DEC is not a safe bet
-               basic_machine=pdp10-unknown
-               ;;
        pdp11)
                basic_machine=pdp11-dec
                ;;
@@ -1321,9 +1330,6 @@ case $basic_machine in
        sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
                basic_machine=sh-unknown
                ;;
-       sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
-               basic_machine=sparc-sun
-               ;;
        cydra)
                basic_machine=cydra-cydrome
                ;;
@@ -1343,7 +1349,7 @@ case $basic_machine in
                # Make sure to match an already-canonicalized machine name.
                ;;
        *)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
                exit 1
                ;;
 esac
@@ -1351,10 +1357,10 @@ esac
 # Here we canonicalize certain aliases for manufacturers.
 case $basic_machine in
        *-digital*)
-               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+               basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
                ;;
        *-commodore*)
-               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+               basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
                ;;
        *)
                ;;
@@ -1362,213 +1368,200 @@ esac
 
 # Decode manufacturer-specific aliases for certain operating systems.
 
-if [ x"$os" != x"" ]
+if [ x$os != x ]
 then
 case $os in
        # First match some system type aliases that might get confused
        # with valid system types.
-       # -solaris* is a basic system type, with this one exception.
-       -auroraux)
-               os=-auroraux
+       # solaris* is a basic system type, with this one exception.
+       auroraux)
+               os=auroraux
                ;;
-       -solaris1 | -solaris1.*)
+       solaris1 | solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
                ;;
-       -solaris)
-               os=-solaris2
-               ;;
-       -svr4*)
-               os=-sysv4
+       solaris)
+               os=solaris2
                ;;
-       -unixware*)
-               os=-sysv4.2uw
+       unixware*)
+               os=sysv4.2uw
                ;;
-       -gnu/linux*)
+       gnu/linux*)
                os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
                ;;
+       # es1800 is here to avoid being matched by es* (a different OS)
+       es1800*)
+               os=ose
+               ;;
        # 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]*\
-             | -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* | -386bsd* | -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* \
-             | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
-             | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
-             | -linux-newlib* | -linux-musl* | -linux-uclibc* \
-             | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
-             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
-             | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
+       # 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]*\
+            | 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* \
+            | 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* \
+            | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+            | linux-newlib* | linux-musl* | linux-uclibc* \
+            | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+            | interix* | uwin* | mks* | rhapsody* | darwin* \
+            | openstep* | oskit* | conix* | pw32* | nonstopux* \
+            | storm-chaos* | tops10* | tenex* | tops20* | its* \
+            | os2* | vos* | palmos* | uclinux* | nucleus* \
+            | morphos* | superux* | rtmk* | windiss* \
+            | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+            | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+            | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+            | midnightbsd*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
-       -qnx*)
+       qnx*)
                case $basic_machine in
                    x86-* | i*86-*)
                        ;;
                    *)
-                       os=-nto$os
+                       os=nto-$os
                        ;;
                esac
                ;;
-       -nto-qnx*)
+       nto-qnx*)
                ;;
-       -nto*)
+       nto*)
                os=`echo $os | sed -e 's|nto|nto-qnx|'`
                ;;
-       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-             | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
-             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+       sim | xray | os68k* | v88r* \
+           | windows* | osx | abug | netware* | os9* \
+           | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
                ;;
-       -mac*)
-               os=`echo $os | sed -e 's|mac|macos|'`
+       mac*)
+               os=`echo "$os" | sed -e 's|mac|macos|'`
                ;;
-       -linux-dietlibc)
-               os=-linux-dietlibc
+       linux-dietlibc)
+               os=linux-dietlibc
                ;;
-       -linux*)
+       linux*)
                os=`echo $os | sed -e 's|linux|linux-gnu|'`
                ;;
-       -sunos5*)
-               os=`echo $os | sed -e 's|sunos5|solaris2|'`
-               ;;
-       -sunos6*)
-               os=`echo $os | sed -e 's|sunos6|solaris3|'`
+       sunos5*)
+               os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
                ;;
-       -opened*)
-               os=-openedition
+       sunos6*)
+               os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
                ;;
-       -os400*)
-               os=-os400
+       opened*)
+               os=openedition
                ;;
-       -wince*)
-               os=-wince
+       os400*)
+               os=os400
                ;;
-       -osfrose*)
-               os=-osfrose
+       wince*)
+               os=wince
                ;;
-       -osf*)
-               os=-osf
+       utek*)
+               os=bsd
                ;;
-       -utek*)
-               os=-bsd
+       dynix*)
+               os=bsd
                ;;
-       -dynix*)
-               os=-bsd
+       acis*)
+               os=aos
                ;;
-       -acis*)
-               os=-aos
+       atheos*)
+               os=atheos
                ;;
-       -atheos*)
-               os=-atheos
+       syllable*)
+               os=syllable
                ;;
-       -syllable*)
-               os=-syllable
-               ;;
-       -386bsd)
-               os=-bsd
+       386bsd)
+               os=bsd
                ;;
-       -ctix* | -uts*)
-               os=-sysv
+       ctix* | uts*)
+               os=sysv
                ;;
-       -nova*)
-               os=-rtmk-nova
+       nova*)
+               os=rtmk-nova
                ;;
-       -ns2)
-               os=-nextstep2
+       ns2)
+               os=nextstep2
                ;;
-       -nsk*)
-               os=-nsk
+       nsk*)
+               os=nsk
                ;;
        # Preserve the version number of sinix5.
-       -sinix5.*)
+       sinix5.*)
                os=`echo $os | sed -e 's|sinix|sysv|'`
                ;;
-       -sinix*)
-               os=-sysv4
+       sinix*)
+               os=sysv4
                ;;
-       -tpf*)
-               os=-tpf
+       tpf*)
+               os=tpf
                ;;
-       -triton*)
-               os=-sysv3
+       triton*)
+               os=sysv3
                ;;
-       -oss*)
-               os=-sysv3
+       oss*)
+               os=sysv3
                ;;
-       -svr4)
-               os=-sysv4
+       svr4*)
+               os=sysv4
                ;;
-       -svr3)
-               os=-sysv3
+       svr3)
+               os=sysv3
                ;;
-       -sysvr4)
-               os=-sysv4
+       sysvr4)
+               os=sysv4
                ;;
-       # This must come after -sysvr4.
-       -sysv*)
+       # This must come after sysvr4.
+       sysv*)
                ;;
-       -ose*)
-               os=-ose
+       ose*)
+               os=ose
                ;;
-       -es1800*)
-               os=-ose
+       *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+               os=mint
                ;;
-       -xenix)
-               os=-xenix
+       zvmoe)
+               os=zvmoe
                ;;
-       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-               os=-mint
+       dicos*)
+               os=dicos
                ;;
-       -aros*)
-               os=-aros
-               ;;
-       -zvmoe)
-               os=-zvmoe
-               ;;
-       -dicos*)
-               os=-dicos
-               ;;
-       -pikeos*)
+       pikeos*)
                # Until real need of OS specific support for
                # particular features comes up, bare metal
                # configurations are quite functional.
                case $basic_machine in
                    arm*)
-                       os=-eabi
+                       os=eabi
                        ;;
                    *)
-                       os=-elf
+                       os=elf
                        ;;
                esac
                ;;
-       -nacl*)
+       nacl*)
+               ;;
+       ios)
                ;;
-       -ios)
+       none)
                ;;
-       -none)
+       *-eabi)
                ;;
        *)
-               # Get rid of the `-' at the beginning of $os.
-               os=`echo $os | sed 's/[^-]*-//'`
-               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+               echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
                exit 1
                ;;
 esac
@@ -1586,179 +1579,173 @@ else
 
 case $basic_machine in
        score-*)
-               os=-elf
+               os=elf
                ;;
        spu-*)
-               os=-elf
+               os=elf
                ;;
        *-acorn)
-               os=-riscix1.2
+               os=riscix1.2
                ;;
        arm*-rebel)
-               os=-linux
+               os=linux
                ;;
        arm*-semi)
-               os=-aout
+               os=aout
                ;;
        c4x-* | tic4x-*)
-               os=-coff
+               os=coff
                ;;
        c8051-*)
-               os=-elf
+               os=elf
                ;;
        hexagon-*)
-               os=-elf
+               os=elf
                ;;
        tic54x-*)
-               os=-coff
+               os=coff
                ;;
        tic55x-*)
-               os=-coff
+               os=coff
                ;;
        tic6x-*)
-               os=-coff
+               os=coff
                ;;
        # This must come before the *-dec entry.
        pdp10-*)
-               os=-tops20
+               os=tops20
                ;;
        pdp11-*)
-               os=-none
+               os=none
                ;;
        *-dec | vax-*)
-               os=-ultrix4.2
+               os=ultrix4.2
                ;;
        m68*-apollo)
-               os=-domain
+               os=domain
                ;;
        i386-sun)
-               os=-sunos4.0.2
+               os=sunos4.0.2
                ;;
        m68000-sun)
-               os=-sunos3
+               os=sunos3
                ;;
        m68*-cisco)
-               os=-aout
+               os=aout
                ;;
        mep-*)
-               os=-elf
+               os=elf
                ;;
        mips*-cisco)
-               os=-elf
+               os=elf
                ;;
        mips*-*)
-               os=-elf
+               os=elf
                ;;
        or32-*)
-               os=-coff
+               os=coff
                ;;
        *-tti)  # must be before sparc entry or we get the wrong os.
-               os=-sysv3
+               os=sysv3
                ;;
        sparc-* | *-sun)
-               os=-sunos4.1.1
+               os=sunos4.1.1
                ;;
        pru-*)
-               os=-elf
+               os=elf
                ;;
        *-be)
-               os=-beos
-               ;;
-       *-haiku)
-               os=-haiku
+               os=beos
                ;;
        *-ibm)
-               os=-aix
+               os=aix
                ;;
        *-knuth)
-               os=-mmixware
+               os=mmixware
                ;;
        *-wec)
-               os=-proelf
+               os=proelf
                ;;
        *-winbond)
-               os=-proelf
+               os=proelf
                ;;
        *-oki)
-               os=-proelf
+               os=proelf
                ;;
        *-hp)
-               os=-hpux
+               os=hpux
                ;;
        *-hitachi)
-               os=-hiux
+               os=hiux
                ;;
        i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-               os=-sysv
+               os=sysv
                ;;
        *-cbm)
-               os=-amigaos
+               os=amigaos
                ;;
        *-dg)
-               os=-dgux
+               os=dgux
                ;;
        *-dolphin)
-               os=-sysv3
+               os=sysv3
                ;;
        m68k-ccur)
-               os=-rtu
+               os=rtu
                ;;
        m88k-omron*)
-               os=-luna
+               os=luna
                ;;
        *-next)
-               os=-nextstep
+               os=nextstep
                ;;
        *-sequent)
-               os=-ptx
+               os=ptx
                ;;
        *-crds)
-               os=-unos
+               os=unos
                ;;
        *-ns)
-               os=-genix
+               os=genix
                ;;
        i370-*)
-               os=-mvs
-               ;;
-       *-next)
-               os=-nextstep3
+               os=mvs
                ;;
        *-gould)
-               os=-sysv
+               os=sysv
                ;;
        *-highlevel)
-               os=-bsd
+               os=bsd
                ;;
        *-encore)
-               os=-bsd
+               os=bsd
                ;;
        *-sgi)
-               os=-irix
+               os=irix
                ;;
        *-siemens)
-               os=-sysv4
+               os=sysv4
                ;;
        *-masscomp)
-               os=-rtu
+               os=rtu
                ;;
        f30[01]-fujitsu | f700-fujitsu)
-               os=-uxpv
+               os=uxpv
                ;;
        *-rom68k)
-               os=-coff
+               os=coff
                ;;
        *-*bug)
-               os=-coff
+               os=coff
                ;;
        *-apple)
-               os=-macos
+               os=macos
                ;;
        *-atari*)
-               os=-mint
+               os=mint
                ;;
        *)
-               os=-none
+               os=none
                ;;
 esac
 fi
@@ -1769,79 +1756,79 @@ vendor=unknown
 case $basic_machine in
        *-unknown)
                case $os in
-                       -riscix*)
+                       riscix*)
                                vendor=acorn
                                ;;
-                       -sunos*)
+                       sunos*)
                                vendor=sun
                                ;;
-                       -cnk*|-aix*)
+                       cnk*|-aix*)
                                vendor=ibm
                                ;;
-                       -beos*)
+                       beos*)
                                vendor=be
                                ;;
-                       -hpux*)
+                       hpux*)
                                vendor=hp
                                ;;
-                       -mpeix*)
+                       mpeix*)
                                vendor=hp
                                ;;
-                       -hiux*)
+                       hiux*)
                                vendor=hitachi
                                ;;
-                       -unos*)
+                       unos*)
                                vendor=crds
                                ;;
-                       -dgux*)
+                       dgux*)
                                vendor=dg
                                ;;
-                       -luna*)
+                       luna*)
                                vendor=omron
                                ;;
-                       -genix*)
+                       genix*)
                                vendor=ns
                                ;;
-                       -mvs* | -opened*)
+                       mvs* | opened*)
                                vendor=ibm
                                ;;
-                       -os400*)
+                       os400*)
                                vendor=ibm
                                ;;
-                       -ptx*)
+                       ptx*)
                                vendor=sequent
                                ;;
-                       -tpf*)
+                       tpf*)
                                vendor=ibm
                                ;;
-                       -vxsim* | -vxworks* | -windiss*)
+                       vxsim* | vxworks* | windiss*)
                                vendor=wrs
                                ;;
-                       -aux*)
+                       aux*)
                                vendor=apple
                                ;;
-                       -hms*)
+                       hms*)
                                vendor=hitachi
                                ;;
-                       -mpw* | -macos*)
+                       mpw* | macos*)
                                vendor=apple
                                ;;
-                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+                       *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
                                vendor=atari
                                ;;
-                       -vos*)
+                       vos*)
                                vendor=stratus
                                ;;
                esac
-               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+               basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
                ;;
 esac
 
-echo $basic_machine$os
+echo "$basic_machine-$os"
 exit
 
 # Local variables:
-# eval: (add-hook 'write-file-functions 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
index cfec3bd1e62e46e1b6ab4591fc506bdad1580803..f4eea278fae63fb3924afd323fe9f95356f8b69c 100755 (executable)
@@ -73,7 +73,7 @@ fi
 case "$host_os" in
 hpux*|darwin*|macosx*|linux*|solaris2*)
        if [ -z "$uninstall" ]; then
-               chmod 555 ${INSTALLDIR}/${LIBNAME}
+               chmod 755 ${INSTALLDIR}/${LIBNAME}
        fi ;;
 cygwin*|mingw*)
        IMPLIBNAME=`echo ${LIBNAME} \
diff --git a/text.c b/text.c
index 81de2a99c97b3f48f4150ab1949080599e193882..cddaeebd2d7832d81c292146f26a751ea3aae518 100644 (file)
--- a/text.c
+++ b/text.c
@@ -297,13 +297,40 @@ _rl_forward_char_internal (int count)
 #endif
 
     if (rl_end < 0)
-       rl_end = 0;
+      rl_end = 0;
 #else
   point = rl_point + count;
+#endif
+
   if (point > rl_end)
     point = rl_end;
+  return (point);
+}
+
+int
+_rl_backward_char_internal (int count)
+{
+  int point;
+
+  point = rl_point;
+#if defined (HANDLE_MULTIBYTE)
+  if (count > 0)
+    {
+      while (count > 0 && point > 0)
+       {
+         point = _rl_find_prev_mbchar (rl_line_buffer, point, MB_FIND_NONZERO);
+         count--;
+       }
+      if (count > 0)
+        return 0;      /* XXX - rl_ding() here? */
+    }
+#else
+  if (count > 0)
+    point -= count;
 #endif
 
+  if (point < 0)
+    point = 0;
   return (point);
 }
 
diff --git a/undo.c b/undo.c
index 75874e5d4e402916b9b940e1ee0c8e78f36ee4fe..ae65d38043a7acff72e94785aa669401696260dd 100644 (file)
--- a/undo.c
+++ b/undo.c
@@ -51,6 +51,8 @@
 
 extern void _hs_replace_history_data PARAMS((int, histdata_t *, histdata_t *));
 
+extern HIST_ENTRY *_rl_saved_line_for_history;
+
 /* Non-zero tells rl_delete_text and rl_insert_text to not add to
    the undo list. */
 int _rl_doing_an_undo = 0;
@@ -166,7 +168,7 @@ _rl_copy_undo_list (UNDO_LIST *head)
 int
 rl_do_undo (void)
 {
-  UNDO_LIST *release;
+  UNDO_LIST *release, *search;
   int waiting_for_begin, start, end;
   HIST_ENTRY *cur, *temp;
 
@@ -223,6 +225,7 @@ rl_do_undo (void)
 
       release = rl_undo_list;
       rl_undo_list = rl_undo_list->next;
+      release->next = 0;       /* XXX */
 
       /* If we are editing a history entry, make sure the change is replicated
         in the history entry's line */
@@ -235,8 +238,30 @@ rl_do_undo (void)
          xfree (temp);
        }
 
+      /* Make sure there aren't any history entries with that undo list */
       _hs_replace_history_data (-1, (histdata_t *)release, (histdata_t *)rl_undo_list);
 
+      /* And make sure this list isn't anywhere in the saved line for history */
+      if (_rl_saved_line_for_history && _rl_saved_line_for_history->data)
+       {
+         /* Brute force; no finesse here */
+         search = (UNDO_LIST *)_rl_saved_line_for_history->data;
+         if (search == release)
+           _rl_saved_line_for_history->data = rl_undo_list;
+         else
+           {
+             while (search->next)
+               {
+                 if (search->next == release)
+                   {
+                     search->next = rl_undo_list;
+                     break;
+                   }
+                 search = search->next;
+               }
+           }
+       }
+
       xfree (release);
     }
   while (waiting_for_begin);
index 3cb7e8c992e2e22e6a8a76f87428b12593b320ef..d6fa38e9779e16b42ba7209e8424b6ce54dd10f8 100644 (file)
--- a/vi_mode.c
+++ b/vi_mode.c
@@ -1,7 +1,7 @@
 /* vi_mode.c -- A vi emulation mode for Bash.
    Derived from code written by Jeff Sparkes (jsparkes@bnr.ca).  */
 
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2018 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.      
 #define member(c, s) ((c) ? (char *)strchr ((s), (c)) != (char *)NULL : 0)
 #endif
 
+/* Increment START to the next character in RL_LINE_BUFFER, handling multibyte chars */
+#if defined (HANDLE_MULTIBYTE)
+#define INCREMENT_POS(start) \
+  do { \
+       if (MB_CUR_MAX == 1 || rl_byte_oriented) \
+         start++; \
+       else \
+         start = _rl_find_next_mbchar (rl_line_buffer, start, 1, MB_FIND_ANY); \
+  } while (0)
+#else /* !HANDLE_MULTIBYTE */
+#define INCREMENT_POS(start)    (start)++
+#endif /* !HANDLE_MULTIBYTE */
+
 /* This is global so other parts of the code can check whether the last
    command was a text modification command. */
 int _rl_vi_last_command = 'i'; /* default `.' puts you in insert mode */
@@ -118,7 +131,7 @@ static void _rl_vi_save_insert PARAMS((UNDO_LIST *));
 
 static void vi_save_insert_buffer PARAMS ((int, int));
 
-static void _rl_vi_backup PARAMS((void));
+static inline void _rl_vi_backup PARAMS((void));
 
 static int _rl_vi_arg_dispatch PARAMS((int));
 static int rl_digit_loop1 PARAMS((void));
@@ -126,6 +139,9 @@ static int rl_digit_loop1 PARAMS((void));
 static int _rl_vi_set_mark PARAMS((void));
 static int _rl_vi_goto_mark PARAMS((void));
 
+static inline int _rl_vi_advance_point PARAMS((void));
+static inline int _rl_vi_backup_point PARAMS((void));
+
 static void _rl_vi_append_forward PARAMS((int));
 
 static int _rl_vi_callback_getchar PARAMS((char *, int));
@@ -383,7 +399,7 @@ rl_vi_complete (int ignore, int key)
     {
       if (!whitespace (rl_line_buffer[rl_point + 1]))
        rl_vi_end_word (1, 'E');
-      rl_point++;
+      _rl_vi_advance_point ();
     }
 
   if (key == '*')
@@ -451,6 +467,69 @@ rl_vi_next_word (int count, int key)
   return (0);
 }
 
+static inline int
+_rl_vi_advance_point (void)
+{
+  int point;
+
+  point = rl_point;
+  if (rl_point < rl_end)
+#if defined (HANDLE_MULTIBYTE)
+    {
+      if (MB_CUR_MAX == 1 || rl_byte_oriented)
+       rl_point++;
+      else
+       {
+         point = rl_point;
+         rl_point = _rl_forward_char_internal (1);
+         if (point == rl_point || rl_point > rl_end)
+           rl_point = rl_end;
+       }
+    }
+#else
+    rl_point++;
+#endif
+
+  return point;
+}
+
+/* Move the cursor back one character. */
+static inline void
+_rl_vi_backup (void)
+{
+  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+    rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
+  else
+    rl_point--;
+}
+
+/* Move the point back one character, returning the starting value and not
+   doing anything at the beginning of the line */
+static inline int
+_rl_vi_backup_point (void)
+{
+  int point;
+
+  point = rl_point;
+  if (rl_point > 0)
+#if defined (HANDLE_MULTIBYTE)
+    {
+      if (MB_CUR_MAX == 1 || rl_byte_oriented)
+       rl_point--;
+      else
+       {
+         point = rl_point;
+         rl_point = _rl_backward_char_internal (1);
+         if (rl_point < 0)
+           rl_point = 0;               /* XXX - not really necessary */
+       }
+    }
+#else
+    rl_point--;
+#endif
+  return point;
+}
+
 /* Move to the end of the ?next? word. */
 int
 rl_vi_end_word (int count, int key)
@@ -476,11 +555,11 @@ rl_vi_fWord (int count, int ignore)
     {
       /* Skip until whitespace. */
       while (!whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
-       rl_point++;
+       _rl_vi_advance_point ();
 
       /* Now skip whitespace. */
       while (whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
-       rl_point++;
+       _rl_vi_advance_point ();
     }
   return (0);
 }
@@ -497,12 +576,18 @@ rl_vi_bWord (int count, int ignore)
        rl_point--;
 
       while (rl_point > 0 && whitespace (rl_line_buffer[rl_point]))
-       rl_point--;
+       _rl_vi_backup_point ();
 
       if (rl_point > 0)
        {
-         while (--rl_point >= 0 && !whitespace (rl_line_buffer[rl_point]));
-         rl_point++;
+         do
+           _rl_vi_backup_point ();
+         while (rl_point > 0 && !whitespace (rl_line_buffer[rl_point]));
+         if (rl_point > 0)     /* hit whitespace */
+           rl_point++;         
+
+         if (rl_point < 0)
+           rl_point = 0;
        }
     }
   return (0);
@@ -511,28 +596,32 @@ rl_vi_bWord (int count, int ignore)
 int
 rl_vi_eWord (int count, int ignore)
 {
+  int opoint;
+
   while (count-- && rl_point < (rl_end - 1))
     {
-      if (!whitespace (rl_line_buffer[rl_point]))
-       rl_point++;
+      if (whitespace (rl_line_buffer[rl_point]) == 0)
+       _rl_vi_advance_point ();
 
       /* Move to the next non-whitespace character (to the start of the
         next word). */
       while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
-       rl_point++;
+       _rl_vi_advance_point ();
 
       if (rl_point && rl_point < rl_end)
        {
+         opoint = rl_point;
+
          /* Skip whitespace. */
          while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
-           rl_point++;
+           opoint = _rl_vi_advance_point ();   /* XXX - why? */
 
          /* Skip until whitespace. */
          while (rl_point < rl_end && !whitespace (rl_line_buffer[rl_point]))
-           rl_point++;
+           opoint = _rl_vi_advance_point ();
 
          /* Move back to the last character of the word. */
-         rl_point--;
+         rl_point = opoint;
        }
     }
   return (0);
@@ -541,24 +630,28 @@ rl_vi_eWord (int count, int ignore)
 int
 rl_vi_fword (int count, int ignore)
 {
+  int opoint;
+
   while (count-- && rl_point < (rl_end - 1))
     {
       /* Move to white space (really non-identifer). */
       if (_rl_isident (rl_line_buffer[rl_point]))
        {
          while (_rl_isident (rl_line_buffer[rl_point]) && rl_point < rl_end)
-           rl_point++;
+           _rl_vi_advance_point ();
        }
       else /* if (!whitespace (rl_line_buffer[rl_point])) */
        {
          while (!_rl_isident (rl_line_buffer[rl_point]) &&
                 !whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
-           rl_point++;
+           _rl_vi_advance_point ();
        }
 
+      opoint = rl_point;
+
       /* Move past whitespace. */
       while (whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
-       rl_point++;
+       opoint = _rl_vi_advance_point ();
     }
   return (0);
 }
@@ -566,9 +659,11 @@ rl_vi_fword (int count, int ignore)
 int
 rl_vi_bword (int count, int ignore)
 {
+  int opoint;
+
   while (count-- && rl_point > 0)
     {
-      int last_is_ident;
+      int prev_is_ident, cur_is_ident;
 
       /* If we are at the start of a word, move back to whitespace
         so we will go back to the start of the previous word. */
@@ -581,22 +676,35 @@ rl_vi_bword (int count, int ignore)
         back so we don't get messed up by the rl_point++ down there in
         the while loop.  Without this code, words like `l;' screw up the
         function. */
-      last_is_ident = _rl_isident (rl_line_buffer[rl_point - 1]);
-      if ((_rl_isident (rl_line_buffer[rl_point]) && !last_is_ident) ||
-         (!_rl_isident (rl_line_buffer[rl_point]) && last_is_ident))
-       rl_point--;
+      cur_is_ident = _rl_isident (rl_line_buffer[rl_point]);
+      opoint = _rl_vi_backup_point ();
+      prev_is_ident = _rl_isident (rl_line_buffer[rl_point]);
+      if ((cur_is_ident && !prev_is_ident) || (!cur_is_ident && prev_is_ident))
+       ;       /* leave point alone, we backed it up one character */
+      else
+       rl_point = opoint;
 
       while (rl_point > 0 && whitespace (rl_line_buffer[rl_point]))
-       rl_point--;
+       _rl_vi_backup_point ();
 
       if (rl_point > 0)
        {
+         opoint = rl_point;
          if (_rl_isident (rl_line_buffer[rl_point]))
-           while (--rl_point >= 0 && _rl_isident (rl_line_buffer[rl_point]));
+           do
+             opoint = _rl_vi_backup_point ();
+           while (rl_point > 0 && _rl_isident (rl_line_buffer[rl_point]));
          else
-           while (--rl_point >= 0 && !_rl_isident (rl_line_buffer[rl_point]) &&
+           do
+             opoint = _rl_vi_backup_point ();
+           while (rl_point > 0 && !_rl_isident (rl_line_buffer[rl_point]) &&
                   !whitespace (rl_line_buffer[rl_point]));
-         rl_point++;
+
+         if (rl_point > 0)
+           rl_point = opoint;
+
+         if (rl_point < 0)
+           rl_point = 0;
        }
     }
   return (0);
@@ -605,23 +713,34 @@ rl_vi_bword (int count, int ignore)
 int
 rl_vi_eword (int count, int ignore)
 {
-  while (count-- && rl_point < rl_end - 1)
+  int opoint;
+
+  while (count-- && rl_point < (rl_end - 1))
     {
-      if (!whitespace (rl_line_buffer[rl_point]))
-       rl_point++;
+      if (whitespace (rl_line_buffer[rl_point]) == 0)
+       _rl_vi_advance_point ();
 
       while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
-       rl_point++;
+       _rl_vi_advance_point ();
 
+      opoint = rl_point;
       if (rl_point < rl_end)
        {
          if (_rl_isident (rl_line_buffer[rl_point]))
-           while (++rl_point < rl_end && _rl_isident (rl_line_buffer[rl_point]));
+           do
+             {
+               opoint = _rl_vi_advance_point ();
+             }
+           while (rl_point < rl_end && _rl_isident (rl_line_buffer[rl_point]));
          else
-           while (++rl_point < rl_end && !_rl_isident (rl_line_buffer[rl_point])
+           do
+             {
+               opoint = _rl_vi_advance_point ();
+             }
+           while (rl_point < rl_end && !_rl_isident (rl_line_buffer[rl_point])
                   && !whitespace (rl_line_buffer[rl_point]));
        }
-      rl_point--;
+      rl_point = opoint;
     }
   return (0);
 }
@@ -637,20 +756,7 @@ rl_vi_insert_beg (int count, int key)
 static void
 _rl_vi_append_forward (int key)
 {
-  int point;
-
-  if (rl_point < rl_end)
-    {
-      if (MB_CUR_MAX == 1 || rl_byte_oriented)
-       rl_point++;
-      else
-       {
-         point = rl_point;
-         rl_point = _rl_forward_char_internal (1);
-         if (point == rl_point)
-           rl_point = rl_end;
-       }
-    }
+  _rl_vi_advance_point ();
 }
 
 int
@@ -859,7 +965,7 @@ _rl_vi_change_mbchar_case (int count)
          rl_begin_undo_group ();
          rl_vi_delete (1, 0);
          if (rl_point < p)     /* Did we retreat at EOL? */
-           rl_point++; /* XXX - should we advance more than 1 for mbchar? */
+           _rl_vi_advance_point ();
          rl_insert_text (mb);
          rl_end_undo_group ();
          rl_vi_check ();
@@ -931,27 +1037,12 @@ rl_vi_put (int count, int key)
   return (0);
 }
 
-/* Move the cursor back one character. */
-static void
-_rl_vi_backup (void)
-{
-  if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
-    rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
-  else
-    rl_point--;
-}
-
 /* Move the cursor back one character if you're at the end of the line */
 int
 rl_vi_check (void)
 {
   if (rl_point && rl_point == rl_end)
-    {
-      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
-       rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
-      else
-       rl_point--;
-    }
+    _rl_vi_backup ();
   return (0);
 }
 
@@ -962,7 +1053,10 @@ rl_vi_column (int count, int key)
   if (count > rl_end)
     rl_end_of_line (1, key);
   else
-    rl_point = count - 1;
+    {
+      rl_point = 0;
+      rl_point = _rl_forward_char_internal (count - 1);
+    }
   return (0);
 }
 
@@ -1113,7 +1207,7 @@ _rl_vi_domove_motion_cleanup (int c, _rl_vimotion_cxt *m)
      non-whitespace character, move back one (presumably to whitespace). */
   if ((_rl_to_upper (c) == 'W') && rl_point < rl_end && rl_point > rl_mark &&
       !whitespace (rl_line_buffer[rl_point]))
-    rl_point--;
+    rl_point--;                /* XXX */
 
   /* If cw or cW, back up to the end of a word, so the behaviour of ce
      or cE is the actual result.  Brute-force, no subtlety. */
@@ -1126,14 +1220,14 @@ _rl_vi_domove_motion_cleanup (int c, _rl_vimotion_cxt *m)
       /* Posix.2 says that if cw or cW moves the cursor towards the end of
         the line, the character under the cursor should be deleted. */
       if (rl_point == rl_mark)
-       rl_point++;
+       _rl_vi_advance_point ();
       else
        {
          /* Move past the end of the word so that the kill doesn't
             remove the last letter of the previous word.  Only do this
             if we are not at the end of the line. */
          if (rl_point >= 0 && rl_point < (rl_end - 1) && !whitespace (rl_line_buffer[rl_point]))
-           rl_point++;
+           _rl_vi_advance_point ();
        }
     }
 
@@ -1271,7 +1365,7 @@ vi_delete_dispatch (_rl_vimotion_cxt *m)
      mark. */
   if (((strchr (" l|h^0bBFT`", m->motion) == 0) && (rl_point >= m->start)) &&
       (rl_mark < rl_end))
-    rl_mark++;
+    INCREMENT_POS (rl_mark);
 
   rl_kill_text (rl_point, rl_mark);
   return (0);
@@ -1334,7 +1428,7 @@ vi_change_dispatch (_rl_vimotion_cxt *m)
      and already leave the mark at the correct location. */
   if (((strchr (" l|hwW^0bBFT`", m->motion) == 0) && (rl_point >= m->start)) &&
       (rl_mark < rl_end))
-    rl_mark++;
+    INCREMENT_POS (rl_mark);
 
   /* The cursor never moves with c[wW]. */
   if ((_rl_to_upper (m->motion) == 'W') && rl_point < m->start)
@@ -1421,7 +1515,7 @@ vi_yank_dispatch (_rl_vimotion_cxt *m)
      mark. */
   if (((strchr (" l|h^0%bBFT`", m->motion) == 0) && (rl_point >= m->start)) &&
       (rl_mark < rl_end))
-    rl_mark++;
+    INCREMENT_POS (rl_mark);
 
   rl_begin_undo_group ();
   rl_kill_text (rl_point, rl_mark);
@@ -1611,8 +1705,8 @@ rl_vi_unix_word_rubout (int count, int key)
            while (rl_point && vi_unix_word_boundary (rl_line_buffer[rl_point - 1]))
              rl_point--;
          else if (rl_point > 0 && vi_unix_word_boundary (rl_line_buffer[rl_point]) == 0)
-           while (rl_point && (vi_unix_word_boundary (rl_line_buffer[rl_point - 1]) == 0))
-             rl_point--;
+           while (rl_point > 0 && (vi_unix_word_boundary (rl_line_buffer[rl_point - 1]) == 0))
+             _rl_vi_backup_point ();
        }
 
       rl_kill_text (orig_point, rl_point);
@@ -2100,7 +2194,7 @@ rl_vi_possible_completions (void)
     {
       while (rl_point < rl_end && rl_line_buffer[rl_point] != ' ' &&
             rl_line_buffer[rl_point] != ';')
-       rl_point++;
+       _rl_vi_advance_point ();
     }
   else if (rl_line_buffer[rl_point - 1] == ';')
     {