summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2021-01-18 13:42:55 -0500
committerChet Ramey <chet.ramey@case.edu>2021-01-18 13:42:55 -0500
commitcf3c762ecfff5b2f445647a0f1543693984a5540 (patch)
treee21eb36970a06b1d8a2df6a97a161da43410e136
parentc5ad6be530f5c1daf64a2d20df4baba9f6b57aa4 (diff)
downloadreadline-cf3c762ecfff5b2f445647a0f1543693984a5540.tar.gz
Readline-8.1 distribution sources and documentationreadline-8.1
-rw-r--r--CHANGELOG54
-rw-r--r--CHANGES123
-rw-r--r--INSTALL7
-rw-r--r--Makefile.in4
-rw-r--r--NEWS62
-rw-r--r--README2
-rw-r--r--aclocal.m42130
-rw-r--r--bind.c256
-rw-r--r--colors.c11
-rw-r--r--complete.c104
-rwxr-xr-xconfigure66
-rw-r--r--configure.ac33
-rw-r--r--display.c822
-rw-r--r--doc/history.0196
-rw-r--r--doc/history.355
-rw-r--r--doc/history.dvibin71552 -> 72252 bytes
-rw-r--r--doc/history.html34
-rw-r--r--doc/history.info98
-rw-r--r--doc/history.pdfbin203702 -> 204488 bytes
-rw-r--r--doc/history.ps1385
-rw-r--r--doc/history.texi2
-rw-r--r--doc/history_3.ps851
-rw-r--r--doc/hstech.texi6
-rw-r--r--doc/hsuser.texi39
-rw-r--r--doc/readline.0501
-rw-r--r--doc/readline.353
-rw-r--r--doc/readline.dvibin318576 -> 323600 bytes
-rw-r--r--doc/readline.html1544
-rw-r--r--doc/readline.info333
-rw-r--r--doc/readline.pdfbin395448 -> 398680 bytes
-rw-r--r--doc/readline.ps3721
-rw-r--r--doc/readline_3.ps1433
-rw-r--r--doc/rlman.texi2
-rw-r--r--doc/rltech.texi42
-rw-r--r--doc/rluser.texi79
-rw-r--r--doc/rluserman.dvibin112756 -> 114812 bytes
-rw-r--r--doc/rluserman.html368
-rw-r--r--doc/rluserman.info115
-rw-r--r--doc/rluserman.pdfbin230085 -> 232909 bytes
-rw-r--r--doc/rluserman.ps1172
-rw-r--r--doc/rluserman.texi2
-rwxr-xr-xdoc/texi2dvi1656
-rw-r--r--doc/version.texi12
-rw-r--r--emacs_keymap.c4
-rw-r--r--examples/autoconf/BASH_CHECK_LIB_TERMCAP3
-rw-r--r--examples/autoconf/RL_LIB_READLINE_VERSION1
-rw-r--r--examples/fileman.c4
-rw-r--r--funmap.c10
-rw-r--r--histexpand.c26
-rw-r--r--histfile.c52
-rw-r--r--input.c33
-rw-r--r--isearch.c75
-rw-r--r--kill.c110
-rw-r--r--mbutil.c106
-rw-r--r--misc.c63
-rw-r--r--patchlevel2
-rw-r--r--posixdir.h2
-rw-r--r--posixstat.h22
-rw-r--r--readline.c98
-rw-r--r--readline.h16
-rw-r--r--readline.pc.in2
-rw-r--r--rlmbutil.h2
-rw-r--r--rlprivate.h42
-rw-r--r--search.c47
-rw-r--r--shlib/Makefile.in2
-rw-r--r--signals.c87
-rwxr-xr-xsupport/config.guess512
-rwxr-xr-xsupport/config.sub675
-rwxr-xr-xsupport/shlib-install36
-rw-r--r--support/shobj-conf59
-rw-r--r--terminal.c76
-rw-r--r--text.c105
-rw-r--r--tilde.c18
-rw-r--r--undo.c2
-rw-r--r--util.c3
-rw-r--r--vi_mode.c182
76 files changed, 10129 insertions, 9721 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 18265ab..5c24e91 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,4 @@
-[Readline-specific changelog. Descriptions of changes to the source are
+\[Readline-specific changelog. Descriptions of changes to the source are
found in the bash changelog.]
6/9
@@ -1351,3 +1351,55 @@ Makefile.in
----
Makefile.in
- installdirs: create $(pkgconfigdir) if it doesn't exist
+
+
+ 4/8/2019
+ --------
+readline.pc.in
+ - change CFLAGS to include ${includedir} instead of ${includedir}/readline,
+ to support the recommended `#include <readline/readline.h>'. Report
+ and fix from Andrea Bolognani <abologna@redhat.com>
+
+ 5/13
+ ----
+configure.ac
+ - hpux: add -DTGETENT_BROKEN to LOCAL_CFLAGS
+
+ 8/28
+ ----
+configure.ac
+ - hpux: add -DTGETFLAG_BROKEN to LOCAL_CFLAGS
+
+ 9/6
+ ---
+examples/autoconf/RL_LIB_READLINE_VERSION
+ - include <stdlib.h> in the AC_TRY_RUN block to accommodate compilers
+ that treat functions without an existing prototype as fatal errors.
+ Report and fix from Florian Weimer <fweimer@redhat.com>
+
+ 12/13
+ -----
+support/shlib-install
+ - remove old code for FreeBSD and Dragonfly; they are ELF-only now and
+ can use the same code as Linux. Fix from
+ Baptiste Daroussin <bapt@FreeBSD.org>
+
+ 5/20/2020
+ ---------
+configure.ac
+ - bumped version number up to 8.1
+
+ 6/15
+ ----
+configure.ac
+ - add -Wno-parentheses -Wno-format-security to CFLAGS if gcc (or clang)
+ is the compiler
+
+ 10/29
+ -----
+configure.ac
+ - --enable-bracketed-paste-default: new invocation option, toggles the
+ default value of enable-bracketed-paste (on by default)
+
+INSTALL
+ - document new --enable-bracketed-paste-default configure option
diff --git a/CHANGES b/CHANGES
index 09eab6e..747fa41 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,126 @@
+This document details the changes between this version, readline-8.1, and
+the previous version, readline-8.0.
+
+1. Changes to Readline
+
+a. There are a number of fixes that were found as the result of fuzzing with
+ random input.
+
+b. Changed the revert-all-at-newline behavior to make sure to start at the end
+ of the history list when doing it, instead of the line where the user hit
+ return.
+
+c. When parsing `set' commands from the inputrc file or an application, readline
+ now allows trailing whitespace.
+
+d. Fixed a bug that left a file descriptor open to the history file if the
+ file size was 0.
+
+e. Fixed a problem with binding key sequences containing meta characters.
+
+f. Fixed a bug that caused the wrong line to be displayed if the user tried to
+ move back beyond the beginning of the history list, or forward past the end
+ of the history list.
+
+g. If readline catches SIGTSTP, it now sets a hook that allows the calling
+ application to handle it if it desires.
+
+h. Fixed a redisplay problem with a prompt string containing embedded newlines.
+
+i. Fixed a problem with completing filenames containing invalid multibyte
+ sequences when case-insensitive comparisons are enabled.
+
+j. Fixed a redisplay problem with prompt strings containing invisible multibyte
+ characters.
+
+k. Fixed a problem with multibyte characters mapped to editing commands that
+ modify the search string in incremental search.
+
+l. Fixed a bug with maintaining the key sequence while resolving a bound
+ command in the presence of ambiguous sequences (sequences with a common
+ prefix), in most cases while attempting to unbind it.
+
+m. Fixed several buffer overflows found as the result of fuzzing.
+
+n. Reworked backslash handling when translating key sequences for key binding
+ to be more uniform and consistent, which introduces a slight backwards
+ incompatibility.
+
+o. Fixed a bug with saving the history that resulted in errors not being
+ propagated to the calling application when the history file is not writable.
+
+p. Readline only calls chown(2) on a newly-written history file if it really
+ needs to, instead of having it be a no-op.
+
+q. Readline now behaves better when operate-and-get-next is used when the
+ history list is `full': when there are already $HISTSIZE entries.
+
+r. Fixed a bug that could cause vi redo (`.') of a replace command not to work
+ correctly in the C or POSIX locale.
+
+s. Fixed a bug with vi-mode digit arguments that caused the last command to be
+ set incorrectly. This prevents yank-last-arg from working as intended, for
+ example.
+
+t. Make sure that all undo groups are closed when leaving vi insertion mode.
+
+u. Make sure that the vi-mode `C' and `c' commands enter insert mode even if
+ the motion command doesn't have any effect.
+
+v. Fixed several potential memory leaks in the callback mode context handling.
+
+w. If readline is handling a SIGTTOU, make sure SIGTTOU is blocked while
+ executing the terminal cleanup code, since it's no longer run in a signal
+ handling context.
+
+x. Fixed a bug that could cause an application with an application-specific
+ redisplay function to crash if the line data structures had not been
+ initialized.
+
+y. Terminals that are named "dumb" or unknown do not enable bracketed paste
+ by default.
+
+z. Ensure that disabling bracketed paste turns off highlighting the incremental
+ search string when the search is successful.
+
+2. New Features in Readline
+
+a. If a second consecutive completion attempt produces matches where the first
+ did not, treat it as a new completion attempt and insert a match as
+ appropriate.
+
+b. Bracketed paste mode works in more places: incremental search strings, vi
+ overstrike mode, character search, and reading numeric arguments.
+
+c. Readline automatically switches to horizontal scrolling if the terminal has
+ only one line.
+
+d. Unbinding all key sequences bound to a particular readline function now
+ descends into keymaps for multi-key sequences.
+
+e. rl-clear-display: new bindable command that clears the screen and, if
+ possible, the scrollback buffer (bound to emacs mode M-C-l by default).
+
+f. New active mark and face feature: when enabled, it will highlight the text
+ inserted by a bracketed paste (the `active region') and the text found by
+ incremental and non-incremental history searches. This is tied to bracketed
+ paste and can be disabled by turning off bracketed paste.
+
+g. Readline sets the mark in several additional commands.
+
+h. Bracketed paste mode is enabled by default. There is a configure-time
+ option (--enable-bracketed-paste-default) to set the default to on or off.
+
+i. Readline tries to take advantage of the more regular structure of UTF-8
+ characters to identify the beginning and end of characters when moving
+ through the line buffer.
+
+j. The bindable operate-and-get-next command (and its default bindings) are
+ now part of readline instead of a bash-specific addition.
+
+k. The signal cleanup code now blocks SIGINT while processing after a SIGINT.
+
+-------------------------------------------------------------------------------
This document details the changes between this version, readline-8.0, and the
previous version, readline-7.0.
diff --git a/INSTALL b/INSTALL
index afb4d53..4f0d7b0 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
Basic Installation
==================
-These are installation instructions for Readline-8.0.
+These are installation instructions for Readline-8.1.
The simplest way to compile readline is:
@@ -183,6 +183,11 @@ The readline `configure' recognizes a single `--with-PACKAGE' option:
`--enable-static'
Build the static libraries by default. The default is `yes'.
+
+`--enable-bracketed-paste-default'
+ Enable bracketed paste by default, so the initial value of the
+ `enable-bracketed-paste' Readline variable is `on'. The default
+ is `yes'.
Shared Libraries
================
diff --git a/Makefile.in b/Makefile.in
index 8dd5ca5..c57db60 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -72,10 +72,10 @@ DESTDIR =
# Programs to make tags files.
ETAGS = etags
-CTAGS = ctags -tw
+CTAGS = ctags -w
CFLAGS = @CFLAGS@
-LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DRL_LIBRARY_VERSION='"$(RL_LIBRARY_VERSION)"'
+LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DRL_LIBRARY_VERSION='"$(RL_LIBRARY_VERSION)"' @BRACKETED_PASTE@
CPPFLAGS = @CPPFLAGS@
DEFS = @DEFS@ @CROSS_COMPILE@
diff --git a/NEWS b/NEWS
index 42be21e..56ab93a 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,44 @@
+This is a terse description of the new features added to readline-8.1 since
+the release of readline-8.0.
+
+New Features in Readline
+
+a. If a second consecutive completion attempt produces matches where the first
+ did not, treat it as a new completion attempt and insert a match as
+ appropriate.
+
+b. Bracketed paste mode works in more places: incremental search strings, vi
+ overstrike mode, character search, and reading numeric arguments.
+
+c. Readline automatically switches to horizontal scrolling if the terminal has
+ only one line.
+
+d. Unbinding all key sequences bound to a particular readline function now
+ descends into keymaps for multi-key sequences.
+
+e. rl-clear-display: new bindable command that clears the screen and, if
+ possible, the scrollback buffer (bound to emacs mode M-C-l by default).
+
+f. New active mark and face feature: when enabled, it will highlight the text
+ inserted by a bracketed paste (the `active region') and the text found by
+ incremental and non-incremental history searches. This is tied to bracketed
+ paste and can be disabled by turning off bracketed paste.
+
+g. Readline sets the mark in several additional commands.
+
+h. Bracketed paste mode is enabled by default. There is a configure-time
+ option (--enable-bracketed-paste-default) to set the default to on or off.
+
+i. Readline tries to take advantage of the more regular structure of UTF-8
+ characters to identify the beginning and end of characters when moving
+ through the line buffer.
+
+j. The bindable operate-and-get-next command (and its default bindings) are
+ now part of readline instead of a bash-specific addition.
+
+k. The signal cleanup code now blocks SIGINT while processing after a SIGINT.
+
+-------------------------------------------------------------------------------
This is a terse description of the new features added to readline-8.0 since
the release of readline-7.0.
@@ -179,6 +220,27 @@ n. New application-settable variable: rl_signal_event_hook; function that is
by a signal. Currently not called for SIGHUP or SIGTERM.
-------------------------------------------------------------------------------
+This is a terse description of the new features added to readline-6.2 since
+the release of readline-6.1.
+
+a. The history library does not try to write the history filename in the
+ current directory if $HOME is unset. This closes a potential security
+ problem if the application does not specify a history filename.
+
+b. New bindable variable `completion-display-width' to set the number of
+ columns used when displaying completions.
+
+c. New bindable variable `completion-case-map' to cause case-insensitive
+ completion to treat `-' and `_' as identical.
+
+d. There are new bindable vi-mode command names to avoid readline's case-
+ insensitive matching not allowing them to be bound separately.
+
+e. New bindable variable `menu-complete-display-prefix' causes the menu
+ completion code to display the common prefix of the possible completions
+ before cycling through the list, instead of after.
+
+-------------------------------------------------------------------------------
This is a terse description of the new features added to readline-6.1 since
the release of readline-6.0.
diff --git a/README b/README
index 4fb0804..de98575 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
Introduction
============
-This is the Gnu Readline library, version 8.0.
+This is the Gnu Readline library, version 8.1.
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
diff --git a/aclocal.m4 b/aclocal.m4
index 1413267..6899e82 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-nl
+dnl
dnl Bash specific tests
dnl
dnl Some derived from PDKSH 5.1.3 autoconf tests
@@ -10,6 +10,7 @@ AC_DEFUN(BASH_C_LONG_LONG,
ac_cv_c_long_long=yes
else
AC_TRY_RUN([
+#include <stdlib.h>
int
main()
{
@@ -33,6 +34,7 @@ AC_DEFUN(BASH_C_LONG_DOUBLE,
ac_cv_c_long_double=yes
else
AC_TRY_RUN([
+#include <stdlib.h>
int
main()
{
@@ -64,6 +66,8 @@ AC_DEFUN(BASH_HEADER_INTTYPES,
dnl
dnl check for typedef'd symbols in header files, but allow the caller to
dnl specify the include files to be checked in addition to the default
+dnl
+dnl This could be changed to use AC_COMPILE_IFELSE instead of AC_EGREP_CPP
dnl
dnl BASH_CHECK_TYPE(TYPE, HEADERS, DEFAULT[, VALUE-IF-FOUND])
AC_DEFUN(BASH_CHECK_TYPE,
@@ -134,6 +138,8 @@ typedef int (*_bashfunc)(const char *, ...);
#else
typedef int (*_bashfunc)();
#endif
+#include <stdlib.h>
+int
main()
{
_bashfunc pf;
@@ -191,9 +197,11 @@ AC_CACHE_VAL(bash_cv_under_sys_siglist,
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#include <stdlib.h>
#ifndef UNDER_SYS_SIGLIST_DECLARED
extern char *_sys_siglist[];
#endif
+int
main()
{
char *msg = (char *)_sys_siglist[2];
@@ -218,9 +226,11 @@ AC_CACHE_VAL(bash_cv_sys_siglist,
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#include <stdlib.h>
#if !HAVE_DECL_SYS_SIGLIST
extern char *sys_siglist[];
#endif
+int
main()
{
char *msg = sys_siglist[2];
@@ -273,6 +283,8 @@ AC_CACHE_VAL(bash_cv_dup2_broken,
[AC_TRY_RUN([
#include <sys/types.h>
#include <fcntl.h>
+#include <stdlib.h>
+int
main()
{
int fd1, fd2, fl;
@@ -300,7 +312,8 @@ AC_DEFUN(BASH_FUNC_STRSIGNAL,
[AC_MSG_CHECKING([for the existence of strsignal])
AC_CACHE_VAL(bash_cv_have_strsignal,
[AC_TRY_LINK([#include <sys/types.h>
-#include <signal.h>],
+#include <signal.h>
+#include <string.h>],
[char *s = (char *)strsignal(2);],
bash_cv_have_strsignal=yes, bash_cv_have_strsignal=no)])
AC_MSG_RESULT($bash_cv_have_strsignal)
@@ -321,6 +334,9 @@ AC_CACHE_VAL(bash_cv_opendir_not_robust,
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif /* HAVE_UNISTD_H */
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
#if defined(HAVE_DIRENT_H)
# include <dirent.h>
#else
@@ -335,6 +351,8 @@ AC_CACHE_VAL(bash_cv_opendir_not_robust,
# include <ndir.h>
# endif
#endif /* HAVE_DIRENT_H */
+#include <stdlib.h>
+int
main()
{
DIR *dir;
@@ -514,6 +532,8 @@ AC_TRY_RUN([
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
+#include <stdlib.h>
+int
main()
{
#ifdef HAVE_QUAD_T
@@ -583,6 +603,7 @@ AC_CACHE_VAL(bash_cv_getenv_redef,
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
+#include <stdlib.h>
#ifndef __STDC__
# ifndef const
# define const
@@ -598,6 +619,7 @@ getenv (name)
{
return "42";
}
+int
main()
{
char *s;
@@ -684,6 +706,11 @@ AC_DEFUN(BASH_FUNC_ULIMIT_MAXFDS,
[AC_MSG_CHECKING(whether ulimit can substitute for getdtablesize)
AC_CACHE_VAL(bash_cv_ulimit_maxfds,
[AC_TRY_RUN([
+#include <stdlib.h>
+#ifdef HAVE_ULIMIT_H
+#include <ulimit.h>
+#endif
+int
main()
{
long maxfds = ulimit(4, 0L);
@@ -707,7 +734,9 @@ AC_CACHE_VAL(bash_cv_getcwd_malloc,
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#include <stdlib.h>
+int
main()
{
char *xpwd;
@@ -757,12 +786,13 @@ AC_CACHE_VAL(bash_cv_fnm_extmatch,
[AC_TRY_RUN([
#include <fnmatch.h>
+int
main()
{
#ifdef FNM_EXTMATCH
- exit (0);
+ return (0);
#else
- exit (1);
+ return (1);
#endif
}
], bash_cv_fnm_extmatch=yes, bash_cv_fnm_extmatch=no,
@@ -786,7 +816,9 @@ AC_CACHE_VAL(bash_cv_func_sigsetjmp,
#include <sys/types.h>
#include <signal.h>
#include <setjmp.h>
+#include <stdlib.h>
+int
main()
{
#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
@@ -835,7 +867,10 @@ AC_CACHE_VAL(bash_cv_func_strcoll_broken,
#if defined (HAVE_LOCALE_H)
#include <locale.h>
#endif
+#include <string.h>
+#include <stdlib.h>
+int
main(c, v)
int c;
char *v[];
@@ -881,6 +916,7 @@ AC_CACHE_VAL(bash_cv_printf_a_format,
[AC_TRY_RUN([
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
int
main()
@@ -934,6 +970,7 @@ AC_CACHE_VAL(bash_cv_struct_stat_st_blocks,
#include <sys/stat.h>
],
[
+int
main()
{
static struct stat a;
@@ -1142,12 +1179,17 @@ fi
AC_DEFUN(BASH_STRUCT_TIMEVAL,
[AC_MSG_CHECKING(for struct timeval in sys/time.h and time.h)
AC_CACHE_VAL(bash_cv_struct_timeval,
-[
-AC_EGREP_HEADER(struct timeval, sys/time.h,
- bash_cv_struct_timeval=yes,
- AC_EGREP_HEADER(struct timeval, time.h,
- bash_cv_struct_timeval=yes,
- bash_cv_struct_timeval=no))
+[AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#if HAVE_SYS_TIME_H
+ #include <sys/time.h>
+ #endif
+ #include <time.h>
+ ]],
+ [[static struct timeval x; x.tv_sec = x.tv_usec;]]
+ )],
+ bash_cv_struct_timeval=yes,
+ bash_cv_struct_timeval=no)
])
AC_MSG_RESULT($bash_cv_struct_timeval)
if test $bash_cv_struct_timeval = yes; then
@@ -1241,6 +1283,11 @@ AC_CACHE_VAL(bash_cv_pgrp_pipe,
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
+#ifdef HAVE_SYS_WAIT_H
+# include <sys/wait.h>
+#endif
+#include <stdlib.h>
+int
main()
{
# ifdef GETPGRP_VOID
@@ -1305,6 +1352,7 @@ AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers,
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#include <stdlib.h>
typedef RETSIGTYPE sigfunc();
@@ -1335,6 +1383,7 @@ int s;
nsigint++;
}
+int
main()
{
nsigint = 0;
@@ -1418,8 +1467,11 @@ AC_CACHE_VAL(bash_cv_sys_named_pipes,
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#include <stdio.h>
+#include <stdlib.h>
/* Add more tests in here as appropriate. */
+int
main()
{
int fd, err;
@@ -1651,11 +1703,13 @@ AC_CACHE_VAL(bash_cv_unusable_rtsigs,
[AC_TRY_RUN([
#include <sys/types.h>
#include <signal.h>
+#include <stdlib.h>
#ifndef NSIG
# define NSIG 64
#endif
+int
main ()
{
int n_sigs = 2 * NSIG;
@@ -1770,6 +1824,7 @@ bash_cv_wcwidth_broken,
#include <locale.h>
#include <wchar.h>
+int
main(c, v)
int c;
char **v;
@@ -1834,9 +1889,11 @@ AC_CACHE_VAL(ac_cv_rl_version,
[AC_TRY_RUN([
#include <stdio.h>
#include <readline/readline.h>
+#include <stdlib.h>
extern int rl_gnu_readline_p;
+int
main()
{
FILE *fp;
@@ -1926,7 +1983,9 @@ AC_CACHE_VAL(bash_cv_func_ctype_nonascii,
#endif
#include <stdio.h>
#include <ctype.h>
+#include <stdlib.h>
+int
main(c, v)
int c;
char *v[];
@@ -1969,10 +2028,12 @@ AC_CACHE_VAL(bash_cv_wcontinued_broken,
#include <sys/wait.h>
#include <unistd.h>
#include <errno.h>
+#include <stdlib.h>
#ifndef errno
extern int errno;
#endif
+int
main()
{
int x;
@@ -2023,2036 +2084,6 @@ AC_DEFUN([AM_PATH_LISPDIR],
AC_SUBST(lispdir)
])
-dnl
-dnl tests added for gettext
-dnl
-# codeset.m4 serial AM1 (gettext-0.10.40)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_LANGINFO_CODESET],
-[
- AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
- [AC_TRY_LINK([#include <langinfo.h>],
- [char* cs = nl_langinfo(CODESET);],
- am_cv_langinfo_codeset=yes,
- am_cv_langinfo_codeset=no)
- ])
- if test $am_cv_langinfo_codeset = yes; then
- AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
- [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
- fi
-])
-# gettext.m4 serial 20 (gettext-0.12)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-dnl Macro to add for using GNU gettext.
-
-dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
-dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
-dnl default (if it is not specified or empty) is 'no-libtool'.
-dnl INTLSYMBOL should be 'external' for packages with no intl directory,
-dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
-dnl If INTLSYMBOL is 'use-libtool', then a libtool library
-dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
-dnl depending on --{enable,disable}-{shared,static} and on the presence of
-dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
-dnl $(top_builddir)/intl/libintl.a will be created.
-dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
-dnl implementations (in libc or libintl) without the ngettext() function
-dnl will be ignored. If NEEDSYMBOL is specified and is
-dnl 'need-formatstring-macros', then GNU gettext implementations that don't
-dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
-dnl INTLDIR is used to find the intl libraries. If empty,
-dnl the value `$(top_builddir)/intl/' is used.
-dnl
-dnl The result of the configuration is one of three cases:
-dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
-dnl and used.
-dnl Catalog format: GNU --> install in $(datadir)
-dnl Catalog extension: .mo after installation, .gmo in source tree
-dnl 2) GNU gettext has been found in the system's C library.
-dnl Catalog format: GNU --> install in $(datadir)
-dnl Catalog extension: .mo after installation, .gmo in source tree
-dnl 3) No internationalization, always use English msgid.
-dnl Catalog format: none
-dnl Catalog extension: none
-dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
-dnl The use of .gmo is historical (it was needed to avoid overwriting the
-dnl GNU format catalogs when building on a platform with an X/Open gettext),
-dnl but we keep it in order not to force irrelevant filename changes on the
-dnl maintainers.
-dnl
-AC_DEFUN([AM_GNU_GETTEXT],
-[
- dnl Argument checking.
- ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
- [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
-])])])])])
- ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
- [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
-])])])])
- define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
- define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
-
- AC_REQUIRE([AM_PO_SUBDIRS])dnl
- ifelse(gt_included_intl, yes, [
- AC_REQUIRE([AM_INTL_SUBDIR])dnl
- ])
-
- dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
-
- dnl Sometimes libintl requires libiconv, so first search for libiconv.
- dnl Ideally we would do this search only after the
- dnl if test "$USE_NLS" = "yes"; then
- dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then
- dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
- dnl the configure script would need to contain the same shell code
- dnl again, outside any 'if'. There are two solutions:
- dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
- dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
- dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
- dnl documented, we avoid it.
- ifelse(gt_included_intl, yes, , [
- AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
- ])
-
- dnl Set USE_NLS.
- AM_NLS
-
- ifelse(gt_included_intl, yes, [
- BUILD_INCLUDED_LIBINTL=no
- USE_INCLUDED_LIBINTL=no
- ])
- LIBINTL=
- LTLIBINTL=
- POSUB=
-
- dnl If we use NLS figure out what method
- if test "$USE_NLS" = "yes"; then
- gt_use_preinstalled_gnugettext=no
- ifelse(gt_included_intl, yes, [
- AC_MSG_CHECKING([whether included gettext is requested])
- AC_ARG_WITH(included-gettext,
- [ --with-included-gettext use the GNU gettext library included here],
- nls_cv_force_use_gnu_gettext=$withval,
- nls_cv_force_use_gnu_gettext=no)
- AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-
- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
- ])
- dnl User does not insist on using GNU NLS library. Figure out what
- dnl to use. If GNU gettext is available we use this. Else we have
- dnl to fall back to GNU NLS library.
-
- dnl Add a version number to the cache macros.
- define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
- define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
- define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
-
- AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
- [AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;],
- [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
- gt_cv_func_gnugettext_libc=yes,
- gt_cv_func_gnugettext_libc=no)])
-
- if test "$gt_cv_func_gnugettext_libc" != "yes"; then
- dnl Sometimes libintl requires libiconv, so first search for libiconv.
- ifelse(gt_included_intl, yes, , [
- AM_ICONV_LINK
- ])
- dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
- dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
- dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
- dnl even if libiconv doesn't exist.
- AC_LIB_LINKFLAGS_BODY([intl])
- AC_CACHE_CHECK([for GNU gettext in libintl],
- gt_cv_func_gnugettext_libintl,
- [gt_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $INCINTL"
- gt_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBINTL"
- dnl Now see whether libintl exists and does not depend on libiconv.
- AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();],
- [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
- gt_cv_func_gnugettext_libintl=yes,
- gt_cv_func_gnugettext_libintl=no)
- dnl Now see whether libintl exists and depends on libiconv.
- if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
- LIBS="$LIBS $LIBICONV"
- AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();],
- [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
- [LIBINTL="$LIBINTL $LIBICONV"
- LTLIBINTL="$LTLIBINTL $LTLIBICONV"
- gt_cv_func_gnugettext_libintl=yes
- ])
- fi
- CPPFLAGS="$gt_save_CPPFLAGS"
- LIBS="$gt_save_LIBS"])
- fi
-
- dnl If an already present or preinstalled GNU gettext() is found,
- dnl use it. But if this macro is used in GNU gettext, and GNU
- dnl gettext is already preinstalled in libintl, we update this
- dnl libintl. (Cf. the install rule in intl/Makefile.in.)
- if test "$gt_cv_func_gnugettext_libc" = "yes" \
- || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
- && test "$PACKAGE" != gettext-runtime \
- && test "$PACKAGE" != gettext-tools; }; then
- gt_use_preinstalled_gnugettext=yes
- else
- dnl Reset the values set by searching for libintl.
- LIBINTL=
- LTLIBINTL=
- INCINTL=
- fi
-
- ifelse(gt_included_intl, yes, [
- if test "$gt_use_preinstalled_gnugettext" != "yes"; then
- dnl GNU gettext is not found in the C library.
- dnl Fall back on included GNU gettext library.
- nls_cv_use_gnu_gettext=yes
- fi
- fi
-
- if test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions used to generate GNU NLS library.
- BUILD_INCLUDED_LIBINTL=yes
- USE_INCLUDED_LIBINTL=yes
- LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
- LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
- LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
- fi
-
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions to use GNU gettext tools.
- CATOBJEXT=.gmo
- fi
- ])
-
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- AC_DEFINE(ENABLE_NLS, 1,
- [Define to 1 if translation of program messages to the user's native language
- is requested.])
- else
- USE_NLS=no
- fi
- fi
-
- AC_MSG_CHECKING([whether to use NLS])
- AC_MSG_RESULT([$USE_NLS])
- if test "$USE_NLS" = "yes"; then
- AC_MSG_CHECKING([where the gettext function comes from])
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
- gt_source="external libintl"
- else
- gt_source="libc"
- fi
- else
- gt_source="included intl directory"
- fi
- AC_MSG_RESULT([$gt_source])
- fi
-
- if test "$USE_NLS" = "yes"; then
-
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
- AC_MSG_CHECKING([how to link with libintl])
- AC_MSG_RESULT([$LIBINTL])
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
- fi
-
- dnl For backward compatibility. Some packages may be using this.
- AC_DEFINE(HAVE_GETTEXT, 1,
- [Define if the GNU gettext() function is already present or preinstalled.])
- AC_DEFINE(HAVE_DCGETTEXT, 1,
- [Define if the GNU dcgettext() function is already present or preinstalled.])
- fi
-
- dnl We need to process the po/ directory.
- POSUB=po
- fi
-
- ifelse(gt_included_intl, yes, [
- dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
- dnl to 'yes' because some of the testsuite requires it.
- if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
- BUILD_INCLUDED_LIBINTL=yes
- fi
-
- dnl Make all variables we use known to autoconf.
- AC_SUBST(BUILD_INCLUDED_LIBINTL)
- AC_SUBST(USE_INCLUDED_LIBINTL)
- AC_SUBST(CATOBJEXT)
-
- dnl For backward compatibility. Some configure.ins may be using this.
- nls_cv_header_intl=
- nls_cv_header_libgt=
-
- dnl For backward compatibility. Some Makefiles may be using this.
- DATADIRNAME=share
- AC_SUBST(DATADIRNAME)
-
- dnl For backward compatibility. Some Makefiles may be using this.
- INSTOBJEXT=.mo
- AC_SUBST(INSTOBJEXT)
-
- dnl For backward compatibility. Some Makefiles may be using this.
- GENCAT=gencat
- AC_SUBST(GENCAT)
-
- dnl For backward compatibility. Some Makefiles may be using this.
- if test "$USE_INCLUDED_LIBINTL" = yes; then
- INTLOBJS="\$(GETTOBJS)"
- fi
- AC_SUBST(INTLOBJS)
-
- dnl Enable libtool support if the surrounding package wishes it.
- INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
- AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
- ])
-
- dnl For backward compatibility. Some Makefiles may be using this.
- INTLLIBS="$LIBINTL"
- AC_SUBST(INTLLIBS)
-
- dnl Make all documented variables known to autoconf.
- AC_SUBST(LIBINTL)
- AC_SUBST(LTLIBINTL)
- AC_SUBST(POSUB)
-])
-
-
-dnl Checks for all prerequisites of the intl subdirectory,
-dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
-dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
-AC_DEFUN([AM_INTL_SUBDIR],
-[
- AC_REQUIRE([AC_PROG_INSTALL])dnl
- AC_REQUIRE([AM_MKINSTALLDIRS])dnl
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_CANONICAL_HOST])dnl
- AC_REQUIRE([AC_PROG_RANLIB])dnl
- AC_REQUIRE([AC_ISC_POSIX])dnl
- AC_REQUIRE([AC_HEADER_STDC])dnl
- AC_REQUIRE([AC_C_CONST])dnl
- AC_REQUIRE([AC_C_INLINE])dnl
- AC_REQUIRE([AC_TYPE_OFF_T])dnl
- AC_REQUIRE([AC_TYPE_SIZE_T])dnl
- AC_REQUIRE([AC_FUNC_ALLOCA])dnl
- AC_REQUIRE([AC_FUNC_MMAP])dnl
- AC_REQUIRE([jm_GLIBC21])dnl
- AC_REQUIRE([gt_INTDIV0])dnl
- AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
- AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
- AC_REQUIRE([gt_INTTYPES_PRI])dnl
-
- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
-stdlib.h string.h unistd.h sys/param.h])
- AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
-geteuid getgid getuid mempcpy munmap putenv setenv setlocale localeconv stpcpy \
-strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \
-__fsetlocking])
-
- AM_ICONV
- AM_LANGINFO_CODESET
- if test $ac_cv_header_locale_h = yes; then
- AM_LC_MESSAGES
- fi
-
- dnl intl/plural.c is generated from intl/plural.y. It requires bison,
- dnl because plural.y uses bison specific features. It requires at least
- dnl bison-1.26 because earlier versions generate a plural.c that doesn't
- dnl compile.
- dnl bison is only needed for the maintainer (who touches plural.y). But in
- dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
- dnl the rule in general Makefile. Now, some people carelessly touch the
- dnl files or have a broken "make" program, hence the plural.c rule will
- dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
- dnl present or too old.
- AC_CHECK_PROGS([INTLBISON], [bison])
- if test -z "$INTLBISON"; then
- ac_verc_fail=yes
- else
- dnl Found it, now check the version.
- AC_MSG_CHECKING([version of bison])
-changequote(<<,>>)dnl
- ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
- case $ac_prog_version in
- '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-changequote([,])dnl
- ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
- *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
- esac
- AC_MSG_RESULT([$ac_prog_version])
- fi
- if test $ac_verc_fail = yes; then
- INTLBISON=:
- fi
-])
-
-
-dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
-AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
-# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-# Test for the GNU C Library, version 2.1 or newer.
-# From Bruno Haible.
-
-AC_DEFUN([jm_GLIBC21],
- [
- AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
- ac_cv_gnu_library_2_1,
- [AC_EGREP_CPP([Lucky GNU user],
- [
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
- Lucky GNU user
- #endif
-#endif
- ],
- ac_cv_gnu_library_2_1=yes,
- ac_cv_gnu_library_2_1=no)
- ]
- )
- AC_SUBST(GLIBC21)
- GLIBC21="$ac_cv_gnu_library_2_1"
- ]
-)
-# iconv.m4 serial AM4 (gettext-0.11.3)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
-[
- dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
-
- dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
- dnl accordingly.
- AC_LIB_LINKFLAGS_BODY([iconv])
-])
-
-AC_DEFUN([AM_ICONV_LINK],
-[
- dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
- dnl those with the standalone portable GNU libiconv installed).
-
- dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
- dnl accordingly.
- AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-
- dnl Add $INCICONV to CPPFLAGS before performing the following checks,
- dnl because if the user has installed libiconv and not disabled its use
- dnl via --without-libiconv-prefix, he wants to use it. The first
- dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
- am_save_CPPFLAGS="$CPPFLAGS"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
-
- AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
- am_cv_func_iconv="no, consider installing GNU libiconv"
- am_cv_lib_iconv=no
- AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
- [iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);],
- am_cv_func_iconv=yes)
- if test "$am_cv_func_iconv" != yes; then
- am_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBICONV"
- AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
- [iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);],
- am_cv_lib_iconv=yes
- am_cv_func_iconv=yes)
- LIBS="$am_save_LIBS"
- fi
- ])
- if test "$am_cv_func_iconv" = yes; then
- AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
- fi
- if test "$am_cv_lib_iconv" = yes; then
- AC_MSG_CHECKING([how to link with libiconv])
- AC_MSG_RESULT([$LIBICONV])
- else
- dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
- dnl either.
- CPPFLAGS="$am_save_CPPFLAGS"
- LIBICONV=
- LTLIBICONV=
- fi
- AC_SUBST(LIBICONV)
- AC_SUBST(LTLIBICONV)
-])
-
-AC_DEFUN([AM_ICONV],
-[
- AM_ICONV_LINK
- if test "$am_cv_func_iconv" = yes; then
- AC_MSG_CHECKING([for iconv declaration])
- AC_CACHE_VAL(am_cv_proto_iconv, [
- AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <iconv.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-#if defined(__STDC__) || defined(__cplusplus)
-size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-#else
-size_t iconv();
-#endif
-], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
- am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
- am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
- AC_MSG_RESULT([$]{ac_t:-
- }[$]am_cv_proto_iconv)
- AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
- [Define as const if the declaration of iconv() needs const.])
- fi
-])
-# intdiv0.m4 serial 1 (gettext-0.11.3)
-dnl Copyright (C) 2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([gt_INTDIV0],
-[
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_CANONICAL_HOST])dnl
-
- AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
- gt_cv_int_divbyzero_sigfpe,
- [
- AC_TRY_RUN([
-#include <stdlib.h>
-#include <signal.h>
-
-static void
-#ifdef __cplusplus
-sigfpe_handler (int sig)
-#else
-sigfpe_handler (sig) int sig;
-#endif
-{
- /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
- exit (sig != SIGFPE);
-}
-
-int x = 1;
-int y = 0;
-int z;
-int nan;
-
-int main ()
-{
- signal (SIGFPE, sigfpe_handler);
-/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
-#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
- signal (SIGTRAP, sigfpe_handler);
-#endif
-/* Linux/SPARC yields signal SIGILL. */
-#if defined (__sparc__) && defined (__linux__)
- signal (SIGILL, sigfpe_handler);
-#endif
-
- z = x / y;
- nan = y / y;
- exit (1);
-}
-], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
- [
- # Guess based on the CPU.
- case "$host_cpu" in
- alpha* | i[34567]86 | m68k | s390*)
- gt_cv_int_divbyzero_sigfpe="guessing yes";;
- *)
- gt_cv_int_divbyzero_sigfpe="guessing no";;
- esac
- ])
- ])
- case "$gt_cv_int_divbyzero_sigfpe" in
- *yes) value=1;;
- *) value=0;;
- esac
- AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
- [Define if integer division by zero raises signal SIGFPE.])
-])
-# inttypes.m4 serial 1 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
-# <sys/types.h>.
-
-AC_DEFUN([gt_HEADER_INTTYPES_H],
-[
- AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
- [
- AC_TRY_COMPILE(
- [#include <sys/types.h>
-#include <inttypes.h>],
- [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
- ])
- if test $gt_cv_header_inttypes_h = yes; then
- AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
- [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
- fi
-])
-# inttypes_h.m4 serial 5 (gettext-0.12)
-dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
-# doesn't clash with <sys/types.h>, and declares uintmax_t.
-
-AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
-[
- AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
- [AC_TRY_COMPILE(
- [#include <sys/types.h>
-#include <inttypes.h>],
- [uintmax_t i = (uintmax_t) -1;],
- jm_ac_cv_header_inttypes_h=yes,
- jm_ac_cv_header_inttypes_h=no)])
- if test $jm_ac_cv_header_inttypes_h = yes; then
- AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
- [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
- and declares uintmax_t. ])
- fi
-])
-# inttypes-pri.m4 serial 1 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
-# macros to non-string values. This is the case on AIX 4.3.3.
-
-AC_DEFUN([gt_INTTYPES_PRI],
-[
- AC_REQUIRE([gt_HEADER_INTTYPES_H])
- if test $gt_cv_header_inttypes_h = yes; then
- AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
- gt_cv_inttypes_pri_broken,
- [
- AC_TRY_COMPILE([#include <inttypes.h>
-#ifdef PRId32
-char *p = PRId32;
-#endif
-], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
- ])
- fi
- if test "$gt_cv_inttypes_pri_broken" = yes; then
- AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
- [Define if <inttypes.h> exists and defines unusable PRI* macros.])
- fi
-])
-# isc-posix.m4 serial 2 (gettext-0.11.2)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-# This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
-
-# This test replaces the one in autoconf.
-# Currently this macro should have the same name as the autoconf macro
-# because gettext's gettext.m4 (distributed in the automake package)
-# still uses it. Otherwise, the use in gettext.m4 makes autoheader
-# give these diagnostics:
-# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
-# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
-
-undefine([AC_ISC_POSIX])
-
-AC_DEFUN([AC_ISC_POSIX],
- [
- dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
- AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
- ]
-)
-# lcmessage.m4 serial 3 (gettext-0.11.3)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-# Check whether LC_MESSAGES is available in <locale.h>.
-
-AC_DEFUN([AM_LC_MESSAGES],
-[
- AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
- [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
- am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
- if test $am_cv_val_LC_MESSAGES = yes; then
- AC_DEFINE(HAVE_LC_MESSAGES, 1,
- [Define if your <locale.h> file defines LC_MESSAGES.])
- fi
-])
-# lib-ld.m4 serial 2 (gettext-0.12)
-dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl Subroutines of libtool.m4,
-dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
-dnl with libtool.m4.
-
-dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
-AC_DEFUN([AC_LIB_PROG_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- acl_cv_prog_gnu_ld=yes
-else
- acl_cv_prog_gnu_ld=no
-fi])
-with_gnu_ld=$acl_cv_prog_gnu_ld
-])
-
-dnl From libtool-1.4. Sets the variable LD.
-AC_DEFUN([AC_LIB_PROG_LD],
-[AC_ARG_WITH(gnu-ld,
-[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by GCC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]* | [A-Za-z]:[\\/]*)]
- [re_direlt='/[^/][^/]*/\.\./']
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(acl_cv_path_LD,
-[if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- acl_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$acl_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_LIB_PROG_LD_GNU
-])
-# lib-link.m4 serial 4 (gettext-0.12)
-dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
-dnl augments the CPPFLAGS variable.
-AC_DEFUN([AC_LIB_LINKFLAGS],
-[
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
- define([Name],[translit([$1],[./-], [___])])
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
- AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
- AC_LIB_LINKFLAGS_BODY([$1], [$2])
- ac_cv_lib[]Name[]_libs="$LIB[]NAME"
- ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
- ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
- ])
- LIB[]NAME="$ac_cv_lib[]Name[]_libs"
- LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
- INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
- AC_SUBST([LIB]NAME)
- AC_SUBST([LTLIB]NAME)
- dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
- dnl results of this search when this library appears as a dependency.
- HAVE_LIB[]NAME=yes
- undefine([Name])
- undefine([NAME])
-])
-
-dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
-dnl searches for libname and the libraries corresponding to explicit and
-dnl implicit dependencies, together with the specified include files and
-dnl the ability to compile and link the specified testcode. If found, it
-dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
-dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
-dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
-dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
-AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
-[
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
- define([Name],[translit([$1],[./-], [___])])
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-
- dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
- dnl accordingly.
- AC_LIB_LINKFLAGS_BODY([$1], [$2])
-
- dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
- dnl because if the user has installed lib[]Name and not disabled its use
- dnl via --without-lib[]Name-prefix, he wants to use it.
- ac_save_CPPFLAGS="$CPPFLAGS"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-
- AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
- ac_save_LIBS="$LIBS"
- LIBS="$LIBS $LIB[]NAME"
- AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
- LIBS="$ac_save_LIBS"
- ])
- if test "$ac_cv_lib[]Name" = yes; then
- HAVE_LIB[]NAME=yes
- AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
- AC_MSG_CHECKING([how to link with lib[]$1])
- AC_MSG_RESULT([$LIB[]NAME])
- else
- HAVE_LIB[]NAME=no
- dnl If $LIB[]NAME didn't lead to a usable library, we don't need
- dnl $INC[]NAME either.
- CPPFLAGS="$ac_save_CPPFLAGS"
- LIB[]NAME=
- LTLIB[]NAME=
- fi
- AC_SUBST([HAVE_LIB]NAME)
- AC_SUBST([LIB]NAME)
- AC_SUBST([LTLIB]NAME)
- undefine([Name])
- undefine([NAME])
-])
-
-dnl Determine the platform dependent parameters needed to use rpath:
-dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
-dnl hardcode_direct, hardcode_minus_L.
-AC_DEFUN([AC_LIB_RPATH],
-[
- AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
- AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
- AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
- AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
- CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
- ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
- . ./conftest.sh
- rm -f ./conftest.sh
- acl_cv_rpath=done
- ])
- wl="$acl_cv_wl"
- libext="$acl_cv_libext"
- shlibext="$acl_cv_shlibext"
- hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
- hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
- hardcode_direct="$acl_cv_hardcode_direct"
- hardcode_minus_L="$acl_cv_hardcode_minus_L"
- dnl Determine whether the user wants rpath handling at all.
- AC_ARG_ENABLE(rpath,
- [ --disable-rpath do not hardcode runtime library paths],
- :, enable_rpath=yes)
-])
-
-dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
-AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
-[
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
- dnl By default, look in $includedir and $libdir.
- use_additional=yes
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- AC_LIB_ARG_WITH([lib$1-prefix],
-[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
- --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
-[
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
- fi
- fi
-])
- dnl Search the library and its dependencies in $additional_libdir and
- dnl $LDFLAGS. Using breadth-first-seach.
- LIB[]NAME=
- LTLIB[]NAME=
- INC[]NAME=
- rpathdirs=
- ltrpathdirs=
- names_already_handled=
- names_next_round='$1 $2'
- while test -n "$names_next_round"; do
- names_this_round="$names_next_round"
- names_next_round=
- for name in $names_this_round; do
- already_handled=
- for n in $names_already_handled; do
- if test "$n" = "$name"; then
- already_handled=yes
- break
- fi
- done
- if test -z "$already_handled"; then
- names_already_handled="$names_already_handled $name"
- dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
- dnl or AC_LIB_HAVE_LINKFLAGS call.
- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
- eval value=\"\$HAVE_LIB$uppername\"
- if test -n "$value"; then
- if test "$value" = yes; then
- eval value=\"\$LIB$uppername\"
- test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
- eval value=\"\$LTLIB$uppername\"
- test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
- else
- dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
- dnl that this library doesn't exist. So just drop it.
- :
- fi
- else
- dnl Search the library lib$name in $additional_libdir and $LDFLAGS
- dnl and the already constructed $LIBNAME/$LTLIBNAME.
- found_dir=
- found_la=
- found_so=
- found_a=
- if test $use_additional = yes; then
- if test "X$prefer_shared" = "Xyes" && test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
- found_dir="$additional_libdir"
- found_so="$additional_libdir/lib$name.$shlibext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- else
- if test -f "$additional_libdir/lib$name.$libext"; then
- found_dir="$additional_libdir"
- found_a="$additional_libdir/lib$name.$libext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- for x in $LDFLAGS $LTLIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- case "$x" in
- -L*)
- dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test "X$prefer_shared" = "Xyes" && test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
- found_dir="$dir"
- found_so="$dir/lib$name.$shlibext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- else
- if test -f "$dir/lib$name.$libext"; then
- found_dir="$dir"
- found_a="$dir/lib$name.$libext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- fi
- fi
- ;;
- esac
- if test "X$found_dir" != "X"; then
- break
- fi
- done
- fi
- if test "X$found_dir" != "X"; then
- dnl Found the library.
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
- if test "X$found_so" != "X"; then
- dnl Linking with a shared library. We attempt to hardcode its
- dnl directory into the executable's runpath, unless it's the
- dnl standard /usr/lib.
- if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
- dnl No hardcoding is needed.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- dnl Use an explicit option to hardcode DIR into the resulting
- dnl binary.
- dnl Potentially add DIR to ltrpathdirs.
- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $found_dir"
- fi
- dnl The hardcoding into $LIBNAME is system dependent.
- if test "$hardcode_direct" = yes; then
- dnl Using DIR/libNAME.so during linking hardcodes DIR into the
- dnl resulting binary.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
- dnl Use an explicit option to hardcode DIR into the resulting
- dnl binary.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- dnl Potentially add DIR to rpathdirs.
- dnl The rpathdirs will be appended to $LIBNAME at the end.
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $found_dir"
- fi
- else
- dnl Rely on "-L$found_dir".
- dnl But don't add it if it's already contained in the LDFLAGS
- dnl or the already constructed $LIBNAME
- haveit=
- for x in $LDFLAGS $LIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
- fi
- if test "$hardcode_minus_L" != no; then
- dnl FIXME: Not sure whether we should use
- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
- dnl here.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
- dnl here, because this doesn't fit in flags passed to the
- dnl compiler. So give up. No hardcoding. This affects only
- dnl very old systems.
- dnl FIXME: Not sure whether we should use
- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
- dnl here.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
- fi
- fi
- fi
- fi
- else
- if test "X$found_a" != "X"; then
- dnl Linking with a static library.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
- else
- dnl We shouldn't come here, but anyway it's good to have a
- dnl fallback.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
- fi
- fi
- dnl Assume the include files are nearby.
- additional_includedir=
- case "$found_dir" in
- */lib | */lib/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
- additional_includedir="$basedir/include"
- ;;
- esac
- if test "X$additional_includedir" != "X"; then
- dnl Potentially add $additional_includedir to $INCNAME.
- dnl But don't add it
- dnl 1. if it's the standard /usr/include,
- dnl 2. if it's /usr/local/include and we are using GCC on Linux,
- dnl 3. if it's already present in $CPPFLAGS or the already
- dnl constructed $INCNAME,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- for x in $CPPFLAGS $INC[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- dnl Really add $additional_includedir to $INCNAME.
- INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- fi
- dnl Look for dependencies.
- if test -n "$found_la"; then
- dnl Read the .la file. It defines the variables
- dnl dlname, library_names, old_library, dependency_libs, current,
- dnl age, revision, installed, dlopen, dlpreopen, libdir.
- save_libdir="$libdir"
- case "$found_la" in
- */* | *\\*) . "$found_la" ;;
- *) . "./$found_la" ;;
- esac
- libdir="$save_libdir"
- dnl We use only dependency_libs.
- for dep in $dependency_libs; do
- case "$dep" in
- -L*)
- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
- dnl But don't add it
- dnl 1. if it's the standard /usr/lib,
- dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
- dnl 3. if it's already present in $LDFLAGS or the already
- dnl constructed $LIBNAME,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/lib"; then
- haveit=
- if test "X$additional_libdir" = "X/usr/local/lib"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- haveit=
- for x in $LDFLAGS $LIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LIBNAME.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
- fi
- fi
- haveit=
- for x in $LDFLAGS $LTLIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LTLIBNAME.
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- ;;
- -R*)
- dir=`echo "X$dep" | sed -e 's/^X-R//'`
- if test "$enable_rpath" != no; then
- dnl Potentially add DIR to rpathdirs.
- dnl The rpathdirs will be appended to $LIBNAME at the end.
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $dir"
- fi
- dnl Potentially add DIR to ltrpathdirs.
- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $dir"
- fi
- fi
- ;;
- -l*)
- dnl Handle this in the next round.
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
- ;;
- *.la)
- dnl Handle this in the next round. Throw away the .la's
- dnl directory; it is already contained in a preceding -L
- dnl option.
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
- ;;
- *)
- dnl Most likely an immediate library name.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
- ;;
- esac
- done
- fi
- else
- dnl Didn't find the library; assume it is in the system directories
- dnl known to the linker and runtime loader. (All the system
- dnl directories known to the linker should also be known to the
- dnl runtime loader, otherwise the system is severely misconfigured.)
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
- fi
- fi
- fi
- done
- done
- if test "X$rpathdirs" != "X"; then
- if test -n "$hardcode_libdir_separator"; then
- dnl Weird platform: only the last -rpath option counts, the user must
- dnl pass all path elements in one option. We can arrange that for a
- dnl single library, but not when more than one $LIBNAMEs are used.
- alldirs=
- for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
- done
- dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
- acl_save_libdir="$libdir"
- libdir="$alldirs"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
- else
- dnl The -rpath options are cumulative.
- for found_dir in $rpathdirs; do
- acl_save_libdir="$libdir"
- libdir="$found_dir"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
- done
- fi
- fi
- if test "X$ltrpathdirs" != "X"; then
- dnl When using libtool, the option that works for both libraries and
- dnl executables is -R. The -R options are cumulative.
- for found_dir in $ltrpathdirs; do
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
- done
- fi
-])
-
-dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
-dnl unless already present in VAR.
-dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
-dnl contains two or three consecutive elements that belong together.
-AC_DEFUN([AC_LIB_APPENDTOVAR],
-[
- for element in [$2]; do
- haveit=
- for x in $[$1]; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X$element"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- [$1]="${[$1]}${[$1]:+ }$element"
- fi
- done
-])
-# lib-prefix.m4 serial 2 (gettext-0.12)
-dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
-dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
-dnl require excessive bracketing.
-ifdef([AC_HELP_STRING],
-[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
-[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
-
-dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
-dnl to access previously installed libraries. The basic assumption is that
-dnl a user will want packages to use other packages he previously installed
-dnl with the same --prefix option.
-dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
-dnl libraries, but is otherwise very convenient.
-AC_DEFUN([AC_LIB_PREFIX],
-[
- AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
- AC_REQUIRE([AC_PROG_CC])
- AC_REQUIRE([AC_CANONICAL_HOST])
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- dnl By default, look in $includedir and $libdir.
- use_additional=yes
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- AC_LIB_ARG_WITH([lib-prefix],
-[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
- --without-lib-prefix don't search for libraries in includedir and libdir],
-[
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
- fi
- fi
-])
- if test $use_additional = yes; then
- dnl Potentially add $additional_includedir to $CPPFLAGS.
- dnl But don't add it
- dnl 1. if it's the standard /usr/include,
- dnl 2. if it's already present in $CPPFLAGS,
- dnl 3. if it's /usr/local/include and we are using GCC on Linux,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- for x in $CPPFLAGS; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- dnl Really add $additional_includedir to $CPPFLAGS.
- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- dnl Potentially add $additional_libdir to $LDFLAGS.
- dnl But don't add it
- dnl 1. if it's the standard /usr/lib,
- dnl 2. if it's already present in $LDFLAGS,
- dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/lib"; then
- haveit=
- for x in $LDFLAGS; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test "X$additional_libdir" = "X/usr/local/lib"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LDFLAGS.
- LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- fi
-])
-
-dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
-dnl acl_final_exec_prefix, containing the values to which $prefix and
-dnl $exec_prefix will expand at the end of the configure script.
-AC_DEFUN([AC_LIB_PREPARE_PREFIX],
-[
- dnl Unfortunately, prefix and exec_prefix get only finally determined
- dnl at the end of configure.
- if test "X$prefix" = "XNONE"; then
- acl_final_prefix="$ac_default_prefix"
- else
- acl_final_prefix="$prefix"
- fi
- if test "X$exec_prefix" = "XNONE"; then
- acl_final_exec_prefix='${prefix}'
- else
- acl_final_exec_prefix="$exec_prefix"
- fi
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
- prefix="$acl_save_prefix"
-])
-
-dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
-dnl variables prefix and exec_prefix bound to the values they will have
-dnl at the end of the configure script.
-AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
-[
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- $1
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-])
-# nls.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-AC_DEFUN([AM_NLS],
-[
- AC_MSG_CHECKING([whether NLS is requested])
- dnl Default is enabled NLS
- AC_ARG_ENABLE(nls,
- [ --disable-nls do not use Native Language Support],
- USE_NLS=$enableval, USE_NLS=yes)
- AC_MSG_RESULT($USE_NLS)
- AC_SUBST(USE_NLS)
-])
-
-AC_DEFUN([AM_MKINSTALLDIRS],
-[
- dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
- dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
- dnl Try to locate it.
- MKINSTALLDIRS=
- if test -n "$ac_aux_dir"; then
- case "$ac_aux_dir" in
- /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
- *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
- esac
- fi
- if test -z "$MKINSTALLDIRS"; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
- AC_SUBST(MKINSTALLDIRS)
-])
-# po.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-dnl Checks for all prerequisites of the po subdirectory.
-AC_DEFUN([AM_PO_SUBDIRS],
-[
- AC_REQUIRE([AC_PROG_MAKE_SET])dnl
- AC_REQUIRE([AC_PROG_INSTALL])dnl
- AC_REQUIRE([AM_MKINSTALLDIRS])dnl
- AC_REQUIRE([AM_NLS])dnl
-
- dnl Perform the following tests also if --disable-nls has been given,
- dnl because they are needed for "make dist" to work.
-
- dnl Search for GNU msgfmt in the PATH.
- dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
- dnl The second test excludes FreeBSD msgfmt.
- AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
- dnl Search for GNU xgettext 0.12 or newer in the PATH.
- dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
- dnl The second test excludes FreeBSD xgettext.
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
- dnl Remove leftover from FreeBSD xgettext call.
- rm -f messages.po
-
- dnl Search for GNU msgmerge 0.11 or newer in the PATH.
- AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
- [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
-
- dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
- dnl Test whether we really found GNU msgfmt.
- if test "$GMSGFMT" != ":"; then
- dnl If it is no GNU msgfmt we define it as : so that the
- dnl Makefiles still can work.
- if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
- (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
- AC_MSG_RESULT(
- [found $GMSGFMT program is not GNU msgfmt; ignore it])
- GMSGFMT=":"
- fi
- fi
-
- dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
- dnl Test whether we really found GNU xgettext.
- if test "$XGETTEXT" != ":"; then
- dnl If it is no GNU xgettext we define it as : so that the
- dnl Makefiles still can work.
- if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
- (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- AC_MSG_RESULT(
- [found xgettext program is not GNU xgettext; ignore it])
- XGETTEXT=":"
- fi
- dnl Remove leftover from FreeBSD xgettext call.
- rm -f messages.po
- fi
-
- AC_OUTPUT_COMMANDS([
- for ac_file in $CONFIG_FILES; do
- # Support "outfile[:infile[:infile...]]"
- case "$ac_file" in
- *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- esac
- # PO directories have a Makefile.in generated from Makefile.in.in.
- case "$ac_file" in */Makefile.in)
- # Adjust a relative srcdir.
- ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
- ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
- ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
- # In autoconf-2.13 it is called $ac_given_srcdir.
- # In autoconf-2.50 it is called $srcdir.
- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
- case "$ac_given_srcdir" in
- .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
- /*) top_srcdir="$ac_given_srcdir" ;;
- *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
- if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
- rm -f "$ac_dir/POTFILES"
- test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
- cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
- POMAKEFILEDEPS="POTFILES.in"
- # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
- # on $ac_dir but don't depend on user-specified configuration
- # parameters.
- if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
- # The LINGUAS file contains the set of available languages.
- if test -n "$OBSOLETE_ALL_LINGUAS"; then
- test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
- fi
- ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- # Hide the ALL_LINGUAS assigment from automake.
- eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
- POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
- else
- # The set of available languages was given in configure.in.
- eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
- fi
- case "$ac_given_srcdir" in
- .) srcdirpre= ;;
- *) srcdirpre='$(srcdir)/' ;;
- esac
- POFILES=
- GMOFILES=
- UPDATEPOFILES=
- DUMMYPOFILES=
- for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
- done
- # CATALOGS depends on both $ac_dir and the user's LINGUAS
- # environment variable.
- INST_LINGUAS=
- if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test "%UNSET%" != "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- # Use the presentlang catalog if desiredlang is
- # a. equal to presentlang, or
- # b. a variant of presentlang (because in this case,
- # presentlang can be used as a fallback for messages
- # which are not translated in the desiredlang catalog).
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
- fi
- CATALOGS=
- if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- done
- fi
- test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
- sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
- for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
- if test -f "$f"; then
- case "$f" in
- *.orig | *.bak | *~) ;;
- *) cat "$f" >> "$ac_dir/Makefile" ;;
- esac
- fi
- done
- fi
- ;;
- esac
- done],
- [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
- # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
- # from automake.
- eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
- # Capture the value of LINGUAS because we need it to compute CATALOGS.
- LINGUAS="${LINGUAS-%UNSET%}"
- ])
-])
-# progtest.m4 serial 3 (gettext-0.12)
-dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-# Search path for a program which passes the given test.
-
-dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN([AM_PATH_PROG_WITH_TEST],
-[
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
- ac_executable_p="test -x"
-else
- ac_executable_p="test -f"
-fi
-rm -f conf$$.file
-
-# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
-[case "[$]$1" in
- [[\\/]]* | ?:[[\\/]]*)
- ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
- ;;
- *)
- ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in ifelse([$5], , $PATH, [$5]); do
- IFS="$ac_save_IFS"
- test -z "$ac_dir" && ac_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- if [$3]; then
- ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
- break 2
- fi
- fi
- done
- done
- IFS="$ac_save_IFS"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
- ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
- AC_MSG_RESULT([$]$1)
-else
- AC_MSG_RESULT(no)
-fi
-AC_SUBST($1)dnl
-])
-# stdint_h.m4 serial 3 (gettext-0.12)
-dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
-# doesn't clash with <sys/types.h>, and declares uintmax_t.
-
-AC_DEFUN([jm_AC_HEADER_STDINT_H],
-[
- AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
- [AC_TRY_COMPILE(
- [#include <sys/types.h>
-#include <stdint.h>],
- [uintmax_t i = (uintmax_t) -1;],
- jm_ac_cv_header_stdint_h=yes,
- jm_ac_cv_header_stdint_h=no)])
- if test $jm_ac_cv_header_stdint_h = yes; then
- AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
- [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
- and declares uintmax_t. ])
- fi
-])
-# uintmax_t.m4 serial 7 (gettext-0.12)
-dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-AC_PREREQ(2.13)
-
-# Define uintmax_t to 'unsigned long' or 'unsigned long long'
-# if it is not already defined in <stdint.h> or <inttypes.h>.
-
-AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
-[
- AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
- AC_REQUIRE([jm_AC_HEADER_STDINT_H])
- if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
- AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
- test $ac_cv_type_unsigned_long_long = yes \
- && ac_type='unsigned long long' \
- || ac_type='unsigned long'
- AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
- [Define to unsigned long or unsigned long long
- if <stdint.h> and <inttypes.h> don't define.])
- else
- AC_DEFINE(HAVE_UINTMAX_T, 1,
- [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
- fi
-])
-# ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40)
-dnl Copyright (C) 1999-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
-[
- AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
- [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;],
- [unsigned long long ullmax = (unsigned long long) -1;
- return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
- ac_cv_type_unsigned_long_long=yes,
- ac_cv_type_unsigned_long_long=no)])
- if test $ac_cv_type_unsigned_long_long = yes; then
- AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
- [Define if you have the unsigned long long type.])
- fi
-])
-
dnl From gnulib
AC_DEFUN([BASH_FUNC_FPURGE],
[
@@ -4068,7 +2099,9 @@ AC_DEFUN([BASH_FUNC_SNPRINTF],
AC_CACHE_CHECK([for standard-conformant snprintf], [bash_cv_func_snprintf],
[AC_TRY_RUN([
#include <stdio.h>
+#include <stdlib.h>
+int
main()
{
int n;
@@ -4125,6 +2158,7 @@ foo(format, va_alist)
return n;
}
+int
main()
{
int n;
@@ -4154,6 +2188,7 @@ AC_CACHE_VAL(bash_cv_wexitstatus_offset,
#include <sys/wait.h>
+int
main(c, v)
int c;
char **v;
@@ -4172,7 +2207,7 @@ main(c, v)
exit (255);
/* crack s */
- for (i = 0; i < (sizeof(s) - 8); i++)
+ for (i = 0; i < (sizeof(s) * 8); i++)
{
n = (s >> i) & 0xff;
if (n == 42)
@@ -4195,7 +2230,12 @@ AC_DEFINE_UNQUOTED([WEXITSTATUS_OFFSET], [$bash_cv_wexitstatus_offset], [Offset
AC_DEFUN([BASH_FUNC_SBRK],
[
- AC_CHECK_FUNCS_ONCE([sbrk])
+ AC_MSG_CHECKING([for sbrk])
+ AC_CACHE_VAL(ac_cv_func_sbrk,
+ [AC_TRY_LINK([#include <unistd.h>],
+ [ void *x = sbrk (4096); ],
+ ac_cv_func_sbrk=yes, ac_cv_func_sbrk=no)])
+ AC_MSG_RESULT($ac_cv_func_sbrk)
if test X$ac_cv_func_sbrk = Xyes; then
AC_CACHE_CHECK([for working sbrk], [bash_cv_func_sbrk],
[AC_TRY_RUN([
@@ -4218,8 +2258,8 @@ main(int c, char **v)
ac_cv_func_sbrk=no
fi
fi
- if test $ac_cv_func_sbrk = no; then
- AC_DEFINE(HAVE_SBRK, 0,
+ if test $ac_cv_func_sbrk = yes; then
+ AC_DEFINE(HAVE_SBRK, 1,
[Define if you have a working sbrk function.])
fi
])
@@ -4242,7 +2282,7 @@ unsigned char string[4] = { '\xc3', '\xa4', '\0' };
int
main (int c, char **v)
{
- setlocale (LC_ALL, "de_DE.UTF-8");
+ setlocale (LC_ALL, "en_US.UTF-8");
if (fnmatch (pattern, (const char *)string, 0) != FNM_NOMATCH)
exit (0);
exit (1);
diff --git a/bind.c b/bind.c
index 57ae10f..87596dc 100644
--- a/bind.c
+++ b/bind.c
@@ -1,6 +1,6 @@
/* bind.c -- key binding and startup file support for the readline library. */
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2020 Free Software Foundation, Inc.
This file is part of the GNU Readline Library (Readline), a library
for reading lines of text with interactive input and history editing.
@@ -135,12 +135,13 @@ rl_add_defun (const char *name, rl_command_func_t *function, int key)
int
rl_bind_key (int key, rl_command_func_t *function)
{
- char keyseq[3];
+ char keyseq[4];
int l;
- if (key < 0)
+ if (key < 0 || key > largest_char)
return (key);
+ /* Want to make this a multi-character key sequence with an ESC prefix */
if (META_CHAR (key) && _rl_convert_meta_chars_to_ascii)
{
if (_rl_keymap[ESC].type == ISKMAP)
@@ -153,24 +154,43 @@ rl_bind_key (int key, rl_command_func_t *function)
escmap[key].function = function;
return (0);
}
- return (key);
+
+ /* Otherwise, let's just let rl_generic_bind handle the key sequence.
+ We start it off with ESC here and let the code below add the rest
+ of the sequence. */
+ keyseq[0] = ESC;
+ l = 1;
+ key = UNMETA(key);
+ goto bind_keyseq;
}
/* If it's bound to a function or macro, just overwrite. Otherwise we have
to treat it as a key sequence so rl_generic_bind handles shadow keymaps
- for us. If we are binding '\' make sure to escape it so it makes it
- through the call to rl_translate_keyseq. */
+ for us. If we are binding '\' or \C-@ (NUL) make sure to escape it so
+ it makes it through the call to rl_translate_keyseq. */
if (_rl_keymap[key].type != ISKMAP)
{
+ if (_rl_keymap[key].type == ISMACR)
+ xfree ((char *)_rl_keymap[key].function);
_rl_keymap[key].type = ISFUNC;
_rl_keymap[key].function = function;
}
else
{
l = 0;
+bind_keyseq:
if (key == '\\')
- keyseq[l++] = '\\';
- keyseq[l++] = key;
+ {
+ keyseq[l++] = '\\';
+ keyseq[l++] = '\\';
+ }
+ else if (key == '\0')
+ {
+ keyseq[l++] = '\\';
+ keyseq[l++] = '0';
+ }
+ else
+ keyseq[l++] = key;
keyseq[l] = '\0';
rl_bind_keyseq (keyseq, function);
}
@@ -242,6 +262,13 @@ rl_unbind_function_in_map (rl_command_func_t *func, Keymap map)
map[i].function = (rl_command_func_t *)NULL;
rval = 1;
}
+ else if (map[i].type == ISKMAP) /* TAG:readline-8.1 */
+ {
+ int r;
+ r = rl_unbind_function_in_map (func, FUNCTION_TO_KEYMAP (map, i));
+ if (r == 1)
+ rval = 1;
+ }
}
return rval;
}
@@ -352,7 +379,7 @@ int
rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
{
char *keys;
- int keys_len, prevkey;
+ int keys_len, prevkey, ic;
register int i;
KEYMAP_ENTRY k;
Keymap prevmap;
@@ -385,7 +412,6 @@ rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
for (i = 0; i < keys_len; i++)
{
unsigned char uc = keys[i];
- int ic;
if (i > 0)
prevkey = ic;
@@ -397,6 +423,9 @@ rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
return -1;
}
+ /* We now rely on rl_translate_keyseq to do this conversion, so this
+ check is superfluous. */
+#if 0
if (META_CHAR (ic) && _rl_convert_meta_chars_to_ascii)
{
ic = UNMETA (ic);
@@ -406,6 +435,7 @@ rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
map = FUNCTION_TO_KEYMAP (map, ESC);
}
}
+#endif
if ((i + 1) < keys_len)
{
@@ -439,9 +469,7 @@ rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
}
else
{
- if (map[ic].type == ISMACR)
- xfree ((char *)map[ic].function);
- else if (map[ic].type == ISKMAP)
+ if (map[ic].type == ISKMAP)
{
prevmap = map;
map = FUNCTION_TO_KEYMAP (map, ic);
@@ -454,6 +482,8 @@ rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
if (type == ISFUNC && data == 0)
data = (char *)_rl_null_function;
}
+ if (map[ic].type == ISMACR)
+ xfree ((char *)map[ic].function);
map[ic].function = KEYMAP_TO_FUNCTION (data);
map[ic].type = type;
@@ -492,59 +522,38 @@ rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
int
rl_translate_keyseq (const char *seq, char *array, int *len)
{
- register int i, c, l, temp;
+ register int i, l, temp;
+ int has_control, has_meta;
+ unsigned char c;
- for (i = l = 0; c = seq[i]; i++)
+ has_control = 0;
+ has_meta = 0;
+
+ /* When there are incomplete prefixes \C- or \M- (has_control || has_meta)
+ without base character at the end of SEQ, they are processed as the
+ prefixes for '\0'.
+ */
+ for (i = l = 0; (c = seq[i]) || has_control || has_meta; i++)
{
- if (c == '\\')
+ /* Only backslashes followed by a non-null character are handled
+ specially. Trailing backslash (backslash followed by '\0') is
+ processed as a normal character.
+ */
+ if (c == '\\' && seq[i + 1] != '\0')
{
c = seq[++i];
- if (c == 0)
+ /* Handle \C- and \M- prefixes. */
+ if (c == 'C' && seq[i + 1] == '-')
{
- array[l++] = '\\'; /* preserve trailing backslash */
- break;
+ i++;
+ has_control = 1;
+ continue;
}
-
- /* Handle \C- and \M- prefixes. */
- if ((c == 'C' || c == 'M') && seq[i + 1] == '-')
+ else if (c == 'M' && seq[i + 1] == '-')
{
- /* Handle special case of backwards define. */
- if (strncmp (&seq[i], "C-\\M-", 5) == 0)
- {
- array[l++] = ESC; /* ESC is meta-prefix */
- i += 5;
- array[l++] = CTRL (_rl_to_upper (seq[i]));
- }
- else if (c == 'M')
- {
- i++; /* seq[i] == '-' */
- /* XXX - obey convert-meta setting */
- if (_rl_convert_meta_chars_to_ascii && _rl_keymap[ESC].type == ISKMAP)
- array[l++] = ESC; /* ESC is meta-prefix */
- else if (seq[i+1] == '\\' && seq[i+2] == 'C' && seq[i+3] == '-')
- {
- i += 4;
- temp = (seq[i] == '?') ? RUBOUT : CTRL (_rl_to_upper (seq[i]));
- array[l++] = META (temp);
- }
- else
- {
- /* This doesn't yet handle things like \M-\a, which may
- or may not have any reasonable meaning. You're
- probably better off using straight octal or hex. */
- i++;
- array[l++] = META (seq[i]);
- }
- }
- else if (c == 'C')
- {
- i += 2;
- /* Special hack for C-?... */
- array[l++] = (seq[i] == '?') ? RUBOUT : CTRL (_rl_to_upper (seq[i]));
- }
- if (seq[i] == '\0')
- break;
+ i++;
+ has_meta = 1;
continue;
}
@@ -555,34 +564,34 @@ rl_translate_keyseq (const char *seq, char *array, int *len)
switch (c)
{
case 'a':
- array[l++] = '\007';
+ c = '\007';
break;
case 'b':
- array[l++] = '\b';
+ c = '\b';
break;
case 'd':
- array[l++] = RUBOUT; /* readline-specific */
+ c = RUBOUT; /* readline-specific */
break;
case 'e':
- array[l++] = ESC;
+ c = ESC;
break;
case 'f':
- array[l++] = '\f';
+ c = '\f';
break;
case 'n':
- array[l++] = NEWLINE;
+ c = NEWLINE;
break;
case 'r':
- array[l++] = RETURN;
+ c = RETURN;
break;
case 't':
- array[l++] = TAB;
+ c = TAB;
break;
case 'v':
- array[l++] = 0x0B;
+ c = 0x0B;
break;
case '\\':
- array[l++] = '\\';
+ c = '\\';
break;
case '0': case '1': case '2': case '3':
case '4': case '5': case '6': case '7':
@@ -590,7 +599,7 @@ rl_translate_keyseq (const char *seq, char *array, int *len)
for (temp = 2, c -= '0'; ISOCTAL ((unsigned char)seq[i]) && temp--; i++)
c = (c * 8) + OCTVALUE (seq[i]);
i--; /* auto-increment in for loop */
- array[l++] = c & largest_char;
+ c &= largest_char;
break;
case 'x':
i++;
@@ -599,16 +608,40 @@ rl_translate_keyseq (const char *seq, char *array, int *len)
if (temp == 2)
c = 'x';
i--; /* auto-increment in for loop */
- array[l++] = c & largest_char;
+ c &= largest_char;
break;
default: /* backslashes before non-special chars just add the char */
- array[l++] = c;
+ c &= largest_char;
break; /* the backslash is stripped */
}
- continue;
}
- array[l++] = c;
+ /* Process \C- and \M- flags */
+ if (has_control)
+ {
+ /* Special treatment for C-? */
+ c = (c == '?') ? RUBOUT : CTRL (_rl_to_upper (c));
+ has_control = 0;
+ }
+ if (has_meta)
+ {
+ c = META (c);
+ has_meta = 0;
+ }
+
+ /* If convert-meta is turned on, convert a meta char to a key sequence */
+ if (META_CHAR (c) && _rl_convert_meta_chars_to_ascii)
+ {
+ array[l++] = ESC; /* ESC is meta-prefix */
+ array[l++] = UNMETA (c);
+ }
+ else
+ array[l++] = (c);
+
+ /* Null characters may be processed for incomplete prefixes at the end of
+ sequence */
+ if (seq[i] == '\0')
+ break;
}
*len = l;
@@ -756,7 +789,7 @@ _rl_untranslate_macro_value (char *seq, int use_escapes)
/* Return a pointer to the function that STRING represents.
If STRING doesn't have a matching function, then a NULL pointer
- is returned. */
+ is returned. The string match is case-insensitive. */
rl_command_func_t *
rl_named_function (const char *string)
{
@@ -809,7 +842,7 @@ _rl_function_of_keyseq_internal (const char *keyseq, size_t len, Keymap map, int
{
/* If this is the last key in the key sequence, return the
map. */
- if (keyseq[i + 1] == '\0')
+ if (i + 1 == len)
{
if (type)
*type = ISKMAP;
@@ -822,9 +855,9 @@ _rl_function_of_keyseq_internal (const char *keyseq, size_t len, Keymap map, int
/* If we're not at the end of the key sequence, and the current key
is bound to something other than a keymap, then the entire key
sequence is not bound. */
- else if (map[ic].type != ISKMAP && keyseq[i+1])
+ else if (map[ic].type != ISKMAP && i+1 < len)
return ((rl_command_func_t *)NULL);
- else /* map[ic].type != ISKMAP && keyseq[i+1] == 0 */
+ else /* map[ic].type != ISKMAP && i+1 == len */
{
if (type)
*type = map[ic].type;
@@ -1569,15 +1602,11 @@ rl_parse_and_bind (char *string)
/* Strip trailing whitespace from values of boolean variables. */
if (find_boolean_var (var) >= 0)
{
- /* remove trailing whitespace */
-remove_trailing:
- e = value + strlen (value) - 1;
- while (e >= value && whitespace (*e))
- e--;
- e++; /* skip back to whitespace or EOS */
-
- if (*e && e >= value)
- *e = '\0';
+ /* just read a whitespace-delimited word or empty string */
+ for (e = value; *e && whitespace (*e) == 0; e++)
+ ;
+ if (e > value)
+ *e = '\0'; /* cut off everything trailing */
}
else if ((i = find_string_var (var)) >= 0)
{
@@ -1589,9 +1618,24 @@ remove_trailing:
value++; /* skip past the quote */
}
else
- goto remove_trailing;
+ {
+ /* remove trailing whitespace */
+ e = value + strlen (value) - 1;
+ while (e >= value && whitespace (*e))
+ e--;
+ e++; /* skip back to whitespace or EOS */
+
+ if (*e && e >= value)
+ *e = '\0';
+ }
}
-
+ else
+ {
+ /* avoid calling rl_variable_bind just to find this out */
+ _rl_init_file_error ("%s: unknown variable name", var);
+ return 1;
+ }
+
rl_variable_bind (var, value);
return 0;
}
@@ -1768,7 +1812,7 @@ static const struct {
{ "convert-meta", &_rl_convert_meta_chars_to_ascii, 0 },
{ "disable-completion", &rl_inhibit_completion, 0 },
{ "echo-control-characters", &_rl_echo_control_chars, 0 },
- { "enable-bracketed-paste", &_rl_enable_bracketed_paste, 0 },
+ { "enable-bracketed-paste", &_rl_enable_bracketed_paste, V_SPECIAL },
{ "enable-keypad", &_rl_enable_keypad, 0 },
{ "enable-meta-key", &_rl_enable_meta, 0 },
{ "expand-tilde", &rl_complete_with_tilde_expansion, 0 },
@@ -1834,6 +1878,8 @@ hack_special_boolean_var (int i)
}
else if (_rl_stricmp (name, "show-mode-in-prompt") == 0)
_rl_reset_prompt ();
+ else if (_rl_stricmp (name, "enable-bracketed-paste") == 0)
+ _rl_enable_active_region = _rl_enable_bracketed_paste;
}
typedef int _rl_sv_func_t PARAMS((const char *));
@@ -1903,7 +1949,7 @@ string_varname (int i)
}
/* A boolean value that can appear in a `set variable' command is true if
- the value is null or empty, `on' (case-insensitive), or "1". Any other
+ the value is null or empty, `on' (case-insensitive), or "1". All other
values result in 0 (false). */
static int
bool_to_int (const char *value)
@@ -1928,7 +1974,7 @@ rl_variable_value (const char *name)
return (_rl_get_string_variable_value (string_varlist[i].name));
/* Unknown variable names return NULL. */
- return 0;
+ return (char *)NULL;
}
int
@@ -1959,6 +2005,8 @@ rl_variable_bind (const char *name, const char *value)
}
v = (*string_varlist[i].set_func) (value);
+ if (v != 0)
+ _rl_init_file_error ("%s: could not set value to `%s'", name, value);
return v;
}
@@ -2581,20 +2629,22 @@ rl_invoking_keyseqs_in_map (rl_command_func_t *function, Keymap map)
else
sprintf (keyname, "\\e");
}
- else if (CTRL_CHAR (key))
- sprintf (keyname, "\\C-%c", _rl_to_lower (UNCTRL (key)));
- else if (key == RUBOUT)
- sprintf (keyname, "\\C-?");
- else if (key == '\\' || key == '"')
- {
- keyname[0] = '\\';
- keyname[1] = (char) key;
- keyname[2] = '\0';
- }
else
{
- keyname[0] = (char) key;
- keyname[1] = '\0';
+ int c = key, l = 0;
+ if (CTRL_CHAR (c) || c == RUBOUT)
+ {
+ keyname[l++] = '\\';
+ keyname[l++] = 'C';
+ keyname[l++] = '-';
+ c = (c == RUBOUT) ? '?' : _rl_to_lower (UNCTRL (c));
+ }
+
+ if (c == '\\' || c == '"')
+ keyname[l++] = '\\';
+
+ keyname[l++] = (char) c;
+ keyname[l++] = '\0';
}
strcat (keyname, seqs[i]);
diff --git a/colors.c b/colors.c
index 53758e0..9e37527 100644
--- a/colors.c
+++ b/colors.c
@@ -2,7 +2,7 @@
Modified by Chet Ramey for Readline.
- Copyright (C) 1985, 1988, 1990-1991, 1995-2010, 2012, 2015, 2017
+ Copyright (C) 1985, 1988, 1990-1991, 1995-2010, 2012, 2015, 2017, 2019
Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
@@ -32,6 +32,13 @@
#include "rlconf.h"
+#if defined __TANDEM
+# define _XOPEN_SOURCE_EXTENDED 1
+# define _TANDEM_SOURCE 1
+# include <sys/types.h>
+# include <sys/stat.h>
+#endif
+
#include <stdio.h>
#include "posixstat.h" // stat related macros (S_ISREG, ...)
@@ -175,7 +182,7 @@ _rl_print_color_indicator (const char *f)
if (linkok == -1 && _rl_color_indicator[C_MISSING].string != NULL)
colored_filetype = C_MISSING;
- else if (linkok == 0 && S_ISLNK(mode) && _rl_color_indicator[C_ORPHAN].string != NULL)
+ else if (linkok == 0 && _rl_color_indicator[C_ORPHAN].string != NULL)
colored_filetype = C_ORPHAN; /* dangling symlink */
else if(stat_ok != 0)
{
diff --git a/complete.c b/complete.c
index adce0d6..fc5c3ad 100644
--- a/complete.c
+++ b/complete.c
@@ -1,6 +1,6 @@
/* complete.c -- filename completion for readline. */
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2020 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.
@@ -21,11 +21,18 @@
#define READLINE_LIBRARY
+#if defined (__TANDEM)
+# define _XOPEN_SOURCE_EXTENDED 1
+#endif
+
#if defined (HAVE_CONFIG_H)
# include <config.h>
#endif
#include <sys/types.h>
+#if defined (__TANDEM)
+# include <sys/stat.h>
+#endif
#include <fcntl.h>
#if defined (HAVE_SYS_FILE_H)
# include <sys/file.h>
@@ -141,6 +148,7 @@ static int complete_fncmp PARAMS((const char *, int, const char *, int));
static void display_matches PARAMS((char **));
static int compute_lcd_of_matches PARAMS((char **, int, const char *));
static int postprocess_matches PARAMS((char ***, int));
+static int compare_match PARAMS((char *, const char *));
static int complete_get_screenwidth PARAMS((void));
static char *make_quoted_replacement PARAMS((char *, int, char *));
@@ -406,6 +414,7 @@ int rl_sort_completion_matches = 1;
/* Local variable states what happened during the last completion attempt. */
static int completion_changed_buffer;
+static int last_completion_failed = 0;
/* The result of the query to the user about displaying completion matches */
static int completion_y_or_n;
@@ -428,7 +437,11 @@ rl_complete (int ignore, int invoking_key)
if (rl_inhibit_completion)
return (_rl_insert_char (ignore, invoking_key));
- else if (rl_last_func == rl_complete && !completion_changed_buffer)
+#if 0
+ else if (rl_last_func == rl_complete && completion_changed_buffer == 0 && last_completion_failed == 0)
+#else
+ else if (rl_last_func == rl_complete && completion_changed_buffer == 0)
+#endif
return (rl_complete_internal ('?'));
else if (_rl_complete_show_all)
return (rl_complete_internal ('!'));
@@ -477,7 +490,7 @@ rl_completion_mode (rl_command_func_t *cfunc)
/* */
/************************************/
-/* Reset readline state on a signal or other event. */
+/* Reset public readline state on a signal or other event. */
void
_rl_reset_completion_state (void)
{
@@ -1330,12 +1343,13 @@ compute_lcd_of_matches (char **match_list, int matches, const char *text)
memset (&ps2, 0, sizeof (mbstate_t));
}
#endif
- if (_rl_completion_case_fold)
+ for (si = 0; (c1 = match_list[i][si]) && (c2 = match_list[i + 1][si]); si++)
{
- for (si = 0;
- (c1 = _rl_to_lower(match_list[i][si])) &&
- (c2 = _rl_to_lower(match_list[i + 1][si]));
- si++)
+ if (_rl_completion_case_fold)
+ {
+ c1 = _rl_to_lower (c1);
+ c2 = _rl_to_lower (c2);
+ }
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
@@ -1347,8 +1361,11 @@ compute_lcd_of_matches (char **match_list, int matches, const char *text)
break;
continue;
}
- wc1 = towlower (wc1);
- wc2 = towlower (wc2);
+ if (_rl_completion_case_fold)
+ {
+ wc1 = towlower (wc1);
+ wc2 = towlower (wc2);
+ }
if (wc1 != wc2)
break;
else if (v1 > 1)
@@ -1359,27 +1376,6 @@ compute_lcd_of_matches (char **match_list, int matches, const char *text)
if (c1 != c2)
break;
}
- else
- {
- for (si = 0;
- (c1 = match_list[i][si]) &&
- (c2 = match_list[i + 1][si]);
- si++)
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- mbstate_t ps_back;
- ps_back = ps1;
- if (!_rl_compare_chars (match_list[i], si, &ps1, match_list[i+1], si, &ps2))
- break;
- else if ((v = _rl_get_char_len (&match_list[i][si], &ps_back)) > 1)
- si += v - 1;
- }
- else
-#endif
- if (c1 != c2)
- break;
- }
if (low > si)
low = si;
@@ -1969,6 +1965,26 @@ _rl_free_match_list (char **matches)
xfree (matches);
}
+/* Compare a possibly-quoted filename TEXT from the line buffer and a possible
+ MATCH that is the product of filename completion, which acts on the dequoted
+ text. */
+static int
+compare_match (char *text, const char *match)
+{
+ char *temp;
+ int r;
+
+ if (rl_filename_completion_desired && rl_filename_quoting_desired &&
+ rl_completion_found_quote && rl_filename_dequoting_function)
+ {
+ temp = (*rl_filename_dequoting_function) (text, rl_completion_quote_character);
+ r = strcmp (temp, match);
+ free (temp);
+ return r;
+ }
+ return (strcmp (text, match));
+}
+
/* Complete the word at or before point.
WHAT_TO_DO says what to do with the completion.
`?' means list the possible completions.
@@ -1986,10 +2002,12 @@ rl_complete_internal (int what_to_do)
int start, end, delimiter, found_quote, i, nontrivial_lcd;
char *text, *saved_line_buffer;
char quote_char;
- int tlen, mlen;
+ int tlen, mlen, saved_last_completion_failed;
RL_SETSTATE(RL_STATE_COMPLETING);
+ saved_last_completion_failed = last_completion_failed;
+
set_completion_defaults (what_to_do);
saved_line_buffer = rl_line_buffer ? savestring (rl_line_buffer) : (char *)NULL;
@@ -2013,7 +2031,7 @@ rl_complete_internal (int what_to_do)
matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
/* nontrivial_lcd is set if the common prefix adds something to the word
being completed. */
- nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
+ nontrivial_lcd = matches && compare_match (text, matches[0]) != 0;
if (what_to_do == '!' || what_to_do == '@')
tlen = strlen (text);
xfree (text);
@@ -2023,6 +2041,7 @@ rl_complete_internal (int what_to_do)
rl_ding ();
FREE (saved_line_buffer);
completion_changed_buffer = 0;
+ last_completion_failed = 1;
RL_UNSETSTATE(RL_STATE_COMPLETING);
_rl_reset_completion_state ();
return (0);
@@ -2038,11 +2057,15 @@ rl_complete_internal (int what_to_do)
rl_ding ();
FREE (saved_line_buffer);
completion_changed_buffer = 0;
+ last_completion_failed = 1;
RL_UNSETSTATE(RL_STATE_COMPLETING);
_rl_reset_completion_state ();
return (0);
}
+ if (matches && matches[0] && *matches[0])
+ last_completion_failed = 0;
+
switch (what_to_do)
{
case TAB:
@@ -2098,6 +2121,15 @@ rl_complete_internal (int what_to_do)
break;
case '?':
+ /* Let's try to insert a single match here if the last completion failed
+ but this attempt returned a single match. */
+ if (saved_last_completion_failed && matches[0] && *matches[0] && matches[1] == 0)
+ {
+ insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
+ append_to_match (matches[0], delimiter, quote_char, nontrivial_lcd);
+ break;
+ }
+
if (rl_completion_display_matches_hook == 0)
{
_rl_sigcleanup = _rl_complete_sigcleanup;
@@ -2761,7 +2793,7 @@ rl_old_menu_complete (int count, int invoking_key)
{
insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, &quote_char);
append_to_match (matches[match_list_index], delimiter, quote_char,
- strcmp (orig_text, matches[match_list_index]));
+ compare_match (orig_text, matches[match_list_index]));
}
completion_changed_buffer = 1;
@@ -2835,7 +2867,7 @@ rl_menu_complete (int count, int ignore)
matches = gen_completion_matches (orig_text, orig_start, orig_end,
our_func, found_quote, quote_char);
- nontrivial_lcd = matches && strcmp (orig_text, matches[0]) != 0;
+ nontrivial_lcd = matches && compare_match (orig_text, matches[0]) != 0;
/* If we are matching filenames, the attempted completion function will
have set rl_filename_completion_desired to a non-zero value. The basic
@@ -2942,7 +2974,7 @@ rl_menu_complete (int count, int ignore)
{
insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, &quote_char);
append_to_match (matches[match_list_index], delimiter, quote_char,
- strcmp (orig_text, matches[match_list_index]));
+ compare_match (orig_text, matches[match_list_index]));
}
completion_changed_buffer = 1;
diff --git a/configure b/configure
index c9b7ade..5a0bf2f 100755
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
#! /bin/sh
-# From configure.ac for Readline 8.0, version 2.85.
+# From configure.ac for Readline 8.1, version 2.90.
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for readline 8.0.
+# Generated by GNU Autoconf 2.69 for readline 8.1.
#
# Report bugs to <bug-readline@gnu.org>.
#
@@ -581,8 +581,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='readline'
PACKAGE_TARNAME='readline'
-PACKAGE_VERSION='8.0'
-PACKAGE_STRING='readline 8.0'
+PACKAGE_VERSION='8.1'
+PACKAGE_STRING='readline 8.1'
PACKAGE_BUGREPORT='bug-readline@gnu.org'
PACKAGE_URL=''
@@ -673,6 +673,7 @@ CFLAGS
CC
SET_MAKE
CROSS_COMPILE
+BRACKETED_PASTE
host_os
host_vendor
host_cpu
@@ -727,6 +728,7 @@ enable_multibyte
enable_shared
enable_static
enable_install_examples
+enable_bracketed_paste_default
enable_largefile
'
ac_precious_vars='build_alias
@@ -1278,7 +1280,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 8.0 to adapt to many kinds of systems.
+\`configure' configures readline 8.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1343,7 +1345,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of readline 8.0:";;
+ short | recursive ) echo "Configuration of readline 8.1:";;
esac
cat <<\_ACEOF
@@ -1356,6 +1358,9 @@ Optional Features:
--enable-static build static libraries [[default=YES]]
--disable-install-examples
don't install examples [[default=install]]
+ --disable-bracketed-paste-default
+ disable bracketed paste by default
+ [[default=enable]]
--disable-largefile omit support for large files
Optional Packages:
@@ -1440,7 +1445,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-readline configure 8.0
+readline configure 8.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2092,7 +2097,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 8.0, which was
+It was created by readline $as_me 8.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2476,7 +2481,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
ac_config_headers="$ac_config_headers config.h"
-LIBVERSION=8.0
+LIBVERSION=8.1
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
@@ -2568,6 +2573,7 @@ opt_multibyte=yes
opt_static_libs=yes
opt_shared_libs=yes
opt_install_examples=yes
+opt_bracketed_paste_default=yes
# Check whether --enable-multibyte was given.
if test "${enable_multibyte+set}" = set; then :
@@ -2590,11 +2596,24 @@ if test "${enable_install_examples+set}" = set; then :
fi
+# Check whether --enable-bracketed-paste-default was given.
+if test "${enable_bracketed_paste_default+set}" = set; then :
+ enableval=$enable_bracketed_paste_default; opt_bracketed_paste_default=$enableval
+fi
+
+
if test $opt_multibyte = no; then
$as_echo "#define NO_MULTIBYTE_SUPPORT 1" >>confdefs.h
fi
+if test $opt_bracketed_paste_default = yes; then
+ BRACKETED_PASTE='-DBRACKETED_PASTE_DEFAULT=1'
+else
+ BRACKETED_PASTE='-DBRACKETED_PASTE_DEFAULT=0'
+fi
+
+
CROSS_COMPILE=
@@ -2626,7 +2645,7 @@ echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_ve
echo ""
# We want these before the checks, so the checks can modify their values.
-test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
+test -z "$CFLAGS" && want_auto_cflags=1
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
@@ -3909,8 +3928,11 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
-# If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
-test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
+# If we're using gcc and the user hasn't specified CFLAGS, add -O2 to CFLAGS
+if test -n "$want_auto_cflags" ; then
+ AUTO_CFLAGS="-g ${GCC+-O2}"
+ STYLE_CFLAGS="${GCC+-Wno-parentheses} ${GCC+-Wno-format-security}"
+fi
if test $ac_cv_c_compiler_gnu = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5
@@ -5320,6 +5342,7 @@ else
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#include <stdlib.h>
typedef RETSIGTYPE sigfunc();
@@ -5350,6 +5373,7 @@ int s;
nsigint++;
}
+int
main()
{
nsigint = 0;
@@ -5400,7 +5424,9 @@ else
#include <sys/types.h>
#include <signal.h>
#include <setjmp.h>
+#include <stdlib.h>
+int
main()
{
#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
@@ -5503,7 +5529,10 @@ else
#if defined (HAVE_LOCALE_H)
#include <locale.h>
#endif
+#include <string.h>
+#include <stdlib.h>
+int
main(c, v)
int c;
char *v[];
@@ -5573,7 +5602,9 @@ else
#endif
#include <stdio.h>
#include <ctype.h>
+#include <stdlib.h>
+int
main(c, v)
int c;
char *v[];
@@ -6717,6 +6748,7 @@ else
#include <locale.h>
#include <wchar.h>
+int
main(c, v)
int c;
char **v;
@@ -6807,6 +6839,7 @@ esac
case "$host_os" in
isc*) LOCAL_CFLAGS=-Disc386 ;;
+hpux*) LOCAL_CFLAGS="-DTGETENT_BROKEN -DTGETFLAG_BROKEN" ;;
esac
# shared library configuration section
@@ -6887,6 +6920,11 @@ esac
+if test -n "$want_auto_cflags"; then
+ CFLAGS="$AUTO_CFLAGS"
+fi
+CFLAGS="$CFLAGS $STYLE_CFLAGS"
+
@@ -7413,7 +7451,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 8.0, which was
+This file was extended by readline $as_me 8.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -7479,7 +7517,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 8.0
+readline config.status 8.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index b73e37b..147bae5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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-2018 Free Software Foundation, Inc.
+# Copyright (C) 1987-2020 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 8.0, version 2.85])
+AC_REVISION([for Readline 8.1, version 2.90])
-AC_INIT(readline, 8.0, bug-readline@gnu.org)
+AC_INIT(readline, 8.1, 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=8.0
+LIBVERSION=8.1
AC_CANONICAL_HOST
AC_CANONICAL_BUILD
@@ -52,16 +52,26 @@ opt_multibyte=yes
opt_static_libs=yes
opt_shared_libs=yes
opt_install_examples=yes
+opt_bracketed_paste_default=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)
+AC_ARG_ENABLE(bracketed-paste-default, AC_HELP_STRING([--disable-bracketed-paste-default], [disable bracketed paste by default [[default=enable]]]), opt_bracketed_paste_default=$enableval)
+
if test $opt_multibyte = no; then
AC_DEFINE(NO_MULTIBYTE_SUPPORT)
fi
+if test $opt_bracketed_paste_default = yes; then
+ BRACKETED_PASTE='-DBRACKETED_PASTE_DEFAULT=1'
+else
+ BRACKETED_PASTE='-DBRACKETED_PASTE_DEFAULT=0'
+fi
+AC_SUBST(BRACKETED_PASTE)
+
dnl load up the cross-building cache file -- add more cases and cache
dnl files as necessary
@@ -97,15 +107,18 @@ echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_ve
echo ""
# We want these before the checks, so the checks can modify their values.
-test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
+test -z "$CFLAGS" && want_auto_cflags=1
AC_PROG_MAKE_SET
AC_PROG_CC
dnl AC_AIX
AC_MINIX
-# If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
-test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
+# If we're using gcc and the user hasn't specified CFLAGS, add -O2 to CFLAGS
+if test -n "$want_auto_cflags" ; then
+ AUTO_CFLAGS="-g ${GCC+-O2}"
+ STYLE_CFLAGS="${GCC+-Wno-parentheses} ${GCC+-Wno-format-security}"
+fi
AC_PROG_GCC_TRADITIONAL
AC_PROG_INSTALL
@@ -215,6 +228,7 @@ esac
case "$host_os" in
isc*) LOCAL_CFLAGS=-Disc386 ;;
+hpux*) LOCAL_CFLAGS="-DTGETENT_BROKEN -DTGETFLAG_BROKEN" ;;
esac
# shared library configuration section
@@ -293,6 +307,11 @@ esac
AC_SUBST(BUILD_DIR)
+if test -n "$want_auto_cflags"; then
+ CFLAGS="$AUTO_CFLAGS"
+fi
+CFLAGS="$CFLAGS $STYLE_CFLAGS"
+
AC_SUBST(CFLAGS)
AC_SUBST(LOCAL_CFLAGS)
AC_SUBST(LOCAL_LDFLAGS)
diff --git a/display.c b/display.c
index 4c6cc00..38b3d0e 100644
--- a/display.c
+++ b/display.c
@@ -1,6 +1,6 @@
/* display.c -- readline redisplay facility. */
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2020 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.
@@ -63,23 +63,31 @@
extern char *strchr (), *strrchr ();
#endif /* !strchr && !__STDC__ */
-static void update_line PARAMS((char *, char *, int, int, int, int));
+static void putc_face PARAMS((int, int, char *));
+static void puts_face PARAMS((const char *, const char *, int));
+static void norm_face PARAMS((char *, int));
+
+static void update_line PARAMS((char *, char *, char *, char *, int, int, int, int));
static void space_to_eol PARAMS((int));
static void delete_chars PARAMS((int));
static void insert_some_chars PARAMS((char *, int, int));
static void open_some_spaces PARAMS((int));
static void cr PARAMS((void));
static void redraw_prompt PARAMS((char *));
+static void _rl_move_cursor_relative PARAMS((int, const char *, const char *));
/* Values for FLAGS */
#define PMT_MULTILINE 0x01
static char *expand_prompt PARAMS((char *, int, int *, int *, int *, int *));
+#define DEFAULT_LINE_BUFFER_SIZE 1024
+
/* State of visible and invisible lines. */
struct line_state
{
char *line;
+ char *lface;
int *lbreaks;
int lbsize;
#if defined (HANDLE_MULTIBYTE)
@@ -102,7 +110,9 @@ static int line_structures_initialized = 0;
#define vis_lbsize (line_state_visible->lbsize)
#define visible_line (line_state_visible->line)
+#define vis_face (line_state_visible->lface)
#define invisible_line (line_state_invisible->line)
+#define inv_face (line_state_invisible->lface)
#if defined (HANDLE_MULTIBYTE)
static int _rl_col_width PARAMS((const char *, int, int, int));
@@ -123,6 +133,10 @@ static int _rl_col_width PARAMS((const char *, int, int, int));
to use prompt_last_invisible directly. */
#define PROMPT_ENDING_INDEX \
((MB_CUR_MAX > 1 && rl_byte_oriented == 0) ? prompt_physical_chars : prompt_last_invisible+1)
+
+#define FACE_NORMAL '0'
+#define FACE_STANDOUT '1'
+#define FACE_INVALID ((char)1)
/* **************************************************************** */
/* */
@@ -190,6 +204,8 @@ int _rl_last_v_pos = 0;
on screen minus 1. */
int _rl_vis_botlin = 0;
+static int _rl_quick_redisplay = 0;
+
/* This is a hint update_line gives to rl_redisplay that it has adjusted the
value of _rl_last_c_pos *and* taken the presence of any invisible chars in
the prompt into account. rl_redisplay notes this and does not do the
@@ -219,7 +235,11 @@ static int msg_bufsiz = 0;
static int forced_display;
/* Default and initial buffer size. Can grow. */
-static int line_size = 1024;
+static int line_size = 0;
+
+/* Set to a non-zero value if horizontal scrolling has been enabled
+ automatically because the terminal was resized to height 1. */
+static int horizontal_scrolling_autoset = 0; /* explicit initialization */
/* Variables to keep track of the expanded prompt string, which may
include invisible characters. */
@@ -574,11 +594,6 @@ rl_expand_prompt (char *prompt)
{
/* The prompt spans multiple lines. */
t = ++p;
- local_prompt = expand_prompt (p, PMT_MULTILINE,
- &prompt_visible_length,
- &prompt_last_invisible,
- &prompt_invis_chars_first_line,
- &prompt_physical_chars);
c = *t; *t = '\0';
/* The portion of the prompt string up to and including the
final newline is now null-terminated. */
@@ -588,11 +603,53 @@ rl_expand_prompt (char *prompt)
(int *)NULL,
(int *)NULL);
*t = c;
+
+ local_prompt = expand_prompt (p, PMT_MULTILINE,
+ &prompt_visible_length,
+ &prompt_last_invisible,
+ &prompt_invis_chars_first_line,
+ &prompt_physical_chars);
local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
return (prompt_prefix_length);
}
}
+/* Allocate the various line structures, making sure they can hold MINSIZE
+ bytes. If the existing line size can accommodate MINSIZE bytes, don't do
+ anything. */
+static void
+realloc_line (int minsize)
+{
+ int minimum_size;
+ int newsize, delta;
+
+ minimum_size = DEFAULT_LINE_BUFFER_SIZE;
+ if (minsize < minimum_size)
+ minsize = minimum_size;
+ if (minsize <= _rl_screenwidth) /* XXX - for gdb */
+ minsize = _rl_screenwidth + 1;
+ if (line_size >= minsize)
+ return;
+
+ newsize = minimum_size;
+ while (newsize < minsize)
+ newsize *= 2;
+
+ visible_line = (char *)xrealloc (visible_line, newsize);
+ vis_face = (char *)xrealloc (vis_face, newsize);
+
+ invisible_line = (char *)xrealloc (invisible_line, newsize);
+ inv_face = (char *)xrealloc (inv_face, newsize);
+
+ delta = newsize - line_size;
+ memset (visible_line + line_size, 0, delta);
+ memset (vis_face + line_size, FACE_NORMAL, delta);
+ memset (invisible_line + line_size, 1, delta);
+ memset (inv_face + line_size, FACE_INVALID, delta);
+
+ line_size = newsize;
+}
+
/* Initialize the VISIBLE_LINE and INVISIBLE_LINE arrays, and their associated
arrays of line break markers. MINSIZE is the minimum size of VISIBLE_LINE
and INVISIBLE_LINE; if it is greater than LINE_SIZE, LINE_SIZE is
@@ -601,29 +658,12 @@ rl_expand_prompt (char *prompt)
static void
init_line_structures (int minsize)
{
- register int n;
-
if (invisible_line == 0) /* initialize it */
{
- if (line_size < minsize)
- line_size = minsize;
- visible_line = (char *)xmalloc (line_size);
- invisible_line = (char *)xmalloc (line_size);
- }
- else if (line_size < minsize) /* ensure it can hold MINSIZE chars */
- {
- line_size *= 2;
- if (line_size < minsize)
- line_size = minsize;
- visible_line = (char *)xrealloc (visible_line, line_size);
- invisible_line = (char *)xrealloc (invisible_line, line_size);
- }
-
- for (n = minsize; n < line_size; n++)
- {
- visible_line[n] = 0;
- invisible_line[n] = 1;
+ if (line_size > minsize)
+ minsize = line_size;
}
+ realloc_line (minsize);
if (vis_lbreaks == 0)
{
@@ -645,16 +685,68 @@ init_line_structures (int minsize)
line_structures_initialized = 1;
}
-
+
+/* Convenience functions to add chars to the invisible line that update the
+ face information at the same time. */
+static void /* XXX - change this */
+invis_addc (int *outp, char c, char face)
+{
+ realloc_line (*outp + 1);
+ invisible_line[*outp] = c;
+ inv_face[*outp] = face;
+ *outp += 1;
+}
+
+static void
+invis_adds (int *outp, const char *str, int n, char face)
+{
+ int i;
+
+ for (i = 0; i < n; i++)
+ invis_addc (outp, str[i], face);
+}
+
+static void
+invis_nul (int *outp)
+{
+ invis_addc (outp, '\0', 0);
+ *outp -= 1;
+}
+
+static void
+set_active_region (int *beg, int *end)
+{
+ if (rl_point >= 0 && rl_point <= rl_end && rl_mark >= 0 && rl_mark <= rl_end)
+ {
+ *beg = (rl_mark < rl_point) ? rl_mark : rl_point;
+ *end = (rl_mark < rl_point) ? rl_point : rl_mark;
+ }
+}
+
+/* Do whatever tests are necessary and tell update_line that it can do a
+ quick, dumb redisplay on the assumption that there are so many
+ differences between the old and new lines that it would be a waste to
+ compute all the differences.
+ Right now, it just sets _rl_quick_redisplay if the current visible line
+ is a single line (so we don't have to move vertically or mess with line
+ wrapping). */
+void
+_rl_optimize_redisplay (void)
+{
+ if (_rl_vis_botlin == 0)
+ _rl_quick_redisplay = 1;
+}
+
/* Basic redisplay algorithm. See comments inline. */
void
rl_redisplay (void)
{
- register int in, out, c, linenum, cursor_linenum;
- register char *line;
+ int in, out, c, linenum, cursor_linenum;
int inv_botlin, lb_botlin, lb_linenum, o_cpos;
int newlines, lpos, temp, n0, num, prompt_lines_estimate;
char *prompt_this_line;
+ char cur_face;
+ int hl_begin, hl_end;
int mb_cur_max = MB_CUR_MAX;
#if defined (HANDLE_MULTIBYTE)
wchar_t wc;
@@ -672,6 +764,14 @@ rl_redisplay (void)
_rl_block_sigint ();
RL_SETSTATE (RL_STATE_REDISPLAYING);
+ cur_face = FACE_NORMAL;
+ /* Can turn this into an array for multiple highlighted objects in addition
+ to the region */
+ hl_begin = hl_end = -1;
+
+ if (rl_mark_active_p ())
+ set_active_region (&hl_begin, &hl_end);
+
if (!rl_display_prompt)
rl_display_prompt = "";
@@ -680,13 +780,26 @@ rl_redisplay (void)
init_line_structures (0);
rl_on_new_line ();
}
+ else if (line_size <= _rl_screenwidth)
+ init_line_structures (_rl_screenwidth + 1);
+
+ /* Enable horizontal scrolling automatically for terminals of height 1
+ where wrapping lines doesn't work. Disable it as soon as the terminal
+ height is increased again if it was automatically enabled. */
+ if (_rl_screenheight <= 1)
+ {
+ if (_rl_horizontal_scroll_mode == 0)
+ horizontal_scrolling_autoset = 1;
+ _rl_horizontal_scroll_mode = 1;
+ }
+ else if (horizontal_scrolling_autoset)
+ _rl_horizontal_scroll_mode = 0;
/* Draw the line into the buffer. */
cpos_buffer_position = -1;
prompt_multibyte_chars = prompt_visible_length - prompt_physical_chars;
- line = invisible_line;
out = inv_botlin = 0;
/* Mark the line as modified or not. We only do this for history
@@ -694,8 +807,8 @@ rl_redisplay (void)
modmark = 0;
if (_rl_mark_modified_lines && current_history () && rl_undo_list)
{
- line[out++] = '*';
- line[out] = '\0';
+ invis_addc (&out, '*', cur_face);
+ invis_nul (&out);
modmark = 1;
}
@@ -708,7 +821,7 @@ rl_redisplay (void)
/* If the prompt to be displayed is the `primary' readline prompt (the
one passed to readline()), use the values we have already expanded.
If not, use what's already in rl_display_prompt. WRAP_OFFSET is the
- number of non-visible characters in the prompt string. */
+ number of non-visible characters (bytes) in the prompt string. */
/* This is where we output the characters in the prompt before the last
newline, if any. If there aren't any embedded newlines, we don't
write anything. Copy the last line of the prompt string into the line in
@@ -719,18 +832,8 @@ rl_redisplay (void)
_rl_output_some_chars (local_prompt_prefix, strlen (local_prompt_prefix));
if (local_prompt_len > 0)
- {
- temp = local_prompt_len + out + 2;
- if (temp >= line_size)
- {
- line_size = (temp + 1024) - (temp % 1024);
- visible_line = (char *)xrealloc (visible_line, line_size);
- line = invisible_line = (char *)xrealloc (invisible_line, line_size);
- }
- strncpy (line + out, local_prompt, local_prompt_len);
- out += local_prompt_len;
- }
- line[out] = '\0';
+ invis_adds (&out, local_prompt, local_prompt_len, cur_face);
+ invis_nul (&out);
wrap_offset = local_prompt_len - prompt_visible_length;
}
else
@@ -753,17 +856,9 @@ rl_redisplay (void)
}
}
- prompt_physical_chars = pmtlen = strlen (prompt_this_line);
- temp = pmtlen + out + 2;
- if (temp >= line_size)
- {
- line_size = (temp + 1024) - (temp % 1024);
- visible_line = (char *)xrealloc (visible_line, line_size);
- line = invisible_line = (char *)xrealloc (invisible_line, line_size);
- }
- strncpy (line + out, prompt_this_line, pmtlen);
- out += pmtlen;
- line[out] = '\0';
+ prompt_physical_chars = pmtlen = strlen (prompt_this_line); /* XXX */
+ invis_adds (&out, prompt_this_line, pmtlen, cur_face);
+ invis_nul (&out);
wrap_offset = prompt_invis_chars_first_line = 0;
}
@@ -844,8 +939,8 @@ rl_redisplay (void)
num = 0;
#endif
- /* prompt_invis_chars_first_line is the number of invisible characters in
- the first physical line of the prompt.
+ /* prompt_invis_chars_first_line is the number of invisible characters (bytes)
+ in the first physical line of the prompt.
wrap_offset - prompt_invis_chars_first_line is usually the number of
invis chars on the second (or, more generally, last) line. */
@@ -901,6 +996,11 @@ rl_redisplay (void)
for (in = 0; in < rl_end; in++)
#endif
{
+ if (in == hl_begin)
+ cur_face = FACE_STANDOUT;
+ else if (in == hl_end)
+ cur_face = FACE_NORMAL;
+
c = (unsigned char)rl_line_buffer[in];
#if defined (HANDLE_MULTIBYTE)
@@ -925,14 +1025,6 @@ rl_redisplay (void)
}
#endif
- if (out + 8 >= line_size) /* XXX - 8 for \t */
- {
- line_size *= 2;
- visible_line = (char *)xrealloc (visible_line, line_size);
- invisible_line = (char *)xrealloc (invisible_line, line_size);
- line = invisible_line;
- }
-
if (in == rl_point)
{
cpos_buffer_position = out;
@@ -947,9 +1039,12 @@ rl_redisplay (void)
{
if (_rl_output_meta_chars == 0)
{
- sprintf (line + out, "\\%o", c);
+ char obuf[5];
+ int olen;
- if (lpos + 4 >= _rl_screenwidth)
+ olen = sprintf (obuf, "\\%o", c);
+
+ if (lpos + olen >= _rl_screenwidth)
{
temp = _rl_screenwidth - lpos;
CHECK_INV_LBREAKS ();
@@ -957,16 +1052,20 @@ rl_redisplay (void)
#if defined (HANDLE_MULTIBYTE)
line_state_invisible->wrapped_line[newlines] = _rl_wrapped_multicolumn;
#endif
- lpos = 4 - temp;
+ lpos = olen - temp;
}
else
- lpos += 4;
+ lpos += olen;
- out += 4;
+ for (temp = 0; temp < olen; temp++)
+ {
+ invis_addc (&out, obuf[temp], cur_face);
+ CHECK_LPOS ();
+ }
}
else
{
- line[out++] = c;
+ invis_addc (&out, c, cur_face);
CHECK_LPOS();
}
}
@@ -975,11 +1074,7 @@ rl_redisplay (void)
{
register int newout;
-#if 0
- newout = (out | (int)7) + 1;
-#else
newout = out + 8 - lpos % 8;
-#endif
temp = newout - out;
if (lpos + temp >= _rl_screenwidth)
{
@@ -992,19 +1087,19 @@ rl_redisplay (void)
#endif
lpos = temp - temp2;
while (out < newout)
- line[out++] = ' ';
+ invis_addc (&out, ' ', cur_face);
}
else
{
while (out < newout)
- line[out++] = ' ';
+ invis_addc (&out, ' ', cur_face);
lpos += temp;
}
}
#endif
else if (c == '\n' && _rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up)
{
- line[out++] = '\0'; /* XXX - sentinel */
+ invis_addc (&out, '\0', cur_face);
CHECK_INV_LBREAKS ();
inv_lbreaks[++newlines] = out;
#if defined (HANDLE_MULTIBYTE)
@@ -1014,9 +1109,9 @@ rl_redisplay (void)
}
else if (CTRL_CHAR (c) || c == RUBOUT)
{
- line[out++] = '^';
+ invis_addc (&out, '^', cur_face);
CHECK_LPOS();
- line[out++] = CTRL_CHAR (c) ? UNCTRL (c) : '?';
+ invis_addc (&out, CTRL_CHAR (c) ? UNCTRL (c) : '?', cur_face);
CHECK_LPOS();
}
else
@@ -1032,7 +1127,7 @@ rl_redisplay (void)
for (i = lpos; i < _rl_screenwidth; i++)
{
/* The space will be removed in update_line() */
- line[out++] = ' ';
+ invis_addc (&out, ' ', cur_face);
_rl_wrapped_multicolumn++;
CHECK_LPOS();
}
@@ -1042,17 +1137,17 @@ rl_redisplay (void)
lb_linenum = newlines;
}
for (i = in; i < in+wc_bytes; i++)
- line[out++] = rl_line_buffer[i];
+ invis_addc (&out, rl_line_buffer[i], cur_face);
for (i = 0; i < wc_width; i++)
CHECK_LPOS();
}
else
{
- line[out++] = c;
+ invis_addc (&out, c, cur_face);
CHECK_LPOS();
}
#else
- line[out++] = c;
+ invis_addc (&out, c, cur_face);
CHECK_LPOS();
#endif
}
@@ -1074,7 +1169,7 @@ rl_redisplay (void)
in++;
#endif
}
- line[out] = '\0';
+ invis_nul (&out);
line_totbytes = out;
if (cpos_buffer_position < 0)
{
@@ -1082,6 +1177,11 @@ rl_redisplay (void)
lb_linenum = newlines;
}
+ /* If we are switching from one line to multiple wrapped lines, we don't
+ want to do a dumb update (or we want to make it smarter). */
+ if (_rl_quick_redisplay && newlines > 0)
+ _rl_quick_redisplay = 0;
+
inv_botlin = lb_botlin = _rl_inv_botlin = newlines;
CHECK_INV_LBREAKS ();
inv_lbreaks[newlines+1] = out;
@@ -1118,7 +1218,7 @@ rl_redisplay (void)
{
#if defined (HANDLE_MULTIBYTE)
if (mb_cur_max > 1 && rl_byte_oriented == 0)
- out = _rl_find_prev_mbchar (line, _rl_screenchars, MB_FIND_ANY);
+ out = _rl_find_prev_mbchar (invisible_line, _rl_screenchars, MB_FIND_ANY);
else
#endif
out = _rl_screenchars - 1;
@@ -1136,14 +1236,32 @@ rl_redisplay (void)
#define VIS_LLEN(l) ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l]))
#define INV_LLEN(l) (inv_lbreaks[l+1] - inv_lbreaks[l])
#define VIS_CHARS(line) (visible_line + vis_lbreaks[line])
+#define VIS_FACE(line) (vis_face + vis_lbreaks[line])
#define VIS_LINE(line) ((line) > _rl_vis_botlin) ? "" : VIS_CHARS(line)
+#define VIS_LINE_FACE(line) ((line) > _rl_vis_botlin) ? "" : VIS_FACE(line)
#define INV_LINE(line) (invisible_line + inv_lbreaks[line])
+#define INV_LINE_FACE(line) (inv_face + inv_lbreaks[line])
#define OLD_CPOS_IN_PROMPT() (cpos_adjusted == 0 && \
_rl_last_c_pos != o_cpos && \
_rl_last_c_pos > wrap_offset && \
o_cpos < prompt_last_invisible)
+
+ /* We don't want to highlight anything that's going to be off the top
+ of the display; if the current line takes up more than an entire
+ screen, just mark the lines that won't be displayed as having a
+ `normal' face.
+ It's imperfect, but better than display corruption. */
+ if (rl_mark_active_p () && inv_botlin > _rl_screenheight)
+ {
+ int extra;
+
+ extra = inv_botlin - _rl_screenheight;
+ for (linenum = 0; linenum <= extra; linenum++)
+ norm_face (INV_LINE_FACE(linenum), INV_LLEN (linenum));
+ }
+
/* For each line in the buffer, do the updating display. */
for (linenum = 0; linenum <= inv_botlin; linenum++)
{
@@ -1151,7 +1269,9 @@ rl_redisplay (void)
the locale from a non-multibyte to a multibyte one. */
o_cpos = _rl_last_c_pos;
cpos_adjusted = 0;
- update_line (VIS_LINE(linenum), INV_LINE(linenum), linenum,
+ update_line (VIS_LINE(linenum), VIS_LINE_FACE(linenum),
+ INV_LINE(linenum), INV_LINE_FACE(linenum),
+ linenum,
VIS_LLEN(linenum), INV_LLEN(linenum), inv_botlin);
/* update_line potentially changes _rl_last_c_pos, but doesn't
@@ -1199,19 +1319,35 @@ rl_redisplay (void)
_rl_clear_to_eol (nleft);
}
#if 0
- /* This segment is intended to handle the case where the prompt
- has invisible characters on the second line and the new line
+ /* This segment is intended to handle the case where the old
+ visible prompt has invisible characters and the new line
to be displayed needs to clear the rest of the old characters
- out (e.g., when printing the i-search prompt). In general,
- the case of the new line being shorter than the old.
- Incomplete */
- else if (linenum == prompt_last_screen_line &&
- prompt_physical_chars > _rl_screenwidth &&
- wrap_offset != prompt_invis_chars_first_line &&
+ out (e.g., when printing the i-search prompt): in general,
+ the case of the new line being shorter than the old. We need
+ to be at the end of the new line and the old line needs to be
+ longer than the current cursor position. It's not perfect,
+ since it uses the byte length of the first line, but this will
+ at worst result in some extra clear-to-end-of-lines. We can't
+ use the prompt length variables because they may not
+ correspond to the visible line (see printing the i-search
+ prompt above). The tests for differing numbers of invisible
+ characters may not matter and can probably be removed. */
+ else if (linenum == 0 &&
+ linenum == prompt_last_screen_line &&
_rl_last_c_pos == out &&
+ _rl_last_c_pos < visible_first_line_len &&
+ visible_wrap_offset &&
+ visible_wrap_offset != wrap_offset)
+ {
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
+ nleft = _rl_screenwidth - _rl_last_c_pos;
+ else
+ nleft = _rl_screenwidth + wrap_offset - _rl_last_c_pos;
+ if (nleft)
+ _rl_clear_to_eol (nleft);
+ }
#endif
-
/* Since the new first line is now visible, save its length. */
if (linenum == 0)
visible_first_line_len = (inv_botlin > 0) ? inv_lbreaks[1] : out - wrap_offset;
@@ -1226,7 +1362,7 @@ rl_redisplay (void)
{
tt = VIS_CHARS (linenum);
_rl_move_vert (linenum);
- _rl_move_cursor_relative (0, tt);
+ _rl_move_cursor_relative (0, tt, VIS_FACE(linenum));
_rl_clear_to_eol
((linenum == _rl_vis_botlin) ? strlen (tt) : _rl_screenwidth);
}
@@ -1255,20 +1391,12 @@ rl_redisplay (void)
the characters from the current cursor position. But we
only need to reprint it if the cursor is before the last
invisible character in the prompt string. */
+ /* XXX - why not use local_prompt_len? */
nleft = prompt_visible_length + wrap_offset;
if (cursor_linenum == 0 && wrap_offset > 0 && _rl_last_c_pos > 0 &&
-#if 0
- _rl_last_c_pos <= PROMPT_ENDING_INDEX && local_prompt)
-#else
_rl_last_c_pos < PROMPT_ENDING_INDEX && local_prompt)
-#endif
{
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- if (_rl_term_cr)
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
+ _rl_cr ();
if (modmark)
_rl_output_some_chars ("*", 1);
@@ -1282,8 +1410,8 @@ rl_redisplay (void)
/* Where on that line? And where does that line start
in the buffer? */
pos = inv_lbreaks[cursor_linenum];
- /* nleft == number of characters in the line buffer between the
- start of the line and the desired cursor position. */
+ /* nleft == number of characters (bytes) in the line buffer between
+ the start of the line and the desired cursor position. */
nleft = cpos_buffer_position - pos;
/* NLEFT is now a number of characters in a buffer. When in a
@@ -1314,9 +1442,9 @@ rl_redisplay (void)
point specified by a buffer position (NLEFT) that doesn't take
invisible characters into account. */
if (mb_cur_max > 1 && rl_byte_oriented == 0)
- _rl_move_cursor_relative (nleft, &invisible_line[pos]);
+ _rl_move_cursor_relative (nleft, &invisible_line[pos], &inv_face[pos]);
else if (nleft != _rl_last_c_pos)
- _rl_move_cursor_relative (nleft, &invisible_line[pos]);
+ _rl_move_cursor_relative (nleft, &invisible_line[pos], &inv_face[pos]);
}
}
else /* Do horizontal scrolling. Much simpler */
@@ -1372,7 +1500,7 @@ rl_redisplay (void)
/* If the first character on the screen isn't the first character
in the display line, indicate this with a special character. */
if (lmargin > 0)
- line[lmargin] = '<';
+ invisible_line[lmargin] = '<';
/* If SCREENWIDTH characters starting at LMARGIN do not encompass
the whole line, indicate that with a special character at the
@@ -1380,15 +1508,15 @@ rl_redisplay (void)
wrap offset into account. */
t = lmargin + M_OFFSET (lmargin, wrap_offset) + _rl_screenwidth;
if (t > 0 && t < out)
- line[t - 1] = '>';
+ invisible_line[t - 1] = '>';
if (rl_display_fixed == 0 || forced_display || lmargin != last_lmargin)
{
forced_display = 0;
o_cpos = _rl_last_c_pos;
cpos_adjusted = 0;
- update_line (&visible_line[last_lmargin],
- &invisible_line[lmargin],
+ update_line (&visible_line[last_lmargin], &vis_face[last_lmargin],
+ &invisible_line[lmargin], &inv_face[lmargin],
0,
_rl_screenwidth + visible_wrap_offset,
_rl_screenwidth + (lmargin ? 0 : wrap_offset),
@@ -1413,7 +1541,7 @@ rl_redisplay (void)
if (visible_first_line_len > _rl_screenwidth)
visible_first_line_len = _rl_screenwidth;
- _rl_move_cursor_relative (cpos_buffer_position - lmargin, &invisible_line[lmargin]);
+ _rl_move_cursor_relative (cpos_buffer_position - lmargin, &invisible_line[lmargin], &inv_face[lmargin]);
last_lmargin = lmargin;
}
}
@@ -1434,22 +1562,64 @@ rl_redisplay (void)
visible_wrap_offset = 0;
else
visible_wrap_offset = wrap_offset;
+
+ _rl_quick_redisplay = 0;
}
RL_UNSETSTATE (RL_STATE_REDISPLAYING);
_rl_release_sigint ();
}
+static void
+putc_face (int c, int face, char *cur_face)
+{
+ char cf;
+ cf = *cur_face;
+ if (cf != face)
+ {
+ if (cf != FACE_NORMAL && cf != FACE_STANDOUT)
+ return;
+ if (face != FACE_NORMAL && face != FACE_STANDOUT)
+ return;
+ if (face == FACE_STANDOUT && cf == FACE_NORMAL)
+ _rl_standout_on ();
+ if (face == FACE_NORMAL && cf == FACE_STANDOUT)
+ _rl_standout_off ();
+ *cur_face = face;
+ }
+ if (c != EOF)
+ putc (c, rl_outstream);
+}
+
+static void
+puts_face (const char *str, const char *face, int n)
+{
+ int i;
+ char cur_face;
+
+ for (cur_face = FACE_NORMAL, i = 0; i < n; i++)
+ putc_face (str[i], face[i], &cur_face);
+ putc_face (EOF, FACE_NORMAL, &cur_face);
+}
+
+static void
+norm_face (char *face, int n)
+{
+ memset (face, FACE_NORMAL, n);
+}
+
+#define ADJUST_CPOS(x) do { _rl_last_c_pos -= (x) ; cpos_adjusted = 1; } while (0)
+
/* PWP: update_line() is based on finding the middle difference of each
line on the screen; vis:
/old first difference
- /beginning of line | /old last same /old EOL
- v v v v
+ /beginning of line | /old last same /old EOL
+ v v v v
old: eddie> Oh, my little gruntle-buggy is to me, as lurgid as
new: eddie> Oh, my little buggy says to me, as lurgid as
- ^ ^ ^ ^
- \beginning of line | \new last same \new end of line
+ ^ ^ ^ ^
+ \beginning of line | \new last same \new end of line
\new first difference
All are character pointers for the sake of speed. Special cases for
@@ -1457,9 +1627,10 @@ new: eddie> Oh, my little buggy says to me, as lurgid as
Could be made even smarter, but this works well enough */
static void
-update_line (char *old, char *new, int current_line, int omax, int nmax, int inv_botlin)
+update_line (char *old, char *old_face, char *new, char *new_face, int current_line, int omax, int nmax, int inv_botlin)
{
- register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+ char *ofd, *ols, *oe, *nfd, *nls, *ne;
+ char *ofdf, *nfdf, *olsf, *nlsf;
int temp, lendiff, wsatend, od, nd, twidth, o_cpos;
int current_invis_chars;
int col_lendiff, col_temp;
@@ -1594,17 +1765,24 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv
int count, i, j;
char *optr;
- _rl_output_some_chars (new, newbytes);
+ puts_face (new, new_face, newbytes);
_rl_last_c_pos = newwidth;
_rl_last_v_pos++;
/* 5a. If the number of screen positions doesn't match, punt
- and do a dumb update. */
- if (newwidth != oldwidth)
+ and do a dumb update.
+ 5b. If the number of bytes is greater in the new line than
+ the old, do a dumb update, because there is no guarantee we
+ can extend the old line enough to fit the new bytes. */
+ if (newwidth != oldwidth || newbytes > oldbytes)
{
+ oe = old + omax;
ne = new + nmax;
nd = newbytes;
nfd = new + nd;
+ ofdf = old_face + oldbytes;
+ nfdf = new_face + newbytes;
+
goto dumb_update;
}
if (oldbytes != 0 && newbytes != 0)
@@ -1613,13 +1791,21 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv
consume the first character of old. Fix up `old' so it
reflects the new screen contents. We use +1 in the
memmove call to copy the trailing NUL. */
- memmove (old+newbytes, old+oldbytes, strlen (old+oldbytes) + 1);
+ /* (strlen(old+oldbytes) == (omax - oldbytes - 1)) */
+
+ /* Don't bother trying to fit the bytes if the number of bytes
+ doesn't change. */
+ if (oldbytes != newbytes)
+ {
+ memmove (old+newbytes, old+oldbytes, strlen (old+oldbytes) + 1);
+ memmove (old_face+newbytes, old_face+oldbytes, strlen (old+oldbytes) + 1);
+ }
memcpy (old, new, newbytes);
+ memcpy (old_face, new_face, newbytes);
j = newbytes - oldbytes;
-
omax += j;
/* Fix up indices if we copy data from one line to another */
- for (i = current_line+1; i <= inv_botlin+1; i++)
+ for (i = current_line+1; j != 0 && i <= inv_botlin+1 && i <=_rl_vis_botlin+1; i++)
vis_lbreaks[i] += j;
}
}
@@ -1629,23 +1815,71 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv
_rl_last_c_pos = 1;
_rl_last_v_pos++;
if (old[0] && new[0])
- old[0] = new[0];
+ {
+ old[0] = new[0];
+ old_face[0] = new_face[0];
+ }
}
}
else
#endif
{
if (new[0])
- putc (new[0], rl_outstream);
+ puts_face (new, new_face, 1);
else
putc (' ', rl_outstream);
_rl_last_c_pos = 1;
_rl_last_v_pos++;
if (old[0] && new[0])
- old[0] = new[0];
+ {
+ old[0] = new[0];
+ old_face[0] = new_face[0];
+ }
}
}
+ /* We know that we are dealing with a single screen line here */
+ if (_rl_quick_redisplay)
+ {
+ nfd = new;
+ nfdf = new_face;
+ ofd = old;
+ ofdf = old_face;
+ for (od = 0, oe = ofd; od < omax && *oe; oe++, od++);
+ for (nd = 0, ne = nfd; nd < nmax && *ne; ne++, nd++);
+ od = nd = 0;
+ _rl_move_cursor_relative (0, old, old_face);
+
+ bytes_to_insert = ne - nfd;
+ if (bytes_to_insert < local_prompt_len) /* ??? */
+ goto dumb_update;
+
+ /* output the prompt, output the line contents, clear the rest */
+ _rl_output_some_chars (nfd, local_prompt_len);
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
+ _rl_last_c_pos = prompt_physical_chars;
+ else
+ _rl_last_c_pos = local_prompt_len;
+
+ bytes_to_insert -= local_prompt_len;
+ if (bytes_to_insert > 0)
+ {
+ puts_face (new+local_prompt_len, nfdf+local_prompt_len, bytes_to_insert);
+ if (mb_cur_max > 1 && rl_byte_oriented)
+ _rl_last_c_pos += _rl_col_width (new, local_prompt_len, ne-new, 1);
+ else
+ _rl_last_c_pos += bytes_to_insert;
+ }
+
+ /* See comments at dumb_update: for an explanation of this heuristic */
+ if (nmax < omax)
+ goto clear_rest_of_line;
+ else if ((nmax - W_OFFSET(current_line, wrap_offset)) < (omax - W_OFFSET (current_line, visible_wrap_offset)))
+ goto clear_rest_of_line;
+ else
+ return;
+ }
+
/* Find first difference. */
#if defined (HANDLE_MULTIBYTE)
if (mb_cur_max > 1 && rl_byte_oriented == 0)
@@ -1653,11 +1887,13 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv
/* See if the old line is a subset of the new line, so that the
only change is adding characters. */
temp = (omax < nmax) ? omax : nmax;
- if (memcmp (old, new, temp) == 0) /* adding at the end */
+ if (memcmp (old, new, temp) == 0 && memcmp (old_face, new_face, temp) == 0)
{
- new_offset = old_offset = temp;
+ new_offset = old_offset = temp; /* adding at the end */
ofd = old + temp;
+ ofdf = old_face + temp;
nfd = new + temp;
+ nfdf = new_face + temp;
}
else
{
@@ -1665,36 +1901,42 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv
memset (&ps_old, 0, sizeof(mbstate_t));
/* Are the old and new lines the same? */
- if (omax == nmax && STREQN (new, old, omax))
+ if (omax == nmax && memcmp (new, old, omax) == 0 && memcmp (new_face, old_face, omax) == 0)
{
old_offset = omax;
new_offset = nmax;
ofd = old + omax;
+ ofdf = old_face + omax;
nfd = new + nmax;
+ nfdf = new_face + nmax;
}
else
{
/* Go through the line from the beginning and find the first
- difference. */
+ difference. We assume that faces change at (possibly multi-
+ byte) character boundaries. */
new_offset = old_offset = 0;
- for (ofd = old, nfd = new;
+ for (ofd = old, ofdf = old_face, nfd = new, nfdf = new_face;
(ofd - old < omax) && *ofd &&
- _rl_compare_chars(old, old_offset, &ps_old, new, new_offset, &ps_new); )
+ _rl_compare_chars(old, old_offset, &ps_old, new, new_offset, &ps_new) &&
+ *ofdf == *nfdf; )
{
old_offset = _rl_find_next_mbchar (old, old_offset, 1, MB_FIND_ANY);
new_offset = _rl_find_next_mbchar (new, new_offset, 1, MB_FIND_ANY);
ofd = old + old_offset;
+ ofdf = old_face + old_offset;
nfd = new + new_offset;
+ nfdf = new_face + new_offset;
}
}
}
}
else
#endif
- for (ofd = old, nfd = new;
- (ofd - old < omax) && *ofd && (*ofd == *nfd);
- ofd++, nfd++)
+ for (ofd = old, ofdf = old_face, nfd = new, nfdf = new_face;
+ (ofd - old < omax) && *ofd && (*ofd == *nfd) && (*ofdf == *nfdf);
+ ofd++, nfd++, ofdf++, nfdf++)
;
/* Move to the end of the screen line. ND and OD are used to keep track
@@ -1723,7 +1965,9 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv
old_offset = _rl_find_prev_mbchar (old, ofd - old, MB_FIND_ANY);
new_offset = _rl_find_prev_mbchar (new, nfd - new, MB_FIND_ANY);
ofd = old + old_offset; /* equal by definition */
+ ofdf = old_face + old_offset;
nfd = new + new_offset;
+ nfdf = new_face + new_offset;
}
}
#endif
@@ -1736,40 +1980,41 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv
if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
ols = old + _rl_find_prev_mbchar (old, oe - old, MB_FIND_ANY);
+ olsf = old_face + (ols - old);
nls = new + _rl_find_prev_mbchar (new, ne - new, MB_FIND_ANY);
+ nlsf = new_face + (nls - new);
while ((ols > ofd) && (nls > nfd))
{
memset (&ps_old, 0, sizeof (mbstate_t));
memset (&ps_new, 0, sizeof (mbstate_t));
-#if 0
- /* On advice from jir@yamato.ibm.com */
- _rl_adjust_point (old, ols - old, &ps_old);
- _rl_adjust_point (new, nls - new, &ps_new);
-#endif
-
- if (_rl_compare_chars (old, ols - old, &ps_old, new, nls - new, &ps_new) == 0)
+ if (_rl_compare_chars (old, ols - old, &ps_old, new, nls - new, &ps_new) == 0 ||
+ *olsf != *nlsf)
break;
if (*ols == ' ')
wsatend = 0;
ols = old + _rl_find_prev_mbchar (old, ols - old, MB_FIND_ANY);
+ olsf = old_face + (ols - old);
nls = new + _rl_find_prev_mbchar (new, nls - new, MB_FIND_ANY);
+ nlsf = new_face + (nls - new);
}
}
else
{
#endif /* HANDLE_MULTIBYTE */
ols = oe - 1; /* find last same */
+ olsf = old_face + (ols - old);
nls = ne - 1;
- while ((ols > ofd) && (nls > nfd) && (*ols == *nls))
+ nlsf = new_face + (nls - new);
+ while ((ols > ofd) && (nls > nfd) && (*ols == *nls) && (*olsf == *nlsf))
{
if (*ols != ' ')
wsatend = 0;
- ols--;
- nls--;
+ ols--; olsf--;
+ nls--; nlsf--;
}
#if defined (HANDLE_MULTIBYTE)
}
@@ -1778,15 +2023,17 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv
if (wsatend)
{
ols = oe;
+ olsf = old_face + (ols - old);
nls = ne;
+ nlsf = new_face + (nls - new);
}
#if defined (HANDLE_MULTIBYTE)
/* This may not work for stateful encoding, but who cares? To handle
stateful encoding properly, we have to scan each string from the
beginning and compare. */
- else if (_rl_compare_chars (ols, 0, NULL, nls, 0, NULL) == 0)
+ else if (_rl_compare_chars (ols, 0, NULL, nls, 0, NULL) == 0 || *olsf != *nlsf)
#else
- else if (*ols != *nls)
+ else if (*ols != *nls || *olsf != *nlsf)
#endif
{
if (*ols) /* don't step past the NUL */
@@ -1803,6 +2050,8 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv
else
nls++;
}
+ olsf = old_face + (ols - old);
+ nlsf = new_face + (nls - new);
}
/* count of invisible characters in the current invisible line. */
@@ -1815,6 +2064,10 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv
visible_wrap_offset based on what we know. */
if (current_line == 0)
visible_wrap_offset = prompt_invis_chars_first_line; /* XXX */
+#if 0 /* XXX - not yet */
+ else if (current_line == prompt_last_screen_line && wrap_offset > prompt_invis_chars_first_line)
+ visible_wrap_offset = wrap_offset - prompt_invis_chars_first_line
+#endif
if ((mb_cur_max == 1 || rl_byte_oriented) && current_line == 0 && visible_wrap_offset)
_rl_last_c_pos += visible_wrap_offset;
}
@@ -1852,19 +2105,21 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv
(((od > 0 || nd > 0) && (od <= prompt_last_invisible || nd <= prompt_last_invisible)) ||
((od >= lendiff) && _rl_last_c_pos < PROMPT_ENDING_INDEX)))
{
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
+ _rl_cr ();
if (modmark)
_rl_output_some_chars ("*", 1);
_rl_output_some_chars (local_prompt, lendiff);
if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
- /* We take wrap_offset into account here so we can pass correct
- information to _rl_move_cursor_relative. */
- _rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff, 1) - wrap_offset + modmark;
+ /* If we just output the entire prompt string we can take advantage
+ of knowing the number of physical characters in the prompt. If
+ the prompt wraps lines (lendiff clamped at nmax), we can't. */
+ if (lendiff == local_prompt_len)
+ _rl_last_c_pos = prompt_physical_chars + modmark;
+ else
+ /* We take wrap_offset into account here so we can pass correct
+ information to _rl_move_cursor_relative. */
+ _rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff, 1) - wrap_offset + modmark;
cpos_adjusted = 1;
}
else
@@ -1885,10 +2140,11 @@ update_line (char *old, char *new, int current_line, int omax, int nmax, int inv
to just output the prompt from the beginning of the line up to the
first difference, but you don't know the number of invisible
characters in that case.
- This needs a lot of work to be efficient. */
+ This needs a lot of work to be efficient, but it usually doesn't matter. */
if ((od <= prompt_last_invisible || nd <= prompt_last_invisible))
{
nfd = new + lendiff; /* number of characters we output above */
+ nfdf = new_face + lendiff;
nd = lendiff;
/* Do a dumb update and return */
@@ -1896,7 +2152,7 @@ dumb_update:
temp = ne - nfd;
if (temp > 0)
{
- _rl_output_some_chars (nfd, temp);
+ puts_face (nfd, nfdf, temp);
if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
_rl_last_c_pos += _rl_col_width (new, nd, ne - new, 1);
@@ -1910,16 +2166,33 @@ dumb_update:
current_line == prompt_last_screen_line &&
prompt_physical_chars > _rl_screenwidth &&
_rl_horizontal_scroll_mode == 0)
- {
- _rl_last_c_pos -= wrap_offset - prompt_invis_chars_first_line;
- cpos_adjusted = 1;
- }
+ ADJUST_CPOS (wrap_offset - prompt_invis_chars_first_line);
+
+ /* If we just output a new line including the prompt, and
+ the prompt includes invisible characters, we need to
+ account for them in the _rl_last_c_pos calculation, since
+ _rl_col_width does not. This happens when other code does
+ a goto dumb_update; */
+ else if (current_line == 0 &&
+ nfd == new &&
+ prompt_invis_chars_first_line &&
+ local_prompt_len <= temp &&
+ wrap_offset >= prompt_invis_chars_first_line &&
+ _rl_horizontal_scroll_mode == 0)
+ ADJUST_CPOS (prompt_invis_chars_first_line);
}
else
_rl_last_c_pos += temp;
}
+ /* This is a useful heuristic, but what we really want is to clear
+ if the new number of visible screen characters is less than the
+ old number of visible screen characters. If the prompt has changed,
+ we don't really have enough information about the visible line to
+ know for sure, so we use another heuristic calclulation below. */
if (nmax < omax)
goto clear_rest_of_line; /* XXX */
+ else if ((nmax - W_OFFSET(current_line, wrap_offset)) < (omax - W_OFFSET (current_line, visible_wrap_offset)))
+ goto clear_rest_of_line;
else
return;
}
@@ -1930,7 +2203,7 @@ dumb_update:
/* When this function returns, _rl_last_c_pos is correct, and an absolute
cursor position in multibyte mode, but a buffer index when not in a
multibyte locale. */
- _rl_move_cursor_relative (od, old);
+ _rl_move_cursor_relative (od, old, old_face);
#if defined (HANDLE_MULTIBYTE)
/* We need to indicate that the cursor position is correct in the presence of
@@ -1948,15 +2221,76 @@ dumb_update:
When not using multibyte characters, these are equal */
lendiff = (nls - nfd) - (ols - ofd);
if (mb_cur_max > 1 && rl_byte_oriented == 0)
- col_lendiff = _rl_col_width (new, nfd - new, nls - new, 1) - _rl_col_width (old, ofd - old, ols - old, 1);
+ {
+ int newchars, newwidth, newind;
+ int oldchars, oldwidth, oldind;
+
+ newchars = nls - new;
+ oldchars = ols - old;
+
+ /* If we can do it, try to adjust nls and ols so that nls-new will
+ contain the entire new prompt string. That way we can use
+ prompt_physical_chars and not have to recompute column widths.
+ _rl_col_width adds wrap_offset and expects the caller to compensate,
+ which we do below, so we do the same thing if we don't call
+ _rl_col_width.
+ We don't have to compare, since we know the characters are the same.
+ The check of differing numbers of invisible chars may be extraneous.
+ XXX - experimental */
+ if (current_line == 0 && nfd == new && newchars > prompt_last_invisible &&
+ newchars <= local_prompt_len &&
+ local_prompt_len <= nmax &&
+ current_invis_chars != visible_wrap_offset)
+ {
+ while (newchars < nmax && oldchars < omax && newchars < local_prompt_len)
+ {
+#if defined (HANDLE_MULTIBYTE)
+ newind = _rl_find_next_mbchar (new, newchars, 1, MB_FIND_NONZERO);
+ oldind = _rl_find_next_mbchar (old, oldchars, 1, MB_FIND_NONZERO);
+
+ nls += newind - newchars;
+ ols += oldind - oldchars;
+
+ newchars = newind;
+ oldchars = oldind;
+#else
+ nls++; ols++;
+ newchars++; oldchars++;
+#endif
+ }
+ newwidth = (newchars == local_prompt_len) ? prompt_physical_chars + wrap_offset
+ : _rl_col_width (new, 0, nls - new, 1);
+ /* if we changed nls and ols, we need to recompute lendiff */
+ lendiff = (nls - nfd) - (ols - ofd);
+
+ nlsf = new_face + (nls - new);
+ olsf = old_face + (ols - old);
+ }
+ else
+ newwidth = _rl_col_width (new, nfd - new, nls - new, 1);
+
+ oldwidth = _rl_col_width (old, ofd - old, ols - old, 1);
+
+ col_lendiff = newwidth - oldwidth;
+ }
else
col_lendiff = lendiff;
+ /* col_lendiff uses _rl_col_width(), which doesn't know about whether or not
+ the multibyte characters it counts are invisible, so unless we're printing
+ the entire prompt string (in which case we can use prompt_physical_chars)
+ the count is short by the number of bytes in the invisible multibyte
+ characters - the number of multibyte characters.
+
+ We don't have a good way to solve this without moving to something like
+ a bitmap that indicates which characters are visible and which are
+ invisible. We fix it up (imperfectly) in the caller and by trying to use
+ the entire prompt string wherever we can. */
+
/* If we are changing the number of invisible characters in a line, and
the spot of first difference is before the end of the invisible chars,
lendiff needs to be adjusted. */
- if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */
- current_invis_chars != visible_wrap_offset)
+ if (current_line == 0 && current_invis_chars != visible_wrap_offset)
{
if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
@@ -1998,16 +2332,13 @@ dumb_update:
only happen in a multibyte environment. */
if (lendiff < 0)
{
- _rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += col_temp; /* XXX - was _rl_col_width (nfd, 0, temp, 1); */
+ puts_face (nfd, nfdf, temp);
+ _rl_last_c_pos += col_temp;
/* If nfd begins before any invisible characters in the prompt,
adjust _rl_last_c_pos to account for wrap_offset and set
cpos_adjusted to let the caller know. */
if (current_line == 0 && displaying_prompt_first_line && wrap_offset && ((nfd - new) <= prompt_last_invisible))
- {
- _rl_last_c_pos -= wrap_offset; /* XXX - prompt_invis_chars_first_line? */
- cpos_adjusted = 1;
- }
+ ADJUST_CPOS (wrap_offset); /* XXX - prompt_invis_chars_first_line? */
return;
}
/* Sometimes it is cheaper to print the characters rather than
@@ -2035,7 +2366,7 @@ dumb_update:
(visible_wrap_offset >= current_invis_chars))
{
open_some_spaces (col_lendiff);
- _rl_output_some_chars (nfd, bytes_to_insert);
+ puts_face (nfd, nfdf, bytes_to_insert);
if (mb_cur_max > 1 && rl_byte_oriented == 0)
_rl_last_c_pos += _rl_col_width (nfd, 0, bytes_to_insert, 1);
else
@@ -2045,22 +2376,19 @@ dumb_update:
{
/* At the end of a line the characters do not have to
be "inserted". They can just be placed on the screen. */
- _rl_output_some_chars (nfd, temp);
+ puts_face (nfd, nfdf, temp);
_rl_last_c_pos += col_temp;
return;
}
else /* just write from first difference to end of new line */
{
- _rl_output_some_chars (nfd, temp);
+ puts_face (nfd, nfdf, temp);
_rl_last_c_pos += col_temp;
/* If nfd begins before the last invisible character in the
prompt, adjust _rl_last_c_pos to account for wrap_offset
and set cpos_adjusted to let the caller know. */
if ((mb_cur_max > 1 && rl_byte_oriented == 0) && current_line == 0 && displaying_prompt_first_line && wrap_offset && ((nfd - new) <= prompt_last_invisible))
- {
- _rl_last_c_pos -= wrap_offset; /* XXX - prompt_invis_chars_first_line? */
- cpos_adjusted = 1;
- }
+ ADJUST_CPOS (wrap_offset); /* XXX - prompt_invis_chars_first_line? */
return;
}
@@ -2070,16 +2398,13 @@ dumb_update:
prompt, adjust _rl_last_c_pos to account for wrap_offset
and set cpos_adjusted to let the caller know. */
if ((mb_cur_max > 1 && rl_byte_oriented == 0) && current_line == 0 && displaying_prompt_first_line && wrap_offset && ((nfd - new) <= prompt_last_invisible))
- {
- _rl_last_c_pos -= wrap_offset; /* XXX - prompt_invis_chars_first_line? */
- cpos_adjusted = 1;
- }
+ ADJUST_CPOS (wrap_offset); /* XXX - prompt_invis_chars_first_line? */
}
}
else
{
/* cannot insert chars, write to EOL */
- _rl_output_some_chars (nfd, temp);
+ puts_face (nfd, nfdf, temp);
_rl_last_c_pos += col_temp;
/* If we're in a multibyte locale and were before the last invisible
char in the current line (which implies we just output some invisible
@@ -2094,10 +2419,11 @@ dumb_update:
displaying_prompt_first_line &&
wrap_offset != prompt_invis_chars_first_line &&
((nfd-new) < (prompt_last_invisible-(current_line*_rl_screenwidth+prompt_invis_chars_first_line))))
- {
- _rl_last_c_pos -= wrap_offset - prompt_invis_chars_first_line;
- cpos_adjusted = 1;
- }
+ ADJUST_CPOS (wrap_offset - prompt_invis_chars_first_line);
+
+ /* XXX - what happens if wrap_offset == prompt_invis_chars_first_line
+ and we are drawing the first line (current_line == 0)? We should
+ adjust by _rl_last_c_pos -= prompt_invis_chars_first_line */
}
}
else /* Delete characters from line. */
@@ -2132,18 +2458,18 @@ dumb_update:
characters in the prompt, we need to adjust _rl_last_c_pos
in a multibyte locale to account for the wrap offset and
set cpos_adjusted accordingly. */
- _rl_output_some_chars (nfd, bytes_to_insert);
+ puts_face (nfd, nfdf, bytes_to_insert);
if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
+ /* This still doesn't take into account whether or not the
+ characters that this counts are invisible. */
_rl_last_c_pos += _rl_col_width (nfd, 0, bytes_to_insert, 1);
if (current_line == 0 && wrap_offset &&
displaying_prompt_first_line &&
- _rl_last_c_pos >= wrap_offset && /* XXX was > */
+ prompt_invis_chars_first_line &&
+ _rl_last_c_pos >= prompt_invis_chars_first_line &&
((nfd - new) <= prompt_last_invisible))
- {
- _rl_last_c_pos -= wrap_offset; /* XXX - prompt_invis_chars_first_line? */
- cpos_adjusted = 1;
- }
+ ADJUST_CPOS (prompt_invis_chars_first_line);
#if 1
#ifdef HANDLE_MULTIBYTE
@@ -2166,7 +2492,7 @@ dumb_update:
so we move there with _rl_move_cursor_relative */
if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
{
- _rl_move_cursor_relative (ne-new, new);
+ _rl_move_cursor_relative (ne-new, new, new_face);
goto clear_rest_of_line;
}
}
@@ -2180,7 +2506,7 @@ dumb_update:
characters in the prompt, we need to adjust _rl_last_c_pos
in a multibyte locale to account for the wrap offset and
set cpos_adjusted accordingly. */
- _rl_output_some_chars (nfd, temp);
+ puts_face (nfd, nfdf, temp);
_rl_last_c_pos += col_temp; /* XXX */
if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
@@ -2188,10 +2514,7 @@ dumb_update:
displaying_prompt_first_line &&
_rl_last_c_pos > wrap_offset &&
((nfd - new) <= prompt_last_invisible))
- {
- _rl_last_c_pos -= wrap_offset; /* XXX - prompt_invis_chars_first_line? */
- cpos_adjusted = 1;
- }
+ ADJUST_CPOS (wrap_offset); /* XXX - prompt_invis_chars_first_line? */
}
}
clear_rest_of_line:
@@ -2240,11 +2563,7 @@ rl_clear_visible_line (void)
int curr_line;
/* Make sure we move to column 0 so we clear the entire line */
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
+ _rl_cr ();
_rl_last_c_pos = 0;
/* Move to the last screen line of the current visible line */
@@ -2357,8 +2676,8 @@ rl_redraw_prompt_last_line (void)
DATA is the contents of the screen line of interest; i.e., where
the movement is being done.
DATA is always the visible line or the invisible line */
-void
-_rl_move_cursor_relative (int new, const char *data)
+static void
+_rl_move_cursor_relative (int new, const char *data, const char *dataf)
{
register int i;
int woff; /* number of invisible chars on current line */
@@ -2455,11 +2774,7 @@ _rl_move_cursor_relative (int new, const char *data)
if (dpos == 0 || CR_FASTER (dpos, _rl_last_c_pos) ||
(_rl_term_autowrap && i == _rl_screenwidth))
{
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif /* !__MSDOS__ */
+ _rl_cr ();
cpos = _rl_last_c_pos = 0;
}
@@ -2491,14 +2806,12 @@ _rl_move_cursor_relative (int new, const char *data)
}
else
{
- tputs (_rl_term_cr, 1, _rl_output_character_function);
- for (i = 0; i < new; i++)
- putc (data[i], rl_outstream);
+ _rl_cr ();
+ puts_face (data, dataf, new);
}
}
else
- for (i = cpos; i < new; i++)
- putc (data[i], rl_outstream);
+ puts_face (data + cpos, dataf + cpos, new - cpos);
}
#if defined (HANDLE_MULTIBYTE)
@@ -2526,11 +2839,7 @@ _rl_move_vert (int to)
{
for (i = 0; i < delta; i++)
putc ('\n', rl_outstream);
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
+ _rl_cr ();
_rl_last_c_pos = 0;
}
else
@@ -2871,14 +3180,18 @@ space_to_eol (int count)
}
void
-_rl_clear_screen (void)
+_rl_clear_screen (int clrscr)
{
#if defined (__DJGPP__)
ScreenClear ();
ScreenSetCursor (0, 0);
#else
if (_rl_term_clrpag)
- tputs (_rl_term_clrpag, 1, _rl_output_character_function);
+ {
+ tputs (_rl_term_clrpag, 1, _rl_output_character_function);
+ if (clrscr && _rl_term_clrscroll)
+ tputs (_rl_term_clrscroll, 1, _rl_output_character_function);
+ }
else
rl_crlf ();
#endif /* __DJGPP__ */
@@ -2958,6 +3271,9 @@ _rl_update_final (void)
{
int full_lines, woff, botline_length;
+ if (line_structures_initialized == 0)
+ return;
+
full_lines = 0;
/* If the cursor is the only thing on an otherwise-blank last line,
compensate so we don't print an extra CRLF. */
@@ -2973,7 +3289,7 @@ _rl_update_final (void)
/* If we've wrapped lines, remove the final xterm line-wrap flag. */
if (full_lines && _rl_term_autowrap && botline_length == _rl_screenwidth)
{
- char *last_line;
+ char *last_line, *last_face;
/* LAST_LINE includes invisible characters, so if you want to get the
last character of the first line, you have to take WOFF into account.
@@ -2981,10 +3297,12 @@ _rl_update_final (void)
which takes a buffer position as the first argument, and any direct
subscripts of LAST_LINE. */
last_line = &visible_line[vis_lbreaks[_rl_vis_botlin]]; /* = VIS_CHARS(_rl_vis_botlin); */
+ last_face = &vis_face[vis_lbreaks[_rl_vis_botlin]]; /* = VIS_CHARS(_rl_vis_botlin); */
cpos_buffer_position = -1; /* don't know where we are in buffer */
- _rl_move_cursor_relative (_rl_screenwidth - 1 + woff, last_line); /* XXX */
+ _rl_move_cursor_relative (_rl_screenwidth - 1 + woff, last_line, last_face); /* XXX */
_rl_clear_to_eol (0);
- putc (last_line[_rl_screenwidth - 1 + woff], rl_outstream);
+ puts_face (&last_line[_rl_screenwidth - 1 + woff],
+ &last_face[_rl_screenwidth - 1 + woff], 1);
}
_rl_vis_botlin = 0;
if (botline_length > 0 || _rl_last_c_pos > 0)
@@ -2997,15 +3315,8 @@ _rl_update_final (void)
static void
cr (void)
{
- if (_rl_term_cr)
- {
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
- _rl_last_c_pos = 0;
- }
+ _rl_cr ();
+ _rl_last_c_pos = 0;
}
/* Redraw the last line of a multi-line prompt that may possibly contain
@@ -3048,24 +3359,19 @@ _rl_redisplay_after_sigwinch (void)
{
_rl_move_vert (_rl_vis_botlin);
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
+ _rl_cr ();
_rl_last_c_pos = 0;
-#if defined (__MSDOS__)
- space_to_eol (_rl_screenwidth);
- putc ('\r', rl_outstream);
-#else
+
+#if !defined (__MSDOS__)
if (_rl_term_clreol)
tputs (_rl_term_clreol, 1, _rl_output_character_function);
else
+#endif
{
space_to_eol (_rl_screenwidth);
- tputs (_rl_term_cr, 1, _rl_output_character_function);
+ _rl_cr ();
}
-#endif
+
if (_rl_last_v_pos > 0)
_rl_move_vert (0);
}
@@ -3130,6 +3436,14 @@ _rl_current_display_line (void)
return ret;
}
+void
+_rl_refresh_line (void)
+{
+ rl_clear_visible_line ();
+ rl_redraw_prompt_last_line ();
+ rl_keep_mark_active ();
+}
+
#if defined (HANDLE_MULTIBYTE)
/* Calculate the number of screen columns occupied by STR from START to END.
In the case of multibyte characters with stateful encoding, we have to
diff --git a/doc/history.0 b/doc/history.0
index 9133300..3c1a794 100644
--- a/doc/history.0
+++ b/doc/history.0
@@ -6,7 +6,7 @@ HISTORY(3) Library Functions Manual HISTORY(3)
history - GNU History Library
COPYRIGHT
- The GNU History Library is Copyright (C) 1989-2017 by the Free Software
+ The GNU History Library is Copyright (C) 1989-2020 by the Free Software
Foundation, Inc.
DESCRIPTION
@@ -55,10 +55,12 @@ HISTORY(3) Library Functions Manual HISTORY(3)
!?string[?]
Refer to the most recent command preceding the current position
in the history list containing string. The trailing ? may be
- omitted if string is followed immediately by a newline.
+ omitted if string is followed immediately by a newline. If
+ string is missing, the string from the most recent search is
+ used; it is an error if there is no previous search string.
^string1^string2^
Quick substitution. Repeat the last command, replacing string1
- with string2. Equivalent to ``!!:s/string1/string2/'' (see Mod-
+ with string2. Equivalent to ``!!:s^string1^string2^'' (see Mod-
ifiers below).
!# The entire command line typed so far.
@@ -74,22 +76,26 @@ HISTORY(3) Library Functions Manual HISTORY(3)
The zeroth word. For the shell, this is the command word.
n The nth word.
^ The first argument. That is, word 1.
- $ The last word. This is usually the last argument, but will
- expand to the zeroth word if there is only one word in the line.
- % The word matched by the most recent `?string?' search.
+ $ The last word. This is usually the last argument, but will ex-
+ pand to the zeroth word if there is only one word in the line.
+ % The first word matched by the most recent `?string?' search, if
+ the search string begins with a character that is part of a
+ word.
x-y A range of words; `-y' abbreviates `0-y'.
* All of the words but the zeroth. This is a synonym for `1-$'.
It is not an error to use * if there is just one word in the
event; the empty string is returned in that case.
x* Abbreviates x-$.
- x- Abbreviates x-$ like x*, but omits the last word.
+ x- Abbreviates x-$ like x*, but omits the last word. If x is miss-
+ ing, it defaults to 0.
- If a word designator is supplied without an event specification, the
+ If a word designator is supplied without an event specification, the
previous command is used as the event.
Modifiers
- After the optional word designator, there may appear a sequence of one
- or more of the following modifiers, each preceded by a `:'.
+ After the optional word designator, there may appear a sequence of one
+ or more of the following modifiers, each preceded by a `:'. These mod-
+ ify, or edit, the word or words selected from the history event.
h Remove a trailing file name component, leaving only the head.
t Remove all leading file name components, leaving the tail.
@@ -98,32 +104,34 @@ HISTORY(3) Library Functions Manual HISTORY(3)
p Print the new command but do not execute it.
q Quote the substituted words, escaping further substitutions.
x Quote the substituted words as with q, but break into words at
- blanks and newlines.
+ blanks and newlines. The q and x modifiers are mutually exclu-
+ sive; the last one supplied is used.
s/old/new/
- Substitute new for the first occurrence of old in the event
- line. Any delimiter can be used in place of /. The final
- delimiter is optional if it is the last character of the event
- line. The delimiter may be quoted in old and new with a single
- backslash. If & appears in new, it is replaced by old. A sin-
- gle backslash will quote the &. If old is null, it is set to
- the last old substituted, or, if no previous history substitu-
- tions took place, the last string in a !?string[?] search.
+ Substitute new for the first occurrence of old in the event
+ line. Any character may be used as the delimiter in place of /.
+ The final delimiter is optional if it is the last character of
+ the event line. The delimiter may be quoted in old and new with
+ a single backslash. If & appears in new, it is replaced by old.
+ A single backslash will quote the &. If old is null, it is set
+ to the last old substituted, or, if no previous history substi-
+ tutions took place, the last string in a !?string[?] search.
+ If new is null, each matching old is deleted.
& Repeat the previous substitution.
g Cause changes to be applied over the entire event line. This is
used in conjunction with `:s' (e.g., `:gs/old/new/') or `:&'.
If used with `:s', any delimiter can be used in place of /, and
the final delimiter is optional if it is the last character of
the event line. An a may be used as a synonym for g.
- G Apply the following `s' modifier once to each word in the event
- line.
+ G Apply the following `s' or `&' modifier once to each word in the
+ event line.
PROGRAMMING WITH HISTORY FUNCTIONS
This section describes how to use the History library in other pro-
grams.
Introduction to History
- The programmer using the History library has available functions for
- remembering lines on a history list, associating arbitrary data with a
+ A programmer using the History library has available functions for re-
+ membering lines on a history list, associating arbitrary data with a
line, removing lines from the list, searching through the list for a
line containing an arbitrary text string, and referencing any line in
the list directly. In addition, a history expansion function is avail-
@@ -136,17 +144,16 @@ HISTORY(3) Library Functions Manual HISTORY(3)
commands. The basic history manipulation commands are identical to the
history substitution provided by bash.
- If the programmer desires, he can use the Readline library, which
- includes some history manipulation by default, and has the added advan-
- tage of command line editing.
-
- Before declaring any functions using any functionality the History
- library provides in other code, an application writer should include
- the file <readline/history.h> in any file that uses the History
- library's features. It supplies extern declarations for all of the
- library's public functions and variables, and declares all of the pub-
- lic data structures.
+ The programmer can also use the Readline library, which includes some
+ history manipulation by default, and has the added advantage of command
+ line editing.
+ Before declaring any functions using any functionality the History li-
+ brary provides in other code, an application writer should include the
+ file <readline/history.h> in any file that uses the History library's
+ features. It supplies extern declarations for all of the library's
+ public functions and variables, and declares all of the public data
+ structures.
History Storage
The history list is an array of history entries. A history entry is
@@ -215,21 +222,21 @@ HISTORY(3) Library Functions Manual HISTORY(3)
string.
HIST_ENTRY * remove_history (int which)
- Remove history entry at offset which from the history. The removed
- element is returned so you can free the line, data, and containing
- structure.
+ Remove history entry at offset which from the history. The removed el-
+ ement is returned so you can free the line, data, and containing struc-
+ ture.
histdata_t free_history_entry (HIST_ENTRY *histent)
- Free the history entry histent and any history library private data
- associated with it. Returns the application-specific data so the call-
- er can dispose of it.
+ Free the history entry histent and any history library private data as-
+ sociated with it. Returns the application-specific data so the caller
+ can dispose of it.
HIST_ENTRY * replace_history_entry (int which, const char *line, hist-
data_t data)
- Make the history entry at offset which have line and data. This
- returns the old entry so the caller can dispose of any application-spe-
- cific data. In the case of an invalid which, a NULL pointer is
- returned.
+ Make the history entry at offset which have line and data. This re-
+ turns the old entry so the caller can dispose of any application-spe-
+ cific data. In the case of an invalid which, a NULL pointer is re-
+ turned.
void clear_history (void)
Clear the history list by deleting all the entries.
@@ -249,12 +256,12 @@ HISTORY(3) Library Functions Manual HISTORY(3)
Information About the History List
- These functions return information about the entire history list or
- individual list entries.
+ These functions return information about the entire history list or in-
+ dividual list entries.
HIST_ENTRY ** history_list (void)
- Return a NULL terminated array of HIST_ENTRY * which is the current
- input history. Element 0 of this list is the beginning of time. If
+ Return a NULL terminated array of HIST_ENTRY * which is the current in-
+ put history. Element 0 of this list is the beginning of time. If
there is no history, return NULL.
int where_history (void)
@@ -267,8 +274,8 @@ HISTORY(3) Library Functions Manual HISTORY(3)
HIST_ENTRY * history_get (int offset)
Return the history entry at position offset. The range of valid values
of offset starts at history_base and ends at history_length - 1. If
- there is no entry there, or if offset is outside the valid range,
- return a NULL pointer.
+ there is no entry there, or if offset is outside the valid range, re-
+ turn a NULL pointer.
time_t history_get_time (HIST_ENTRY *)
Return the time stamp associated with the history entry passed as the
@@ -304,31 +311,31 @@ HISTORY(3) Library Functions Manual HISTORY(3)
Searching the History List
These functions allow searching of the history list for entries con-
taining a specific string. Searching may be performed both forward and
- backward from the current history position. The search may be
- anchored, meaning that the string must match at the beginning of the
- history entry.
+ backward from the current history position. The search may be an-
+ chored, meaning that the string must match at the beginning of the his-
+ tory entry.
int history_search (const char *string, int direction)
Search the history for string, starting at the current history offset.
- If direction is less than 0, then the search is through previous
- entries, otherwise through subsequent entries. If string is found,
- then the current history index is set to that history entry, and the
- value returned is the offset in the line of the entry where string was
- found. Otherwise, nothing is changed, and a -1 is returned.
+ If direction is less than 0, then the search is through previous en-
+ tries, otherwise through subsequent entries. If string is found, then
+ the current history index is set to that history entry, and the value
+ returned is the offset in the line of the entry where string was found.
+ Otherwise, nothing is changed, and a -1 is returned.
int history_search_prefix (const char *string, int direction)
Search the history for string, starting at the current history offset.
- The search is anchored: matching lines must begin with string. If
- direction is less than 0, then the search is through previous entries,
+ The search is anchored: matching lines must begin with string. If di-
+ rection is less than 0, then the search is through previous entries,
otherwise through subsequent entries. If string is found, then the
current history index is set to that entry, and the return value is 0.
Otherwise, nothing is changed, and a -1 is returned.
int history_search_pos (const char *string, int direction, int pos)
- Search for string in the history list, starting at pos, an absolute
- index into the list. If direction is negative, the search proceeds
- backward from pos, otherwise forward. Returns the absolute index of
- the history element where string was found, or -1 otherwise.
+ Search for string in the history list, starting at pos, an absolute in-
+ dex into the list. If direction is negative, the search proceeds back-
+ ward from pos, otherwise forward. Returns the absolute index of the
+ history element where string was found, or -1 otherwise.
Managing the History File
@@ -377,7 +384,7 @@ HISTORY(3) Library Functions Manual HISTORY(3)
-1 if there was an error in expansion;
2 if the returned line should be displayed, but not exe-
cuted, as with the :p modifier.
- If an error ocurred in expansion, then output contains a descriptive
+ If an error occurred in expansion, then output contains a descriptive
error message.
char * get_history_event (const char *string, int *cindex, int qchar)
@@ -390,9 +397,8 @@ HISTORY(3) Library Functions Manual HISTORY(3)
char ** history_tokenize (const char *string)
Return an array of tokens parsed out of string, much as the shell
- might. The tokens are split on the characters in the his-
- tory_word_delimiters variable, and shell quoting conventions are
- obeyed.
+ might. The tokens are split on the characters in the history_word_de-
+ limiters variable, and shell quoting conventions are obeyed.
char * history_arg_extract (int first, int last, const char *string)
Extract a string segment consisting of the first through last arguments
@@ -413,12 +419,12 @@ HISTORY(3) Library Functions Manual HISTORY(3)
The maximum number of history entries. This must be changed using sti-
fle_history().
- int history_wite_timestamps
+ int history_write_timestamps
If non-zero, timestamps are written to the history file, so they can be
preserved between sessions. The default value is 0, meaning that time-
- stamps are not saved. The current timestamp format uses the value of
- history_comment_char to delimit timestamp entries in the history file.
- If that variable does not have a value (the default), timestamps will
+ stamps are not saved. The current timestamp format uses the value of
+ history_comment_char to delimit timestamp entries in the history file.
+ If that variable does not have a value (the default), timestamps will
not be written.
char history_expansion_char
@@ -430,37 +436,37 @@ HISTORY(3) Library Functions Manual HISTORY(3)
line. The default is ^.
char history_comment_char
- During tokenization, if this character is seen as the first character
- of a word, then it and all subsequent characters up to a newline are
- ignored, suppressing history expansion for the remainder of the line.
+ During tokenization, if this character is seen as the first character
+ of a word, then it and all subsequent characters up to a newline are
+ ignored, suppressing history expansion for the remainder of the line.
This is disabled by default.
char * history_word_delimiters
- The characters that separate tokens for history_tokenize(). The
- default value is " \t\n()<>;&|".
+ The characters that separate tokens for history_tokenize(). The de-
+ fault value is " \t\n()<>;&|".
char * history_no_expand_chars
The list of characters which inhibit history expansion if found immedi-
- ately following history_expansion_char. The default is space, tab,
+ ately following history_expansion_char. The default is space, tab,
newline, \r, and =.
char * history_search_delimiter_chars
- The list of additional characters which can delimit a history search
- string, in addition to space, tab, : and ? in the case of a substring
+ The list of additional characters which can delimit a history search
+ string, in addition to space, tab, : and ? in the case of a substring
search. The default is empty.
int history_quotes_inhibit_expansion
If non-zero, double-quoted words are not scanned for the history expan-
- sion character or the history comment character. The default value is
+ sion character or the history comment character. The default value is
0.
rl_linebuf_func_t * history_inhibit_expansion_function
- This should be set to the address of a function that takes two argu-
- ments: a char * (string) and an int index into that string (i). It
- should return a non-zero value if the history expansion starting at
- string[i] should not be performed; zero if the expansion should be
- done. It is intended for use by applications like bash that use the
- history expansion character for additional purposes. By default, this
+ This should be set to the address of a function that takes two argu-
+ ments: a char * (string) and an int index into that string (i). It
+ should return a non-zero value if the history expansion starting at
+ string[i] should not be performed; zero if the expansion should be
+ done. It is intended for use by applications like bash that use the
+ history expansion character for additional purposes. By default, this
variable is set to NULL.
FILES
@@ -481,14 +487,14 @@ HISTORY(3) Library Functions Manual HISTORY(3)
chet.ramey@case.edu
BUG REPORTS
- If you find a bug in the history library, you 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 history library that you have.
-
- Once you have determined that a bug actually exists, mail a bug report
- to bug-readline@gnu.org. If you have a fix, you are welcome to mail
- that as well! Suggestions and `philosophical' bug reports may be
- mailed to bug-readline@gnu.org or posted to the Usenet newsgroup
+ If you find a bug in the history library, you should report it. But
+ first, you should make sure that it really is a bug, and that it ap-
+ pears in the latest version of the history library that you have.
+
+ Once you have determined that a bug actually exists, mail a bug report
+ to bug-readline@gnu.org. If you have a fix, you are welcome to mail
+ that as well! Suggestions and `philosophical' bug reports may be
+ mailed to bug-readline@gnu.org or posted to the Usenet newsgroup
gnu.bash.bug.
Comments and bug reports concerning this manual page should be directed
@@ -496,4 +502,4 @@ HISTORY(3) Library Functions Manual HISTORY(3)
-GNU History 6.3 2017 October 8 HISTORY(3)
+GNU History 8.1 2020 July 17 HISTORY(3)
diff --git a/doc/history.3 b/doc/history.3
index 8de64f6..df6cd37 100644
--- a/doc/history.3
+++ b/doc/history.3
@@ -6,9 +6,9 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
-.\" Last Change: Sun Oct 8 11:43:43 EDT 2017
+.\" Last Change: Fri Jul 17 09:43:01 EDT 2020
.\"
-.TH HISTORY 3 "2017 October 8" "GNU History 6.3"
+.TH HISTORY 3 "2020 July 17" "GNU History 8.1"
.\"
.\" File Name macro. This used to be `.PN', for Path Name,
.\" but Sun doesn't seem to like that very much.
@@ -40,8 +40,8 @@
.SH NAME
history \- GNU History Library
.SH COPYRIGHT
-.if t The GNU History Library is Copyright \(co 1989-2017 by the Free Software Foundation, Inc.
-.if n The GNU History Library is Copyright (C) 1989-2017 by the Free Software Foundation, Inc.
+.if t The GNU History Library is Copyright \(co 1989-2020 by the Free Software Foundation, Inc.
+.if n The GNU History Library is Copyright (C) 1989-2020 by the Free Software Foundation, Inc.
.SH DESCRIPTION
Many programs read input from the user a line at a time. The GNU
History library is able to keep track of those lines, associate arbitrary
@@ -49,7 +49,6 @@ data with each line, and utilize information from previous lines in
composing new ones.
.PP
.SH "HISTORY EXPANSION"
-.PP
The history library supports a history expansion feature that
is identical to the history expansion in
.BR bash.
@@ -80,7 +79,6 @@ history expansion character, which is \^\fB!\fP\^ by default.
Only backslash (\^\fB\e\fP\^) and single quotes can quote
the history expansion character.
.SS Event Designators
-.PP
An event designator is a reference to a command line entry in the
history list.
Unless the reference is absolute, events are relative to the current
@@ -118,6 +116,8 @@ containing
The trailing \fB?\fP may be omitted if
.I string
is followed immediately by a newline.
+If \fIstring\fP is missing, the string from the most recent search is used;
+it is an error if there is no previous search string.
.TP
.B \d\s+2^\s-2\u\fIstring1\fP\d\s+2^\s-2\u\fIstring2\fP\d\s+2^\s-2\u
Quick substitution. Repeat the last command, replacing
@@ -125,14 +125,13 @@ Quick substitution. Repeat the last command, replacing
with
.IR string2 .
Equivalent to
-``!!:s/\fIstring1\fP/\fIstring2\fP/''
+``!!:s\d\s+2^\s-2\u\fIstring1\fP\d\s+2^\s-2\u\fIstring2\fP\d\s+2^\s-2\u''
(see \fBModifiers\fP below).
.TP
.B !#
The entire command line typed so far.
.PD
.SS Word Designators
-.PP
Word designators are used to select desired words from the event.
A
.B :
@@ -165,7 +164,8 @@ The last word. This is usually the last argument, but will expand to the
zeroth word if there is only one word in the line.
.TP
.B %
-The word matched by the most recent `?\fIstring\fR?' search.
+The first word matched by the most recent `?\fIstring\fR?' search,
+if the search string begins with a character that is part of a word.
.TP
.I x\fB\-\fPy
A range of words; `\-\fIy\fR' abbreviates `0\-\fIy\fR'.
@@ -182,14 +182,15 @@ Abbreviates \fIx\-$\fP.
.TP
.B x\-
Abbreviates \fIx\-$\fP like \fBx*\fP, but omits the last word.
+If \fBx\fP is missing, it defaults to 0.
.PD
.PP
If a word designator is supplied without an event specification, the
previous command is used as the event.
.SS Modifiers
-.PP
After the optional word designator, there may appear a sequence of
one or more of the following modifiers, each preceded by a `:'.
+These modify, or edit, the word or words selected from the history event.
.PP
.PD 0
.PP
@@ -219,15 +220,19 @@ Quote the substituted words as with
but break into words at
.B blanks
and newlines.
+The \fBq\fP and \fBx\fP modifiers are mutually exclusive; the last one
+supplied is used.
.TP
.B s/\fIold\fP/\fInew\fP/
Substitute
.I new
for the first occurrence of
.I old
-in the event line. Any delimiter can be used in place of /. The
-final delimiter is optional if it is the last character of the
-event line. The delimiter may be quoted in
+in the event line.
+Any character may be used as the delimiter in place of /.
+The final delimiter is optional if it is the last character of the
+event line.
+The delimiter may be quoted in
.I old
and
.I new
@@ -235,7 +240,8 @@ with a single backslash. If & appears in
.IR new ,
it is replaced by
.IR old .
-A single backslash will quote the &. If
+A single backslash will quote the &.
+If
.I old
is null, it is set to the last
.I old
@@ -245,6 +251,11 @@ the last
in a
.B !?\fIstring\fR\fB[?]\fR
search.
+If
+.I new
+is null, each matching
+.I old
+is deleted.
.TP
.B &
Repeat the previous substitution.
@@ -259,13 +270,13 @@ if it is the last character of the event line.
An \fBa\fP may be used as a synonym for \fBg\fP.
.TP
.B G
-Apply the following `\fBs\fP' modifier once to each word in the event line.
+Apply the following `\fBs\fP' or `\fB&\fP' modifier once to each word
+in the event line.
.PD
.SH "PROGRAMMING WITH HISTORY FUNCTIONS"
This section describes how to use the History library in other programs.
.SS Introduction to History
-.PP
-The programmer using the History library has available functions
+A programmer using the History library has available functions
for remembering lines on a history list, associating arbitrary data
with a line, removing lines from the list, searching through the list
for a line containing an arbitrary text string, and referencing any line
@@ -280,7 +291,7 @@ in new commands. The basic history manipulation commands are
identical to
the history substitution provided by \fBbash\fP.
.PP
-If the programmer desires, he can use the Readline library, which
+The programmer can also use the Readline library, which
includes some history manipulation by default, and has the added
advantage of command line editing.
.PP
@@ -292,9 +303,7 @@ in any file that uses the
History library's features. It supplies extern declarations for all
of the library's public functions and variables, and declares all of
the public data structures.
-
.SS History Storage
-.PP
The history list is an array of history entries. A history entry is
declared as follows:
.PP
@@ -330,7 +339,6 @@ typedef struct _hist_state {
If the flags member includes \fBHS_STIFLED\fP, the history has been
stifled.
.SH "History Functions"
-.PP
This section describes the calling sequence for the various functions
exported by the GNU History library.
.SS Initializing History and State Management
@@ -349,7 +357,6 @@ Return a structure describing the current state of the input history.
Set the state of the history list according to \fIstate\fP.
.SS History List Management
-
These functions manage individual entries on the history list, or set
parameters managing the list itself.
@@ -545,7 +552,7 @@ if the returned line should be displayed, but not executed,
as with the \fB:p\fP modifier.
.PD
.RE
-If an error ocurred in expansion, then \fIoutput\fP contains a descriptive
+If an error occurred in expansion, then \fIoutput\fP contains a descriptive
error message.
.Fn3 "char *" get_history_event "const char *string" "int *cindex" "int qchar"
@@ -583,7 +590,7 @@ The number of entries currently stored in the history list.
The maximum number of history entries. This must be changed using
\fBstifle_history()\fP.
-.Vb int history_wite_timestamps
+.Vb int history_write_timestamps
If non-zero, timestamps are written to the history file, so they can be
preserved between sessions. The default value is 0, meaning that
timestamps are not saved.
diff --git a/doc/history.dvi b/doc/history.dvi
index 28af1c7..9734c24 100644
--- a/doc/history.dvi
+++ b/doc/history.dvi
Binary files differ
diff --git a/doc/history.html b/doc/history.html
index bc3ce3b..3110cf3 100644
--- a/doc/history.html
+++ b/doc/history.html
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on December, 18 2018 by texi2html 1.64 -->
+<!-- Created on October, 30 2020 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -192,12 +192,14 @@ containing <VAR>string</VAR>.
The trailing
<SAMP>`?'</SAMP> may be omitted if the <VAR>string</VAR> is followed immediately by
a newline.
+If <VAR>string</VAR> is missing, the string from the most recent search is used;
+it is an error if there is no previous search string.
<P>
<DT><CODE>^<VAR>string1</VAR>^<VAR>string2</VAR>^</CODE>
<DD>Quick Substitution. Repeat the last command, replacing <VAR>string1</VAR>
with <VAR>string2</VAR>. Equivalent to
-<CODE>!!:s/<VAR>string1</VAR>/<VAR>string2</VAR>/</CODE>.
+<CODE>!!:s^<VAR>string1</VAR>^<VAR>string2</VAR>^</CODE>.
<P>
<DT><CODE>!#</CODE>
@@ -274,7 +276,8 @@ Here are the word designators:
<P>
<DT><CODE>%</CODE>
-<DD>The word matched by the most recent <SAMP>`?<VAR>string</VAR>?'</SAMP> search.
+<DD>The first word matched by the most recent <SAMP>`?<VAR>string</VAR>?'</SAMP> search,
+if the search string begins with a character that is part of a word.
<P>
<DT><CODE><VAR>x</VAR>-<VAR>y</VAR></CODE>
@@ -293,6 +296,7 @@ the empty string is returned in that case.
<DT><CODE><VAR>x</VAR>-</CODE>
<DD>Abbreviates <SAMP>`<VAR>x</VAR>-$'</SAMP> like <SAMP>`<VAR>x</VAR>*'</SAMP>, but omits the last word.
+If <SAMP>`x'</SAMP> is missing, it defaults to 0.
<P>
</DL>
@@ -322,6 +326,7 @@ previous command is used as the event.
After the optional word designator, you can add a sequence of one or more
of the following modifiers, each preceded by a <SAMP>`:'</SAMP>.
+These modify, or edit, the word or words selected from the history event.
</P><P>
<DL COMPACT>
@@ -349,11 +354,19 @@ the basename.
<DT><CODE>s/<VAR>old</VAR>/<VAR>new</VAR>/</CODE>
<DD>Substitute <VAR>new</VAR> for the first occurrence of <VAR>old</VAR> in the
-event line. Any delimiter may be used in place of <SAMP>`/'</SAMP>.
+event line.
+Any character may be used as the delimiter in place of <SAMP>`/'</SAMP>.
The delimiter may be quoted in <VAR>old</VAR> and <VAR>new</VAR>
with a single backslash. If <SAMP>`&#38;'</SAMP> appears in <VAR>new</VAR>,
it is replaced by <VAR>old</VAR>. A single backslash will quote
-the <SAMP>`&#38;'</SAMP>. The final delimiter is optional if it is the last
+the <SAMP>`&#38;'</SAMP>.
+If <VAR>old</VAR> is null, it is set to the last <VAR>old</VAR>
+substituted, or, if no previous history substitutions took place,
+the last <VAR>string</VAR>
+in a !?<VAR>string</VAR><CODE>[?]</CODE>
+search.
+If <VAR>new</VAR> is is null, each matching <VAR>old</VAR> is deleted.
+The final delimiter is optional if it is the last
character on the input line.
<P>
@@ -369,7 +382,8 @@ or with <SAMP>`&#38;'</SAMP>.
<P>
<DT><CODE>G</CODE>
-<DD>Apply the following <SAMP>`s'</SAMP> modifier once to each word in the event.
+<DD>Apply the following <SAMP>`s'</SAMP> or <SAMP>`&#38;'</SAMP> modifier once to each word
+in the event.
<P>
</DL>
@@ -432,7 +446,7 @@ data with each line, and utilize information from previous lines in
composing new ones.
</P><P>
-The programmer using the History library has available functions
+A programmer using the History library has available functions
for remembering lines on a history list, associating arbitrary data
with a line, removing lines from the list, searching through the list
for a line containing an arbitrary text string, and referencing any line
@@ -448,7 +462,7 @@ in new commands. The basic history manipulation commands are similar to
the history substitution provided by <CODE>csh</CODE>.
</P><P>
-If the programmer desires, he can use the Readline library, which
+The programmer can also use the Readline library, which
includes some history manipulation by default, and has the added
advantage of command line editing.
</P><P>
@@ -2166,7 +2180,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>chet</I> on <I>December, 18 2018</I>
+This document was generated by <I>Chet Ramey</I> on <I>October, 30 2020</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -2328,7 +2342,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>chet</I> on <I>December, 18 2018</I>
+by <I>Chet Ramey</I> on <I>October, 30 2020</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
diff --git a/doc/history.info b/doc/history.info
index 870187a..749d53e 100644
--- a/doc/history.info
+++ b/doc/history.info
@@ -1,11 +1,11 @@
-This is history.info, produced by makeinfo version 6.5 from
+This is history.info, produced by makeinfo version 6.7 from
history.texi.
-This document describes the GNU History library (version 8.0, 30
-November 2018), a programming tool that provides a consistent user
-interface for recalling lines of previously typed input.
+This document describes the GNU History library (version 8.1, 29 October
+2020), a programming tool that provides a consistent user interface for
+recalling lines of previously typed input.
- Copyright (C) 1988-2016 Free Software Foundation, Inc.
+ Copyright (C) 1988-2020 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -123,11 +123,13 @@ the current position in the history list.
'!?STRING[?]'
Refer to the most recent command preceding the current position in
the history list containing STRING. The trailing '?' may be
- omitted if the STRING is followed immediately by a newline.
+ omitted if the STRING is followed immediately by a newline. If
+ STRING is missing, the string from the most recent search is used;
+ it is an error if there is no previous search string.
'^STRING1^STRING2^'
Quick Substitution. Repeat the last command, replacing STRING1
- with STRING2. Equivalent to '!!:s/STRING1/STRING2/'.
+ with STRING2. Equivalent to '!!:s^STRING1^STRING2^'.
'!#'
The entire command line typed so far.
@@ -174,7 +176,8 @@ separated by single spaces.
The last argument.
'%'
- The word matched by the most recent '?STRING?' search.
+ The first word matched by the most recent '?STRING?' search, if the
+ search string begins with a character that is part of a word.
'X-Y'
A range of words; '-Y' abbreviates '0-Y'.
@@ -188,7 +191,8 @@ separated by single spaces.
Abbreviates 'X-$'
'X-'
- Abbreviates 'X-$' like 'X*', but omits the last word.
+ Abbreviates 'X-$' like 'X*', but omits the last word. If 'x' is
+ missing, it defaults to 0.
If a word designator is supplied without an event specification, the
previous command is used as the event.
@@ -200,7 +204,8 @@ File: history.info, Node: Modifiers, Prev: Word Designators, Up: History Inte
---------------
After the optional word designator, you can add a sequence of one or
-more of the following modifiers, each preceded by a ':'.
+more of the following modifiers, each preceded by a ':'. These modify,
+or edit, the word or words selected from the history event.
'h'
Remove a trailing pathname component, leaving only the head.
@@ -220,11 +225,14 @@ more of the following modifiers, each preceded by a ':'.
's/OLD/NEW/'
Substitute NEW for the first occurrence of OLD in the event line.
- Any delimiter may be used in place of '/'. The delimiter may be
- quoted in OLD and NEW with a single backslash. If '&' appears in
- NEW, it is replaced by OLD. A single backslash will quote the '&'.
- The final delimiter is optional if it is the last character on the
- input line.
+ Any character may be used as the delimiter in place of '/'. The
+ delimiter may be quoted in OLD and NEW with a single backslash. If
+ '&' appears in NEW, it is replaced by OLD. A single backslash will
+ quote the '&'. If OLD is null, it is set to the last OLD
+ substituted, or, if no previous history substitutions took place,
+ the last STRING in a !?STRING'[?]' search. If NEW is is null, each
+ matching OLD is deleted. The final delimiter is optional if it is
+ the last character on the input line.
'&'
Repeat the previous substitution.
@@ -235,7 +243,8 @@ more of the following modifiers, each preceded by a ':'.
conjunction with 's', as in 'gs/OLD/NEW/', or with '&'.
'G'
- Apply the following 's' modifier once to each word in the event.
+ Apply the following 's' or '&' modifier once to each word in the
+ event.

File: history.info, Node: Programming with GNU History, Next: GNU Free Documentation License, Prev: Using History Interactively, Up: Top
@@ -267,7 +276,7 @@ History library is able to keep track of those lines, associate
arbitrary data with each line, and utilize information from previous
lines in composing new ones.
- The programmer using the History library has available functions for
+ A programmer using the History library has available functions for
remembering lines on a history list, associating arbitrary data with a
line, removing lines from the list, searching through the list for a
line containing an arbitrary text string, and referencing any line in
@@ -281,9 +290,9 @@ for manipulating the text of previous lines and using that text in new
commands. The basic history manipulation commands are similar to the
history substitution provided by 'csh'.
- If the programmer desires, he can use the Readline library, which
-includes some history manipulation by default, and has the added
-advantage of command line editing.
+ The programmer can also use the Readline library, which includes some
+history manipulation by default, and has the added advantage of command
+line editing.
Before declaring any functions using any functionality the History
library provides in other code, an application writer should include the
@@ -1386,27 +1395,32 @@ Appendix C Function and Variable Index

Tag Table:
-Node: Top849
-Node: Using History Interactively1494
-Node: History Interaction2002
-Node: Event Designators3900
-Node: Word Designators5039
-Node: Modifiers6676
-Node: Programming with GNU History7899
-Node: Introduction to History8643
-Node: History Storage10333
-Node: History Functions11468
-Node: Initializing History and State Management12457
-Node: History List Management13269
-Node: Information About the History List15563
-Node: Moving Around the History List17177
-Node: Searching the History List18270
-Node: Managing the History File20195
-Node: History Expansion22015
-Node: History Variables23944
-Node: History Programming Example27924
-Node: GNU Free Documentation License30601
-Node: Concept Index55773
-Node: Function and Variable Index56478
+Node: Top848
+Node: Using History Interactively1493
+Node: History Interaction2001
+Node: Event Designators3899
+Node: Word Designators5173
+Node: Modifiers6933
+Node: Programming with GNU History8478
+Node: Introduction to History9222
+Node: History Storage10900
+Node: History Functions12035
+Node: Initializing History and State Management13024
+Node: History List Management13836
+Node: Information About the History List16130
+Node: Moving Around the History List17744
+Node: Searching the History List18837
+Node: Managing the History File20762
+Node: History Expansion22582
+Node: History Variables24511
+Node: History Programming Example28491
+Node: GNU Free Documentation License31168
+Node: Concept Index56340
+Node: Function and Variable Index57045

End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/doc/history.pdf b/doc/history.pdf
index 0cedc88..949244f 100644
--- a/doc/history.pdf
+++ b/doc/history.pdf
Binary files differ
diff --git a/doc/history.ps b/doc/history.ps
index 90b5c94..3e9c231 100644
--- a/doc/history.ps
+++ b/doc/history.ps
@@ -1,7 +1,7 @@
%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.998 Copyright 2018 Radical Eye Software
+%%Creator: dvips(k) 5.999 Copyright 2019 Radical Eye Software
%%Title: history.dvi
-%%CreationDate: Tue Dec 18 16:44:19 2018
+%%CreationDate: Fri Oct 30 14:07:46 2020
%%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.12.18:1144
+%DVIPSSource: TeX output 2020.10.30:1007
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -1123,6 +1123,7 @@ dup 11 /ff put
dup 12 /fi put
dup 13 /fl put
dup 14 /ffi put
+dup 33 /exclam put
dup 34 /quotedblright put
dup 39 /quoteright put
dup 40 /parenleft put
@@ -1143,6 +1144,7 @@ dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
+dup 63 /question put
dup 65 /A put
dup 66 /B put
dup 67 /C put
@@ -1395,544 +1397,552 @@ D20A952BA5CC35B646ACD0A287C956B98C450051AF6AAF79DF37F8954473F8F6
6744856E689A479CB3A8BC081F33CB06755926204981DC0A45B3ACC18F6865BB
EE2C50DB43B62E3630FC1D9B1FFB3BFFAA6D0A20C0381ADF48E4D916BEE85BA2
BB40F538F55C11D50F882B73913840B45161262BC8B0012694C3EF26452F9B77
-2CD7C7AD6BFEEAFE31C8A721C2D46AA00C10681BA9970D09F1E10DDB693AFE84
-246AB18279A2B24E5B50A2FF6337B7B1039FFDD4B00ED3667B5F2F7BC2786D2F
-525A0E82234B30711AA835EAEAC2E404915FC7EC0081B194765032708B5E11CE
-EF6868298CD26E5B9EF345BFA3EC2911E2B96A0B40AEAB95BDCCEE38F5EC170D
-3BFB792D2DDA7E57BD2FB7669484EF9322A1BEE009594901095DE2BA9A15A0EE
-4DD77404CEF16EA6C31FC04A8FBDEF27B9FC1AD3264388B0B12D8E476305B912
-30B51624D4605C45B514473F327DC3EE8BA69032A95301CF714F225A92C253D0
-D943C80B9CD0524C5B87A8D052D2E47A9725EF869D3B89097CC13CA9BC695FF8
-A9468004450A76A13B7EE78A03CC18917EC44036C2DD237344E594569B8F2DDB
-21F7619180B8C760741961CCBE54FD6DD07C4CF73B346099234A1EFFEFC88574
-6324E4232BA18A38EC9F0B780C298877EF0AF42C1EBC2EB52DB64A1E1E352503
-36AA29953A073B864FCB31BA938A4163D000A159ED4D345331FA1EB4009CFF67
-1D107BABA6AAA48075C6C50BC7683929EC146594E55B01D4F5B582328284068B
-2AB05CE92EEE1DF4557DFC8FEF287CB7F961F4F1828EA48B0ACF5C63E1EEC8FB
-6A0EFF132268B7DDF7B465D4A21B05993F4A4CFD168A700D04A7303BC2C00391
-392C3FF97E770E6FAFFFE501242B20B4F7B6C17331C64BDBA3E59695E176CC79
-E7632AC6D2E920AA048BD1EBCF9909D8C314D2EF3CFC5CF88D8570BAA814D467
-96D86CF4415C5B739FA6FE7B4C228F06268D28EE33381982E7B005C26D2604B3
-AA363CA4732B9BB0E4D4EE50556D777258A7BC232087C9F00B0D5EF70270B40D
-3071E14E4E5AB5AF1C686C5A7C268D36A0787DC9300D4CFA004F89A73FFEF780
-E6BBC957E31B764159C3ADF752E6E1A6C3B5B855F8A483497A347B601E3C8DE0
-362D76B715916113CBD2D3765197074104C7E17B87670CDD5C227A1467BD678A
-BE442F196034B02132850CCB77143C2873447FDB8767C462C63916D9D4A13198
-B7910E1B274B27644DFB2E8372C8CD55E6E2AA5CA952A079E1E6389927495921
-CA39D69ECB4DF382FD2DC213EE382BA1A48CA886CB6AEF2B0C50CAB47B1FC40B
-2C95E13190C92480439E3C56188D162C294F24987AAF4E15E8FF7ABBFF2A12FD
-AEB884FCFFD671EEB94CC075B815C6A45549EC23DB85923F4C37221641B75CE0
-C5C8FA8403C2C9FFCB66CC74C5160D6C7042DDFF33A954DD01C8E21B21F8F364
-F6FC735507D0DB5F68F2D8B520AAA7E0F1D503211339F9466006E9A148F39874
-A1488F1F0458409D442D2BF5935A655AD4656A8411543F58C63DFF9C4FE56256
-7F9F876B56BEB208F9DCA363D2E0F7DF3CCAFD5F9674675BF622CBFC2D1CEFA2
-7A5323971101D3641E99D84197B00D67436843EB9CF74C273062159C361A07C6
-E3F1E0E4666ABFD5C9AA8F914F05D02EE1906FCB66E421C73243257170617FEC
-2F02D5A7F3347CC0D290E52FA815C4D5D2A16A4D4A5E0B50165B0C5C77B675F1
-0EF343D70813346EC4D7384A9D9A091984AF29C810F8C3D4247D37F91C5DA967
-747890DFFB25E67F6FB766168487AE8BD8E49C55BC1B68B831E3F510BA1DA3A3
-9F810B865FA98AF89696CF7489BACBC1033A1C929023588E9E03FAD6D901DC52
-A2F5EB74DB679A16DE42F7B47BCBE16617EDC7328A2CEB2C23733D98ED753C66
-502DD2FC75CE2905A429B5B56C62C1C0FCE17144D96E0C615E7FEA48EFA05D9D
-344ED266BD96C3296D6005D289228C62D572167E369AC65724E0E62AEAF608C3
-423FD37E586D41B2AF9B10E0A36312AC1A6F61418BEBF528932FE61881636837
-47CFEDDFEB25F7FC156AC7D6E78D608A91270FF6D1D510E8CD61C289F3E7960C
-B6093B333A0CA3CB8BE51107C5C1C085B3CF6D6F61379420AC1E5D9A3FABF084
-80D6C719D93BF74A99D681726C81F9F83949E06A560F3B3905C0766134533256
-6CEECBBE3EDC220193964706085526386391260838C2E885C88F882E29F31F69
-149CB1B4B788BE82AEBD32B5A8F07D1F537D85077B4BD1FF945EED4BB41B79FC
-CA0B25D1D761129A6043D701AB1F6655C06DF7B0891C3C5224977B9464A6A794
-5FAC6547F7548402420976CA3A644E5A7CD7F64974B71872B02756FF6A135EE7
-BA60B9974A0A2CFA4E46D91B929A3A0DECDF44C39CC06BC2105538856718CF59
-59B1D9BD88735ED4D83C17A67031178B43CFEB4C301E551D708F5F08E80E5A1E
-5579CDA06C9902E412052CE7714A8BE29DF9911F556899F819A7FC2565522182
-20918E8C476DFC00F79BCC4248BCAC6615891C3115B30A39B365044CDA0AB26F
-C8966DB46FB9FB7B7BB37C48B7CC4852C8C05A57D92ED8E6AAE6EE5A60BC81B8
-C0B22E5E74610495094F12BA6D60DA3190C4CAC7F46D740005264BDBCDE61FB2
-50B8DF1CBF41195E616F4595F7860F1538363D529E3E3FD2D408B56CE034521F
-3D9AD6C30174D0AC1A9F9151C8C8DB6E7624290CEB82632679BD0A01EC30B3CF
-FCE72F32F4443E137EA554CDEF84B62CFE21A5E8BFB2EE52C87CBD603C8E0FC7
-35A9ADA5E49FC4C7E3F1538C84761186C045B9F11074F8061F0F4BE061D22C85
-2BDC140F6CCD858B1A4E9AE9444B4EE3DAEFF4E3760A8B851ED3B9780F990595
-36210570D82E9DE83AFB3A20D0D955F69FD838B6F9F785231A84D8BF9F434665
-CB62D518CD5F4623711E022DF76D2CF20202FBA15A1D1070FEA87D6BE954DEE0
-370280ED09237334FCA7AFB1A0CBC9A153A25A929BEF57B202A5889958A9AEDA
-535781A11DA8E2BB5C885BCB83053BEDE8436846C7B54B41703839F861F95D5E
-3C34C4DC8FAADB39D20DC53F642A28B92D0BF1B02876E348B088AC9B2C55DB06
-808BA40658ABE50D6956C9B1201C8D3D97CF9ACBE1FCDB7E7C02D1BB8D87AE61
-2902D77900C11D1DA6CE808C425A7EC0B31BBDC690E98A09AB656294A1B17E00
-2D12DDCAA5E0F1B44EC9D7CDFB5E916045F5CE852D3FF3E8D421A11356EB4392
-F7DA22AFA6C18C7F507F5D8892E8F1DF11E5CC965A61D732F12EFA8339951645
-CC3AF8C3EC88C5B372729EBBD3530439E0E8AE43B43CF57A5258AE8AB259EB71
-9E1F057688B110D4177CF54B1D56D2EAB6B1DB603D6536EA9B9EA11DD57E7F3E
-DB574B05043CEDD701DF8C0982EE726187EAF637ADC279BF7C83A244D3EA9800
-F9797A4D3E4D5F6669B49D2B37CC9BB1C9244B54DD62A5C4BE533DF46F618D3B
-9FE2203DC6C75B25AD6B49B2A760D3604F156ACD80CF5458FEEA64E243B2E527
-E750720E97CCFFE2322734D5DD0FB1A8FD8FA77AD87AA1C8EA1B023F70BCCF92
-624F9A6B0B27B5C8A5AD21D8C08F62BA1738359A4D78439A7A580D605929D6D7
-60790297E11930F43BA89832A2D351CAD0F77AF8BB70A2DD5DEDD4B34FCBC714
-C2BEA2C26F768EE44D27F39021F5AC95FEF199F6ACC4A2F3109E081A3AC7F42D
-1767C2A82683BED075A3293189784AC8D12F17FC3C15B83915E0425926D6069C
-16D58DCF97B1D8E1021F51C47BDB1286B5F9CB60A2B2B7D3F219F20C8651DCCF
-80B30FC5B20DD6D887BD571450A3A005F5980E90A649DEDD316A452589B2BBA4
-BE8625C231E5D4886124B24580C7795F7B3D063667F400C18150A80DEA255943
-B9BC4E1F0A0E5F5BFEF9F7322C836AE892F91A4B3291F216F99654C54BDEB5DD
-87563AEAEED8D8E65D1B60795F1011C3CC63B8FAA15B381E04E1FBC2A5BA5EC8
-B76DCA2AE3686F7D71CF0662338C5E468C0E8155715EE8DD963FA7C257214DB0
-6E523E1370D0F14165FDEF1C9D2F9DDDB4C61DC764B946DC40BB897E8A0BD7A9
-A7D9B684B5899E1A8F4CF9FF67EE19B4FCB61AA4463C5F06309C7B10A131AC21
-63E04A69A223818185F44D48ED721CCCD98737DF4BD3CF6924C6EF30372E9E38
-22B3230829B054EC1B8B42D29059AB5E706E5EBD6CAFA57502005BB170E5B471
-8BC330C11C068849A61C37E5AEDFF994D9A53E73E12D3F7BF63CD6C435055F5C
-875056658B8141B78E3E5050E3F8209CEDC015445893B5B798DED6777B98017B
-4B9766F79E20DE51B4081215A072BF3BFDA0AA741D3EAB7F35138C2B32982453
-5681A66A99A21F0663C8B559FA49AD7B854BD648335DC7B8F72EA85CEC66231B
-AE8F8FA55020FEB0FDA90055CE8255D02C0E2FCC829AEC8EFBAA08071CDD03E3
-9FE8C4F28DB460E0AE8514E319ADE43559B190D9104C78DEB8DCD9E1B2118746
-3DF257B5DA0A52F0F6F0F70352C2B1F851F14F3251A2CEF2B15590E4E80363ED
-652CEA14D0CD2FAF8CD0CD6A7888159FEFC0A3D8978F49D85DC8BFBF33FEE7B3
-C0B040618510F483EF114F46A509E86D08D9470B9A6293083E6FBD511C388D8E
-5A16B5777FC9FF933366757609163E9567B121906BAAB48B1D3CEF9D0B1028C2
-18E9B6536DDA27ACD9816D2D1D5571038F936FE496081B801485F9CCAFC7EE0A
-34D2BF741863A5F639D9D4E123EE90AEB355314E4E38F3F4C243CAD3112A0504
-48BBD089B189203DF7ED4933819A0C1D57ED8AE20B2B15F19F8A0CFD927CAC50
-116B04C25A4E5B20C4C5864A8DCF8CC9BDF5CEA59D1EC52EF62CB642A8FCF1C9
-3E036AA4DD6F4ADBA4F8CD013C622F831397B8640936910C6D1F82ACC6451C68
-760E14BF5B7845762DFE0037BABBE5046C5F3CE3874702EE51D1A463F3B86C69
-7C758A4B1960E1A796F07859A9B1860AE5BC7D5703E63A37B9334D67613241C2
-5B606439A6AB29FA7386317DB876D26FAC05188B4C59672F2CD9A750A0E70CD5
-AD69A8609AB0C78F625E7749C770391D5426D9C3CD1CD7D37445D9718C07A37B
-5BECECE3E6F3147731D5C12C4946F88A7C82500F8C495FFA7E2FFF6A9C2F0BFA
-8EF861E6C369C8DF969B5FB0F02CAC74E8E080B16BEF1CF0D1A81E90FA1612F1
-FCF086961FDD981A8698FBDCE44A80E4290B7B553D9F46BDF6E346627437903D
-499C80A29BE6E7A2C03D943D23C41F1B85C92FE922EE3A3E0601565564C55116
-17F01B2DC9FACA12AC59950EA410D5533B0C31D89FA68D07E9FF1139554C7920
-FF84CB51E13B7FA3EE6A32DDD9FCC192B576A871CBC9E04C5C66ABED560AFF24
-6D6271979BC7D04F7287E32F52B1D2DF60B7D7A53A7D776FC36D70E9C6F54E97
-44F15C5ABF2547DB40EC913EF0B9597A721563C3664E74E7283E9030CAE36B7A
-B14E781BC772691347ED48EBAFDF23EDC452EE8A118A840A185B7C1DFB7F3AF1
-A2D64EFBA1C9F662A35F3B46CC8E2D7E7A7F63F9BFEBB6E4A6DB8FF0BDC83E9A
-A70438435C3B8A780F7F92578501656FF963ED66A73921E014A46385450D26F5
-B73EDA0630201BEE50325B0F76B55E77BC55F4401251D083225EA5777F42A7C7
-748FAE7C22E6A17E04BA9F6D451B35A63DA6F3D80B0365E159B3E993E0DAA242
-2212784C9651F9A0766F473DF743748FAF491CB69728C2473ECC5524E0F2997C
-2650BC1F945EDA4CE833980E706C4D413F7929804A0B1D182E26052876D6B836
-01284296115233D90D2D0FE83317D4AA206A67207BD899DAC1D726C937A34193
-F0B6EEDECB391C6434144275295014BA4283D4346BCC495AE3EC6EE9C4FA7711
-BB6004D39D7BE17FAF0241F2798C36C451BCC4227899837FC244BEC3432ADE1D
-9E4F47F45E9B1D2C832FEF6896C92A207AAED7AA924520D096F983D66DCAF476
-83A2F6F1844E7EC5195EDD3E5FBD0FBAABACE5D13BF754BB2B0CC8FC633D83BA
-3BB65BD9837B109AC1B5B255298E6B65AE4CEC0FFE24DDC3D1883FB0D6F8FE65
-94D0A898278E0313303CF7DE2E37BE0152A1D4CDBA04ED61D54555B1B107D9CC
-C08C89BD2A19050191867EFAB8FD582226B03D7ACFA97C6D404BF99F39EAB7AA
-9AA9397B57CD7CAC1B338C21579A593D7DE1241E6F77366CAB10C3FAA772C663
-BD1051F9D791A84C35196E74D28D342553D344199CBEF83D3A6ABF05A4779B16
-EAC70F7CEE167132D04BE5F56F8F20927DC3C7A20239AC6AAC2B57BBC83174D6
-25F59228ED58B5D492B16ACF3EECA04054F59247A8E318B6F5A09F0A8B3820B7
-2CE711056E3A3ED9300B6F2DFE2C665D7C3351D40A779FEDA09B406E804BFFDB
-9831478F237DAF6352CADC53D6AE85A14E5FC7C0C1BA4009FF962FAA52499506
-C6F3C18BD4C13C1272D844EE151CB5A0DB0188AB7FA2DD47A6A2CE8554A7CB82
-C0CC30593F062451363778FD5A8D39C60835825D63CF3BEF323C8CBEF3055F61
-294FE558C7542977A3C520DE15A984C6D82041E06C356FD7BE75D601CB95816F
-F05AA3F53144B7D768F6732339FB8E6A068F8E021C1BDDB26572385FD1B3794A
-0E1C780576819CA271C78010D8416F6B19912227CE781CDF6AFEC335138203D0
-ADEA0617451CE0BEB024CDE135922C72FE0932F10589F0FF9F1DA721D32B1583
-8D032EB9049E4AC34B3AF16C4DC1A85CDD8B047035ED7D50CF8D9D02621BF6C8
-2CCAA23DE753C7B0B8818B68D625F44A54689C0B1CA36FA7C68A567FDAB813A1
-8B34DFF1300D5E42067F51ADDF7DC9BEC7D4376D304A417741E17AE427639676
-407472CBFAABB5AB329AA7CCF130B3EC6DD588A1F44409FD239238B1A8884382
-F04198DD7C5DC5E2288FE0B206C9D9516D468AA6E2B1183E2E906F9DE47C9209
-578321590CF839C9FFD5FBC3393FFC75322B4E703EFE69534745D579B74AAE3A
-2336823D2DD5F477F39AA9386736476F5C0B1CB19457D44AD6417BA503475D23
-51A99BDC97751E7172363DB670AA50D21920E98BC1DE7349EF8B8C1E72CACB47
-557B3E2BC30454F75CCC41B84A67648E894AA0A43C5A2BFB5BEE8D0BB07910B3
-47EDA7B547EF357C2553933E0BDC0F05D596E4C55B33AD63E924164DEC1934E4
-58F937DADD65AC866E4EA2BF02D36C54AE3E3727A8FF9F3658337D2BFAED5908
-5BE3C1F4503843FFA47C83B3D9CBF1DF2AED7A6B97A7E68CB6B9E5420E70C5C4
-36843B29D902584DF95CCD8C34647E87E2335371DCD89E495A92033BA482A62A
-0D2D3A7BB06506E42A4926CA0AFF80EC8DA63D7B73E8A04B25312F03251B512D
-76BBFD76C1F5207FD6A8E69ED9BF063C7DDD0FD4C6974BBC531429EBB55BB715
-0D08FCB2F80275425FE42E87AEDCE78D2BDC07CED8BC49D260D1671BA0ABDDB8
-98E0F7BA7EDA086F4E3585157A71CCEEA35750B9DC3195E3396F1161EE1E1D25
-E6FE6E0B022A9625B5866B8EF59DFE5391AA7F033886402C654F4834F4E43138
-EBAAA758DFC8C27356F012F4D0F398EB8D013678059D8419C2D947F3FB2BDA1F
-70A5FCB549BFFAC288ACA7051BDAEA41A4AE0341035B4365A63C553DB80CE429
-02670706A74AD397B49AF535067EB07CC3CB86704ED45301DDFD5238E7DF5ADA
-8DF465E45F7514D7A0BAA202305CEC73032FC09294480796251045AFBCD6B081
-8EE4481D29E817C7DC32539B364076672596DC24CA8AC45D60A8536865FB475A
-3DB48E98C675A8BFA39792AFD17B5251D56F0D5C27E229DFA75FA3560E7ECFBB
-8164E4FF15421846BA40EE13146A316D530287CC8652B58804B95C53F6FA9DF6
-F84DE1E222C5D69E45E12C06C97E672D456E21B95584F8371FE34ECB0E6174BB
-468EA60BB0C06B3DF48D996D9083F70181799CECC224FE60736CFCC6F246E5E2
-EF465A6B1B411ACB7474A59BECA5935DFD15F5C18160D4AD4DE9767D6213C35E
-08AB18F834CAB32013AEB8C634DD6382D4C7E49F10BC5113214A18A5EB31A0D6
-923630A849327C1CAFEA3B8F5EBA83668E03EBE084ABC1A4C1DEFB333ACE0696
-EB20FAB6FE6E61D38457C8E10D8FB7595C627E8FBE2D5563C4D50A6E1F3DCFF1
-F5A2DF1A62301665C0E44C2257B4516B515FC995A52D4DBD54B3D4EFBFC63A8D
-F07C27065CFE19527AE04A9CA14935B7399E30EF88D2B63891A58044D7CE07F2
-916EB8E9C65388A73956B3D82B4B41AC378B4B75AC304A32339CA7701636B6A3
-84254743EA5F8525897D4FB054698031D1FFF4C971A10440212DE812752425D1
-E71B02AAD20E994357EC8436BF1B74F016DD41D6B1F6C1578E4B261ADE5A7B31
-2ECA2C16294C9309F200AE0AB5BDAF2BBCB3E97B0FC5556BD8208E50CDEB88BD
-F137D2F72258B6E41092F1256CA4AD867338DE757E29298F404FF94F247A805B
-40524952A6D8581F065B11B6324F9F2821A3AAC2E7A583771EEE640F2FD0975D
-299EACAB2A99942480DCCC95BC7CEA846EB1B2423FCE304596A2581583450455
-CD1D56843DF8FFBA723FBE4A4AD8E539828BF48BFB4D0C4EAA68EADB81A2C58B
-EBF89CF83017DE3382BEF407B493FA5EEF810C740C3C8B646292AECE9A5180CE
-07ADE6E6B2935B90BC521D3ECBE25B43F14DABCF49F378C26CDD2B27C690EAE1
-E888EDC3C963F55F1AD13C8FBED4BE0BEFEF31C0636913B47205DB1D0DDDBEEF
-4441A3DE9825160AD57948567EDE8660567998D41A0AE2D9A9B5BD4207F2A0F3
-EE82DDE22D16C32A583613E0EC2BA331EA91042B8FA2865A8A7DE1BDAD0B6D33
-3DB1409222AAD20577ABAA7A2DD6B302803FC7B4244ACFF725E37CB5926563D2
-82AEF220424600581E25001DE71E1385C9D690747BCE051539AB8B03B2EA77BC
-39B27AA8F63CA37E3886C50E125D3886C5132869596039589AD6A8421C8B7AF8
-B0EE2872AF974A4B779F09DC1DF2BBF673A7FB32BD1BF3D8D99A94E1BCDFEF81
-37B2D7BBB80ABEC1EAD544448E6A49DF730A1B7F63267C9DDFE81131867F0C0A
-8D2B37E8B0AF2A6265C57CF9BCF98A01998081E7BBB94DD53FCAE52F3F5010C7
-AFB011FC6FA98FFDF173FA0F935D33EC3DE55890BFAD217870974C00CBBB6C67
-1CC558F6FB2C30B28B9987721722A27EBFA924A382569E3D7C47A3220F21EAB9
-1011D71B104BAD1A47CDD9CD64487A8E9721CABFDB83FDEC748EBF0D08E77CFF
-1A54D0B3ABF4024DAA403436C9F6CABF3B6CA7089776ACB183AC01C8E7F287FF
-9DA7959C4B7D73F00976AC5C3E4B810DBCCE732E4C9ED9EF8006AFC7314F0055
-FA3FAEC780434F273ADD7D07C2006E4B755B24A26341AA5AC2DCE258F8B03409
-188109067E22F078E093A76FA372C87CAD401794D94317B2665DCC7E21FDF901
-E1511307385B6EE148FE1666BB616351F48A8082ABF94040CDB058DD584364F8
-CBE3E94DBB8A2450D18D435FF5C8CF2DBA1EB562E957A83F184C9F3CC43C1860
-E6FBEE91C4D240C61D7A7D554A17B90D0A9CE1E7AAF7840846B3F1A1BB9926A7
-CF8E9DA56DB81D35CB3687E9818CE74C0336DF7B2CEFD8BC432268AC93EB34E2
-3D361A8387BC92B459F645BC069A49628D7382E22EB249BC7CAAE98AC55FBD24
-F570D8D654B54710B809234AA2E662D2ACC44E1FE1AA63A497FDD94A46B9D1BC
-E37B29430A5E0C2E592F13BE227CD9A6556E9A0E1C3EAD9DCD742D1F9CF62014
-5EA4510003418D1881C4EF1589A8B9EFB52DDBB67BCFC4E55B134A3C2E31AC1C
-4658B592EF69C2E23E335499A35B91A58DF9A947712DD55BDCDB7E0AADD53E29
-2777329340EC29A51E9020B8EBABB7B066113ED3A4791D3FBCABADC40CC45FB6
-8744DC0116379D2649B216366C6FC83999E1FC558EEE5E17E13A12B252E5F7A9
-E760CD51C96C1B4815BFE37D4D39621BCD10DA9428CF186E61E9921585C1944F
-DDC084DC9216FAB69CF54E456D47F65B3FB02F34B0CC998E12E41110A4791465
-19780824EE2AC1B799655553375ECB24149100E539C23829944BCC82211A85E8
-6A2D3559BBC0EDFEC2DA02AE3BB86A9E30AD5BF95E5CD956297C1F6AE85D0768
-1F9D96DD8EAAAD78CFBB543E913951A78D3262CF08BE0DDE7D870FDA94C51A1B
-1F8544122EDB7653E66D772E3EBCBCE4419F17500D8469EF4FBF93144B20DCD7
-39B815E0B09D0BC3283E8B7A907F203EA3B22924419C1C3A8DEEAD335FD538F6
-0D5ED1581BB64FAD4979D67D51F18B047E096747FC50C6A2B48377E458038374
-7FF93A3A46E09ADA5A844EAAA3EEFA1625510D3AB7A74764FFB229725FDA314A
-72CCE353A9693869F26CB904505B089DE6D41825336318DA00DAFD986779D4DE
-E8DC47E496A9936DD3CF46719D5E832E3B7C85B44D16D4BB588CADCCB90CBBF3
-3589F08AF2AF77D7ECC3AB68D6409221B2ED853012C693C522407B4E97DD4F89
-9EAA4CDA6C85F8B65F5E165399F6CA79550965F3AAF7D875CA947FD6BC42A4DA
-1AF797BDBAEE65A1C3BAF00E8E48FE567E757715166DD2757F7DE6C45FE4B3FC
-A0C76D12FCB66B4CE9CCB47060AA5CB3FD427BCA5B549A4AF34CA654D9421C26
-9EA4106806950525CA856624E9EFF9DC5B598AE4AFE928447D0704D4EE99DF07
-69AC51F4D3163B7424059ABA4381DBBBD5C8C7DEEF723F163AE69C48962C34D5
-7514F73FAF946C121EA5848C29E127DD0FDACDCB6B1AF4414EA369093282383D
-0213B391666CF596FAB2AA27270FC273E32B90D3209091D8360A0D50F8F28D23
-F7B8B097E2FCF2DCE92A7D5AB68EE680B691C2DC7BB846FD5132EB5789A30B8E
-9B849C18E8560E9F49764CB89FE01E2E9968C769BAF6B44E08E45E563EB14BC0
-70601E5133AAC33723E934677518C54A235EE9E4A832B363DE44FD82D37BEEF1
-E9C842EF2570C97C3C5D6C0DE94DED4DC5B6681E4A04BAA725F0D9061B16C431
-8ED6859AA5E5BF254BD3C29F100293FEF2D0D6EDAF428490E13B06527B5FCC90
-54768BCE8007EAA2EB1AE14F3F577CC243BA416AB6E43E92EC4FC99775BC1D92
-CECEA05EB8ADDA826E364921ABE388295AAEC6678C08D26415B2725025C70089
-9F12735F37C45F00218EA2E398A8CB173086C43B2A7EE4C95852110F8DCD12DD
-64AEA60156E560E8D8D84285B523515EC15888E9912C6C1AB91290E1D57D7595
-1DF73319FCA62BE7C04F4E9968F7E453C384899736D48EE6FF64DF1260057C37
-3082E207F796CE6AB2271E3F31AD2FF83B99FC3DF2826C07F4E4CD05077DCD69
-A3B9EC76BC02C12A468AC4C0D7D83FD4BB4BC8ACF9C312CE3144E76D2F3C6246
-A210DCC9834608CD0A52CC551FBC059B88BC2CEE954AC6B5811281737EC83C8D
-72B39D016B0ECCED40BDC58706910851447C80E3FFFA9D57898204F9815DB6DB
-1EB38FC10637CC50768703AF9FAE89A94B424A3C647A7870B26970954CEAAD68
-E069ECBADBFC0519C33AEECE55AA93C75B6CF907DF65B98C7A9B043E4BB5840A
-88DBB212EA2E86888D36B76D270926739B48D6435C1547D703FEA7B989CA60A4
-87CDF9DF654919F730787D58680BAD0E5B506FDC2BF0C89569CFAF6BE11F80B2
-07D69B417562178E087AE3AE9380CAF8CEEE40FD3989BB50E8521963B0617401
-2996B2C32A3F03B7F312A211B605932233E7C230FA084BB912BFB20E85D721C9
-532D22AB85802085C715206297C09713C3142039602BA9D607F7A52FEA25B0D9
-FDB7E9FB15499E3DE1E47CCF2500BA8B8798497469DF248B8244493738C81815
-1008200E9457B4CCA5740897B17F8832515EBAA84A237E17542B359F173E7868
-64E99FD8159C9051E876C235E434BD5920F55084DD7F31C6FD2B6CB58E5FF307
-0AF6020EA9012AEA47F9BCF018C30885988ADD1A630C2F1CBBCFD5A2C95028AA
-6FC89D43E089957267B6F94C7F4E05FCFBAC85E879D27F7BA921FEDB4B551F9F
-3B5D3197C0FCFE264D45F6C1181BA26796006B94BEFDC342C7CCDDBFAF332F8A
-D96D8D6C52ACBB10C871DAA7162501071CBC04CE01D8FDBAB48393E59ACCF1C3
-9EE4972D7DABC3E639B1C2722F346553DA9E9F163DCE4CC7CB2D1B966F561A07
-8862C3230BDB104C55DE3436ACA77800229637A6DFE1F041DB4B45B2D1A5481A
-6641D77981CDA367CD23E64AD5355B484930C7B09B47ED6C79851844099A68C7
-1F4E6ABBDDD7490259E856C267804A4EAF61246AB4C1233F025EE81793312479
-CECC3813C2D887855573122E59FAD0B85DBD9AF66203F4618F22D6D56E1F7323
-2BE1ABF7702D8BACA8AAB9FDEAB48E3ED56BC0D3E4696505E16473CAD93D0559
-54E8991E7F146F4D4C9E3DFD35012F5830B57FA04BA42BEC724E5708FFB6D521
-B209D2F6CDA86560921C705D6A99F822DD3B182B0BAC8AB381653298B82C86E5
-098FBC2E1E30DDA83919362D1BCF4D91702B16E849E032B44EC2482369B4C342
-211E7382390388FDDAC362431B45DCB55FEAA7C48C30996C47B0E21BB32FAA7B
-14D6F0DB95C450B59975CE25D65E727148BC7400E00C249A415AA52DA829F547
-8D7AF32D029BFB27EA195EA3E8A038493FE5BDDFD89597C420CA1ADDD2D5AE9D
-D3BF13CE3B530D78BB7413F47056F663395BEAFAF4002BAA6E9FFD3F1F0C7C72
-03592F5627EA49F1C0E8C95813E1C30BC256C99A2F34A027D4552B650B0376EB
-9BC2482C80F19BD6F9315C71A185EB246091F6D7D019637100B555077B1549FF
-27446A2CA0C8C815B6CCEE95CF19B78908DEDB25C1F9A5E6C36FFE65E0A8F694
-8A3E847529C50351F6CF88F1F3B901A78378BAE535678A6C60D7DF4A00505B14
-FAFB1A1AE87CE09E1E90769C046C11309AA7BD8476AFAAC0EA48E6D32842E0FA
-10CEE024B1B178D8B9A15E29F825E42564A8F8F1E1F1EC760FC03F1D5773DB78
-E177A95C3D2E3FFEBA469404A866E662D217FEF7A99D6BEDF9F144A2A8B97542
-9423BDE10EED471B99F70661A7AC7A260C6C32EB4D00F21F7A3A5257EC597EE4
-885981989562FB08DBFCE4ADCBE6D9A1C92F6E9FF65A23BDF943835BBB7C29C4
-0D7C987B626819583D4D52DA32BF7DF15C21BE5BB64B575C7F4B149AC539ACBD
-A49DF3F0480DCD61E3C14BBC956DE5D968E74DF4141BEB0106E6C5F7828E4F77
-4EC7F0775CF320C26323EBD09354B3E2A52973E75E54CB42F6B0F5C10AE8A8E6
-EB93124C15AD140C971D2E2D9C2B5275F93BA3B01556B72B7630CBE7AAF3D997
-E82D11875B82071FE770B13C232388C07F2E6F7E9C6930F4D7379BF74FC3436C
-D301123050BECE20F2BF95FAD2E57FC50203EE6EC6D9420BF8C218D3D2F8B236
-6572EB16DE1CB2AF00CF19C56BFD8D333FE1DA4494933BAD214701819B0C2ACE
-FD02F0682306A6B0039002B0B7095D992A30CB675CDA3D4B196C447F102DB4B2
-FCE3AAF81D94B2FA40B31EAC2BEC613654B1D885EA590F675E6106BFD0575B1B
-4AA50D0583A2BA2F79AFC2EF5640A9EDF12F6BFE45ADBBBA43B773B36DE8DD60
-C4BB8FB6F09A334FD947877A785AFCC4F9D366326F5B609ABF1E0CB8942560D7
-68D0FA410EB83A9BE859840A9E024FDF850DCBF5FA8D649B40505AE64B1BEEA3
-6776EC44EA3298203B09990EAAA5FA937CB648A0377173CAAED6432A38B48DC7
-906B730B6BFEB2B9B166526D1E8D4110C6A2A4CE1ADD2D0C9C179621F7867669
-31D3A28EA97D1281E80B4B6A4F223D1FF77F8960CDB83E5768F3A8FE52120CA6
-15164AA799E18FCBFD91697783BA537FA897D58726F5F3BAC1F0B20B57583374
-35837E9EE8DD0DE39B6CFB69EE47ADEE4624EDF65E43781EDD056024FE108280
-29E5A39815F494C65020B91F68D1187F815ED8A312150B414D9DA84F542E0F15
-32351B82F2322C9200F987E477807E9E4051D4057240E99D42E6852164704F26
-81A939AF1E3BD237C4FA341C702F7AB978F63CBA8DF745DC2C57AD5511D89AE5
-B4A80BFC57B1A5CA1A110D3BD5859EF41959EB364DF07CE50F709B30EA099EB9
-01C010ED4F4DA9AB062BB8E10F515559D2FEEE69C579859E43962AF7640A705B
-2C3086E862AB4297EF9625C58AF049BDC0840F9562D8D8BC686CDECA7D4259C7
-4C86D8C92909BAB7FA09AA2E83B4089B246F8B4AB7A086C5B9943773C496C62E
-9E6344BBD213B44C821CDDA42B1BE933F74BC8FDFD0A85070F50D4881C7E875E
-DD689E97ABBF6AEEA6E8C8BA377BF3E4A8EEBBB1D47FBDAEC3B88462A62CF500
-727EF93FD166092861FB67303490DCC4504B759BE754808BEDD580E6DC38223B
-E02EE2D9BB8F32E2D3386376F8E49A853F7C81650DBD33E23437EC98F4A6F7EC
-12705E52817A7B647F4CDE1B173EC370C78589E329D93C35895CA8B3EA2B945D
-E30630DBCB2B8ACC49846C7835869202FB5231ED9167F307CBA31D2DC0B423D8
-65DE2E24CABD53913C01C388F64BB66976FE3B0B421AAE861E0C0D495D5E0B26
-1D207792F1072BABB49156544C024118BF0D239BCB1AEF8AB7F38EEB34C88CEC
-C7401AA6177E9B7849AAA081334E04A2205077A90C0377A363F22091678371F2
-36A088CF84558630C3F370FE00FE97209AF40D77C6F70B1B4028F1680FF6268D
-EC09B05DB3F8DEE17678CFC46AE78E02DD01454A9A8ABBAE157086DDC92AD22B
-DBE7861A2909232DE46FFDB6FC84989B2B137C564FE84961BCD663B592FF2A85
-A65D7B595113AA7DA8463F852A28233A754591A5F2D7F70649A12EB8CFA35361
-1410C7E2F08EB5353A91CBF2109D6E279758B8E458DC7737369AA35B330A9229
-B73DFB9E1745410440E440DEC966C0B21349149E08D57740773B1F17161217AE
-B0605236A44353081EA2248CBE9E8F4A0CE1499354F6475C10346F337227B8C0
-2474942B49CF891C5D0953B1015203B1BFE0A7528C900968D16A876AFD9BF28F
-43EAD0516A38FE48F7091219A717617CEF422F7E2054F3E40D7D6239F6744E44
-86F62AD7ABB61DB0E75B245B44E7A6FF9D72DAB469A07D8046DAA059CA891766
-1420C7A397CEFC7CBFC41A09C54FEC6E77312347C14CB8D87B313A0E7F2CABEF
-CEAC4B9E15C279A18BABC098027A02EEA025F481769AAC7A89F9F419A9EE5908
-351B0D25A2F9FB805227F0ABC3D4A87C63C59E80B1BF915FBB1E1E164568CCEB
-1EB5B1A19180F370EBF2DD11827844584475357DE9E31A138874E567B8E1DA93
-FC5D6084A3737CA8EE391773F3F91C243AF33013891B4E7DCBA7BBE1E06C5031
-C3C0FD60806B7052C5F7B069BFCF4F879914D9C2827EB53C505D5C738E1564D1
-1FE8A3EFE5B3EDE0B766E816FF02473739FC5BED647CEB758C6D7457ACD5E352
-1C3F13E6F1DBA43FACA8FB3D257B24902EBC64B10C7701AD3850BD845140C3D1
-A6CB630AFD8E81ED647D65D7F51803369D37DA44F36D8AC77976AF53B9C4E56C
-84D5969C27EE9DA518FBBD8430D5769AD02F28B6036D5D8AB73C784734C22D5C
-7200D0A706326DB04C52907DC99648D46F2741B3A9BADAF9040F2CA68642156D
-E597FD6BDBB5658C87501440DA17A44557EDDEF1C576F8FE343A6E2DE27CDB35
-8E62AA7C8367E3E44DA6E435DA063BAC3DE82D73AA2A147CC5A844187D29B83C
-D12D91B9018718B53C9CB11CABDC9F7A8848C19E73E1DA7067632DFED7994B8D
-3A5E1260D0315558BA94389D996A960836FD9C7570F02C453129DA181B2BB9B6
-56BDBA69A47729BB3EE50403667025273C0FA725D6742B32DF5E58BAF48BA6BD
-DB77F2571F3643E792CC757B8F1AABD13B60965B5F1AEFC5108B68126149F4F5
-F54E72341790C7D75372F0550FF3C9FA8844DE0C6E71C261F94C2A763C6853CB
-6179437BFB20949F530804A81C8C71B2E04531E2F3E0C158040763FF38F69682
-F8FE6FC7F914C9BD77FD51B7F533FADAC22C819B6F7E3094BA3B4F96A74E43BF
-240DB5BC95B8577597AB79D6ECCAB0D65EE279F5CB8527B05BB521EF2F7F23C8
-42349BEDFD0E303A7969A9383A6290B9ACFF7C7D402EA8A7C9517F01C28D31A7
-5B705C785F6418B802A18AB458C03291A0751FB55AB25515926778649BF7DC53
-8E94F949469AB3EEC16FCA42F98220A5EAEE73D6E82C71779E8892B2BE652796
-E12C2B6E3D535037013D60F8211EBA7119383CEE9B06981BFB98666749064BEF
-338B4AD1C6300DA217F38EBF093C867A7B019F1C8F4C64226FAEFC38027AC7F3
-A528689C44EC4CC0D0612AEF76650826D2B16F53675A57273A78A911647D112A
-193F579ADA161BB62859141F9893013F55D636A595E532BCA11F26E5846724EE
-E6F3026983BA6E24C1E462CB599D2C6F3E7C0803244D9A773D1DE70325786EF5
-C42D2E9F3DDA5F7108E3C28357AD1F088404AFF56EF5BC9ABC92A32BD46FAD66
-4BF53BD32E3A6781F4DA33E25E0075638D941389DCF2D5F3FA3C9AD7DC26BC19
-28D04510B6DC27C7C6EF0EF6189968C8759920E15F65108B389BAA1D2047B977
-E1818381DF9FC5FC217DBBDCA80BAB7B98E7A00A97AA3BD47EF50ED526FC8583
-1FF5B2B4B470642E3F575F4C0B1FC5EBBDA263F89E6D644E2F56DBC6FB50D23A
-A04A2ED571997F30657BEDF19D268F69D7A624FB11BBE30E94448708D077A238
-CD4543C8E805BC0DE96A0F4E14E721CA75A34DF4F911034DCAF94C190380D55E
-77BBA860C105DCBA06BB201281A02830F8FE7951855ECD7E13A2514B2EC6A93D
-A40D690A17709E21DA5305E3DFFB395708581573005A777EAFA0403B2F6ABC0B
-EAD09C5C3E2B111D8E3687DDA302B8AC5B11341E916A63832439057BC72B2E67
-7BAA5ECF2A8FB4D60751A1F209BA3F80E2BDDD496106EE382F0B704B94A7EB2D
-1659474F5B80774BB710BA2A744794A74061970230B044218212BF7C908A9F5C
-8575922D7E0D13FE10CC1E548C182F402346C6E256C3C77E871703214488172A
-76E46E6B5BF7B7704AA57E3C8CE8EABC9F8BF0A53538F3A09F27ABC005117354
-39F733BCE06C01F617CA9552C01B0ECC3AD05D9C04E67CB7C194007C4C64A460
-726BA5371B9B33A713C6B3D69A6DDA20E104580E1CCF7B0958E5086B31C28AF0
-D645B982521DDF76581C7DE21C7FA385F5A5AE637169427D13300AA66B53DBCC
-4CC79A0320A2C5379B7A9A54AC967163DBFB993753FA7AF4E4F7AB3710BDBF8C
-3F10A9BCC0BB17ADB5C5727895910CD7CA7F4923F00B07FD16318E0A53633A3B
-0501EA6D8851CB557D80120DF270B85DC721881CD897BEB71CD7EEC64CA12990
-E8E580E138EF6F9EE2F8EBD3DDC3C5F63AAF381ECC7350379646788EDDE61725
-C72975D2DBD54F7E7B5B1DCF78969BBCFDF726C8F7CB93F39CA28715C943C782
-5CD1C1DDB42404E24E079ECB45A8C3625039AAE73D365CDE69473537D4E575A1
-1D017E12D1FB54B41D956915EB6315A82EF3CA876200D5CF0973CE5F56649FEB
-F62747208C08C8C61A0AE81FC3A538B16DDB109177C7A686A256CF37D55DBDA7
-8F807AD40060A99A44BEDF27C3B7178199E750C91119A7AF35496F6F1ACBD666
-B5E1C8F49FF59AC5C5648011E2D0F7F85596705D4DF9CA26541624DD059E8E70
-4E74F1743A6C6DFE15BF1FAC3CD9A004F3AD0828489706818A60C1661B9E09D3
-3F18885643D21E8EFFA14F48E22ED8124BFBB4398024C177B02C760A59F7C0CE
-E1B619449022B819131DDCD178F826A0C2E9389C2B8B44B229F954FEB4D5FC0E
-CA84B53501FC1767BEED2381CF24BD89BAC6BFE1868C78416159F6F933E7C828
-DB743BC92B2EC3DC2DBB0E14F569EF1BCFF9182C04627D1E2BD48EF654850CD8
-7151797484EAFF38C38F8577737F5EE125EF08565E4F6E6603CB9CAFA165A355
-4B06608C939495934D515A13D319F3F8C4C1425363C897D025D28BF1A4BFA09E
-0F97561179C2C0F030F0B6A3C8591537506D9FDF232AC0BC848E517E61F2AB95
-88D386584AB5F92CE4C68D1F419A32576D47EA6CEF4B37946B1E3DAB1E67FED4
-A5B70D62A9F69C227C21C8AB490DB86DFB4CA788B6CBFF8F02B920F739B141DE
-1A095167465D82714F492EA9D2B4F7BF14719BAB487EF25F8BD1B377FEC95E66
-F3D7020294E06E743A606D61B27DE20252F211737C4026FF7B9B4945DBFC9809
-8E1594CE15A1D7E5270B7448CDEC0E7D728AF99771E64A43B27A041FCE6B963D
-42B6E1975F5F8F8C26602DC75D04ACF27CB1DA2B0841529E26CE6A1D0E5E9B31
-0C191C39FDB29C4505CAAC095E91619AD29468DE658EFE5D5198FE5EEFB0A2E1
-4D6A7F1BBBBE87D543592D0E658FAD7B5A002D6464C9A413D8952C533DAE8507
-B88888C8BFC31C3F8838653527A3AF640BB9CF67FBB5844FA83E7D9D51D801F5
-62C12CA2D6070801067033521249A56C5B0B77B19811FAD4951E34A6CE5CA1A8
-443E4C5B72CAD2FFE1650FFF90A91EE8D7DD95D77F681C1858857EC9C449AA1B
-C0D7145473917BC9E1D8D6A691C91E1A9DBABCAB74BB080F506E992C1A974E26
-00C556FE22EA28DF85CE94B3898AD28F137ED56D605CE095BAD1AC60BC6B73CF
-85EA4ED98FC0ED5971DC5A75F289698FB94A4FEA6479479FB2A9BFED1859F69D
-1EDF8BEFD567FA71B725B11D55B06CF0E95F817DD67612B41AD48934A4D5ED7B
-D888DD698395041DB1C9290F599BF0ACD24AD9EEE1ABCFEFABFFEEA96A02D292
-C78CBAF56DC3AE9E909A2856E2614E2EB9D4F46289AF8248CACE1CFF69C66F94
-F5B939A523DD14332C225110DA3446A4818FDD67B5D16FDACA990DDE72B9F10B
-F3924237D2B6069030B76DECAFFA70FE97F5C5C684A750AC53EE37B1E27C5910
-48BDAC0DE147D16BEA29E4A67AB88588CD8F3B50C4EA3A18D81778949CB17F14
-E4B19BBB9FE53ED4105C05FC9180CFF9F59F956CA0A6D11230499F04724051CA
-B98968E61ED0DF26ACB0D0EB7EC9BA825547B42F4A439AF0F1B4D4F9F4518ED9
-4A80B709484E08438B6D103CA4F0C7C8CE75889EC2C501A375FD8D91722D5FF8
-195D24FB5D569630D94FDEFA35A8D881FF0271B3D451A884D106735D4A2361A6
-D71626BBDF60991E20045C1B980FDCA1F436C1EC063C9B454E55062FE19F88B3
-C84211C2D38911CCC65C1B10931EBC9D633FF04826D1875DE425E69D60905013
-3280E96B205088FA4C3AA2665B595DC5BE5AFF1C29FE961869F3A03AC93569CF
-A1EF8D26E4FCB55CC541FAD73B55A60A9AFDB07C4F26B7AAD34193D5D3E55B6E
-53B7E8C23EF6AF8D363C59A59C1C5DF268B43E3BDE031C960662E3B308BDE103
-5717C31227ED287DE82B9C1923F0FB2885C2AA2839273128EA545CB9704CC989
-C4B324BB68E070E9F0810137F4B1FDAD4B7E959872BDB8929AE4855EB15D88BF
-F1A10FDD74B735B9EE49465875B67070F6D6CA219A64FA86934A4CB5EDF7073B
-B814B8C9892EF9A90129E3C0D84BC60C0DAED6A7CA8EF9164BAA7B3B11736AF8
-C58302F9578CAF243178E37C0CC8C3C9544AFA68952BF4B02890A0D000645694
-7AEBF900234A5374E199A5D90F10E57A1C123DEA596AC51BFD29DF7433141F90
-E0656BECAFED14399A3CB3A7CC99D5B2A8F88FAF17C9EEE84C08D0EADBC15B41
-7B21B8BF97FE52CEB94EBA37CEEB39EF757F7FC8A76B150796A27C646D5C85DD
-69AFE8AAF7465D0BE73B348CCD8E6493AACB6CEA5C15A9636C2DF301E5C7F72C
-B8C6BA861E90D2015817619C9A013CA9E7D22D26C6E8393187F8179E1693EDEA
-F2531A7555FF7BA758D3792108786E9745DC6B235D02AEC8A65A45CD310169BB
-F8AE3BA1C8A88A4C2A8C2C730F428FDDE333C75558417E41F95D6DC547E0AE93
-134F547C8F7BCA1D2FF766A9E2A2C799C529348871F5A56D5B8ADEA3B2A11DF0
-545A0A5930AC1EB9B33D296DB9F1E8B815B741D855622350EC35DA65E002610F
-4EBA010D0E018E168377533CC24CF7F4B79C90FD7C4AFAD40756621200E45012
-6C65F1359854128910451346DB93A34374EBE00140D3BB639CC14901E7C448EA
-B7C6F6D76DD96CDB8910BC20869B7E235BEA990DC962554C1D92EC9625813BAC
-252E58DF9D422C9C3645A999A3F25B5ECBE2B43926E2E9951E47DDC1E302FAC5
-921AF039D110CAB81962ED99254457E99A142A2F3230492827806417B1480691
-BE5511A7C1FAEC3B11745B30A10B8DDBFCBAC3B3B8122115F3E869C36AF8584C
-ACCD78A3B88E09C7AC348187D3D9B650827FACB330B2492DA961EAF8CBBE87C6
-8ADD19B167EBE1A73EEFD7CC9239DBE4E8438A4A16A28F97A1C6CEB14F543C23
-238478AC9630CDC4CD3A01C8DF7E06C8B8F033A32D2B4BF1C23CAA5366367DDC
-D3CA457D69489D0C84E56D50796B28F8BD089108F4D8C7FF554CC68309055B12
-9F910D46D48AFF711073F5453D8DE7A781FD9DF4CF4B28799093DD8FC2055BCE
-E8129ED81391F18F26EED523B9BCC59E941DDED79B23E74FC37BFAE9724A9E24
-5304601310BE6FF3B480C7BA9E0B72E4C6FC8BE2A0A9407109E1770ABC56FBC0
-A8A44AC1496D3F41A74B8AB00435E679E7B107C133F3669697E8341B70DEDED3
-48D6BCDD9BF9D336F25E5739A9CB1420D6F1813D1282C0E0EFBFD8DDE2C66089
-8B82A466300D6356A3257222AD8B28F8185085218997DFE0FE1A1CE1AF554B98
-A1699E9068CB49374FDEFFA433B638B71284FAA1211B65898C3C056802FD3AD2
-3AA4F680922D437146E4F7DEC9CB8ABF1A8EBFCCFB7DC9B3BCE38C8C4F2A578F
-51B3AA15BD2BA58496CF4BF26DB0DE0CE1214674239166AAA4A25606920B81D2
-A0AD21E24B3AC6A74368F9E7F116BBA02DD2AECEC99F41BC3D955D43C2E22F2C
-7C81B1EB554351D47461805FEEF5CB89426AD58246617F6E5135F7F735822D2A
-8A41C2A685086F145175154762EB694EF1A877670A51C4A86139E64063A80933
-61B9C6111F450BE26BB644316FE30986368945EFA43F6BD4BE3840F578C6B7E5
-64E8BB87AF2A7E2F4A8B1AA257C2DEB9C8BDA8A5274E5076756B3E942A44F1BA
-D26498BF571F450D904733A0F796238403E5A781E640330D70AD296F6D74B679
-B0B1168B656E9B28E4BC7026FD15197875D89A72696FD7B20A3EE4ECA24B78B6
-6391F8DE690ED48966603F2186424B17A28CD3B64BE1E3768D8AE01954A4DC91
-CDD6F3A30D3C4EB5F9C2CE00A5A64086FFE87EBD9B4ED432FE59DDBA942F72B0
-F6B3C8CA4CCFA5DD2BB195FBE297F6E65CF6C06E9D4475EA2C41D61D39F0B25B
-889E1EF856FF0817142ABA12DE2C80A2FBE0C0D98A60952D93E3AB87C644D4AA
-B7CD2011876AD53DE27BB957F69F4C4E48B292D916CEE8BDCF3AA2FF9C72E580
-EB5482E26EB7719FC7BEBAEA7102D55048289FBEF5C5829D96A437F4F7CA57CF
-9FDE380071F7859DC68EFD00288063EBAC1112227AF649694E3D2D63B6AFDD3C
-7702EEE2F4ED8D760D2023EE1193D3266AD408AB8A3FFBBF6FB9FB1E8E849F75
-D79AA064A146C42EBEC6B1F5B77A02D9C92DFE729DB8F03C6E67E9587346ADCE
-213F08F02AE6C6D2340E8F041B212A760F0EB6D4C4F7AD11C0C7D003C384E9EC
-8009BBF3B5351BAC77CBB2DEC5547D9C9F2ECFEBCAB4D48B5985E891E51C7BFA
-0A02C7B166565EE79D8D5BDCA41C79C69399102BAB4561B1171CA99A57550363
-3231BB3E3F48BEAE734E65310AFB89A170D7D2C23690D07050E6246647B2A3C5
-BF170818138683EA1B4DEA8C2F018D0FD5778BEA72C72E6CDA1458BC8D1E553D
-E61050AA240D0677D9DA9D9C22810CBC6C0E441C02B27BEF9BB48027E07FC495
-9E83F67BE50872095AD837B6BF75C0B5669091CD4923EE8929877CD0BBC624F9
-17B90C8D5FCE286F68DE2FC1508373EE9F9FA6F5A3978C75F52DDC397E368A0B
-57F5B40322053BBAFE6C7F8F293E0E3BACFE054A8AA7DCC3FF253F58C75B9D12
-4669407237089506FE8CC6A24A1025C8B4673B48FF3174C042C4D66BE2AC584F
-6A346027B020024CB9816965E99F62488D47EF144740C30CDDD2562F6BAC56EE
-04AE0AA4421F68C2525130D92002CE82F361624166C24F7C2B11C69310B93719
-0947BA4E74BA25398727049E1E8C94669B709718B2BA25D889BA48D66B0A9EF9
-173C6CF93116BC0DCE2DD62D2A936341BA360D901BF23D9A6579977464D12A3E
-14A083FB37A4049BDC5F4D9E8D49D05FC4213B01CFB0231D2B03F552F366846B
-7AB75D68EB74D57CA505C571AE2086BBB8072B00881A57AEBE38304FD73F20D1
-B3A3F4DBA7CD736A475A04B7785C64F8802DD8483C75E50F385FE63D063E7ADB
-0FC45DC313B0585C605D1529D226FE08FF7ACA26E0CB2C1B23444E976107731F
-1795EE18D69C11B9969542AA52BF0D3C4D00862494DF946B74718DB8FC586DAF
-64BAE620E3C1512720B0ACB343DA448A0419975CD986B40D91192158129232C5
-85E18BBA914D219AE5979CF98BC9A4006687095BB53215DEE575D4FF7FDFE94A
-25A05F1CCE048E2F7A801C7AFACD586C218C1A04B43F167EEA5D6A4EC9DB4FB8
-C2E56225709D9AF95C88DFFF3B7EB9C337069278D51F0824C96DF582C630BEE2
-C4DFA3E9C9CE76D1B52A23CBAAC840EEC8B3786D45834D55942B46B6B4C612AF
-BFB077F21E0F7F0EC6436BDF1704EAC52789C75F7900EB441EF83E37C780A699
-2E3B2F5222D7FC4440FFBD93A01205FC7E64CBE9849BD01FD4448B343FEA4101
-9FFF4E1527F81F4DF3FEE2F42953C4BD655A50BDC6EFC02E25A5D8695544E166
-7ECC195622F1911EE8D637DCEFD8686B01A130671BA5597768246CEEDB1DC252
-214E01AB3AF7AB7E3D766C1FF37CFEFC2FBD4448DE566042D46B3F2A0CD85D27
-52F4CBBF632139E86B8A2669321B4488AEE0E3EE016440B026BA4F3CDB798BF5
-1E026DE9653F2851D1B095C7272112CC642066872578C2063921B1F1DC1DC37E
-6FCA614E9EDC7EFBCADDF112E3127B753D0DBA1F920964D69C779343ABB1B56C
-EEF95475F7CCE12C08A5AC0502C65284DD6F34C8FC31E6D696D9B1075B6CA4E6
-8857AE5D9267CF640DBEB733B3FA1DF1EE67D578445DA58492A8BC190AE91CAE
-DFE1F1C833312BD85578E1D63F8E593432BE3D4A9307127750DD9F9509660664
-92F85F9C97860433F1190C2448AAEE97CEFD9E048681D41D17F5CD3B8C6C3AC9
-E7D46179623C806085BB5D23E6ED26B2D900515216EFC224A9F25660536467B8
-B47665F6514284E567397A7AC78784A8CF47B61DDC9A66B74C04FADC5074B8C0
-476EAE541AB9F94E990FFC31CD94CAA9E93966096383C1951B00C4E79B51A728
-7526A4FD3A5F6E9D673555CD7142C94EDE73E8A3295341698D777405898E3B4A
-E149CB4E9EF567CC18C35C3BA9354CDE55382A6569A8D0B2B7453E5008347B32
-8B5745431E577B3525D343EEE8C0CE5CBE1CC6D3FD13AE8C5C9F672B10451183
-3BDB33698C0D220902195138EF44A545EA6092A79C9F4AF24D73B735E3733FE6
-67E47D76CE584299B16295BE997949021F949E035F49593BC128DFA89182F89B
-2FC9EDE36D2010B1BA62A6D900B00C4524AC6981F0DDEE41043ED7500F574409
-C275BD142BE36AD2F5B08121EB0EFD58E8EDF388CEE211D4FC3C2D04D09E8757
-17CF2869D202B2302BF7F5741F4DF47C1D76962A3DE9E718ACF684751BD968F4
-6B3488D623E734451674276CE47A465AE3F50B50A938C17DAEDBD7E40737FC3D
-35A709ED283B930E0381A174F3804E78BDF8B8761BC37179A96FA636127145B8
-639577E80613C9A547AA8C3441C85E8408C0C4C1A5143A3179F9366DECA49F47
-324BCB48FFBF44DC15A98DF0A4F9331BCD908E5D516881A82ADA22B906A85015
-6643813BFBBFBD2790451F64AF61E0252CA23D2C44BB92D546B50DF7C2F5F3B9
-560117B9EC0D5DEC65A4404FD7CAB019E50B6C468DA7B5D2239F298DB98C83EC
-8611CDF1D5207EE2F8F817958D2ECDC5557BA2D8023B69FE98BF4ADEBA5610DD
-F12B997F1D998441952BD2EB089AF2C6CC99FAD2E7E9AF14648BF99A09355470
-F32C0A511E8A02FE7E24F7E535020C6FA0FC4D9015532467666B0192BAE64768
-756C8AC401A71864A830359DEAC2919113979FE4DA48292EFC5DDD97A53377ED
-CB29E122DACB9C126F687AD2684F4EF885727C84F09CA8C579D48ADEF1F47859
-DA6848081327E0316788D90F3F59452FC9EBDA175845FF0FD6178A0582E20436
-4BCE9A140877B4DE31EC9006341568BDCCC9DF9DDA0B086DCF1D5A8BCE4060B4
-1F13F5A274242B4A0990BE59BC8DD36A2AC264258E19CFDC1AA63432D07E9DFD
-C35528A40580887195D79101345AEBBD0041A765274D09780B2BE95BD42CD1E6
-A5B490374097FA0E5B6F196A3C47C18E8499717C07A36BF3DEC7064845253515
-E0299143BEED08AE775CADA4F8ACEB96D70F08779BEBF179B2BFB0DCB0F1C126
-35B6BAB5C1F755CC9C40D5506135F11A22F802A9F3C79342B6FB9522729E681C
-C4A93373F8E6DB2CABFA5B7CAB4C243C975EFF5C5D634D4D311EEFADBF115E41
-1C3EA696F82803A071B80E18BE67F7828DB353FDE5B51073E86E68486CDCE01F
-5D79F3E3DB087505FCEF1F9B01908F1D9FE1EBEB25B6DDB40C119D5B28DECDDF
-0F579BBDE6CA59B903368E3460730A756FBEBA62903512DEFDA5CE765C479DC4
-5658ED736D9EEE0CCA46CD2676C475FD3F8E2BFEEF43E7B959F19468FDEDAB2E
-BDFF5ACA6119413724BA04E9B006C4AC43CF2A16FFDD90A1E46F52C661328295
-B245F8
+2CD7C7AD6BFEEAFE31C8A721C2D46AA00C10681BA9970D09F1E10DDC250E2AC3
+9A160EC8C9654FCEB36AC2B586E978D54744FC8A0E963D8EF6E228ADD22D093B
+B889C940206F504F14DD921D909BE06EC9BACBC23EB9E9D137FBC983570FFD2E
+CC5D2EB5D2A4A8604A4AD418B800EDC6B89809E00091A2315EA8C071AB631CCD
+04C3EA77541646B7F9D70B7EA564D92A65C4DED8966517660EFB9F77E172CD8F
+1B5FA83270898C3709DE964B0C4A899418435F92C13E94F5C1C5B9D7DF3E8793
+5F9E83CE1430E3EF275C26835080FD2AC78DE88BF65298A8EB4181F215181356
+A09245577F997AB5F23F31DB7E081C7385F461B083E96E3F08890BCEFBFBB6FC
+E597C3F22E0F0F7B6A93C55879A8EA022411E0C1864E987D2F00CE0427E4E8DE
+D92F9621E3F7751A3CE5CF1EC306A78C0D1CC6781A016A285C0D195E17B59A63
+C593D2DC78B6071636FFBF968B8E7970871E4B60DF79B9BF341528C4F0C5008F
+191FABC891AD46A68212B20FCC87E25AE386DFA935CC1563EA96F1339B6CC859
+CEA88CCE5DD0993F19E3902D9683ADA47980535FB5597CF57C046C48E0D0140A
+C40AF806F16E94FA0C046C0F32AB5BE121A7157A42654E7C1FCBA31379FDA9F7
+BFA8A0D0384D3B29B9DEA1500AFBE314EF78B201E5F679AA38F12A87D1E1512F
+F71D12EF75F3DC48BD8BA01A6D091F0C5B2B961F4371E588F79C825EBC124C1C
+E334BD4714EDEBB709068CE0669738B49AF675692317C3E530C6AE57CA21B59A
+0B542AC77FF404DEEF116796DFAF46DD8C9290CDCA4A16FFE88A0D60ACD6CB47
+440014F30DA7C27C199D99A1E6D89D0A0C31CD1AD4891668DFF5FFFAE992F10E
+C7B88872E9AC808E0663929D199AB424136E03E284D8F44DF9235246B9D22C9D
+79BBFCC936171A58B943DF0EA5ADFE2818992B46DF97AE05915E078FD6AAF8B7
+1047AD85A1CB13CAF70D095264B8AF9A3FFE6A603B10EFC6A20DD56A9947DC94
+06DE0A6AC5B655C71870FA1BA99322E51D46A52D3E7AEF8189C9F1DE58AC9833
+7B325CC59375D0F61488AD740909A855DC069F260A465080F5570CE7D41CBADA
+47C1AB404D32CBE9E1B8220A27C8003ADE08A63AB714709CE4312179218E4924
+6CDEBDCAE80C39AC4063789B6A407EA9C19D12688DF86B62D63BC05E9D65ACD6
+CD5DBF04B896DA28B466D584426F531F4A3F9C4A717A0C5ED8C8CB4191E950DB
+CCD311A20B14B417714501AEB2F6F8510242AF91BEDB6D70B1A52B91FB3BBC8F
+A8F9731E745F2BA8ED8B00CFD8A93B2BB05DC2DFFB5EF265CAE08E9B046C3F0D
+9DD51BECA540149E202F9042A94113745077BCC293DDF27CEB36D7B0C78E1B9C
+0308C3A413492F0D59409D923BB699CC6F59285CBF31CF7F1B464AF4BC054880
+B279621391D022E71427F275BF550881FEFF31BA2071293421FF99BCAC2D5483
+B7E56EDB7929BFF410A35BC193DEB96C4A1894D3D262DDCE224ADC5C6E85178B
+40FE0E15AD22D7B2F6D066B0DB42E32B026967088FC62BF250842B195D82AB30
+4A5263BEC475A33ADE6EF9B4205BC44543AE6912F1B9BB3D694AF8E9CFA440C2
+E2CA5DD42B637763D9C96DA8DCE38246532ACA6AC4BD7B8F2D348A0A4BBFFCA3
+4CF17A22BF7AF3BC490D254639584011D9D515EEBB719246499AA89CCFBAF34C
+77541F2112ABE03FF03C5C8B2BB07DDA99390C222C7CBC96AAAFAB4EE6391224
+6BF97923CCA98DDAF09E5E01C94798C4AE609E954BF1E40330D66423C3CF96A8
+F6879E2135374C80689F757F71375E333A3582C2886F0615F2379DB47721F6B4
+04385DAC971DE716D5AA2CA014EAE9FD0859A89CC62667BD404A071154F7015C
+4E1C734081F61F33176F8805AEA5A95E427712789EF20881BAC36C6190971AFD
+B876670811FEB1DBC25014AA98D3D0D9A29CA7D853C8118DDE2DC2402DC99211
+438F8A380EF1BD24B442988AE5DD9FE3A87B54BB834F2AB8F69241E7A10559EE
+9E1F3DD7597A041F96313568639B2BB50A76FE62D7714AB955DA07C374F642E5
+2060C46160DE1F11ED73A837DEB4EF5FEF9BA654837203FE8BCEAC3F500A0957
+9E673A257569C4D4E6B00BF84FBE1A8C9A566A77B3693FD20159F95F66AF9559
+A80D47C776CD363E299BEEE2D5BB9B10B58B1AF2A76242D59997773834D8945E
+F42FBB1E75B90B6BDE5E4DB2E2FE96BB5B8E485E42682E9F4ECF97D61D441707
+9D2DCF09A0E67F4027A9D1072FA8934106E9D7156F7333342BC640D6094EC706
+5BED449D636E42046EEF2AE810351BF1E38581FC71D1BE17BA690B2567F52A39
+1205F2704B712B22C4AA4684CB74785537AE120F66EE7FBB73A8C475477E1E83
+8D6CE79D788B1AE7A159013A2E070123EBDA58BE4DFC8BB39C3D561E2A2917CF
+1B3F64217ED680EAF63F04F9415D7F9CB6A5D3E0BC2A6EA4165E69CD8F93727A
+4F4E9EDA653BCA0422BFECC33066DFDF3E4AFB32361ACA3A0C339E1B4B1F99EE
+EF4C3C3ED1FC3E7078F7FE282F0F6793A4C18A484F1062F780D2947F2AFF2E84
+182DCBFBE1BA25E8346045859715EA2437263F6CE83BE0B858CEE6A5CAD60BBB
+45723E3858702B52B9AC50EA918DACB15EC541ACDF19782024143AE9ADC39A0C
+AF0B2E4FCD4E97EB36923F31341B9D72B917711F55F4ABE40E6B5F732D46C76F
+02BF82C68500194FF7CDEE3CAFE3316C4643295F769C4BD964C3BD4196F7DD45
+EA2E80DA6C2B8A23DADADD50BD28E2DD1BE5852CB88CAA6FB71C40F8EECDA3BD
+CE874BAABB668133D5001FA651BE928981AD1A8D95ACDFD83095F12B3E460DF7
+2B68B2C84DB441EB1ABA2DED0E9BF8A04B1572284498AFA3F6DBD1D4DAE8D4EA
+877B0AF0944DCF4B6F6B55ED1D99ECBB2A7393DDB4634FC166A47B4D5236C543
+F066200A255781DC3E2E583A0288C1874BE8C25A7C13214A79DA8062B0274429
+57264A9AD87F246982C80FF9E34473082B8A836A0C83FBB736DA740688432090
+3EC63BE175131C8CC487F76FF44F247B7951454D01876332B4DFC27CCEE5476B
+68B432744A0C3689D1D79F2B876A30975783B96F904B92F39D2D3FAE7ACB1DFE
+A19A42AFE6A2318B0E3542440A40A69FAC261313DAF36C61FBA307C908682BF6
+658BB9FAF140EE91B182D763130FCDF172B811359D669E86C106679FADF3E2C1
+F83685B6CA73CB8E1D58323B6A733EEEBC0323A6F23BE68E5977EB3D881522F2
+0E49440AF248939790089CD9615F24D9370355054A7077585637E6D80E13574E
+B802422BDE06ABFA0D1601D78E215DEBFEA118A5CB82E68C5EA656FE97A5E1AD
+01A8CD577848C5DA4B9D780BD1B0B4362FA271BEA800890613D8247171938596
+CEBD54A77CA281A5326F2E6F6111C5CB507FF35387ED3D870BEE3C9F06E6E756
+7E84D952B39B49905AC2C1BFF606AD3C07E45A768BA1969F865C58F3455FA101
+2657884B120E69D4D515F8BED9D9FBE928CEAC720A707BA004D95434D4236957
+86A7AB03ECCC79A9D33039559291483B27C66EFF11B3540F7A0E8716584BB29C
+EA6259399E5FE1962DCEE55E4AFE699A7BE7E2C5081D6F025F66E4A236E95C01
+9ED2BC2B369D0F7DBDE3F53DEF90FC9F29DDADA413EE3589BA2C9B802F9B5F44
+E00109A44BBAB43AA4E86B63C6E1FE10E8C7049EA6ABAB908C0386FC64BD8C6B
+BD8A089A521EB06ED2F433059D5AF5B4E1E86D6F0ACC65A5AA9665651E82F38F
+10ACD33897B4612A7D0E08C92FB67193C5F16DAE8017F3F246E509422F8AA656
+ED88EAE8608354A2F6334559DE541445AC1EAB60FC9D4A66110AE5DED90584F3
+EE278836F121144C3038D3B47D9751E0E2285085544558F53464BD908A71B94B
+57A71E94C110C8D8DB565A8C6E527BF7E7030848FD2BA4E6748459CB4ED3D0BB
+3017EFB793B2A8627F7AD99A9602161C8FA3B0A8B89334D2082370A87CBBF01C
+5F420760AB1F70F2794B3C98CDB70BCD5F437BF4593B1BCCFCEDA9577FB496F3
+7E86D7D3235A4CCB9D4320925AC726AE1A27113235E24FAD6CF43365609990F0
+466CEE79F0C0EDE02D2102CB024C9DD90E9863AC9F2C8A6E1ED0C4A2193103BD
+C2426B358A2CD7ADC8C1F875D672E220883FFED285666956EC8CCD2F6D5BBDA9
+4907A3E13EC09DA98DEFA48721B1B1E140ABF1CCECC3D17D364D5CE4021B8D28
+546FAEB139027DEF6E4A11312A6357B25B6601E8F6816C413BB16D9CB7535E89
+3CDCFD4A08C51D5310A114E474CF1C48B06C87FBE85E2186D1B8081A3C9BFA67
+6CE5AB3C5ED7539F05344A2A061F5D409EC6D03E5769BC69C6BA042714A6DA0F
+890B03838426C5C69D393469CD8FC4BF4C5D7BAAACF20F905FD7BC3246189A36
+E1EEDEFD3F488362478967755E9C2476A76E8197F91F855586B9D8D8E79FC4F0
+66C4D6E151ACA5B821C74BE4A19E86229BFCB3EEF07A2F6DD59F4CB5511FBA40
+378633B1E5B6040ADCBBBD31C7722A828642A38E80A42A90A1984881D9107671
+91F2A5E50887AA1B0D3E96673A3FB85D73EA75007D7E30D21C54FC8224944F8B
+6FF866AC71499C6F5F38A54EA4269AE591E9BE9543FCD72C49BCDE00A2FDDCDF
+130133FE649CBA9A607428F71FD761EF81046CCA214F7DDCC1A0BE0EFC7B05BE
+85D1DF5606F398DDB0413766DDE50E614EEEE1EF52500129D3C6E25E09B7594D
+E5F86EBEDC9A262FBC012BE5E4044B64E8F86327FB10EE5AF01746A46971BF45
+73A7804D9FBFFC791A2B38674EB34688108D1A05C6A58117CF47CE531FB6B84D
+7419C0C6A3E29C6BFDD122FB1D4675D2510F27032BCBEC6BA2705EBB37367CDB
+40EB8C8ECF19E2B507FA4B64F1C1293578380F289D6F006E78428669BE48730C
+9DFEF090304F4EA254E12F422316BCF1D3BE6FC7DCCF5963A646A909380BC6A2
+32B67F5C312FEA9A1AC7281EFCBDB4D7ED9FACD9616DBC2B14D513BBE956F29D
+191748D03650D722C48A49F12CA6A7C5E211E526AA7071D951511CDA58BD0CD8
+A6F821F4D20C219BE6DCBEC9C04B61CD7EA0BDC7A528FBAF88A5003DEE761F17
+32A465D05343ECCCDBBD9E410084DE2EA145AE58482B5EDEE78A4BECCA5D50E1
+FE61847CD91FCFA32C5D83F97651FBE30DFD72BD9536641298F062669FDD8FF5
+06F837C2927B3DAAA6EC88DDF23FAC5A77A4D79E4D6501288458897E6682666F
+C94EA8ECC173CD268236D759A04337A123A5D499CE0328168B6B13E6470200D0
+725B87023AEEC48256D4ADB2BD7B6C960F2C6BDE3D2DEED6EC5C270CDB33195E
+78CD19CCE6A80C7495628B11355F2E560721C29AF77CC7CB9B2B3EE5DBDE2185
+47ABA4CB28E69F351FCADA2765CB7457DA00A683EB485EACB21A3D72CFE027E7
+3FAFDBA8B5A44F46F817690D484E5F57C00B139B5B8195701CEAAD3E0C4E225F
+369AFB09115B8CFE8B09A31AA43CDA4F6A70C188183A7695DFC0E6FE024DF9A7
+796933FC2F94A70B64576B8DFF20DB12888E0C0E6C69EC10A3787DEAC56DFD0B
+9DE60C1081EC41D49B63C8E93A29657DD944093DC8E43BA31396F7BB08D6A773
+5E6DCF48F5FFB922EF5C084592914AE4D236F9D227CFC55CA687F1FDD8BA31A6
+309110D25EB61F5882A6B3326D3FE04099B986DFD407D75B21DFCEA02551CA95
+2C8A9606039BF8C268CA3F761274457F6E08260529E8EA65B16BC30EFBB1FF0B
+181EEED4230A43529E2D95E7ED03CEE2FEE295B1616E6DA77F50EF6190702BA6
+B0DB00F3AB9ECD4561DDFC45B4FCF78F81AA3132C273F4FAB4839DDE5644DA35
+1504DABE027DE826F331F655E28D7EF3BD8848439F4A265D5F78A20B8E626DF7
+684B174333448C107EB6937F8E9730A86EBC26D86415EB8B2EAE82E384882822
+C03090F25DB59F163596547E62A25B4C5A514447522C9A2DBA21023D31EBB946
+51DD3229B562ED5604E4D85D54D17EFB6A03AB5C59AC2E1FF5FD951BA5F85419
+90550337BC83F44C4C503609AAF3EF76845C50744FD18571900164DE71BD06C4
+CA06177A36EEA8C1BCAA73D5468981227964ADA6C27B06519421D000C0E1E11E
+B210F818665010B3E8DF82277C8B1E6BA61D51A87B0B1175E75A6A88BA55CED8
+C564F583090C12A3CFE29303CABF1E88819F226D8F29DD2C2D999A35C8121ED5
+15F7AE050E5ADFEB0F8A87065A3FED16AF811F7A74B0A9AD18F2F6F5CEC824CD
+FCA9781998B67088F5D6C0203DBD9C43D886844B9C0970DA4BA88799B4ADBE5C
+2E2B7D1EFD3FFD0FD130E544083FDE0E3793A354711F1D6CEFD8ED99CD29A5E2
+32F7B1EB4ABDBD7D86FBDD8B9D22C429F1C50277E859039E8E6D6A6F3EED2CF4
+4BD04AB88B70C071175FC6400304EA0BFBD02FEDA05CBFEC31699A0A244986C4
+C688E733DACD7775386DD2CE86716AFB5EC33EF1AB10E63C85B820044A540703
+9FF2DDA0C9B0A4F90970DCDCF75A022AF83013DE7A3D9E544486225AC1601CA5
+21F356B84BD903067AF45598964A0FFB06DE209D6569D00190C0140B3F2B6D54
+C9172B77422B25001D50BDC26DB1705CC2A2C09C582E1945BF8D20208F505FDE
+DBAB67848B8F29300EACBE3F393B2648EDE71F5B3ED721F81807B7624A7D3B75
+C458A8211FC0CBB1D2125082EB9E0A37E468F2FFD1866862D3C3A2CC9D8FB07B
+0B457AE1A3CC54474A1BCC93CD21BDAC95A36239DE043A431839263509389733
+79249412851DFCFAE1B2163738CA5DC64AE5322FECD2F1FF852554292DFEF94F
+BE8ED5A3E72E7F8DBC91EB990D3C055E4C91990D389C511747D8D7F7BC33B34B
+F3EB81905DAD0E88A31C0ABB4CAE612F7911E9D338F3F5498AA389C20F30EB11
+6953F4AF288850CB7425349719DEF18A290CF40B27D625207FAD6557F80898C2
+EC247A4FBCD884C459DBA0D3A083EFF8D0A133C0597CE5B2B803933530EE1C10
+A88C85564AD8F7CF7BE09AA5406917E26937AADF884723F1BCC3D5B4171074B0
+B21AE144538B141791B901E3A12E7B4C26CE3ADC9E2A80305F6B983F8B3262B7
+23981BF5DB92443B3CC866C0D17136D3C045036F2C7F39C33536E4A09F76700A
+E1CC6880D251EA090FB88F555FCF201D4707CC95169F6AB9878A2D342DE5BB38
+82A2F02186490DC055DF783118EE78C1E02685E4F05A0616CCEC0DFAA9ED09EB
+847E2F9911D2F5276538A481A17A8E9B2A25D63242918A78F920660B2D77B7C4
+12DF7F369BC3DB114A7E9CEC7993598FD71CFB92DFFD8359E22AE1B1B124A856
+EC29D9F05A660506D49167544588FA9BD8BF8D23D9CF6559180C532680B1CAF1
+9B776E24F1F8DAC95083EEF00EBBD775619173F7CF4139C45804C23C0C736414
+303C465159DAF5CB5153D9A6638C8E31CDAD0907B6E4BB41555F8E0FB5B799CF
+BC46A80CD1D14ADCC7EF0D2E16A955CEAAAA7554C70D27328B4DDE0EB50DD8CF
+62E2A4A40740F5A13DFF032AC5FAB6EB0AC3F6AAFC32F0AC635323538E91D8C3
+FE69E72F66ACA72F289FE2A94B699958F5123BB7864AE46E1C2BDEA67946BE1B
+2A65EF0D2373B40FBD107E619AE03B2FBC3CD29FF68BD79F86CC6CEF3C354C3B
+08825FC1A96E2A993EB37F8B2DF2FBCF2CCCFB032351AEEAF24950E8F428FC67
+A6F668B6F8956411E70AA3224B7E24FC18F0E9251DC4E7FBF2FAF57125576412
+33BF3AC7B1EE19C164525EC17483F68ED41CBC6182D882799DBEBF250E9334B9
+1E201D5D08BAF01FAEA5389AB934479A29BCB99F3CF8D9FB5022454C6A9CBBF2
+05EC3BC73DB4AFC552B8148F42774AF8392C5CE42EEB1780E003F7F5D61265E5
+EB18F7B139EDA4169FD97593C10CCCADE160437ACCD537FAE3BD1C0C10A6663E
+ACA01304DB5EDBB612BF5DD24CCF6D1362278B3BFEFEA590B255D2DF95AE4193
+3F33C268C47B75B9D008B9F5E17E7D13EE72C1030A05AF676FE29368D4847055
+B8EB37074295EE705B9EE6229155E578BEB24A8E0106D20F475AC4B6CED93D40
+CFCBD74C0551A1F532F2E19923248030F3FE1A717B9A9AFD494918300A396DE4
+3A2544B6C6A8D8FF2E28B4711AB72D25791B8E8FBC57A698AF3CC9F17B18F07F
+A86CF80D0F4ECD065A579743FD7974877360CD910B1E7BD3099B4036D6FD0BC3
+A80C96598B59B8AAE0BE7578B7A68258A1F6EEDB774FBA7FCB4952F90705DD5D
+F8A0E1B6FCC7220DBEE1582A9168571A80D95C939DE1A3A404DB4328E107C672
+AE8122A745C918280472EF626D7137AC72E88A296174E5CAC33E59C955A55A2B
+49970C8D84558F3CD22F53942959A830FF71FDAB7A73E0F64210CE46818A781B
+071FF5CDBE768ECD3D6D1BD52856C236284B4C0CF40E377C694D74D165A61DB3
+192E4D4C197EBEFCBAD48CCAEB50AC8A4D52C2C1E7A4930768FE6AFE6D286F70
+BFAAC5295CA89B6329FAF994B8013868A7E9F5C6D6C71D667950996C2DED0B80
+7F0A8F1A525397D9A41AA2934D3B8C2441C010888154A14499DC6D3A0F0C247F
+37D8FB45847AA94F37C8CB299D24F608F01EFF597BC9026724E200BC00629354
+21B2736A497796630DE340AE317E2B04F20482EA0206D01F90A83B7A56E29474
+5F0196DF23D2E8219E681908BD6D2074794C620B2330FD5B0E6AFAB092FAFA45
+BB2ED8599166A24DB77ADC449699547DA0B6683BC153135FFE59D9E650E78518
+CEB174C35115A94B8689B16AEA36D25A49B694D5B72DA72568D8FB2E10878B93
+88D754D6EF8E035ABC26382C2FA13A75040A1B332C050044A81441238859D8A6
+0A33E2DB068D8F32D3047EE64E31A6E79D9BC344A8B498823519372F5D9E3310
+7809F989C979BE5ED9F8E2CA6E0FB8C68B39BF957C8E425860D6B1E75DCA7867
+E044250791F3757D649BA897246E233A8D7B686F137EEA37251001F008DE01DF
+BCD2443819603C03EA1301E4D809B32DCD2F525EBB839469D0F764FC978D82ED
+AE597DF1EB131486B00F65BCC29396FDB8F75728AB03E71911C74E5DA6DD6E59
+8C4B1F45F77854B200DFDB656898CEDE1B7DB619B9BD75B90C075FF88E1BD95B
+5314EF039611A4A793C31FF4F2FDE7FE3F9A51C6DA4080A7BC7DBB1D7723488C
+E668E78E025B4D2F82C5E663B02C5024CC35459FFCFA5C5BE9C9BAC09020C603
+AB653316994DE4EBAE83A2BD866D392B6D46D83B9E7E0DC2AB098F7C86431D31
+D07C1F41955C777C635B022CE5F2F503D0D812B3318E9A792E42CE4926661CD2
+950F1A3855D694B2B061ED5CC64E6EAEFA1081A5CC322FFAC259C01D272C8A30
+4416D3B622EAD1D1B2B6BF7EBD395AE45922CF3956D9E9BB557E2783F5C8544D
+C3509410DCD994247B50DE3626C33650F9F76334CBDDE3E90E9D9618ED5A78F3
+FF7A6D01071AB4BA91FB47BFCBB3B8E54528E6540D75BD5EB6A4E301C2B49330
+B6866A4BD4AB5CDCD23A8BC873D212C2A6592D62EB573140A6B79EF9ADE701F9
+9D2F8A7205A36AFD20572C1A5C5F55FB8FEE492D999FDE3C641BD8FE201F7975
+2D9EA9C65979BB45D2EB33F5C3A85573834C75DF4556C6254A90C7499F684D22
+7B434CFAAF6C118DAE59E0C79F327F4D8D260D9A633DA0B02079947316C84D88
+05975C05A1734C88FB0A48BB85F87560F1BB214259EE46F5F3406E418B6EE281
+0F93F058DAD0F43B7B0EE4F7C809FFC30366560E98DDC13D82DFD58C0F8BE287
+374BD8655C4691E39F4660F5273E5A545A10BC582D0592CE2DF452D9A8731351
+54B163AF681FB97288647058DF71A290D1EA6DE31E60A4CB7DB4AD2E2928D738
+3FA9E4801278B8D78664E5E3F7691783F71AB1CB2053567466D21CDADAF4F97D
+4DCCE8DC1CDE465AF48A37E21DDF443906F91731614029D6F3B8ED69A7F77800
+F3C6ECDF7BDCD03276CC54E1237F47EAC383742E5DCE2346A715A8CA9A5BC487
+0A996E7EF0F44F349B581C7E537A3968492B28CBDBEA4CAE3E6E34550AB706BC
+220354C6CC45F3EC16CC1ACDEB8FBB25873CB5DEAF3072312669518AC3BCF57C
+500269761D11BAA25B73C1B4B0F44B1F085BDBC1F849225A14C30A9FD245E72F
+DDE99E0E31B57C3C9F3170D0CD7C5FD0CEB32A379F0AA9F32CA92BAFA82273BD
+FC8FAFDC0CBA3EB8A074F78A505A52619D5546E5FFD31640D1E14810172184B2
+2D278B5BE71360A739C949C3D4C46DB023040A993519A8F24335BA854460F51E
+777771BB912A3900BBAA2258D178BB9552FE18E4AE9A453D89A4133B5EAB1061
+6182B3C80A4CA11A7B706E44DE5DEABE7D80DEDBEDDCB304C548BFCB1A0C17F8
+06899F6C5ABC9DE62210C390C33FE92665477562A97AA07D16173CFFEC45736D
+C6451F1C6B64AEC235A0139CC8A4DC96847470CDF08CE08D0A58583884C7A35D
+DBADB9DB07C17BE52B1259DF1841CAC042F9FACCD3590104B619151B34EE822F
+B4B753A6A8198B0A2D6EE580F8C4A21FDF415FEADBE7AAE5C59508523E9BAB02
+3F49DB2E19E7DCD504944FB0FE660626A1CE5554728C1ECD6B2AEA7FE6C512DB
+E056AF6C1226A25547A8CEDE7C961B158365C99E574A0D6B81B2356364A61664
+B92D006607E6167A4002BBDF9951E8251142C4DFE4924E227CDCA028F6A42C33
+4011F0CC83B59E5852CEEDC6CAF1A94ABFF15122A698E5FB6247DA6AC6A8EC32
+000557DEC06FE0135DBC6B56CDCE6EA59764AF9E7E5AB79CC1D71ABAB2BF1916
+843AE75A64C177ECF1BFD83F713CFFB6278918624FAA4BF2B5FCA38C634E550F
+FA25E51768F931AB7D2C2E3000FCBBB1B1E22E7381A53C358AB4AD42EE7BC991
+913C633CA0EF25B9230CA9681B91D22880BCF44D4FEBF6F132FE120EBF104761
+6FDAFE8F33FCD2248B12B8BE283B37089B0383745324EE468DFBB3926A30F4F7
+6AC4B9EAF19D663BF1DE3B085ED88D9CFBFB36C2C53F12BB1FC55E3234A68C3E
+D6EBA530B8D23B99D098521DD3F1005D4F5E4E333E50C5C9F607D551019B0110
+2B8A931F27824ABF72C26615FB82859E6D527694EB41A17F6B08C9BB329AB6DA
+16D9CDBB7F00A0286EE119E7AC89A959EB16D9D06D6149D0C073D771B67E7BB8
+CBC6A3FD291BB1EBDC68428214BB371996544FF8A4F38A672AF2DA2F820437B5
+AEFE65350F6327F1772C9C9632A517A0EF4CB5C7ED1159887BC65C4F1311D1F6
+156964E2AF01F91CB4DF824AB0B3409908611FDD799A12C51B705E6DAD1BA8CA
+F0066A66C20A8871EFAFB0BCA7A22DFEDD54654E0BE31767BAF9CF894B00B435
+C9FA8F63F32FC2F23C80640C0CAA01BF46FADBD147DFCB10B988ABA1F2169AE0
+65E5779FD0FABE6A8C60F166CC1C8EE6EB1532A8491FBF84A824125B436E455B
+01C64FB89ED5AA77CE3148C135D76837CA45E7EA92EC857AC3A5B723DD7DC830
+CF1458512499217162FAF4EDCA0195A42EE1721482E56028B4895ABFFECE721F
+CA5FC8BE5DB4B7C6D026BCAA58AD7B9BEC349E395E16B897AD1404C27F0FDC9B
+5F706354C2E2F135E3A20B450D6788FB9AAAFDE95813AA09AFE116EAA7B9C76C
+F3D61AEBFEADB20580E3906E72F76CAD27D854381A10F56FDFA77EA5C8B15457
+E6278FA20742413B0BC95C1AF12E948905E2D8501E81BCF4095EDF9B941E1AC5
+E2B9EF45599AD38DCBBFCAD80405659D828DAC269825271518AE3721585DB57C
+520FAC927E8440B8306FDF0D2149B2CEAA73839A16681C6DDB6E596446B01BD3
+DF66AF8D7B391472DFE40B13BCD9C03A46B65814E06C2332404C4F1CA8D0EDD7
+37ACE6CD13620B84A3A80A122620E57E9BD33FAC8F2D9569A5AD18246A720B0E
+4EAEB68D73EEE587ABDF93F8684157595D5299CDCA11A72203B664C505EC8B17
+49D76E555CE3DC2DAD377D04A854B7A6066E5824CABD48C2F5585C4187AA81C5
+BA883542E97C87339B34823A5E32C83E1344D6D59AB2C64C6AFCFEC6767946FE
+001B6501171FB0AFD07D20840447E9F692A88C8162DD8E753D1D984B1893C019
+691930563E2935E4AB3DFD1437F4A2741636B5CC2AAAC5AE74E5181D28F643F6
+9DD08F5A28921CB8384E43532B16A9AA64A4537FFD1ABAB417CCEF27F373B58B
+2D0C78D40078B03AC3DCEB3922CBA12BC4CCCB6F3972AF9C16522E6B05D68B3F
+FFCADA33B2A7CF4445D6DC0E94BB089CBEC2A1603BC6F704C9107ACF0FFE1C07
+319DB0DABB3F3317E0CA977E70FE310BBBCA339ADE39E17A0E0644A9155ACFF1
+4E1C8FB9EE6E917E0830CD37498E3DFF20604766D25925576B599ED7997F272D
+11F53CE4000FFB0E89506A2E7B3CD818309F586966AB21C6226E70297FD093A2
+0A0DE3BEA5A2841C59DD1A48555235CA8B2654413E13EFCEC9C3D1ADB555EB22
+BD634C01514D76EEC3181A14C5264F5DD143A21D3626CB611F9F90D7BC05AEEE
+9F947743CA9429F2BBF30176821365D15C419B27A085DB7CE7BDD6F28ED3BD68
+6E91938951303521F260F7C1636A39726E03C0DF3A08942DEB17280EAF7AA849
+66F95D56116501CDA299E005A7D303BA09E9033CF45C0469593C7AFA2A5C9F03
+28D64726083EBFCF05DDE3564BB12AC5C90FB0786153D10DDDBBD41269FF9537
+836DF30F71A587A3935D91E24EB56403A2A4F5C6E995A89AAB2A42EDF8586C81
+52BD65DD33C8B10AB18FA9F93895FAA1639A62D553FDE5F976CBDB5059F099E5
+91BB6C1489F9C66E2FB7ABCC579FEF05E75083FB02D8CD2E4C37D438CB64B920
+81DD594F55047309C66258BEB1108B4A52A4AC52384E2861DAFD6DC2B0A88F6F
+0DAEE75B35222DEDCE1490BC77F808D56985E390AC2EADE948B377E051B2CCB4
+2CE6D1A8B6C56DFDE8874773C8D9E8EB0BC66E3272E7970621DD41103CC78165
+CE745AE462BE3CE12765A2353D89AD2B2C74658C5BF922A3A2E4E5FA79111525
+01A082205FC54279ED5F656FD80EA1E3A988E7EC83CE2439D8E9D4EA2EC6A11F
+DA81B6B259503BB7F66C3373A40AC6474A85B71B79A66BFA105EE8B90B1C204B
+5DC2D4EB387D4A1D36AF0AB4C2B20D6B06206DE70805ABDDCD7F1A9A6C3AA5EF
+1E59AD9703BF74A032B5F458A4B19E296D4770D7315F05877D1D9346DAA742BE
+C941D937156610F1075661F679BD680000E6F210DCBC2508D4EA5484625CFE83
+774073B2BCA4BCB71E64B3755E69BC6E39BF59341D3FC71BF0A97D3F139A9765
+CEB0FA137A1AA226BF329CBF14B1C509EF36D417D4993DF331BCB79F29267291
+D9523735BCFB3837839F26108BF833B1E3E4AF576A2045289860E7ADB936DDCF
+818CB035558E4C444D06C74D5865768C9CB901EFE53A92CD2EBAEC0A8EB15EE7
+867940DE7D7B61216B67FAEE1A72C06A916F3F2F7D766FB3ED6BB50A02550B25
+9EC6E7B65CFA667A505F200DF4CF743F37B0E876A0A5A6742A0329C9D22FFD1A
+0FE985931AD6A124A25A4340D2848230E73BC52FF698B5DD9A3DCC6B530047EF
+79BBDCA20FE02236C25BAA421995E202E09C41E24EB424EA401679B15988F8BC
+E1DE0C0838B32F0AD240F9C217F7E94118917A7BFCE878C423C0537CBA1C62BB
+3D7DE687FE49193FD2E8737DC18990772E1CEAF4FC5BEC50BD603CEA326E948A
+3ECAFCCF56346F9DCDA5C70AD7F1ABF751AE962CEE507A5489D4E86B512B53B8
+40AEB1AA263944CFF84D5D80CCB63AFFEF8026FD69BE94BEF7D15E07062B9F5B
+43D7420588F26015FD5E4357473C1853C4D600579BFAC96BA963DDA2AF04FED1
+2244E91B8A097AE961F45685B9159C8A1B14D25672740B5313F18CC262992CDF
+4E50C76B74C198955DB662569CC9C18432B448CAC4F8C64A3A80E7336EB29BF0
+9BD4BDBBBF1C05868296DEE024548D3E52DBF0A00897CC9E7A0AD30AA683A898
+6DA657559DE0EDCDC82986200485435CBED48A4A5B9B4416941A737DA4A43865
+50900743A13040965178B71853D2194E73C6BFE4FECBC76030FF25448D623DC2
+802B1CDFF958690833A7AB636B30475C54F34944976233E0AC952CE4593E63A9
+A5CA3A8AC18E53B37F8E60A3B8ED4FDEE0FE5A69F280CBD531DB0A9E36A1D80B
+19AA485604F64F7A2F3D0005A55927A7C4393190A09A3F386170325D427D01B0
+BBF1D02BED32E5E929C9EA7B8273C34BC5FA1CC076A0A4D42ADE112A24EB4CF7
+39F7CDD3F0337C0A70EF6858DA5D76694B7870C2FF84BB2D4E8D4CCEFBDD8BFF
+E650DB24EDC4FF041C21769FA7C15374F938467B46E518F2206FE3C70851C667
+D4F35857B33462A603AF8AE50E78AA616D699781FDE049CFF60AB24DC796551C
+D3E4B4BB39726EC682E8FEC0030905B89F2C2853D41D5D039AC6F68AA52D4C26
+217586E7CD877C011D0A0672F392400066FAEC7CE19760EA67D657FE5336680F
+6ADCE6A294F81DF1BF69AD6E55D7CFB4262C2EEC8D1348F3F707E2CA6D041AD4
+4D1F888FF99691546C3EB5E79C3B9EB73F50895B8163F80CB8BACFFA86E01CA0
+5953CAF2C7C9EC7BBC065081128CCAD4836699D30AFF499D8E00369CD6A0C4F7
+0ECD965091FDA3C2ECA853E805C5A55E36BCFCBB5EE8949C38A2D42C685E370D
+A1A9172A76874D53AA6C52D2926F5E5797B6A73B75F0F5FBC3E8D10EA913368D
+6B6ACB2DE7F528795911678498ED557F7FB6383B657D17C85B31BC06F1C0E908
+C212B0D11EEB8C2E61A929FCDC9C5F4F9EA9A1730E9A81EE313F103CF736254B
+B67AC0595FC838689E33D2F1922416B1E24892160CA8F04B502244014EC5BE45
+1D288C43D0D00FCD418FABDC7FE016A4E3586C14D22E1BEB4691D13E58C9E66F
+435A85CAE6173F3591B0FE2E727DFC579B16B2A95933E7854EAD8F8946A6E527
+E1119B0F029A1C4209F00F09E03769F00C7F13CD11B91CB07FC41BB31E6F1E12
+7917DC9E91E790B644581AB087D78DA43A621BB0C80DA75A08E09D7A6DD98AB5
+2AE5C74394B0C42BD7E7D222D3554215C6F1C04BE694B2A841BD9F606A01ED52
+B6DD7B7283C7971ABB732BF93CD11CD2C407B7F68DAB86E7DD380F8684F3F768
+692756D6879D8867870F39BC955CE0213E400EA1F40F76E46AED18C6814854E3
+AA2700D296CCBAFA4EF58C3E1163D88198845582F52DDB0641AC31FB36A130F7
+FE16F12FCB3D09E386A5DF2073C56F01A7A89346EC1DAD1038BBE20138492861
+0091D8A9F091616CCA67051700B90746423C002FDEEC4D86CB9DE72FF87FFA15
+B6E9A9B58A7CB8D98E3DAC7A522DFB45906ED1C58392C9CB204ECC263F098864
+2AD1E02CBCC95A104FC6DB30DC6A603DFFF7694181B4E64D06BFB3E19086B55F
+C653925A2678E6957CBE6F68F1DD12AFD9795072B122D72B23F0E0916D7FD554
+6DBA60BF6FB8D1A99822099BD96957381A7001EE267E773F3D9AC79460C5C092
+3A2EC8EABEBF5492AC3BA22D0D1DD5F6725D71B5B363D13F99BD08A114950A16
+C6C9B99FE48D05065AE2111B16DEAE00B1910B7CD0FACB1DDADF1E7BC57169B4
+4215A14F63A223979B6068967C045C7443BD920E8F406BEEA35897C3C9AEC183
+4FEECA6DAA76AF17EE3FFF748A2BA63DF94BCD21DFF30218DFE6B04853CA2D6A
+CC230131DB265BE32EE6D21102935D70FD223C79F7FD0926D68BE38481639849
+82FDFBA040734A19311350D7A74A895D8D45E177BEB8FE2A22B11FF69A9A8C95
+DE72184CA297379E7621F642815ED6C54100FC1613A18FA632739A5B2AD60D8F
+7B2B756528F96C86ACE4EF1BD851F72426EFBF5B70306A4BE758A15D0E367E9C
+BA0D5A378DE7EABADA5D75D687049FD5AC0033AC1F2336E5C716BEC683EFBBE3
+36ABF0B965B2317C681F0B7F4F6D8B7093855FFFD725EF4C2312DBAC2F715CCE
+0FD786A46D06820DC3FE7EF87C59D7D84D11E877808F590C5754F94C6BF2A306
+405D3EA8A1064CEBA85FFD472B72F64AEA7B81147ABF52C05D17D13AE4D32C04
+C20170DB4125F85FCE3665ECF7458169A62DA7A928AC3E58A5E9F69D2E051086
+FB380BF8E39D48D653D75C5C83B924449ADD13CA3493A7590E27B3D98D24E320
+2F9700C26E797D1F78EA39169074E365E62B9B6D730DE95DB3007AFC44086E50
+60C18957CCAF3389A18060FADA8D5C329CDB6EA2DF5C5882840A1147115ACDE9
+4357A24F095E2EAAF0D7201555687B56AD5224859203C059C63194C092DBE505
+6B118FFCB885E58F8D40988D2E14A73AA40303D6A935A97DB6A8E7D5889EB21B
+3A01063599DA829927380AD6134EF4661418DA85AC42AF2C455ABEC0413B3D9D
+684E852E69B743B1324F7671B8D75D815C2F1C425327B4410E013BEAD314DAA5
+FE193719A5BFEF3E5FAA0C5E4CA2B1EFF6CF921B56017526CC62293036F76E51
+1A999063CB2F93517614C0937BA9708728BE1C381CA8D0768EF314427A0DB447
+BE59B9A034A8296AE3F848C75784517C47D019141FABF56F2B110C6A768BF493
+BD5C38879397A86AFA7905804E2EB3AE253038E267098F3B7674C3510985FB41
+09A5E02E5F4F7CDAF6E12CB47346647A58CB05D9AFABFD5A9A538F947E205FE3
+C6480C7A1A940C21CEF21CF1EF48F15FEA6C0734A5B8FC23CB315BE3B420E65F
+AA895CF17377F0CBC197191B3CB8336A2588E8C26BC988BC6E51C67E21B64972
+7FA5F4F1E95CB29E217A4FC4998A54B480B7861400CEF84E18095C55702C8F78
+F3B8CAE65BD5F4DE369C583EAC060E69EA40F595213F8ACFBD6B55AD0F5CBCC6
+11707FEECC47B1E28C9A8CCE499E248A2B108FB29C309558F8B12EC74AD295B5
+B5E8072C15AB09FFA698D0265B38F88D0D4724528F79A97776B8BE04C29E1D16
+703A23EF60B67A3ED14EF29179FF9F719A9F274E0F73EA8CA198F7053B6E8C5E
+A912738F68128EA32E2764DE57C99080482C11FCA714412D3B6AFAE4A2C9F044
+721C372CF6D8861182DDBD2BFF1B2FCF894F0C0799DFCDE0D8083E16A855E2FA
+D5E660989B98A7A9F3057AC99B76854DA2E75E510AB2E53C6789750149DD1438
+367D28A8FEFDE2042BFE791D28ABB435C807E7B7AAAE140EB065646207FC75D4
+559CD14A44E0DF2EBEA232A4057C72C65A595905A56F2C2C0FFE326EF9B3CA7C
+C2CC7F3A8BC588AFEA2624616ADE803C1D0067463F4DD78C97D2616E14562D70
+AD7BB516183630C1182BD2813D8E282B26B18F4C1ED4FFBC86A090A036E54877
+7DBDF63E27E7446304BDDA5D5E5C2DB68374E76D698CBD3657AE037324A75E16
+B1E656932F8C7253C8F1EDC06642D8F74612498F9ECB96A9375152046C2169DF
+9B3D0654663948351E48C0EC24E9D691748DBCF758D60EA3643623C7ECE568C5
+5168171E8D2ED9BA5049018DB73E2EA3F9E60683856D3CDC4F0C930BB1B126E8
+AC776C33525BBC280FD87904D5DFEA512A3B073CBA5AC823B3B2FF68D289C558
+58553E0EF0617B4156665007C8895492F2C19AB138EEF10A977C9A61AA554866
+32F446EF885346CA0372C001223769F7C01CB76977EE84E76C178FB444E33804
+B4E72782ADE86D811BD395A15C329E11973B021C8882969DDD5F9E4B3FAB0D2D
+60CB9370DC3000772E3263E693A4699F2EE60E4C022090F4273F6134729987CC
+ECA36D229EAD946149831037B9701B0C50FE9B4304CFB73ADF8C829D36F285F6
+FF9C056045A0369FF759FFC5994DC0B40B87E547CC46274BC40823C22D90B9E9
+D01F41FC59B7BCF259C4C2E301C5F7EC3163DB07FAAFCE8F0CC08CFA7A07107A
+483779E4DD39EA89B3B9CEA198765C6A52BD80C624C3CCEF16A6CF3E21FA1BB5
+BA78FB5AA13759CE5D822DA725A07CEE1D39E63D4D86FFB30FA1D070B27D34B2
+80B335AD7C86688BAF25B2FD2910A2EAA186C500120AC2898F66AED320EC43C2
+1C9D8BE8888AB84F09D16B61167FC6E42DBBA1D3DAB971576160E8B85FF5DAAE
+F37D9872B22CD19A436BEC7E7C27DB2D7F7BDF4266E515516C0A2F8A899BB1B2
+D7D5811CE7ABB71AE427FB019D07E0BDD635D3527D677620275525781A1A9F8D
+B339C3E4D5817FEDF135EB150144EC6FDA234066FB0082C52C1A851CAA19AE8F
+A1960216743A9EF3B6CD2CA93FAA3FFFDA3D144DE465DD11AAFECDBC9A694A76
+93EE2F2B10E37D26F2CCE520D0A358E13A541CA963B239C132D1680D147AD8F3
+0E162C56D0F4D423890E36A2FCE66C11AD14B2FD4F7B84B2197AC12B49DEE166
+6C157079FB2B538817C030506C318698C10A5C4FF2731E31ECFCE48282398A79
+0B3730964A1D7DDFD6964E62293E2E6D35E8F9C9C675D95F375F4714CDF5FD59
+5A506FF7FCB08A9F5B9F3989C847C92AC53DBEAE739E2596377DC1DA1949E7BC
+62573D838E4BE9D025946E1C7F6DF511965BE847FE138E87A646FC1E1F43E822
+EE272145B75265C69C1C9D8DE3AA9F9E3DAB873A8146D7606B2DB7AD9D815D68
+50ADFB48776F11F97631AE5C59B4AF8CDF8011CC76D8058AC70C6826AE88D109
+F50B6FBA868F63EF089F428873E6E24DF8DDC504CF34862BC1E53055B3DE8012
+9F86F50B0ACD428124A97867C3B51C83929EF73E78B78F8D09A83BBE59591A78
+3182284C7035875981A4B68097D9DAB5A1901A4E398B219089554DDEE17CCB46
+94FDF29575367973279C4676D9864B0ADFCC0B2A27405B5144865352209FE496
+020017FD425F2A84A5EA6D006A4B0D1782C7C9443BA8671CCA3B30F3E7C0CD48
+5806DB28764F94AC413A5BD9DECA1B119900A82D3009499998C925377D637052
+57687CE3EF5B5EB49D49BE3AFBD8A4531606AE86CEF07E058CFDC4FD1764C9FF
+1DEC0ADC674C30DA9C9A24A4267A7D694626E9E9C9AEAF66D0381854AA05BD14
+177AC9CF2A0C0677F0B8F496F325D78AA336B04CEF7E6ADE30569A4DA09B2847
+F754A24E3309472B0B50CB43181E56D7AF316A5E9044DA230403CA6E013C0D85
+2CE3D19C611DD70D79EEF35ACEAF797AA94A6B4C52E27E140C43BCA68723F2B6
+DEAFC3117D4652F9ECE33C4C51F564C464428ED27B302750C0309EEE5FE0483B
+182F1D43D8F7B460BAC7C0D0250042013EC0C3AEB5C4FD9F882F9A3557C15DBF
+324BDDFAB515E1B069F210F96F6648A8F96F9E61A36B2F7E2E06CF67912A1869
+FD85F47B84AD9E879BC4E3C48B39138406C6A2549AEA55F7A9D79D9638F97151
+4B0C7A41AF770C575CB1327FA3BDF66D83600F1271B04D484BC4285CBD5ADF0D
+DAB6774C8F0D60DB4C25081F2B278D2C11B21501A840E68E2DA02179FCF9E2A7
+F993DA9620880EE6960274954DAC790372C9D831C4604A07EBAB27C6EF5EE84A
+0C99613EC5021DF782CE12D96EC117B8997E1BF9E783A5737BEB7306FC4D9F08
+CB92A999C8B13CD6A2695190132BD04B94222C7B60597CBC1750F4B189B9F38D
+04AE51084F7DC95A39B008CBACA295AF18F7C1FD5174F5EC78D11E1154A900C0
+EED0392B0AB46BB3993EE89F05AF25041D71C0BB35B2FF71DE9D842B9FC98CB3
+1375B5F2853D18C64DB633675D37E0550BC73A47D8A35AAE5593FC1297B21F68
+52B6FC4BFC2A4C58A8B0DBE73587DDA9E35A1E20AEA29E3E1D46EC0B6660522F
+57236E7EDC9C1F91ED36871B6802686092E5E4F98A66379DC2ADA482DB15F522
+1272B394721A7ADC446E9A5F98D401BE1DC712F010DC17845DF75737D6C4794D
+51806744F84A4D7B30B198AE46C46D3DD71EED74A96CE8791AF292F45104A055
+B651BE40EA7FB93F54A8089FD5B624DD3B7F29663229A8ACC91BB7D07F71B017
+3530EA873B77C0298087D3AE901BD59A71EFF85A8E490FF120C6DBAED5B67F21
+B8957374F7FF0C14BE5459A40CCFA987ADDB03D8F4E507554FE3ADD1301F2DA8
+BB218724D4F966CEEC21A1E28C39F3901605BCAD62E311A4AA9C295A69D51D0A
+8801A26ADE83DBBDE01D65FE1F1C26255325238C119C6D6190B5979FD7337F12
+57E2695B74CBFC9291D7DDDFEF77879C8331BD21164D5773691931C4BC15620F
+CC55C7E3B130091D42F619069B056167074173B8C19575274CDB7D2D8C1CD4A1
+2CF2DD3D8B0072DE563541219857CD8D94068C375F33CB5B028FA233064E0DA7
+4DEFF8E9789A8EC86AB9E57B3CFCFCA9DAE4E27C3DD1EE9009215B726FAEF03F
+21CD4A7B32DC8889A8E68A0D509EA68101BD2077E3AAD72C003C66C80D566E7E
+2C1A022970C6CEE4185BF6299B9025162CFBD33E4DF7246382BA2449EA5A2A08
+DD4F10D8A8617F4033ECDD7FBF55E537B099BFDB6E6884D0835E9F58857EC91C
+432930F1307C5D7EB390D8652C4D981C496F1BC4D898BB66B9CF804F7BDC41B7
+4FEB527554D00EE0EF56862355CFE59A17596CE9FD737932496C67A339034286
+62D3FB833BFA261B632902AE3AD8D199DE5CAE4627EEED4CAF7C60FD50AE68E1
+0F85D679C10C52AB4F3B8848B5886D02EEE1ADA9E292F2E2EF40EA1DFE567733
+37FA902654A3770E2F108CCC08E32E3985AAFAB55B83D5BBCDBBE61DF5E378E8
+F64BA772901333C57B6DB0EA3418A923EA2D13ED7EC9550C71B2444EEDB0BE0F
+0CB182CA3D2EAB214840FBD18A3DE5DCA551B6D4E7BD9F8B3B2C7BF11F870B7E
+B8C594704BEC50165234B6D41161AF9B8570F4BA6EAE2C48652523E275738F8B
+89C66E1739C05471C19ED3B2D16434F22C25677356EF8D0B01A6A9F427598523
+4FEC98CB244F58953AD560113C038000F8F7650C0D56A0BB12E391762B3B4004
+E2516B29F80D719E8E85014C23E59B9CBB3A966B5E83B8B51FC02F32535D03DA
+EA4F801077C94CDD2F98D1E25547659B0F528971DCEE22A88D9A1F1E0F219771
+86E161A0608C3511EB0D969E8C956E8A55B1FB3E9278845E8BA26F6B6381CF74
+9CEF69192CB36B4502553A99D047EF5251194D7E269752CCD9778123295CCE8A
+CBC1B4DC2938D076967A07155138B3E91A4AA888A09095C3D2F442F98529EA24
+7C717439B62F7F1C5D140D9CAAA94B22A8D1355E7D3D85561D26A71C826CE30F
+D7157F63100097F04F39C6FAD40ABA2F9DA78CA6E2A7324FAFEFA1112BEA7856
+F8BC9E21D32F9EB9BB4DB631DA30EFFB05CE5BF7948980CE6E29A379E6420D9E
+B2E6A8F19EC8DE7371FFE985D0CA83E6B0C25465F11C299388865CE474EFC22C
+73ECFE21098FAB65C332BDE3CD631CB5CEF22279C8CE8AD38D97EEE9E4DCC1EB
+4E15F2B38341DE20E81E8DFD504A1CB456211F8C21E806FD62807D0A4C231FE0
+09052F95B3397FE4B1947A90C596E58E0D74441D1584C9DCD1BA47737553F54C
+A119099D8EB107A9185234A613D6B5279F9DB5C5FE4377B92DE77F8D0DA00A4A
+F438F080347C01D9C1DF7BD28FC1C30B1A9B337B0F77E968C6E9B9A7CC5049F5
+56862250770FCB1F086491ABE56ACA8EE9C14DA082C0D43230D383D41256788F
+AB2EE3CA273B90F822BA0D7F1A3B2D50C6381632FF34AFB322A6308CCC5EF3CE
+BC847CF050AFF76CA1C9B049C334AFFBFBBAD19A101FC4361E51455283CB9DDA
+2145417EADFE932B34C9800758D651CCF90BFD324D12FC8616B423B08BC449FD
+03D6469522B23A7E094AE8EDC2719034941091AF269725CA0E510806CEA18BE4
+F980B58EB05E9021B10643E7CEB0CE2A42B976324DE1CF105F1CBA07DF358D34
+B4366DA6DD135F36F32387026C45C4A94017312FDA49C4E6E0F5AF2F0A9126A8
+07602AA9C8576262931EEE464E0A2787011D33F9E7C6C9D7DC0C0C5D20B8A746
+4D139F5F2B1B6E0AE059747949EDB3FDE1FE2162086C4F01720AD408DECAA906
+7586D3E2DC51D8A63EF20E21F0A5725DC80D02453DFE9F75E6EF660D9A892F95
+411B7558D3676610042CEF99261185A8D7F69F15E2405D2E5C0E452E223D0924
+F20DB835C62466FBC0A8038F3F110036104E9DC649A5BACBD568B0B85A7B64CE
+7EEC067FCC7F7E6A51FDE5272FA30847E70D319F9D593CC2EE45C83E67FA6F5B
+C7412096BBDFE81666CA8B3EE1411DD487B4CC3C3EAD104A2C9BBDCAF9D0C847
+6D2C7DF762BC3BC874B4DD3BF2BD7D0F6227FC8AFE4D568D70BD9928051EC85D
+62D8B2FF07AD099B8F879677BFD4B90A08C585D71F2820551C2558CD14DF1555
+66416E2B9C87BB7B1A0C9D6E3D4F80C5F3F4F887B17A957025BCF65372D9D3A1
+77E2CA348A47DA5100CC3EA2EB7742654B955FB2BD3B5A6F84D2D5F5F0339D84
+D8AD3DA2A75FFB2328DDC5004778BFDB4B0C9916D306BDF393ABD5FDB45187ED
+95F01EB80FAF51B7B38FB22517655D532DF3C6A8BFFD339AB7E21C009D467AA8
+78AA46B04DCE4F5C17A5E1E1081E33CD14E2E7BDFD41DEE2CA9C042CB66C70C9
+9A07B488A14488AABEE67E51A4DF481CB30774279F049C9D56D80AA2B4EFBA6E
+94A881775CB7B1373B81A69B301711AE47ED07264BC98A84819746C192BA6F9D
+693A825F0210125BC4372391890975B78626DADE396B2470522A8AB9DC4837BF
+1467A13F281F125F0FA2E87C8A67946EBBFDB7ABDDC2F9AC10DC820DDA8208C0
+55252FE5C829AB859A983FF7545B6A6892CF73A5C9AC8D2D4B1D9D01A481FE21
+51BFDC258D0B8BF0743EE4A7DE9AF2630A9740FCC2838BC84CEE12404701C36E
+A9BFAC54A7AF6211B17F0AEFDA006CA74105BCA14A882463F233E831D8477CC5
+0E42E19D5E21A3D922F645EED56DC7BB7F371785B8565389D39EFCC4850550BE
+10CE6C78EEEBF8828F83F9E858FBF0640F27E925AE3C2539D609DDDB0964A513
+88238CD14F7B91CD651054CA37BD71F9E64DF562C5E2613CA29318D3B39035E3
+B538A5871E119CB3558E0D301B091568C807D63AAB36336AD239FF58C1131D5E
+FAA0F85AC68D33C154F97E42E73EB71437B0F2727BF9FDCAC75965C62B15564E
+9BF7154DE438CC9B04D343FBCE0FF6DDAB9E46A260C7BF76679B8483BBFA4DCF
+D652C0FC93610A6A4ADF53C3D9B7296E70CE1FA3EB6DA1B46749FDC0E2BFAC85
+F00FE4A1A164CCEBBC6CFAD03E3D2C987EC80ABA6D1DCA6B85689F4C6ECCAA29
+CA2852B2325AA1D5A895B2D8C582060673605C54ADA2F41A20B2E98CB38785A5
+3183C9562EE46D58E515DAB27B9A5A86917B05554FF899BA50E1D97EFD9E7EBA
+03C6AF103CE3570E592DEC96A8C634AD7067ED147E3399F0933F8E245B269AEB
+362DCFE8FA9B42ED031F5DE999962C9F53594A437AB2E629338F662ABDEBA947
+7AB265D05AE53AC692ACC2B30973ADC366921B48F8D53F668E08BF65A3031C10
+F4DF18B1D5536A7794576A2A836503B6F62CD601B1F7151B90E915A927287D99
+9941949683B99325AFD768D0BE6C27B14A073A4DEC837CF91D61A3392B13C2BA
+323FBE1B93090BC4603E35B5C1774BD7FC3F2B843A8F59B51B0E4DAE91C5DCD1
+8553B77BF8A5D3156C2B92F9E14B53344C72B1C9AE82F86352D70A7802B2A948
+3B7A89D4C4F402657B46C474E6AC77D75505B9EA6AFCC1359BDAF1D82BD67C43
+B61FB8430B9C0D6F8B5B7EC8FF87AB6A824FB39848140C8F35ECA135A9E25913
+1D8ECDB09AB9C418F0EDB189CF314BC15031EEAEDD76C062245700583CB82ACF
+8F5A6E8AFAFCA8AC150C0CB7A96AC61B1DE23498278F37BF6383608BFBEB4E92
+F74BFD5B630B601ACCDFB1795DF67DB3B87A79DB4BD17364EE8C6B74A04E0C4F
+B11DCDABC0169779ED890C0543452380AEFC40581A93424D9B626315CDAEA786
+39874F4A6468BACFEB626B63CDEE84F4F51E26E52D1487890601D4116FA68600
+8CA491E20ABF21D1B1A02CDB96A25ED403ABCAA32944AF30648D7C4A7A208968
+E2F6AFD610B8C8F7F3306B1BF263C2A47299F436D1C741B24DAE39174F30F88C
+7DE095E133643F0BC96D84413D373AFFC457DD7751C2B4AE16625D57D7F0385D
+0C5723E54D10C7AF66648D7DA4942CBFD4EFD530B8EAA843692ACE50B13389FB
+67924D2037EB81EA52D37976C2984BFBB05438DC8050BEE88125A7119C68118F
+39313CB6E36B04AF224354D6A3E08A2A45DC030B6DEEC6758CA726473D766D1E
+C6661DCE8FA0086D4FE42237C70771109FCB99B2C3BCEA066541D4B2A5CD1BAA
+C01A5E22A7885A2A4298EADA5D1735A00A851BC1640E62EA5C30D9B3085B7877
+3F2174394A5A8A75BEB15805CAF2CB0E6E5A7A3CF05575ACBB7A897E7E1239BC
+D4D3615DC0E77DEF51F7DD2B803AA1A321FB51E2AF854D672E1C14736869F49A
+E5ACDC57E3B3976537B8FCAE4748984E668FDC1DE630EDF826F57CBA3F2A030C
+155D3A2FAF649220AE2B1D1960B6B0483A37D24B32D263FEAB89E7D6C916BB37
+437245D788031CC042CFF7D712220112EC16A61F7ADCDDB09AA365980D0A687E
+01C6DA9D234326EE9B8755F7B8ED79E6B4E5ECA508CA102D27A3A226D02F4370
+7EE4061C0B8D75EC0D3FD681AC5FA83664B3D0CD55C3A95B5813FEAD19642EF1
+748D06ABB5AF95D258A8B433C4D8215625E8AF1F47924BB1F0530EFE633A333B
+9227C1ABAD32ADDB6910993C4A2176E1DF3D738B4E9E899DF859DF3F42EA4508
+B9A3312BEE27B4570260FC6261C8F03D72C056E7D824F143302157C869316E7A
+5B3BAA828F6C1FFF5EEFCE3A79F41F97C2EC11E6F8121282D823A3746E1D9C13
+39B02BE7059BABAE7E2274DE13F9C1158E821637CC124600B89390A15ECAB890
+AE0F2EFE53E7755FCC955879A1EB9E73E61D4572E292E72FED83B94715A3D4DD
+B682A712D578B9D2E6A34DC10506DBC9479EC3C2ED12B2C310AA9C34466D979D
+15275746E0FF396053909C6A73777380826D98B61D166E0085F2FA98A3267634
+3B806CA0A9ECDF557406239E72A470D51985D7F24A4CACFC71131694C40573DF
+70AA1BC7C29A94272FC53C0AC0BDAABCD7FE594B4BE530B432F3C089B52EA8F8
+7280F52EA3FCA6848DA826324A497C393772F156C709FA1C0976F7F8EE15EB46
+82F0C0E2BF11650E9A8D241255A5A999F1AA83270B655E354D177AAA05284912
+469113159F4E8134E48C194C158A012480869DA113
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -5203,19 +5213,19 @@ rf /Fl 138[56 1[42 4[56 4[27 1[58 3[54 1[56 97[{}7 90.9091
112 37 2[37 75 67 41 61 75 60 75 65 9[139 102 103 1[75
100 1[92 1[105 128 81 2[50 105 1[85 88 103 97 96 102
6[37 4[67 67 67 67 67 2[37 1[37 44[{}47 119.552 /CMBX12
-rf /Fp 129[48 48 48 48 48 48 1[48 48 48 48 48 48 1[48
+rf /Fp 129[48 48 48 48 48 48 48 48 48 48 48 48 48 1[48
48 48 48 48 48 1[48 48 48 48 48 48 48 48 48 1[48 48 48
48 48 1[48 3[48 48 48 48 1[48 48 48 1[48 2[48 48 48 48
48 48 1[48 48 1[48 48 48 48 48 48 7[48 48 48 48 48 48
-1[48 48 48 48 48 48 48 48 48 48 48 33[{}72 90.9091 /CMTT10
+1[48 48 48 48 48 48 48 48 48 48 48 33[{}73 90.9091 /CMTT10
rf /Fq 131[91 45 40 48 48 66 48 51 35 36 36 48 51 45
51 76 25 48 28 25 51 45 28 40 51 40 51 45 25 2[25 45
25 56 68 68 93 68 68 66 51 67 71 62 71 68 83 57 71 47
-33 68 71 59 62 69 66 64 68 5[25 25 45 45 45 45 45 45
-45 45 45 45 45 25 30 25 2[35 35 25 4[45 19[76 51 51 53
-11[{}82 90.9091 /CMR10 rf /Fr 134[102 4[75 76 79 2[97
-5[54 6[108 94 11[149 6[151 1[116 3[151 152 71[{}13 172.154
-/CMBX12 rf end
+33 68 71 59 62 69 66 64 68 1[43 3[25 25 45 45 45 45 45
+45 45 45 45 45 45 25 30 25 2[35 35 25 4[45 25 18[76 51
+51 53 11[{}84 90.9091 /CMR10 rf /Fr 134[102 4[75 76 79
+2[97 5[54 6[108 94 11[149 6[151 1[116 3[151 152 71[{}13
+172.154 /CMBX12 rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
@@ -5230,31 +5240,29 @@ ifelse
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 150 1318 a Fr(GNU)65 b(History)h(Library)p
-150 1418 3600 34 v 1920 1515 a Fq(Edition)31 b(8.0,)h(for)e
-Fp(History)e(Library)h Fq(V)-8 b(ersion)31 b(8.0.)3139
-1623 y(No)m(v)m(em)m(b)s(er)g(2018)150 4927 y Fo(Chet)45
-b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l
-(ersit)l(y)150 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11
-b(ree)45 b(Soft)l(w)l(are)h(F)-11 b(oundation)p 150 5141
-3600 17 v eop end
+150 1418 3600 34 v 1920 1515 a Fq(Edition)31 b(8.1,)h(for)e
+Fp(History)e(Library)h Fq(V)-8 b(ersion)31 b(8.1.)3217
+1623 y(Octob)s(er)f(2020)150 4927 y Fo(Chet)45 b(Ramey)-11
+b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150
+5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)
+-11 b(oundation)p 150 5141 3600 17 v eop end
%%Page: 2 2
-TeXDict begin 2 1 bop 150 4413 a Fq(This)44 b(do)s(cumen)m(t)i(describ)
-s(es)e(the)i(GNU)f(History)h(library)f(\(v)m(ersion)h(8.0,)51
-b(30)46 b(No)m(v)m(em)m(b)s(er)g(2018\),)52 b(a)150 4523
-y(programming)32 b(to)s(ol)h(that)f(pro)m(vides)g(a)h(consisten)m(t)g
-(user)e(in)m(terface)j(for)d(recalling)j(lines)e(of)g(previously)150
-4633 y(t)m(yp)s(ed)e(input.)150 4767 y(Cop)m(yrigh)m(t)602
-4764 y(c)577 4767 y Fn(\015)g Fq(1988{2016)35 b(F)-8
-b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390
-4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
-b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f
-(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
-b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
-b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43
-b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8
-b(oundation;)53 b(with)44 b(no)g(In)m(v)-5 b(arian)m(t)46
-b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)31
-b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8
+TeXDict begin 2 1 bop 150 4413 a Fq(This)35 b(do)s(cumen)m(t)g(describ)
+s(es)g(the)h(GNU)h(History)f(library)f(\(v)m(ersion)i(8.1,)h(29)f
+(Octob)s(er)f(2020\),)j(a)d(pro-)150 4523 y(gramming)23
+b(to)s(ol)g(that)g(pro)m(vides)f(a)h(consisten)m(t)h(user)d(in)m
+(terface)j(for)e(recalling)i(lines)f(of)f(previously)g(t)m(yp)s(ed)150
+4633 y(input.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577
+4767 y Fn(\015)30 b Fq(1988{2020)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h
+(F)-8 b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21
+b(is)f(gran)m(ted)h(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s
+(dify)e(this)i(do)s(cumen)m(t)f(under)f(the)390 5011
+y(terms)25 b(of)h(the)f(GNU)h(F)-8 b(ree)27 b(Do)s(cumen)m(tation)g
+(License,)g(V)-8 b(ersion)26 b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)
+390 5121 y(published)43 b(b)m(y)h(the)h(F)-8 b(ree)46
+b(Soft)m(w)m(are)g(F)-8 b(oundation;)53 b(with)44 b(no)g(In)m(v)-5
+b(arian)m(t)46 b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)
+31 b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8
b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390
5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8
b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end
@@ -5263,78 +5271,81 @@ TeXDict begin -1 2 bop 3725 -116 a Fq(i)150 299 y Fm(T)-13
b(able)53 b(of)h(Con)l(ten)l(ts)p eop end
%%Page: 1 4
TeXDict begin 1 3 bop 3705 -116 a Fq(1)150 299 y Fm(1)80
-b(Using)53 b(History)g(In)l(teractiv)l(ely)150 525 y
+b(Using)53 b(History)g(In)l(teractiv)l(ely)150 502 y
Fq(This)42 b(c)m(hapter)h(describ)s(es)f(ho)m(w)g(to)h(use)g(the)f
Fl(gnu)h Fq(History)g(Library)e(in)m(teractiv)m(ely)-8
-b(,)50 b(from)42 b(a)h(user's)150 634 y(standp)s(oin)m(t.)76
+b(,)50 b(from)42 b(a)h(user's)150 612 y(standp)s(oin)m(t.)76
b(It)42 b(should)f(b)s(e)h(considered)g(a)g(user's)g(guide.)76
b(F)-8 b(or)43 b(information)f(on)g(using)g(the)g Fl(gnu)150
-744 y Fq(History)36 b(Library)e(in)h(y)m(our)f(o)m(wn)i(programs,)g
+721 y Fq(History)36 b(Library)e(in)h(y)m(our)f(o)m(wn)i(programs,)g
(see)f(Chapter)g(2)g([Programming)g(with)g(GNU)h(History],)150
-854 y(page)31 b(4.)150 1091 y Fo(1.1)68 b(History)46
-b(Expansion)150 1251 y Fq(The)f(History)h(library)e(pro)m(vides)i(a)f
+831 y(page)31 b(4.)150 1059 y Fo(1.1)68 b(History)46
+b(Expansion)150 1219 y Fq(The)f(History)h(library)e(pro)m(vides)i(a)f
(history)g(expansion)g(feature)h(that)g(is)f(similar)h(to)g(the)f
-(history)150 1360 y(expansion)g(pro)m(vided)f(b)m(y)h
+(history)150 1328 y(expansion)g(pro)m(vided)f(b)m(y)h
Fp(csh)p Fq(.)83 b(This)44 b(section)i(describ)s(es)e(the)h(syn)m(tax)h
-(used)e(to)i(manipulate)f(the)150 1470 y(history)30 b(information.)275
-1603 y(History)h(expansions)f(in)m(tro)s(duce)g(w)m(ords)g(from)g(the)h
+(used)e(to)i(manipulate)f(the)150 1438 y(history)30 b(information.)275
+1566 y(History)h(expansions)f(in)m(tro)s(duce)g(w)m(ords)g(from)g(the)h
(history)f(list)h(in)m(to)g(the)g(input)f(stream,)h(making)150
-1712 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g(the)h(argumen)
+1676 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g(the)h(argumen)
m(ts)f(to)h(a)g(previous)f(command)g(in)m(to)i(the)e(curren)m(t)150
-1822 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g
-(quic)m(kly)-8 b(.)275 1955 y(History)37 b(expansion)f(tak)m(es)i
+1785 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g
+(quic)m(kly)-8 b(.)275 1914 y(History)37 b(expansion)f(tak)m(es)i
(place)g(in)e(t)m(w)m(o)i(parts.)59 b(The)36 b(\014rst)g(is)h(to)g
-(determine)g(whic)m(h)f(line)h(from)150 2064 y(the)42
+(determine)g(whic)m(h)f(line)h(from)150 2023 y(the)42
b(history)f(list)h(should)e(b)s(e)h(used)f(during)g(substitution.)74
b(The)40 b(second)i(is)f(to)h(select)h(p)s(ortions)e(of)150
-2174 y(that)31 b(line)g(for)f(inclusion)h(in)m(to)g(the)g(curren)m(t)f
+2133 y(that)31 b(line)g(for)f(inclusion)h(in)m(to)g(the)g(curren)m(t)f
(one.)42 b(The)30 b(line)h(selected)h(from)e(the)h(history)f(is)h
-(called)h(the)150 2283 y Fk(ev)m(en)m(t)p Fq(,)e(and)c(the)i(p)s
+(called)h(the)150 2242 y Fk(ev)m(en)m(t)p Fq(,)e(and)c(the)i(p)s
(ortions)e(of)i(that)f(line)h(that)g(are)f(acted)i(up)s(on)c(are)j
(called)g Fk(w)m(ords)p Fq(.)39 b(V)-8 b(arious)28 b
-Fk(mo)s(di\014ers)150 2393 y Fq(are)33 b(a)m(v)-5 b(ailable)36
+Fk(mo)s(di\014ers)150 2352 y Fq(are)33 b(a)m(v)-5 b(ailable)36
b(to)d(manipulate)h(the)f(selected)h(w)m(ords.)48 b(The)32
b(line)i(is)f(brok)m(en)f(in)m(to)i(w)m(ords)f(in)f(the)i(same)150
-2503 y(fashion)23 b(that)g(Bash)g(do)s(es,)h(so)f(that)h(sev)m(eral)g
+2461 y(fashion)23 b(that)g(Bash)g(do)s(es,)h(so)f(that)h(sev)m(eral)g
(w)m(ords)e(surrounded)e(b)m(y)j(quotes)g(are)g(considered)g(one)g(w)m
-(ord.)150 2612 y(History)37 b(expansions)g(are)g(in)m(tro)s(duced)f(b)m
+(ord.)150 2571 y(History)37 b(expansions)g(are)g(in)m(tro)s(duced)f(b)m
(y)h(the)g(app)s(earance)g(of)g(the)g(history)f(expansion)h(c)m
-(haracter,)150 2722 y(whic)m(h)30 b(is)h(`)p Fp(!)p Fq(')f(b)m(y)g
-(default.)275 2855 y(History)c(expansion)g(implemen)m(ts)h(shell-lik)m
+(haracter,)150 2681 y(whic)m(h)30 b(is)h(`)p Fp(!)p Fq(')f(b)m(y)g
+(default.)275 2809 y(History)c(expansion)g(implemen)m(ts)h(shell-lik)m
(e)h(quoting)f(con)m(v)m(en)m(tions:)40 b(a)27 b(bac)m(kslash)g(can)f
-(b)s(e)g(used)f(to)150 2964 y(remo)m(v)m(e)h(the)e(sp)s(ecial)g
+(b)s(e)g(used)f(to)150 2919 y(remo)m(v)m(e)h(the)e(sp)s(ecial)g
(handling)g(for)g(the)g(next)g(c)m(haracter;)k(single)d(quotes)g
-(enclose)g(v)m(erbatim)g(sequences)150 3074 y(of)k(c)m(haracters,)i
+(enclose)g(v)m(erbatim)g(sequences)150 3028 y(of)k(c)m(haracters,)i
(and)e(can)g(b)s(e)g(used)f(to)i(inhibit)f(history)g(expansion;)g(and)g
-(c)m(haracters)i(enclosed)e(within)150 3183 y(double)h(quotes)i(ma)m(y)
+(c)m(haracters)i(enclosed)e(within)150 3138 y(double)h(quotes)i(ma)m(y)
f(b)s(e)f(sub)5 b(ject)31 b(to)h(history)f(expansion,)g(since)g(bac)m
-(kslash)g(can)h(escap)s(e)f(the)g(history)150 3293 y(expansion)e(c)m
+(kslash)g(can)h(escap)s(e)f(the)g(history)150 3247 y(expansion)e(c)m
(haracter,)j(but)d(single)h(quotes)g(ma)m(y)h(not,)f(since)g(they)g
-(are)g(not)f(treated)i(sp)s(ecially)f(within)150 3403
-y(double)g(quotes.)150 3599 y Fj(1.1.1)63 b(Ev)m(en)m(t)39
-b(Designators)150 3746 y Fq(An)32 b(ev)m(en)m(t)j(designator)e(is)g(a)g
+(are)g(not)f(treated)i(sp)s(ecially)f(within)150 3357
+y(double)g(quotes.)150 3544 y Fj(1.1.1)63 b(Ev)m(en)m(t)39
+b(Designators)150 3691 y Fq(An)32 b(ev)m(en)m(t)j(designator)e(is)g(a)g
(reference)g(to)h(a)f(command)f(line)h(en)m(try)g(in)g(the)g(history)g
-(list.)48 b(Unless)33 b(the)150 3855 y(reference)e(is)f(absolute,)i(ev)
+(list.)48 b(Unless)33 b(the)150 3800 y(reference)e(is)f(absolute,)i(ev)
m(en)m(ts)f(are)g(relativ)m(e)i(to)e(the)f(curren)m(t)g(p)s(osition)h
-(in)f(the)h(history)f(list.)150 4011 y Fp(!)432 b Fq(Start)34
+(in)f(the)h(history)f(list.)150 3947 y Fp(!)432 b Fq(Start)34
b(a)f(history)h(substitution,)g(except)g(when)f(follo)m(w)m(ed)i(b)m(y)
-e(a)h(space,)h(tab,)f(the)g(end)f(of)630 4121 y(the)e(line,)g(or)f(`)p
-Fp(=)p Fq('.)150 4277 y Fp(!)p Fi(n)384 b Fq(Refer)30
-b(to)i(command)e(line)g Fk(n)p Fq(.)150 4433 y Fp(!-)p
+e(a)h(space,)h(tab,)f(the)g(end)f(of)630 4057 y(the)e(line,)g(or)f(`)p
+Fp(=)p Fq('.)150 4204 y Fp(!)p Fi(n)384 b Fq(Refer)30
+b(to)i(command)e(line)g Fk(n)p Fq(.)150 4351 y Fp(!-)p
Fi(n)336 b Fq(Refer)30 b(to)i(the)e(command)g Fk(n)g
-Fq(lines)h(bac)m(k.)150 4589 y Fp(!!)384 b Fq(Refer)30
+Fq(lines)h(bac)m(k.)150 4498 y Fp(!!)384 b Fq(Refer)30
b(to)i(the)e(previous)g(command.)40 b(This)30 b(is)g(a)h(synon)m(ym)f
-(for)g(`)p Fp(!-1)p Fq('.)150 4745 y Fp(!)p Fi(string)144
+(for)g(`)p Fp(!-1)p Fq('.)150 4645 y Fp(!)p Fi(string)144
b Fq(Refer)25 b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)g
(the)g(curren)m(t)g(p)s(osition)g(in)g(the)g(history)630
-4855 y(list)31 b(starting)g(with)f Fk(string)p Fq(.)150
-5011 y Fp(!?)p Fi(string)p Fp([?])630 5121 y Fq(Refer)25
+4755 y(list)31 b(starting)g(with)f Fk(string)p Fq(.)150
+4902 y Fp(!?)p Fi(string)p Fp([?])630 5011 y Fq(Refer)25
b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)g(the)g(curren)m(t)
-g(p)s(osition)g(in)g(the)g(history)630 5230 y(list)32
+g(p)s(osition)g(in)g(the)g(history)630 5121 y(list)32
b(con)m(taining)i Fk(string)p Fq(.)45 b(The)31 b(trailing)i(`)p
Fp(?)p Fq(')f(ma)m(y)g(b)s(e)f(omitted)i(if)f(the)g Fk(string)39
-b Fq(is)32 b(follo)m(w)m(ed)630 5340 y(immediately)g(b)m(y)e(a)h
-(newline.)p eop end
+b Fq(is)32 b(follo)m(w)m(ed)630 5230 y(immediately)f(b)m(y)e(a)h
+(newline.)40 b(If)29 b Fk(string)38 b Fq(is)29 b(missing,)h(the)g
+(string)f(from)g(the)h(most)g(recen)m(t)630 5340 y(searc)m(h)h(is)f
+(used;)g(it)h(is)g(an)f(error)g(if)g(there)h(is)f(no)g(previous)g
+(searc)m(h)h(string.)p eop end
%%Page: 2 5
TeXDict begin 2 4 bop 150 -116 a Fq(Chapter)30 b(1:)41
b(Using)30 b(History)h(In)m(teractiv)m(ely)2016 b(2)150
@@ -5342,91 +5353,103 @@ b(Using)30 b(History)h(In)m(teractiv)m(ely)2016 b(2)150
408 y Fq(Quic)m(k)32 b(Substitution.)44 b(Rep)s(eat)32
b(the)g(last)h(command,)f(replacing)g Fk(string1)40 b
Fq(with)31 b Fk(string2)p Fq(.)630 518 y(Equiv)-5 b(alen)m(t)31
-b(to)g Fp(!!:s/)p Fi(string1)p Fp(/)p Fi(string2)p Fp(/)p
-Fq(.)150 674 y Fp(!#)384 b Fq(The)30 b(en)m(tire)h(command)f(line)h(t)m
-(yp)s(ed)f(so)h(far.)150 869 y Fj(1.1.2)63 b(W)-10 b(ord)41
-b(Designators)150 1016 y Fq(W)-8 b(ord)27 b(designators)h(are)g(used)e
+b(to)g Fp(!!:s^)p Fi(string1)p Fp(^)p Fi(string2)p Fp(^)p
+Fq(.)150 673 y Fp(!#)384 b Fq(The)30 b(en)m(tire)h(command)f(line)h(t)m
+(yp)s(ed)f(so)h(far.)150 867 y Fj(1.1.2)63 b(W)-10 b(ord)41
+b(Designators)150 1014 y Fq(W)-8 b(ord)27 b(designators)h(are)g(used)e
(to)i(select)h(desired)d(w)m(ords)h(from)f(the)i(ev)m(en)m(t.)41
b(A)27 b(`)p Fp(:)p Fq(')g(separates)h(the)f(ev)m(en)m(t)150
-1125 y(sp)s(eci\014cation)38 b(from)e(the)h(w)m(ord)f(designator.)61
+1124 y(sp)s(eci\014cation)38 b(from)e(the)h(w)m(ord)f(designator.)61
b(It)37 b(ma)m(y)h(b)s(e)e(omitted)i(if)e(the)h(w)m(ord)g(designator)g
-(b)s(egins)150 1235 y(with)30 b(a)g(`)p Fp(^)p Fq(',)g(`)p
+(b)s(egins)150 1233 y(with)30 b(a)g(`)p Fp(^)p Fq(',)g(`)p
Fp($)p Fq(',)g(`)p Fp(*)p Fq(',)h(`)p Fp(-)p Fq(',)f(or)g(`)p
Fp(\045)p Fq('.)41 b(W)-8 b(ords)30 b(are)g(n)m(um)m(b)s(ered)e(from)i
(the)g(b)s(eginning)f(of)h(the)g(line,)g(with)g(the)150
-1345 y(\014rst)f(w)m(ord)f(b)s(eing)h(denoted)h(b)m(y)f(0)h(\(zero\).)
+1343 y(\014rst)f(w)m(ord)f(b)s(eing)h(denoted)h(b)m(y)f(0)h(\(zero\).)
41 b(W)-8 b(ords)30 b(are)g(inserted)f(in)m(to)h(the)g(curren)m(t)f
-(line)g(separated)h(b)m(y)150 1454 y(single)h(spaces.)275
-1587 y(F)-8 b(or)31 b(example,)150 1742 y Fp(!!)384 b
+(line)g(separated)h(b)m(y)150 1452 y(single)h(spaces.)275
+1584 y(F)-8 b(or)31 b(example,)150 1739 y Fp(!!)384 b
Fq(designates)37 b(the)f(preceding)g(command.)57 b(When)35
b(y)m(ou)i(t)m(yp)s(e)f(this,)h(the)f(preceding)g(com-)630
-1852 y(mand)30 b(is)g(rep)s(eated)g(in)g(toto.)150 2007
+1849 y(mand)30 b(is)g(rep)s(eated)g(in)g(toto.)150 2003
y Fp(!!:$)288 b Fq(designates)23 b(the)g(last)g(argumen)m(t)g(of)f(the)
h(preceding)f(command.)38 b(This)22 b(ma)m(y)h(b)s(e)e(shortened)630
-2117 y(to)31 b Fp(!$)p Fq(.)150 2273 y Fp(!fi:2)240 b
+2113 y(to)31 b Fp(!$)p Fq(.)150 2267 y Fp(!fi:2)240 b
Fq(designates)30 b(the)g(second)f(argumen)m(t)h(of)f(the)h(most)f
-(recen)m(t)i(command)e(starting)h(with)f(the)630 2382
-y(letters)j Fp(fi)p Fq(.)275 2538 y(Here)e(are)h(the)g(w)m(ord)f
-(designators:)150 2693 y Fp(0)g(\(zero\))114 b Fq(The)30
+(recen)m(t)i(command)e(starting)h(with)f(the)630 2377
+y(letters)j Fp(fi)p Fq(.)275 2531 y(Here)e(are)h(the)g(w)m(ord)f
+(designators:)150 2686 y Fp(0)g(\(zero\))114 b Fq(The)30
b Fp(0)p Fq(th)g(w)m(ord.)40 b(F)-8 b(or)31 b(man)m(y)g(applications,)h
-(this)e(is)g(the)h(command)f(w)m(ord.)150 2849 y Fi(n)432
-b Fq(The)30 b Fk(n)p Fq(th)g(w)m(ord.)150 3004 y Fp(^)432
+(this)e(is)g(the)h(command)f(w)m(ord.)150 2840 y Fi(n)432
+b Fq(The)30 b Fk(n)p Fq(th)g(w)m(ord.)150 2995 y Fp(^)432
b Fq(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m(ord)g(1.)150
-3160 y Fp($)432 b Fq(The)30 b(last)h(argumen)m(t.)150
-3315 y Fp(\045)432 b Fq(The)30 b(w)m(ord)g(matc)m(hed)h(b)m(y)f(the)h
-(most)g(recen)m(t)g(`)p Fp(?)p Fi(string)p Fp(?)p Fq(')e(searc)m(h.)150
-3471 y Fi(x)p Fp(-)p Fi(y)336 b Fq(A)30 b(range)h(of)g(w)m(ords;)f(`)p
-Fp(-)p Fi(y)p Fq(')g(abbreviates)h(`)p Fp(0-)p Fi(y)p
-Fq('.)150 3626 y Fp(*)432 b Fq(All)28 b(of)g(the)g(w)m(ords,)g(except)h
-(the)e Fp(0)p Fq(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for)h(`)p
+3150 y Fp($)432 b Fq(The)30 b(last)h(argumen)m(t.)150
+3304 y Fp(\045)432 b Fq(The)40 b(\014rst)h(w)m(ord)f(matc)m(hed)i(b)m
+(y)f(the)g(most)g(recen)m(t)h(`)p Fp(?)p Fi(string)p
+Fp(?)p Fq(')d(searc)m(h,)44 b(if)d(the)g(searc)m(h)630
+3414 y(string)30 b(b)s(egins)g(with)g(a)h(c)m(haracter)h(that)f(is)f
+(part)h(of)f(a)h(w)m(ord.)150 3568 y Fi(x)p Fp(-)p Fi(y)336
+b Fq(A)30 b(range)h(of)g(w)m(ords;)f(`)p Fp(-)p Fi(y)p
+Fq(')g(abbreviates)h(`)p Fp(0-)p Fi(y)p Fq('.)150 3723
+y Fp(*)432 b Fq(All)28 b(of)g(the)g(w)m(ords,)g(except)h(the)e
+Fp(0)p Fq(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for)h(`)p
Fp(1-$)p Fq('.)39 b(It)28 b(is)g(not)g(an)f(error)630
-3736 y(to)j(use)g(`)p Fp(*)p Fq(')f(if)h(there)g(is)g(just)f(one)h(w)m
+3832 y(to)j(use)g(`)p Fp(*)p Fq(')f(if)h(there)g(is)g(just)f(one)h(w)m
(ord)f(in)g(the)h(ev)m(en)m(t;)i(the)d(empt)m(y)i(string)e(is)h
-(returned)e(in)630 3845 y(that)j(case.)150 4001 y Fi(x)p
+(returned)e(in)630 3942 y(that)j(case.)150 4097 y Fi(x)p
Fp(*)384 b Fq(Abbreviates)31 b(`)p Fi(x)p Fp(-$)p Fq(')150
-4156 y Fi(x)p Fp(-)384 b Fq(Abbreviates)31 b(`)p Fi(x)p
-Fp(-$)p Fq(')f(lik)m(e)h(`)p Fi(x)p Fp(*)p Fq(',)g(but)f(omits)h(the)f
-(last)h(w)m(ord.)275 4312 y(If)i(a)h(w)m(ord)g(designator)g(is)g
-(supplied)f(without)h(an)g(ev)m(en)m(t)h(sp)s(eci\014cation,)h(the)e
-(previous)f(command)150 4422 y(is)d(used)g(as)h(the)f(ev)m(en)m(t.)150
-4617 y Fj(1.1.3)63 b(Mo)s(di\014ers)150 4764 y Fq(After)29
-b(the)g(optional)g(w)m(ord)g(designator,)g(y)m(ou)g(can)g(add)f(a)h
-(sequence)g(of)g(one)g(or)f(more)h(of)g(the)f(follo)m(wing)150
-4873 y(mo)s(di\014ers,)h(eac)m(h)j(preceded)e(b)m(y)g(a)h(`)p
-Fp(:)p Fq('.)150 5029 y Fp(h)432 b Fq(Remo)m(v)m(e)32
+4251 y Fi(x)p Fp(-)384 b Fq(Abbreviates)27 b(`)p Fi(x)p
+Fp(-$)p Fq(')g(lik)m(e)h(`)p Fi(x)p Fp(*)p Fq(',)g(but)e(omits)i(the)f
+(last)h(w)m(ord.)39 b(If)27 b(`)p Fp(x)p Fq(')g(is)g(missing,)g(it)h
+(defaults)630 4361 y(to)j(0.)275 4515 y(If)i(a)h(w)m(ord)g(designator)g
+(is)g(supplied)f(without)h(an)g(ev)m(en)m(t)h(sp)s(eci\014cation,)h
+(the)e(previous)f(command)150 4625 y(is)d(used)g(as)h(the)f(ev)m(en)m
+(t.)150 4819 y Fj(1.1.3)63 b(Mo)s(di\014ers)150 4966
+y Fq(After)29 b(the)g(optional)g(w)m(ord)g(designator,)g(y)m(ou)g(can)g
+(add)f(a)h(sequence)g(of)g(one)g(or)f(more)h(of)g(the)f(follo)m(wing)
+150 5076 y(mo)s(di\014ers,)33 b(eac)m(h)h(preceded)f(b)m(y)g(a)h(`)p
+Fp(:)p Fq('.)50 b(These)33 b(mo)s(dify)-8 b(,)33 b(or)h(edit,)g(the)g
+(w)m(ord)f(or)g(w)m(ords)g(selected)h(from)150 5185 y(the)d(history)f
+(ev)m(en)m(t.)150 5340 y Fp(h)432 b Fq(Remo)m(v)m(e)32
b(a)f(trailing)g(pathname)g(comp)s(onen)m(t,)g(lea)m(ving)h(only)e(the)
-h(head.)150 5184 y Fp(t)432 b Fq(Remo)m(v)m(e)32 b(all)f(leading)h
-(pathname)e(comp)s(onen)m(ts,)h(lea)m(ving)h(the)e(tail.)150
-5340 y Fp(r)432 b Fq(Remo)m(v)m(e)32 b(a)f(trailing)g(su\016x)f(of)g
-(the)h(form)f(`)p Fp(.)p Fi(suffix)p Fq(',)f(lea)m(ving)j(the)f
-(basename.)p eop end
+h(head.)p eop end
%%Page: 3 6
TeXDict begin 3 5 bop 150 -116 a Fq(Chapter)30 b(1:)41
b(Using)30 b(History)h(In)m(teractiv)m(ely)2016 b(3)150
-299 y Fp(e)432 b Fq(Remo)m(v)m(e)32 b(all)f(but)f(the)h(trailing)g
-(su\016x.)150 458 y Fp(p)432 b Fq(Prin)m(t)30 b(the)h(new)f(command)g
-(but)g(do)g(not)g(execute)i(it.)150 618 y Fp(s/)p Fi(old)p
-Fp(/)p Fi(new)p Fp(/)630 727 y Fq(Substitute)g Fk(new)40
-b Fq(for)32 b(the)h(\014rst)f(o)s(ccurrence)h(of)f Fk(old)37
-b Fq(in)32 b(the)h(ev)m(en)m(t)h(line.)48 b(An)m(y)32
-b(delimiter)630 837 y(ma)m(y)25 b(b)s(e)g(used)f(in)g(place)i(of)f(`)p
-Fp(/)p Fq('.)39 b(The)24 b(delimiter)h(ma)m(y)h(b)s(e)e(quoted)h(in)f
-Fk(old)29 b Fq(and)24 b Fk(new)32 b Fq(with)25 b(a)630
-946 y(single)k(bac)m(kslash.)40 b(If)28 b(`)p Fp(&)p
-Fq(')g(app)s(ears)g(in)f Fk(new)p Fq(,)i(it)f(is)h(replaced)f(b)m(y)g
-Fk(old)p Fq(.)40 b(A)28 b(single)h(bac)m(kslash)630 1056
-y(will)35 b(quote)g(the)g(`)p Fp(&)p Fq('.)54 b(The)34
-b(\014nal)g(delimiter)i(is)e(optional)i(if)f(it)g(is)f(the)h(last)h(c)m
-(haracter)g(on)630 1166 y(the)31 b(input)e(line.)150
-1325 y Fp(&)432 b Fq(Rep)s(eat)31 b(the)f(previous)g(substitution.)150
-1484 y Fp(g)150 1594 y(a)432 b Fq(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f
+299 y Fp(t)432 b Fq(Remo)m(v)m(e)32 b(all)f(leading)h(pathname)e(comp)s
+(onen)m(ts,)h(lea)m(ving)h(the)e(tail.)150 458 y Fp(r)432
+b Fq(Remo)m(v)m(e)32 b(a)f(trailing)g(su\016x)f(of)g(the)h(form)f(`)p
+Fp(.)p Fi(suffix)p Fq(',)f(lea)m(ving)j(the)f(basename.)150
+618 y Fp(e)432 b Fq(Remo)m(v)m(e)32 b(all)f(but)f(the)h(trailing)g
+(su\016x.)150 777 y Fp(p)432 b Fq(Prin)m(t)30 b(the)h(new)f(command)g
+(but)g(do)g(not)g(execute)i(it.)150 936 y Fp(s/)p Fi(old)p
+Fp(/)p Fi(new)p Fp(/)630 1046 y Fq(Substitute)f Fk(new)39
+b Fq(for)32 b(the)g(\014rst)f(o)s(ccurrence)h(of)f Fk(old)36
+b Fq(in)31 b(the)h(ev)m(en)m(t)h(line.)46 b(An)m(y)31
+b(c)m(haracter)630 1156 y(ma)m(y)k(b)s(e)e(used)h(as)g(the)h(delimiter)
+g(in)f(place)h(of)f(`)p Fp(/)p Fq('.)53 b(The)33 b(delimiter)i(ma)m(y)g
+(b)s(e)f(quoted)g(in)630 1265 y Fk(old)40 b Fq(and)c
+Fk(new)44 b Fq(with)36 b(a)h(single)g(bac)m(kslash.)60
+b(If)36 b(`)p Fp(&)p Fq(')h(app)s(ears)e(in)i Fk(new)p
+Fq(,)g(it)h(is)e(replaced)h(b)m(y)630 1375 y Fk(old)p
+Fq(.)k(A)31 b(single)g(bac)m(kslash)g(will)g(quote)g(the)g(`)p
+Fp(&)p Fq('.)41 b(If)31 b Fk(old)j Fq(is)c(n)m(ull,)h(it)g(is)g(set)g
+(to)g(the)g(last)g Fk(old)630 1484 y Fq(substituted,)j(or,)g(if)f(no)g
+(previous)g(history)g(substitutions)g(to)s(ok)h(place,)h(the)e(last)h
+Fk(string)630 1594 y Fq(in)j(a)g(!?)p Fk(string)8 b Fp([?])37
+b Fq(searc)m(h.)61 b(If)37 b Fk(new)45 b Fq(is)37 b(is)g(n)m(ull,)i
+(eac)m(h)f(matc)m(hing)h Fk(old)h Fq(is)e(deleted.)61
+b(The)630 1704 y(\014nal)30 b(delimiter)h(is)g(optional)g(if)f(it)h(is)
+g(the)f(last)i(c)m(haracter)f(on)g(the)f(input)g(line.)150
+1863 y Fp(&)432 b Fq(Rep)s(eat)31 b(the)f(previous)g(substitution.)150
+2022 y Fp(g)150 2132 y(a)432 b Fq(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f
(applied)h(o)m(v)m(er)h(the)f(en)m(tire)g(ev)m(en)m(t)h(line.)66
-b(Used)39 b(in)f(conjunction)630 1704 y(with)30 b(`)p
+b(Used)39 b(in)f(conjunction)630 2242 y(with)30 b(`)p
Fp(s)p Fq(',)h(as)f(in)h Fp(gs/)p Fi(old)p Fp(/)p Fi(new)p
-Fp(/)p Fq(,)c(or)j(with)h(`)p Fp(&)p Fq('.)150 1863 y
+Fp(/)p Fq(,)c(or)j(with)h(`)p Fp(&)p Fq('.)150 2401 y
Fp(G)432 b Fq(Apply)30 b(the)g(follo)m(wing)i(`)p Fp(s)p
-Fq(')f(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m(ord)e(in)g(the)g(ev)m
-(en)m(t.)p eop end
+Fq(')f(or)f(`)p Fp(&)p Fq(')h(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m
+(ord)e(in)g(the)g(ev)m(en)m(t.)p eop end
%%Page: 4 7
TeXDict begin 4 6 bop 3705 -116 a Fq(4)150 299 y Fm(2)80
b(Programming)54 b(with)f(GNU)h(History)150 544 y Fq(This)41
@@ -5443,11 +5466,11 @@ b Fl(gnu)g Fq(History)h(library)f(is)g(able)150 1279
y(to)f(k)m(eep)h(trac)m(k)g(of)f(those)g(lines,)h(asso)s(ciate)g
(arbitrary)f(data)g(with)g(eac)m(h)h(line,)f(and)g(utilize)h
(information)150 1388 y(from)g(previous)g(lines)g(in)g(comp)s(osing)h
-(new)f(ones.)275 1527 y(The)d(programmer)g(using)g(the)g(History)h
-(library)f(has)h(a)m(v)-5 b(ailable)29 b(functions)e(for)h(remem)m(b)s
-(ering)f(lines)150 1636 y(on)21 b(a)g(history)f(list,)k(asso)s(ciating)
-e(arbitrary)e(data)i(with)e(a)h(line,)i(remo)m(ving)f(lines)f(from)f
-(the)h(list,)i(searc)m(hing)150 1746 y(through)35 b(the)g(list)h(for)f
+(new)f(ones.)275 1527 y(A)24 b(programmer)g(using)g(the)h(History)g
+(library)f(has)h(a)m(v)-5 b(ailable)27 b(functions)d(for)g(remem)m(b)s
+(ering)g(lines)h(on)150 1636 y(a)30 b(history)f(list,)h(asso)s(ciating)
+i(arbitrary)d(data)h(with)f(a)g(line,)i(remo)m(ving)f(lines)f(from)g
+(the)h(list,)g(searc)m(hing)150 1746 y(through)35 b(the)g(list)h(for)f
(a)h(line)f(con)m(taining)i(an)e(arbitrary)g(text)h(string,)h(and)e
(referencing)g(an)m(y)h(line)f(in)150 1855 y(the)c(list)g(directly)-8
b(.)43 b(In)30 b(addition,)h(a)g(history)g Fk(expansion)g
@@ -5460,11 +5483,11 @@ Fq(function)f(is)h(a)m(v)-5 b(ailable)33 b(whic)m(h)d(pro)m(vides)h
(text)h(of)f(previous)150 2323 y(lines)28 b(and)f(using)g(that)h(text)g
(in)g(new)f(commands.)39 b(The)27 b(basic)h(history)g(manipulation)f
(commands)h(are)150 2432 y(similar)j(to)g(the)f(history)h(substitution)
-f(pro)m(vided)g(b)m(y)g Fp(csh)p Fq(.)275 2570 y(If)f(the)g(programmer)
-g(desires,)h(he)g(can)f(use)h(the)f(Readline)i(library)-8
-b(,)30 b(whic)m(h)f(includes)g(some)h(history)150 2680
-y(manipulation)h(b)m(y)f(default,)h(and)e(has)i(the)f(added)g(adv)-5
-b(an)m(tage)32 b(of)f(command)f(line)g(editing.)275 2818
+f(pro)m(vided)g(b)m(y)g Fp(csh)p Fq(.)275 2570 y(The)f(programmer)h
+(can)h(also)g(use)g(the)f(Readline)h(library)-8 b(,)31
+b(whic)m(h)f(includes)g(some)h(history)f(manip-)150 2680
+y(ulation)h(b)m(y)f(default,)h(and)f(has)g(the)h(added)e(adv)-5
+b(an)m(tage)33 b(of)d(command)g(line)h(editing.)275 2818
y(Before)39 b(declaring)f(an)m(y)h(functions)e(using)h(an)m(y)g
(functionalit)m(y)i(the)e(History)h(library)e(pro)m(vides)h(in)150
2928 y(other)29 b(co)s(de,)g(an)g(application)h(writer)f(should)e
diff --git a/doc/history.texi b/doc/history.texi
index 98e2233..7a3a476 100644
--- a/doc/history.texi
+++ b/doc/history.texi
@@ -12,7 +12,7 @@ This document describes the GNU History library
a programming tool that provides a consistent user interface for
recalling lines of previously typed input.
-Copyright @copyright{} 1988--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1988--2020 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/history_3.ps b/doc/history_3.ps
index 75b6841..1f2b083 100644
--- a/doc/history_3.ps
+++ b/doc/history_3.ps
@@ -1,10 +1,10 @@
%!PS-Adobe-3.0
-%%Creator: groff version 1.22.3
-%%CreationDate: Thu Dec 14 11:39:35 2017
+%%Creator: groff version 1.22.4
+%%CreationDate: Mon Oct 12 10:59:26 2020
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
-%%DocumentSuppliedResources: procset grops 1.22 3
+%%DocumentSuppliedResources: procset grops 1.22 4
%%Pages: 7
%%PageOrder: Ascend
%%DocumentMedia: Default 612 792 0 () ()
@@ -14,7 +14,7 @@
%%PageMedia: Default
%%EndDefaults
%%BeginProlog
-%%BeginResource: procset grops 1.22 3
+%%BeginResource: procset grops 1.22 4
%!PS-Adobe-3.0 Resource-ProcSet
/setpacking where{
pop
@@ -240,7 +240,7 @@ BP
10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0
(history \255 GNU History Library)108 96 Q F1(COPYRIGHT)72 112.8 Q F0
(The GNU History Library is Cop)108 124.8 Q
-(yright \251 1989-2017 by the Free Softw)-.1 E(are F)-.1 E
+(yright \251 1989-2020 by the Free Softw)-.1 E(are F)-.1 E
(oundation, Inc.)-.15 E F1(DESCRIPTION)72 141.6 Q F0(Man)108 153.6 Q
2.81(yp)-.15 G .31(rograms read input from the user a line at a time.)
-2.81 F .309(The GNU History library is able to k)5.309 F .309
@@ -292,588 +292,605 @@ G(nts are relati).15 E .3 -.15(ve t)-.25 H 2.5(ot).15 G
(Start a history substitution, e)144 429.6 Q(xcept when follo)-.15 E
(wed by a)-.25 E F2(blank)2.5 E F0 2.5(,n)C -.25(ew)-2.5 G
(line, = or \(.).25 E F2(!)108 441.6 Q F3(n)A F0(Refer to command line)
-144 441.6 Q F3(n)2.5 E F0(.).24 E F2<21ad>108 453.6 Q F3(n)A F0
-(Refer to the current command minus)144 453.6 Q F3(n)2.5 E F0(.).24 E F2
-(!!)108 465.6 Q F0(Refer to the pre)144 465.6 Q(vious command.)-.25 E
+144 441.6 Q F3(n)2.86 E F0(.).24 E F2<21ad>108 453.6 Q F3(n)A F0
+(Refer to the current command minus)144 453.6 Q F3(n)2.86 E F0(.).24 E
+F2(!!)108 465.6 Q F0(Refer to the pre)144 465.6 Q(vious command.)-.25 E
(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 477.6 Q F3(string)
A F0 .865(Refer to the most recent command preceding the current positi\
-on in the history list starting with)144 477.6 R F3(string)144 489.6 Q
-F0(.).22 E F2(!?)108 501.6 Q F3(string)A F2([?])A F0 1.503(Refer to the\
- most recent command preceding the current position in the history list\
- containing)144 513.6 R F3(string)144 525.6 Q F0 5(.T).22 G(he trailing)
--5 E F2(?)2.5 E F0(may be omitted if)2.5 E F3(string)2.84 E F0(is follo)
-2.72 E(wed immediately by a ne)-.25 E(wline.)-.25 E/F4 12/Times-Bold@0
-SF(^)108 542.6 Q F3(string1)-5 I F4(^)5 I F3(string2)-5 I F4(^)5 I F0
-2.63(Quick substitution.)144 549.6 R 2.629
-(Repeat the last command, replacing)7.629 F F3(string1)5.469 E F0(with)
-5.129 E F3(string2)5.129 E F0 7.629(.E).02 G(qui)-7.629 E -.25(va)-.25 G
-2.629(lent to).25 F -.74(``)144 561.6 S(!!:s/).74 E F3(string1)A F0(/)A
-F3(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F2(Modi\214ers)2.5 E F0
-(belo)2.5 E(w\).)-.25 E F2(!#)108 573.6 Q F0
-(The entire command line typed so f)144 573.6 Q(ar)-.1 E(.)-.55 E F2
--.75(Wo)87 590.4 S(rd Designators).75 E F0 -.8(Wo)108 602.4 S 1.313
-(rd designators are used to select desired w).8 F 1.314(ords from the e)
--.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F2(:)3.814 E F0 1.314
-(separates the e)3.814 F -.15(ve)-.25 G 1.314(nt speci\214cation).15 F
-.53(from the w)108 614.4 R .529(ord designator)-.1 F 5.529(.I)-.55 G
-3.029(tm)-5.529 G .529(ay be omitted if the w)-3.029 F .529
+on in the history list starting with)144 477.6 R F3(string)144.34 489.6
+Q F0(.).22 E F2(!?)108 501.6 Q F3(string)A F2([?])A F0 1.503(Refer to t\
+he most recent command preceding the current position in the history li\
+st containing)144 513.6 R F3(string)144.34 525.6 Q F0 5.497(.T).22 G
+.497(he trailing)-5.497 F F2(?)2.997 E F0 .497(may be omitted if)2.997 F
+F3(string)3.337 E F0 .496(is follo)3.216 F .496(wed immediately by a ne)
+-.25 F 2.996(wline. If)-.25 F F3(string)2.996 E F0(is)2.996 E .39(missi\
+ng, the string from the most recent search is used; it is an error if t\
+here is no pre)144 537.6 R .391(vious search)-.25 F(string.)144 549.6 Q
+/F4 12/Times-Bold@0 SF(^)108 566.6 Q F3(string1)-5 I F4(^)5 I F3
+(string2)-5 I F4(^)5 I F0 2.599(Quick substitution.)144 573.6 R 2.598
+(Repeat the last command, replacing)7.599 F F3(string1)5.438 E F0(with)
+5.098 E F3(string2)5.438 E F0 7.598(.E).02 G(qui)-7.598 E -.25(va)-.25 G
+2.598(lent to).25 F -.74(``)144 585.6 S(!!:s).74 E/F5 12/Times-Roman@0
+SF(^)5 I F3(string1)-5 I F5(^)5 I F3(string2)-5 I F5(^)5 I F0 1.48 -.74
+('' \()-5 L(see).74 E F2(Modi\214ers)2.5 E F0(belo)2.5 E(w\).)-.25 E F2
+(!#)108 597.6 Q F0(The entire command line typed so f)144 597.6 Q(ar)-.1
+E(.)-.55 E F2 -.75(Wo)87 614.4 S(rd Designators).75 E F0 -.8(Wo)108
+626.4 S 1.313(rd designators are used to select desired w).8 F 1.314
+(ords from the e)-.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F2(:)3.814 E F0
+1.314(separates the e)3.814 F -.15(ve)-.25 G 1.314(nt speci\214cation)
+.15 F .53(from the w)108 638.4 R .529(ord designator)-.1 F 5.529(.I)-.55
+G 3.029(tm)-5.529 G .529(ay be omitted if the w)-3.029 F .529
(ord designator be)-.1 F .529(gins with a)-.15 F F2(^)3.029 E F0(,)A F2
($)3.029 E F0(,)A F2(*)3.029 E F0(,)A F2<ad>3.029 E F0 3.029(,o)C(r)
--3.029 E F2(%)3.029 E F0 5.529(.W)C(ords)-6.329 E 1.3
-(are numbered from the be)108 626.4 R 1.3
-(ginning of the line, with the \214rst w)-.15 F 1.301
-(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)6.301 G 1.301(rds are).8
-F(inserted into the current line separated by single spaces.)108 638.4 Q
-F2 2.5(0\()108 655.2 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 667.2 Q
-2.5(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E
-F3(n)108.36 679.2 Q F0(The)144 679.2 Q F3(n)2.5 E F0(th w)A(ord.)-.1 E
-F2(^)108 691.2 Q F0(The \214rst ar)144 691.2 Q 2.5(gument. That)-.18 F
-(is, w)2.5 E(ord 1.)-.1 E F2($)108 703.2 Q F0 .064(The last w)144 703.2
-R 2.564(ord. This)-.1 F .064(is usually the last ar)2.564 F .064
-(gument, b)-.18 F .064(ut will e)-.2 F .064(xpand to the zeroth w)-.15 F
-.063(ord if there is only)-.1 F(one w)144 715.2 Q(ord in the line.)-.1 E
-(GNU History 6.3)72 768 Q(2017 October 8)133.735 E(1)197.895 E 0 Cg EP
+-3.029 E F2(%)3.029 E F0 5.529(.W)C(ords)-6.329 E .515
+(are numbered from the be)108 650.4 R .516
+(ginning of the line, with the \214rst w)-.15 F .516
+(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)5.516 G .516(rds are in-)
+.8 F(serted into the current line separated by single spaces.)108 662.4
+Q F2 2.5(0\()108 679.2 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 691.2
+Q 2.5(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E
+F3(n)108.36 703.2 Q F0(The)144 703.2 Q F3(n)2.5 E F0(th w)A(ord.)-.1 E
+F2(^)108 715.2 Q F0(The \214rst ar)144 715.2 Q 2.5(gument. That)-.18 F
+(is, w)2.5 E(ord 1.)-.1 E(GNU History 8.1)72 768 Q(2020 July 17)139.005
+E(1)203.165 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 124.845(Y\(3\) Library)
-.65 F(Functions Manual)2.5 E(HIST)127.345 E(OR)-.18 E(Y\(3\))-.65 E/F1
-10/Times-Bold@0 SF(%)108 84 Q F0(The w)144 84 Q
-(ord matched by the most recent `?)-.1 E/F2 10/Times-Italic@0 SF(string)
-A F0(?' search.)A F2(x)108.77 96 Q F1<ad>A F2(y)A F0 2.5(Ar)144 96 S
-(ange of w)-2.5 E(ords; `\255)-.1 E F2(y)A F0 2.5('a)C(bbre)-2.5 E
-(viates `0\255)-.25 E F2(y)A F0('.)A F1(*)108 108 Q F0 .315
-(All of the w)144 108 R .315(ords b)-.1 F .315(ut the zeroth.)-.2 F .315
-(This is a synon)5.315 F .315(ym for `)-.15 F F2(1\255$)A F0 2.815
-('. It)B .315(is not an error to use)2.815 F F1(*)2.816 E F0 .316
-(if there is)2.816 F(just one w)144 120 Q(ord in the e)-.1 E -.15(ve)
--.25 G(nt; the empty string is returned in that case.).15 E F1(x*)108
-132 Q F0(Abbre)144 132 Q(viates)-.25 E F2(x\255$)2.5 E F0(.)A F1<78ad>
-108 144 Q F0(Abbre)144 144 Q(viates)-.25 E F2(x\255$)2.5 E F0(lik)2.5 E
-(e)-.1 E F1(x*)2.5 E F0 2.5(,b)C(ut omits the last w)-2.7 E(ord.)-.1 E
-(If a w)108 160.8 Q(ord designator is supplied without an e)-.1 E -.15
+10/Times-Bold@0 SF($)108 84 Q F0 .064(The last w)144 84 R 2.564
+(ord. This)-.1 F .064(is usually the last ar)2.564 F .064(gument, b)-.18
+F .064(ut will e)-.2 F .064(xpand to the zeroth w)-.15 F .063
+(ord if there is only)-.1 F(one w)144 96 Q(ord in the line.)-.1 E F1(%)
+108 108 Q F0 1.419(The \214rst w)144 108 R 1.419
+(ord matched by the most recent `?)-.1 F/F2 10/Times-Italic@0 SF(string)
+A F0 1.42(?' search, if the search string be)B 1.42(gins with a)-.15 F
+(character that is part of a w)144 120 Q(ord.)-.1 E F2(x)108.77 132 Q F1
+<ad>A F2(y)A F0 2.5(Ar)144 132 S(ange of w)-2.5 E(ords; `\255)-.1 E F2
+(y)A F0 2.5('a)C(bbre)-2.5 E(viates `0\255)-.25 E F2(y)A F0('.)A F1(*)
+108 144 Q F0 .316(All of the w)144 144 R .316(ords b)-.1 F .316
+(ut the zeroth.)-.2 F .315(This is a synon)5.315 F .315(ym for `)-.15 F
+F2(1\255$)A F0 2.815('. It)B .315(is not an error to use)2.815 F F1(*)
+2.815 E F0 .315(if there is)2.815 F(just one w)144 156 Q(ord in the e)
+-.1 E -.15(ve)-.25 G(nt; the empty string is returned in that case.).15
+E F1(x*)108 168 Q F0(Abbre)144 168 Q(viates)-.25 E F2(x\255$)2.5 E F0(.)
+A F1<78ad>108 180 Q F0(Abbre)144 180 Q(viates)-.25 E F2(x\255$)2.5 E F0
+(lik)2.5 E(e)-.1 E F1(x*)2.5 E F0 2.5(,b)C(ut omits the last w)-2.7 E
+2.5(ord. If)-.1 F F1(x)2.5 E F0(is missing, it def)2.5 E(aults to 0.)-.1
+E(If a w)108 196.8 Q(ord designator is supplied without an e)-.1 E -.15
(ve)-.25 G(nt speci\214cation, the pre).15 E
(vious command is used as the e)-.25 E -.15(ve)-.25 G(nt.).15 E F1
-(Modi\214ers)87 177.6 Q F0 .184(After the optional w)108 189.6 R .184
-(ord designator)-.1 F 2.684(,t)-.4 G .183
-(here may appear a sequence of one or more of the follo)-2.684 F .183
-(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 201.6 Q F1(h)108
-218.4 Q F0(Remo)144 218.4 Q .3 -.15(ve a t)-.15 H
+(Modi\214ers)87 213.6 Q F0 .183(After the optional w)108 225.6 R .183
+(ord designator)-.1 F 2.683(,t)-.4 G .184
+(here may appear a sequence of one or more of the follo)-2.683 F .184
+(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 237.6 Q
+(These modify)5 E 2.5(,o)-.65 G 2.5(re)-2.5 G(dit, the w)-2.5 E
+(ord or w)-.1 E(ords selected from the history e)-.1 E -.15(ve)-.25 G
+(nt.).15 E F1(h)108 254.4 Q F0(Remo)144 254.4 Q .3 -.15(ve a t)-.15 H
(railing \214le name component, lea).15 E(ving only the head.)-.2 E F1
-(t)108 230.4 Q F0(Remo)144 230.4 Q .3 -.15(ve a)-.15 H
+(t)108 266.4 Q F0(Remo)144 266.4 Q .3 -.15(ve a)-.15 H
(ll leading \214le name components, lea).15 E(ving the tail.)-.2 E F1(r)
-108 242.4 Q F0(Remo)144 242.4 Q .3 -.15(ve a t)-.15 H(railing suf).15 E
+108 278.4 Q F0(Remo)144 278.4 Q .3 -.15(ve a t)-.15 H(railing suf).15 E
(\214x of the form)-.25 E F2(.xxx)2.5 E F0 2.5(,l)C(ea)-2.5 E
-(ving the basename.)-.2 E F1(e)108 254.4 Q F0(Remo)144 254.4 Q .3 -.15
+(ving the basename.)-.2 E F1(e)108 290.4 Q F0(Remo)144 290.4 Q .3 -.15
(ve a)-.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F1(p)108
-266.4 Q F0(Print the ne)144 266.4 Q 2.5(wc)-.25 G(ommand b)-2.5 E
-(ut do not e)-.2 E -.15(xe)-.15 G(cute it.).15 E F1(q)108 278.4 Q F0
-(Quote the substituted w)144 278.4 Q
-(ords, escaping further substitutions.)-.1 E F1(x)108 290.4 Q F0
-(Quote the substituted w)144 290.4 Q(ords as with)-.1 E F1(q)2.5 E F0
-2.5(,b)C(ut break into w)-2.7 E(ords at)-.1 E F1(blanks)2.5 E F0(and ne)
-2.5 E(wlines.)-.25 E F1(s/)108 302.4 Q F2(old)A F1(/)A F2(ne)A(w)-.15 E
-F1(/)A F0(Substitute)144 314.4 Q F2(ne)3.081 E(w)-.15 E F0 .221
-(for the \214rst occurrence of)3.031 F F2(old)2.951 E F0 .221(in the e)
-3.491 F -.15(ve)-.25 G .221(nt line.).15 F(An)5.221 E 2.721(yd)-.15 G
-.221(elimiter can be used in place)-2.721 F .617(of /.)144 326.4 R .617
+302.4 Q F0(Print the ne)144 302.4 Q 2.5(wc)-.25 G(ommand b)-2.5 E
+(ut do not e)-.2 E -.15(xe)-.15 G(cute it.).15 E F1(q)108 314.4 Q F0
+(Quote the substituted w)144 314.4 Q
+(ords, escaping further substitutions.)-.1 E F1(x)108 326.4 Q F0 .386
+(Quote the substituted w)144 326.4 R .386(ords as with)-.1 F F1(q)2.886
+E F0 2.886(,b)C .386(ut break into w)-3.086 F .385(ords at)-.1 F F1
+(blanks)2.885 E F0 .385(and ne)2.885 F 2.885(wlines. The)-.25 F F1(q)
+2.885 E F0(and)2.885 E F1(x)2.885 E F0(modi\214ers are mutually e)144
+338.4 Q(xclusi)-.15 E -.15(ve)-.25 G 2.5(;t).15 G
+(he last one supplied is used.)-2.5 E F1(s/)108 350.4 Q F2(old)A F1(/)A
+F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 362.4 Q F2(ne)3.328 E(w)-.15 E
+F0 .469(for the \214rst occurrence of)3.278 F F2(old)3.199 E F0 .469
+(in the e)3.739 F -.15(ve)-.25 G .469(nt line.).15 F(An)5.469 E 2.969
+(yc)-.15 G .469(haracter may be used as the)-2.969 F .954
+(delimiter in place of /.)144 374.4 R .953
(The \214nal delimiter is optional if it is the last character of the e)
-5.617 F -.15(ve)-.25 G .617(nt line.).15 F .616(The delimiter may)5.616
-F .666(be quoted in)144 338.4 R F2(old)3.396 E F0(and)3.936 E F2(ne)
-3.526 E(w)-.15 E F0 .666(with a single backslash.)3.476 F .666
-(If & appears in)5.666 F F2(ne)3.166 E(w)-.15 E F0 3.166(,i).31 G 3.166
-(ti)-3.166 G 3.166(sr)-3.166 G .666(eplaced by)-3.166 F F2(old)3.166 E
-F0 5.666(.A).77 G .275(single backslash will quote the &.)144 350.4 R
-(If)5.275 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544
-F F2(old)3.004 E F0 .274(substituted, or)3.544 F 2.774(,i)-.4 G 2.774
-(fn)-2.774 G 2.774(op)-2.774 G(re)-2.774 E(vi-)-.25 E
-(ous history substitutions took place, the last)144 362.4 Q F2(string)
-2.84 E F0(in a)2.72 E F1(!?)2.5 E F2(string)A F1([?])A F0(search.)5 E F1
-(&)108 374.4 Q F0(Repeat the pre)144 374.4 Q(vious substitution.)-.25 E
-F1(g)108 386.4 Q F0 .397(Cause changes to be applied o)144 386.4 R -.15
-(ve)-.15 G 2.897(rt).15 G .398(he entire e)-2.897 F -.15(ve)-.25 G .398
-(nt line.).15 F .398(This is used in conjunction with `)5.398 F F1(:s)A
-F0 2.898('\()C(e.g.,)-2.898 E(`)144 398.4 Q F1(:gs/)A F2(old)A F1(/)A F2
-(ne)A(w)-.15 E F1(/)A F0 1.219('\) or `)B F1(:&)A F0 3.719('. If)B 1.219
-(used with `)3.719 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.218
-(elimiter can be used in place of /, and the \214nal)-3.718 F .089
-(delimiter is optional if it is the last character of the e)144 410.4 R
--.15(ve)-.25 G .09(nt line.).15 F(An)5.09 E F1(a)2.59 E F0 .09
-(may be used as a synon)2.59 F .09(ym for)-.15 F F1(g)144 422.4 Q F0(.)A
-F1(G)108 434.4 Q F0(Apply the follo)144 434.4 Q(wing `)-.25 E F1(s)A F0
-2.5('m)C(odi\214er once to each w)-2.5 E(ord in the e)-.1 E -.15(ve)-.25
-G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(PR)72 451.2 Q
-(OGRAMMING WITH HIST)-.329 E(OR)-.197 E 2.738(YF)-.383 G(UNCTIONS)-2.738
-E F0(This section describes ho)108 463.2 Q 2.5(wt)-.25 G 2.5(ou)-2.5 G
-(se the History library in other programs.)-2.5 E F1(Intr)87 480 Q
-(oduction to History)-.18 E F0 .797
-(The programmer using the History library has a)108 492 R -.25(va)-.2 G
-.796(ilable functions for remembering lines on a history list,).25 F
-.307(associating arbitrary data with a line, remo)108 504 R .308
+5.953 F -.15(ve)-.25 G .953(nt line.).15 F .131
+(The delimiter may be quoted in)144 386.4 R F2(old)2.861 E F0(and)3.401
+E F2(ne)2.991 E(w)-.15 E F0 .131(with a single backslash.)2.941 F .131
+(If & appears in)5.131 F F2(ne)2.991 E(w)-.15 E F0 2.631(,i).31 G 2.631
+(ti)-2.631 G 2.631(sr)-2.631 G(e-)-2.631 E .62(placed by)144 398.4 R F2
+(old)3.349 E F0 5.619(.A).77 G .619(single backslash will quote the &.)
+-2.5 F(If)5.619 E F2(old)3.349 E F0 .619(is null, it is set to the last)
+3.889 F F2(old)3.349 E F0(substi-)3.889 E .486(tuted, or)144 410.4 R
+2.986(,i)-.4 G 2.986(fn)-2.986 G 2.986(op)-2.986 G(re)-2.986 E .486
+(vious history substitutions took place, the last)-.25 F F2(string)3.326
+E F0 .487(in a)3.206 F F1(!?)2.987 E F2(string)A F1([?])A F0 2.987
+(search. If)5.487 F F2(ne)144.36 422.4 Q(w)-.15 E F0
+(is null, each matching)2.81 E F2(old)2.73 E F0(is deleted.)3.27 E F1(&)
+108 434.4 Q F0(Repeat the pre)144 434.4 Q(vious substitution.)-.25 E F1
+(g)108 446.4 Q F0 .398(Cause changes to be applied o)144 446.4 R -.15
+(ve)-.15 G 2.898(rt).15 G .398(he entire e)-2.898 F -.15(ve)-.25 G .398
+(nt line.).15 F .397(This is used in conjunction with `)5.398 F F1(:s)A
+F0 2.897('\()C(e.g.,)-2.897 E(`)144 458.4 Q F1(:gs/)A F2(old)A F1(/)A F2
+(ne)A(w)-.15 E F1(/)A F0 .35('\) or `)B F1(:&)A F0 2.85('. If)B .35
+(used with `)2.85 F F1(:s)A F0 .35(', an)B 2.85(yd)-.15 G .351
+(elimiter can be used in place of /, and the \214nal de-)-2.85 F
+(limiter is optional if it is the last character of the e)144 470.4 Q
+-.15(ve)-.25 G(nt line.).15 E(An)5 E F1(a)2.5 E F0
+(may be used as a synon)2.5 E(ym for)-.15 E F1(g)2.5 E F0(.)A F1(G)108
+482.4 Q F0(Apply the follo)144 482.4 Q(wing `)-.25 E F1(s)A F0 2.5('o)C
+2.5(r`)-2.5 G F1(&)-2.5 E F0 2.5('m)C(odi\214er once to each w)-2.5 E
+(ord in the e)-.1 E -.15(ve)-.25 G(nt line.).15 E/F3 10.95/Times-Bold@0
+SF(PR)72 499.2 Q(OGRAMMING WITH HIST)-.329 E(OR)-.197 E 2.738(YF)-.383 G
+(UNCTIONS)-2.738 E F0(This section describes ho)108 511.2 Q 2.5(wt)-.25
+G 2.5(ou)-2.5 G(se the History library in other programs.)-2.5 E F1
+(Intr)87 528 Q(oduction to History)-.18 E F0 2.883(Ap)108 540 S .383
+(rogrammer using the History library has a)-2.883 F -.25(va)-.2 G .382
+(ilable functions for remembering lines on a history list, as-).25 F .77
+(sociating arbitrary data with a line, remo)108 552 R .771
(ving lines from the list, searching through the list for a line con-)
--.15 F .303(taining an arbitrary te)108 516 R .303
+-.15 F .303(taining an arbitrary te)108 564 R .303
(xt string, and referencing an)-.15 F 2.803(yl)-.15 G .303
(ine in the list directly)-2.803 F 5.303(.I)-.65 G 2.803(na)-5.303 G
.303(ddition, a history)-2.803 F F2 -.2(ex)2.802 G(pansion).2 E F0
-(function is a)108 528 Q -.25(va)-.2 G(ilable which pro).25 E
+(function is a)108 576 Q -.25(va)-.2 G(ilable which pro).25 E
(vides for a consistent user interf)-.15 E(ace across dif)-.1 E
(ferent programs.)-.25 E .059(The user using programs written with the \
-History library has the bene\214t of a consistent user interf)108 544.8
-R .059(ace with a)-.1 F .918(set of well-kno)108 556.8 R .917
+History library has the bene\214t of a consistent user interf)108 592.8
+R .059(ace with a)-.1 F .918(set of well-kno)108 604.8 R .917
(wn commands for manipulating the te)-.25 F .917(xt of pre)-.15 F .917
(vious lines and using that te)-.25 F .917(xt in ne)-.15 F 3.417(wc)-.25
-G(om-)-3.417 E 4.183(mands. The)108 568.8 R 1.684(basic history manipul\
+G(om-)-3.417 E 4.183(mands. The)108 616.8 R 1.684(basic history manipul\
ation commands are identical to the history substitution pro)4.183 F
-1.684(vided by)-.15 F F1(bash)108 580.8 Q F0(.)A .904
-(If the programmer desires, he can use the Readline library)108 597.6 R
-3.403(,w)-.65 G .903(hich includes some history manipulation by)-3.403 F
-(def)108 609.6 Q(ault, and has the added adv)-.1 E
+1.684(vided by)-.15 F F1(bash)108 628.8 Q F0(.)A .915
+(The programmer can also use the Readline library)108 645.6 R 3.415(,w)
+-.65 G .915(hich includes some history manipulation by def)-3.415 F
+(ault,)-.1 E(and has the added adv)108 657.6 Q
(antage of command line editing.)-.25 E .39(Before declaring an)108
-626.4 R 2.89(yf)-.15 G .39(unctions using an)-2.89 F 2.89(yf)-.15 G .39
+674.4 R 2.89(yf)-.15 G .39(unctions using an)-2.89 F 2.89(yf)-.15 G .39
(unctionality the History library pro)-2.89 F .39
(vides in other code, an appli-)-.15 F .067
-(cation writer should include the \214le)108 638.4 R F2(<r)4.233 E
+(cation writer should include the \214le)108 686.4 R F2(<r)4.233 E
(eadline/history)-.37 E(.h>)-.55 E F0 .067(in an)4.233 F 2.566<798c>-.15
G .066(le that uses the History library')-2.566 F 2.566(sf)-.55 G
-(eatures.)-2.566 E .538(It supplies e)108 650.4 R .538
+(eatures.)-2.566 E .538(It supplies e)108 698.4 R .538
(xtern declarations for all of the library')-.15 F 3.038(sp)-.55 G .538
(ublic functions and v)-3.038 F .539(ariables, and declares all of the)
--.25 F(public data structures.)108 662.4 Q F1(History Storage)87 691.2 Q
-F0(The history list is an array of history entries.)108 703.2 Q 2.5(Ah)5
-G(istory entry is declared as follo)-2.5 E(ws:)-.25 E F2(typedef void *)
-108 720 Q F1(histdata_t;)2.5 E F0(GNU History 6.3)72 768 Q
-(2017 October 8)133.735 E(2)197.895 E 0 Cg EP
+-.25 F(public data structures.)108 710.4 Q(GNU History 8.1)72 768 Q
+(2020 July 17)139.005 E(2)203.165 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 124.845(Y\(3\) Library)
--.65 F(Functions Manual)2.5 E(HIST)127.345 E(OR)-.18 E(Y\(3\))-.65 E
-(typedef struct _hist_entry {)108 84 Q(char *line;)113 96 Q
-(char *timestamp;)113 108 Q(histdata_t data;)113 120 Q 2.5(}H)108 132 S
-(IST_ENTR)-2.5 E -.92(Y;)-.65 G
-(The history list itself might therefore be declared as)108 148.8 Q/F1
-10/Times-Italic@0 SF(HIST_ENTR)108 165.6 Q 2.5(Y*)-.18 G(*)-2.5 E/F2 10
-/Times-Bold@0 SF(the_history_list;)2.5 E F0(The state of the History li\
-brary is encapsulated into a single structure:)108 182.4 Q(/*)108 199.2
-Q 2.5(*As)110.5 211.2 S
+-.65 F(Functions Manual)2.5 E(HIST)127.345 E(OR)-.18 E(Y\(3\))-.65 E/F1
+10/Times-Bold@0 SF(History Storage)87 84 Q F0
+(The history list is an array of history entries.)108 96 Q 2.5(Ah)5 G
+(istory entry is declared as follo)-2.5 E(ws:)-.25 E/F2 10
+/Times-Italic@0 SF(typedef void *)108 112.8 Q F1(histdata_t;)2.5 E F0
+(typedef struct _hist_entry {)108 129.6 Q(char *line;)113 141.6 Q
+(char *timestamp;)113 153.6 Q(histdata_t data;)113 165.6 Q 2.5(}H)108
+177.6 S(IST_ENTR)-2.5 E -.92(Y;)-.65 G
+(The history list itself might therefore be declared as)108 194.4 Q F2
+(HIST_ENTR)108 211.2 Q 2.5(Y*)-.18 G(*)-2.5 E F1(the_history_list;)2.5 E
+F0(The state of the History library is encapsulated into a single struc\
+ture:)108 228 Q(/*)108 244.8 Q 2.5(*As)110.5 256.8 S
(tructure used to pass around the current state of the history)-2.5 E(.)
--.65 E(*/)110.5 223.2 Q(typedef struct _hist_state {)108 235.2 Q
-(HIST_ENTR)113 247.2 Q 2.5(Y*)-.65 G
+-.65 E(*/)110.5 268.8 Q(typedef struct _hist_state {)108 280.8 Q
+(HIST_ENTR)113 292.8 Q 2.5(Y*)-.65 G
(*entries; /* Pointer to the entries themselv)-2.5 E(es. */)-.15 E
-(int of)113 259.2 Q 25(fset; /*)-.25 F
+(int of)113 304.8 Q 25(fset; /*)-.25 F
(The location pointer within this array)2.5 E 2.5(.*)-.65 G(/)-2.5 E
-(int length;)113 271.2 Q(/* Number of elements within this array)27.5 E
-2.5(.*)-.65 G(/)-2.5 E(int size;)113 283.2 Q
+(int length;)113 316.8 Q(/* Number of elements within this array)27.5 E
+2.5(.*)-.65 G(/)-2.5 E(int size;)113 328.8 Q
(/* Number of slots allocated to this array)32.5 E 2.5(.*)-.65 G(/)-2.5
-E(int \215ags;)113 295.2 Q 2.5(}H)108 307.2 S(IST)-2.5 E(OR)-.18 E(Y_ST)
--.65 E -1.11(AT)-.93 G(E;)1.11 E(If the \215ags member includes)108 324
-Q F2(HS_STIFLED)2.5 E F0 2.5(,t)C(he history has been sti\215ed.)-2.5 E
-/F3 10.95/Times-Bold@0 SF(History Functions)72 340.8 Q F0
-(This section describes the calling sequence for the v)108 352.8 Q
+E(int \215ags;)113 340.8 Q 2.5(}H)108 352.8 S(IST)-2.5 E(OR)-.18 E(Y_ST)
+-.65 E -1.11(AT)-.93 G(E;)1.11 E(If the \215ags member includes)108
+369.6 Q F1(HS_STIFLED)2.5 E F0 2.5(,t)C(he history has been sti\215ed.)
+-2.5 E/F3 10.95/Times-Bold@0 SF(History Functions)72 386.4 Q F0
+(This section describes the calling sequence for the v)108 398.4 Q
(arious functions e)-.25 E(xported by the GNU History library)-.15 E(.)
--.65 E F2(Initializing History and State Management)87 369.6 Q F0 1.274
+-.65 E F1(Initializing History and State Management)87 415.2 Q F0 1.274
(This section describes functions used to initialize and manage the sta\
-te of the History library when you)108 381.6 R -.1(wa)108 393.6 S
-(nt to use the history functions in your program.).1 E F1(void)108 417.6
-Q F2(using_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E(Be)108
-429.6 Q(gin a session in which the history functions might be used.)-.15
+te of the History library when you)108 427.2 R -.1(wa)108 439.2 S
+(nt to use the history functions in your program.).1 E F2(void)108 463.2
+Q F1(using_history)2.5 E F0(\()4.166 E F2(void)A F0(\))1.666 E(Be)108
+475.2 Q(gin a session in which the history functions might be used.)-.15
E(This initializes the interacti)5 E .3 -.15(ve v)-.25 H(ariables.)-.1 E
-F1(HIST)108 453.6 Q(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5(E*).37 G F2
-(history_get_history_state)A F0(\()4.166 E F1(void)A F0(\))1.666 E
+F2(HIST)108 499.2 Q(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5(E*).37 G F1
+(history_get_history_state)A F0(\()4.166 E F2(void)A F0(\))1.666 E
(Return a structure describing the current state of the input history)
-108 465.6 Q(.)-.65 E F1(void)108 489.6 Q F2(history_set_history_state)
-2.5 E F0(\()4.166 E F1(HIST)A(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5
+108 511.2 Q(.)-.65 E F2(void)108 535.2 Q F1(history_set_history_state)
+2.5 E F0(\()4.166 E F2(HIST)A(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5
(E*).37 G(state)-2.5 E F0(\))1.666 E
-(Set the state of the history list according to)108 501.6 Q F1(state)2.5
-E F0(.)A F2(History List Management)87 530.4 Q F0
-(These functions manage indi)108 542.4 Q(vidual entries on the history \
-list, or set parameters managing the list itself.)-.25 E F1(void)108
-566.4 Q F2(add_history)2.5 E F0(\()4.166 E F1(const c)A(har *string)-.15
-E F0(\))1.666 E(Place)108 578.4 Q F1(string)3.279 E F0 .779
+(Set the state of the history list according to)108 547.2 Q F2(state)2.5
+E F0(.)A F1(History List Management)87 576 Q F0
+(These functions manage indi)108 588 Q(vidual entries on the history li\
+st, or set parameters managing the list itself.)-.25 E F2(void)108 612 Q
+F1(add_history)2.5 E F0(\()4.166 E F2(const c)A(har *string)-.15 E F0
+(\))1.666 E(Place)108 624 Q F2(string)3.279 E F0 .779
(at the end of the history list.)3.279 F .779
(The associated data \214eld \(if an)5.779 F .779(y\) is set to)-.15 F
-F2(NULL)3.279 E F0 5.779(.I)C 3.279(ft)-5.779 G .78(he maxi-)-3.279 F
-.787(mum number of history entries has been set using)108 590.4 R F2
+F1(NULL)3.279 E F0 5.779(.I)C 3.279(ft)-5.779 G .78(he maxi-)-3.279 F
+.787(mum number of history entries has been set using)108 636 R F1
(sti\215e_history\(\))3.286 E F0 3.286(,a)C .786(nd the ne)-3.286 F
-3.286(wn)-.25 G .786(umber of history entries)-3.286 F -.1(wo)108 602.4
-S(uld e).1 E(xceed that maximum, the oldest history entry is remo)-.15 E
--.15(ve)-.15 G(d.).15 E F1(void)108 626.4 Q F2(add_history_time)2.5 E F0
-(\()4.166 E F1(const c)A(har *string)-.15 E F0(\))1.666 E
+3.286(wn)-.25 G .786(umber of history entries)-3.286 F -.1(wo)108 648 S
+(uld e).1 E(xceed that maximum, the oldest history entry is remo)-.15 E
+-.15(ve)-.15 G(d.).15 E F2(void)108 672 Q F1(add_history_time)2.5 E F0
+(\()4.166 E F2(const c)A(har *string)-.15 E F0(\))1.666 E
(Change the time stamp associated with the most recent history entry to)
-108 638.4 Q F1(string)2.5 E F0(.)A F1(HIST_ENTR)108 662.4 Q 2.5(Y*)-.18
-G F2 -.18(re)C(mo).18 E -.1(ve)-.1 G(_history).1 E F0(\()4.166 E F1
-(int whic)A(h)-.15 E F0(\))1.666 E(Remo)108 674.4 Q .352 -.15(ve h)-.15
-H .052(istory entry at of).15 F(fset)-.25 E F1(whic)2.553 E(h)-.15 E F0
-.053(from the history)2.553 F 5.053(.T)-.65 G .053(he remo)-5.053 F -.15
-(ve)-.15 G 2.553(de).15 G .053(lement is returned so you can free the)
--2.553 F(line, data, and containing structure.)108 686.4 Q F1
-(histdata_t)108 710.4 Q F2(fr)2.5 E(ee_history_entry)-.18 E F0(\()4.166
-E F1(HIST_ENTR)A 2.5(Y*)-.18 G(histent)-2.5 E F0(\))1.666 E 3.31
-(Free the history entry)108 722.4 R F1(histent)5.81 E F0 3.309(and an)
-5.81 F 5.809(yh)-.15 G 3.309(istory library pri)-5.809 F -.25(va)-.25 G
-3.309(te data associated with it.).25 F 3.309(Returns the)8.309 F
-(GNU History 6.3)72 768 Q(2017 October 8)133.735 E(3)197.895 E 0 Cg EP
+108 684 Q F2(string)2.5 E F0(.)A F2(HIST_ENTR)108 708 Q 2.5(Y*)-.18 G F1
+-.18(re)C(mo).18 E -.1(ve)-.1 G(_history).1 E F0(\()4.166 E F2(int whic)
+A(h)-.15 E F0(\))1.666 E(Remo)108 720 Q .352 -.15(ve h)-.15 H .052
+(istory entry at of).15 F(fset)-.25 E F2(whic)2.553 E(h)-.15 E F0 .053
+(from the history)2.553 F 5.053(.T)-.65 G .053(he remo)-5.053 F -.15(ve)
+-.15 G 2.553(de).15 G .053(lement is returned so you can free the)-2.553
+F(GNU History 8.1)72 768 Q(2020 July 17)139.005 E(3)203.165 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 124.845(Y\(3\) Library)
-.65 F(Functions Manual)2.5 E(HIST)127.345 E(OR)-.18 E(Y\(3\))-.65 E
-(application-speci\214c data so the caller can dispose of it.)108 84 Q
-/F1 10/Times-Italic@0 SF(HIST_ENTR)108 108 Q 2.5(Y*)-.18 G/F2 10
-/Times-Bold@0 SF -.18(re)C(place_history_entry).18 E F0(\()4.166 E F1
-(int whic)A -.834(h, const)-.15 F -.15(ch)2.5 G(ar *line).15 E 1.666(,h)
--.1 G(istdata_t data)-1.666 E F0(\))3.332 E(Mak)108 120 Q 3.062(et)-.1 G
-.562(he history entry at of)-3.062 F(fset)-.25 E F1(whic)3.062 E(h)-.15
-E F0(ha)3.062 E -.15(ve)-.2 G F1(line)3.212 E F0(and)3.062 E F1(data)
-3.062 E F0 5.563(.T)C .563
+(line, data, and containing structure.)108 84 Q/F1 10/Times-Italic@0 SF
+(histdata_t)108 108 Q/F2 10/Times-Bold@0 SF(fr)2.5 E(ee_history_entry)
+-.18 E F0(\()4.166 E F1(HIST_ENTR)A 2.5(Y*)-.18 G(histent)-2.5 E F0(\))
+1.666 E .934(Free the history entry)108 120 R F1(histent)3.433 E F0 .933
+(and an)3.433 F 3.433(yh)-.15 G .933(istory library pri)-3.433 F -.25
+(va)-.25 G .933(te data associated with it.).25 F .933
+(Returns the applica-)5.933 F
+(tion-speci\214c data so the caller can dispose of it.)108 132 Q F1
+(HIST_ENTR)108 156 Q 2.5(Y*)-.18 G F2 -.18(re)C(place_history_entry).18
+E F0(\()4.166 E F1(int whic)A -.834(h, const)-.15 F -.15(ch)2.5 G
+(ar *line).15 E 1.666(,h)-.1 G(istdata_t data)-1.666 E F0(\))3.332 E
+(Mak)108 168 Q 3.062(et)-.1 G .562(he history entry at of)-3.062 F(fset)
+-.25 E F1(whic)3.062 E(h)-.15 E F0(ha)3.062 E -.15(ve)-.2 G F1(line)
+3.212 E F0(and)3.062 E F1(data)3.062 E F0 5.563(.T)C .563
(his returns the old entry so the caller can dis-)-5.563 F(pose of an)
-108 132 Q 2.5(ya)-.15 G(pplication-speci\214c data.)-2.5 E
+108 180 Q 2.5(ya)-.15 G(pplication-speci\214c data.)-2.5 E
(In the case of an in)5 E -.25(va)-.4 G(lid).25 E F1(whic)2.5 E(h)-.15 E
-F0 2.5(,a)C F2(NULL)A F0(pointer is returned.)2.5 E F1(void)108 156 Q F2
+F0 2.5(,a)C F2(NULL)A F0(pointer is returned.)2.5 E F1(void)108 204 Q F2
(clear_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E
-(Clear the history list by deleting all the entries.)108 168 Q F1(void)
-108 192 Q F2(sti\215e_history)2.5 E F0(\()4.166 E F1(int max)A F0(\))
-1.666 E .38(Sti\215e the history list, remembering only the last)108 204
+(Clear the history list by deleting all the entries.)108 216 Q F1(void)
+108 240 Q F2(sti\215e_history)2.5 E F0(\()4.166 E F1(int max)A F0(\))
+1.666 E .38(Sti\215e the history list, remembering only the last)108 252
R F1(max)2.88 E F0 2.88(entries. The)2.88 F .38
(history list will contain only)2.88 F F1(max)2.88 E F0(entries)2.88 E
-(at a time.)108 216 Q F1(int)108 240 Q F2(unsti\215e_history)2.5 E F0
+(at a time.)108 264 Q F1(int)108 288 Q F2(unsti\215e_history)2.5 E F0
(\()4.166 E F1(void)A F0(\))1.666 E .46(Stop sti\215ing the history)108
-252 R 5.46(.T)-.65 G .46(his returns the pre)-5.46 F .46
+300 R 5.46(.T)-.65 G .46(his returns the pre)-5.46 F .46
(viously-set maximum number of history entries \(as set by)-.25 F F2
-(sti-)2.96 E(\215e_history\(\))108 264 Q F0 2.5(\). history)B -.1(wa)2.5
+(sti-)2.96 E(\215e_history\(\))108 312 Q F0 2.5(\). history)B -.1(wa)2.5
G 2.5(ss).1 G 2.5(ti\215ed. The)-2.5 F -.25(va)2.5 G(lue is positi).25 E
.3 -.15(ve i)-.25 H 2.5(ft).15 G(he history w)-2.5 E(as sti\215ed, ne)
-.1 E -.05(ga)-.15 G(ti).05 E .3 -.15(ve i)-.25 H 2.5(fi).15 G 2.5(tw)
--2.5 G(asn')-2.6 E(t.)-.18 E F1(int)108 288 Q F2(history_is_sti\215ed)
+-2.5 G(asn')-2.6 E(t.)-.18 E F1(int)108 336 Q F2(history_is_sti\215ed)
2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E
(Returns non-zero if the history is sti\215ed, zero if it is not.)108
-300 Q F2(Inf)87 328.8 Q(ormation About the History List)-.25 E F0(These\
+348 Q F2(Inf)87 376.8 Q(ormation About the History List)-.25 E F0(These\
functions return information about the entire history list or indi)108
-340.8 Q(vidual list entries.)-.25 E F1(HIST_ENTR)108 364.8 Q 2.5(Y*)-.18
+388.8 Q(vidual list entries.)-.25 E F1(HIST_ENTR)108 412.8 Q 2.5(Y*)-.18
G(*)-2.5 E F2(history_list)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E
-.708(Return a)108 376.8 R F2(NULL)3.208 E F0 .708(terminated array of)
+.708(Return a)108 424.8 R F2(NULL)3.208 E F0 .708(terminated array of)
3.208 F F1(HIST_ENTR)3.208 E 3.208(Y*)-.18 G F0 .708
(which is the current input history)B 5.707(.E)-.65 G .707
-(lement 0 of this)-5.707 F(list is the be)108 388.8 Q(ginning of time.)
+(lement 0 of this)-5.707 F(list is the be)108 436.8 Q(ginning of time.)
-.15 E(If there is no history)5 E 2.5(,r)-.65 G(eturn)-2.5 E F2(NULL)2.5
-E F0(.)A F1(int)108 412.8 Q F2(wher)2.5 E(e_history)-.18 E F0(\()4.166 E
-F1(void)A F0(\))1.666 E(Returns the of)108 424.8 Q
-(fset of the current history element.)-.25 E F1(HIST_ENTR)108 448.8 Q
+E F0(.)A F1(int)108 460.8 Q F2(wher)2.5 E(e_history)-.18 E F0(\()4.166 E
+F1(void)A F0(\))1.666 E(Returns the of)108 472.8 Q
+(fset of the current history element.)-.25 E F1(HIST_ENTR)108 496.8 Q
2.5(Y*)-.18 G F2(curr)A(ent_history)-.18 E F0(\()4.166 E F1(void)A F0
(\))1.666 E 1.373
(Return the history entry at the current position, as determined by)108
-460.8 R F2(wher)3.873 E(e_history\(\))-.18 E F0 6.373(.I)C 3.873(ft)
--6.373 G 1.374(here is no entry)-3.873 F(there, return a)108 472.8 Q F2
-(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1(HIST_ENTR)108 496.8 Q 2.5(Y*)
+508.8 R F2(wher)3.873 E(e_history\(\))-.18 E F0 6.373(.I)C 3.873(ft)
+-6.373 G 1.374(here is no entry)-3.873 F(there, return a)108 520.8 Q F2
+(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1(HIST_ENTR)108 544.8 Q 2.5(Y*)
-.18 G F2(history_get)A F0(\()4.166 E F1(int of)A(fset)-.18 E F0(\))
-1.666 E 1.069(Return the history entry at position)108 508.8 R F1(of)
+1.666 E 1.069(Return the history entry at position)108 556.8 R F1(of)
3.569 E(fset)-.18 E F0 6.069(.T)C 1.069(he range of v)-6.069 F 1.069
(alid v)-.25 F 1.069(alues of)-.25 F F1(of)3.569 E(fset)-.18 E F0 1.068
(starts at)3.569 F F2(history_base)3.568 E F0(and)3.568 E .286(ends at)
-108 520.8 R F2(history_length)2.786 E F0 2.786<ad31>2.786 G 5.286(.I)
+108 568.8 R F2(history_length)2.786 E F0 2.786<ad31>2.786 G 5.286(.I)
-2.786 G 2.786(ft)-5.286 G .286(here is no entry there, or if)-2.786 F
F1(of)2.786 E(fset)-.18 E F0 .286(is outside the v)2.786 F .287
-(alid range, return a)-.25 F F2(NULL)2.787 E F0(pointer)108 532.8 Q(.)
--.55 E F1(time_t)108 556.8 Q F2(history_get_time)2.5 E F0(\()4.166 E F1
+(alid range, return a)-.25 F F2(NULL)2.787 E F0(pointer)108 580.8 Q(.)
+-.55 E F1(time_t)108 604.8 Q F2(history_get_time)2.5 E F0(\()4.166 E F1
(HIST_ENTR)A 2.5(Y*)-.18 G F0(\))-.834 E(Return the time stamp associat\
-ed with the history entry passed as the ar)108 568.8 Q(gument.)-.18 E F1
-(int)108 592.8 Q F2(history_total_bytes)2.5 E F0(\()4.166 E F1(void)A F0
+ed with the history entry passed as the ar)108 616.8 Q(gument.)-.18 E F1
+(int)108 640.8 Q F2(history_total_bytes)2.5 E F0(\()4.166 E F1(void)A F0
(\))1.666 E .392
(Return the number of bytes that the primary history entries are using.)
-108 604.8 R .391(This function returns the sum of the)5.392 F
-(lengths of all the lines in the history)108 616.8 Q(.)-.65 E F2(Mo)87
-645.6 Q(ving Ar)-.1 E(ound the History List)-.18 E F0
-(These functions allo)108 657.6 Q 2.5(wt)-.25 G(he current inde)-2.5 E
+108 652.8 R .391(This function returns the sum of the)5.392 F
+(lengths of all the lines in the history)108 664.8 Q(.)-.65 E F2(Mo)87
+693.6 Q(ving Ar)-.1 E(ound the History List)-.18 E F0
+(These functions allo)108 705.6 Q 2.5(wt)-.25 G(he current inde)-2.5 E
2.5(xi)-.15 G(nto the history list to be set or changed.)-2.5 E F1(int)
-108 681.6 Q F2(history_set_pos)2.5 E F0(\()4.166 E F1(int pos)A F0(\))
-1.666 E .79(Set the current history of)108 693.6 R .79(fset to)-.25 F F1
-(pos)3.29 E F0 3.29(,a)C 3.29(na)-3.29 G .79(bsolute inde)-3.29 F 3.29
-(xi)-.15 G .79(nto the list.)-3.29 F .79(Returns 1 on success, 0 if)5.79
-F F1(pos)3.29 E F0 .79(is less)3.29 F
-(than zero or greater than the number of history entries.)108 705.6 Q F1
-(HIST_ENTR)108 729.6 Q 2.5(Y*)-.18 G F2(pr)A -.15(ev)-.18 G
-(ious_history).15 E F0(\()4.166 E F1(void)A F0(\))1.666 E
-(GNU History 6.3)72 768 Q(2017 October 8)133.735 E(4)197.895 E 0 Cg EP
+108 729.6 Q F2(history_set_pos)2.5 E F0(\()4.166 E F1(int pos)A F0(\))
+1.666 E(GNU History 8.1)72 768 Q(2020 July 17)139.005 E(4)203.165 E 0 Cg
+EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 124.845(Y\(3\) Library)
--.65 F(Functions Manual)2.5 E(HIST)127.345 E(OR)-.18 E(Y\(3\))-.65 E
-.208(Back up the current history of)108 84 R .208(fset to the pre)-.25 F
+-.65 F(Functions Manual)2.5 E(HIST)127.345 E(OR)-.18 E(Y\(3\))-.65 E .79
+(Set the current history of)108 84 R .79(fset to)-.25 F/F1 10
+/Times-Italic@0 SF(pos)3.29 E F0 3.29(,a)C 3.29(na)-3.29 G .79
+(bsolute inde)-3.29 F 3.29(xi)-.15 G .79(nto the list.)-3.29 F .79
+(Returns 1 on success, 0 if)5.79 F F1(pos)3.29 E F0 .79(is less)3.29 F
+(than zero or greater than the number of history entries.)108 96 Q F1
+(HIST_ENTR)108 120 Q 2.5(Y*)-.18 G/F2 10/Times-Bold@0 SF(pr)A -.15(ev)
+-.18 G(ious_history).15 E F0(\()4.166 E F1(void)A F0(\))1.666 E .208
+(Back up the current history of)108 132 R .208(fset to the pre)-.25 F
.208(vious history entry)-.25 F 2.707(,a)-.65 G .207
(nd return a pointer to that entry)-2.707 F 5.207(.I)-.65 G 2.707(ft)
--5.207 G .207(here is)-2.707 F(no pre)108 96 Q(vious entry)-.25 E 2.5
-(,r)-.65 G(eturn a)-2.5 E/F1 10/Times-Bold@0 SF(NULL)2.5 E F0(pointer)
-2.5 E(.)-.55 E/F2 10/Times-Italic@0 SF(HIST_ENTR)108 120 Q 2.5(Y*)-.18 G
-F1(next_history)A F0(\()4.166 E F2(void)A F0(\))1.666 E .332
-(If the current history of)108 132 R .333(fset refers to a v)-.25 F .333
-(alid history entry)-.25 F 2.833(,i)-.65 G .333
-(ncrement the current history of)-2.833 F 2.833(fset. If)-.25 F .333
-(the possi-)2.833 F .202(bly-incremented history of)108 144 R .202
+-5.207 G .207(here is)-2.707 F(no pre)108 144 Q(vious entry)-.25 E 2.5
+(,r)-.65 G(eturn a)-2.5 E F2(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1
+(HIST_ENTR)108 168 Q 2.5(Y*)-.18 G F2(next_history)A F0(\()4.166 E F1
+(void)A F0(\))1.666 E .332(If the current history of)108 180 R .333
+(fset refers to a v)-.25 F .333(alid history entry)-.25 F 2.833(,i)-.65
+G .333(ncrement the current history of)-2.833 F 2.833(fset. If)-.25 F
+.333(the possi-)2.833 F .202(bly-incremented history of)108 192 R .202
(fset refers to a v)-.25 F .202(alid history entry)-.25 F 2.702(,r)-.65
G .202(eturn a pointer to that entry; otherwise, return)-2.702 F(a)108
-156 Q F1(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1(Sear)87 184.8 Q
-(ching the History List)-.18 E F0 .005(These functions allo)108 196.8 R
+204 Q F2(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F2(Sear)87 232.8 Q
+(ching the History List)-.18 E F0 .005(These functions allo)108 244.8 R
2.505(ws)-.25 G .006(earching of the history list for entries containin\
g a speci\214c string.)-2.505 F .006(Searching may be)5.006 F 1.452
-(performed both forw)108 208.8 R 1.452(ard and backw)-.1 F 1.451
+(performed both forw)108 256.8 R 1.452(ard and backw)-.1 F 1.451
(ard from the current history position.)-.1 F 1.451(The search may be)
-6.451 F F2(anc)3.951 E(hor)-.15 E(ed)-.37 E F0(,)A
-(meaning that the string must match at the be)108 220.8 Q
-(ginning of the history entry)-.15 E(.)-.65 E F2(int)108 244.8 Q F1
-(history_sear)2.5 E(ch)-.18 E F0(\()4.166 E F2(const c)A(har *string)
+6.451 F F1(anc)3.951 E(hor)-.15 E(ed)-.37 E F0(,)A
+(meaning that the string must match at the be)108 268.8 Q
+(ginning of the history entry)-.15 E(.)-.65 E F1(int)108 292.8 Q F2
+(history_sear)2.5 E(ch)-.18 E F0(\()4.166 E F1(const c)A(har *string)
-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E(ection)-.37 E F0(\))1.666 E .155
-(Search the history for)108 256.8 R F2(string)2.655 E F0 2.656(,s)C .156
-(tarting at the current history of)-2.656 F 2.656(fset. If)-.25 F F2
+(Search the history for)108 304.8 R F1(string)2.655 E F0 2.656(,s)C .156
+(tarting at the current history of)-2.656 F 2.656(fset. If)-.25 F F1
(dir)2.656 E(ection)-.37 E F0 .156(is less than 0, then the search)2.656
-F .802(is through pre)108 268.8 R .802
+F .802(is through pre)108 316.8 R .802
(vious entries, otherwise through subsequent entries.)-.25 F(If)5.801 E
-F2(string)3.301 E F0 .801(is found, then the current his-)3.301 F .064
-(tory inde)108 280.8 R 2.564(xi)-.15 G 2.564(ss)-2.564 G .064
+F1(string)3.301 E F0 .801(is found, then the current his-)3.301 F .064
+(tory inde)108 328.8 R 2.564(xi)-.15 G 2.564(ss)-2.564 G .064
(et to that history entry)-2.564 F 2.564(,a)-.65 G .064(nd the v)-2.564
F .064(alue returned is the of)-.25 F .064
-(fset in the line of the entry where)-.25 F F2(string)2.565 E F0 -.1(wa)
-108 292.8 S 2.5(sf).1 G 2.5(ound. Otherwise,)-2.5 F
-(nothing is changed, and a -1 is returned.)2.5 E F2(int)108 316.8 Q F1
-(history_sear)2.5 E(ch_pr)-.18 E(e\214x)-.18 E F0(\()4.166 E F2(const c)
+(fset in the line of the entry where)-.25 F F1(string)2.565 E F0 -.1(wa)
+108 340.8 S 2.5(sf).1 G 2.5(ound. Otherwise,)-2.5 F
+(nothing is changed, and a -1 is returned.)2.5 E F1(int)108 364.8 Q F2
+(history_sear)2.5 E(ch_pr)-.18 E(e\214x)-.18 E F0(\()4.166 E F1(const c)
A(har *string)-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E(ection)-.37 E F0(\))
-1.666 E .684(Search the history for)108 328.8 R F2(string)3.183 E F0
+1.666 E .684(Search the history for)108 376.8 R F1(string)3.183 E F0
3.183(,s)C .683(tarting at the current history of)-3.183 F 3.183
(fset. The)-.25 F .683(search is anchored: matching lines)3.183 F 1.063
-(must be)108 340.8 R 1.063(gin with)-.15 F F2(string)3.563 E F0 6.063
-(.I)C(f)-6.063 E F2(dir)3.563 E(ection)-.37 E F0 1.064
+(must be)108 388.8 R 1.063(gin with)-.15 F F1(string)3.563 E F0 6.063
+(.I)C(f)-6.063 E F1(dir)3.563 E(ection)-.37 E F0 1.064
(is less than 0, then the search is through pre)3.563 F 1.064
-(vious entries, otherwise)-.25 F 1.115(through subsequent entries.)108
-352.8 R(If)6.115 E F2(string)3.615 E F0 1.115
-(is found, then the current history inde)3.615 F 3.614(xi)-.15 G 3.614
-(ss)-3.614 G 1.114(et to that entry)-3.614 F 3.614(,a)-.65 G 1.114
-(nd the)-3.614 F(return v)108 364.8 Q(alue is 0.)-.25 E
-(Otherwise, nothing is changed, and a -1 is returned.)5 E F2(int)108
-388.8 Q F1(history_sear)2.5 E(ch_pos)-.18 E F0(\()4.166 E F2(const c)A
+(vious entries, otherwise)-.25 F .34(through subsequent entries.)108
+400.8 R(If)5.34 E F1(string)2.84 E F0 .34
+(is found, then the current history inde)2.84 F 2.84(xi)-.15 G 2.84(ss)
+-2.84 G .34(et to that entry)-2.84 F 2.84(,a)-.65 G .34(nd the re-)-2.84
+F(turn v)108 412.8 Q(alue is 0.)-.25 E
+(Otherwise, nothing is changed, and a -1 is returned.)5 E F1(int)108
+436.8 Q F2(history_sear)2.5 E(ch_pos)-.18 E F0(\()4.166 E F1(const c)A
(har *string)-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E -.834(ection, int)
--.37 F(pos)2.5 E F0(\))3.332 E .603(Search for)108 400.8 R F2(string)
-3.103 E F0 .603(in the history list, starting at)3.103 F F2(pos)3.104 E
+-.37 F(pos)2.5 E F0(\))3.332 E .603(Search for)108 448.8 R F1(string)
+3.103 E F0 .603(in the history list, starting at)3.103 F F1(pos)3.104 E
F0 3.104(,a)C 3.104(na)-3.104 G .604(bsolute inde)-3.104 F 3.104(xi)-.15
-G .604(nto the list.)-3.104 F(If)5.604 E F2(dir)3.104 E(ection)-.37 E F0
+G .604(nto the list.)-3.104 F(If)5.604 E F1(dir)3.104 E(ection)-.37 E F0
.604(is ne)3.104 F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(,).15 E .608
-(the search proceeds backw)108 412.8 R .608(ard from)-.1 F F2(pos)3.108
+(the search proceeds backw)108 460.8 R .608(ard from)-.1 F F1(pos)3.108
E F0 3.108(,o)C .608(therwise forw)-3.108 F 3.108(ard. Returns)-.1 F
.608(the absolute inde)3.108 F 3.108(xo)-.15 G 3.108(ft)-3.108 G .608
-(he history ele-)-3.108 F(ment where)108 424.8 Q F2(string)2.5 E F0 -.1
-(wa)2.5 G 2.5(sf).1 G(ound, or -1 otherwise.)-2.5 E F1
-(Managing the History File)87 453.6 Q F0 .035(The History library can r\
-ead the history from and write it to a \214le.)108 465.6 R .036
+(he history ele-)-3.108 F(ment where)108 472.8 Q F1(string)2.5 E F0 -.1
+(wa)2.5 G 2.5(sf).1 G(ound, or -1 otherwise.)-2.5 E F2
+(Managing the History File)87 501.6 Q F0 .035(The History library can r\
+ead the history from and write it to a \214le.)108 513.6 R .036
(This section documents the functions for)5.035 F
-(managing a history \214le.)108 477.6 Q F2(int)108 501.6 Q F1 -.18(re)
-2.5 G(ad_history).18 E F0(\()4.166 E F2(const c)A(har *\214lename)-.15 E
-F0(\))1.666 E .151(Add the contents of)108 513.6 R F2(\214lename)2.651 E
-F0 .151(to the history list, a line at a time.)2.651 F(If)5.15 E F2
-(\214lename)2.65 E F0(is)2.65 E F1(NULL)2.65 E F0 2.65(,t)C .15
-(hen read from)-2.65 F F2(~/.his-)2.65 E(tory)108 525.6 Q F0 5(.R)C
-(eturns 0 if successful, or)-5 E F1(err)2.5 E(no)-.15 E F0(if not.)2.5 E
-F2(int)108 549.6 Q F1 -.18(re)2.5 G(ad_history_range).18 E F0(\()4.166 E
-F2(const c)A(har *\214lename)-.15 E 1.666(,i)-.1 G(nt fr)-1.666 E -.834
+(managing a history \214le.)108 525.6 Q F1(int)108 549.6 Q F2 -.18(re)
+2.5 G(ad_history).18 E F0(\()4.166 E F1(const c)A(har *\214lename)-.15 E
+F0(\))1.666 E .151(Add the contents of)108 561.6 R F1(\214lename)2.651 E
+F0 .151(to the history list, a line at a time.)2.651 F(If)5.15 E F1
+(\214lename)2.65 E F0(is)2.65 E F2(NULL)2.65 E F0 2.65(,t)C .15
+(hen read from)-2.65 F F1(~/.his-)2.65 E(tory)108 573.6 Q F0 5(.R)C
+(eturns 0 if successful, or)-5 E F2(err)2.5 E(no)-.15 E F0(if not.)2.5 E
+F1(int)108 597.6 Q F2 -.18(re)2.5 G(ad_history_range).18 E F0(\()4.166 E
+F1(const c)A(har *\214lename)-.15 E 1.666(,i)-.1 G(nt fr)-1.666 E -.834
(om, int)-.45 F(to)2.5 E F0(\))3.332 E .052(Read a range of lines from)
-108 561.6 R F2(\214lename)2.553 E F0 2.553(,a)C .053
+108 609.6 R F1(\214lename)2.553 E F0 2.553(,a)C .053
(dding them to the history list.)-2.553 F .053(Start reading at line)
-5.053 F F2(fr)2.553 E(om)-.45 E F0 .053(and end at)2.553 F F2(to)2.553 E
-F0(.)A(If)108 573.6 Q F2(fr)2.889 E(om)-.45 E F0 .389
-(is zero, start at the be)2.889 F 2.889(ginning. If)-.15 F F2(to)2.889 E
-F0 .389(is less than)2.889 F F2(fr)2.889 E(om)-.45 E F0 2.889(,t)C .388
-(hen read until the end of the \214le.)-2.889 F(If)5.388 E F2
-(\214lename)2.888 E F0(is)108 585.6 Q F1(NULL)2.5 E F0 2.5(,t)C
-(hen read from)-2.5 E F2(~/.history)2.5 E F0 5(.R)C
-(eturns 0 if successful, or)-5 E F1(err)2.5 E(no)-.15 E F0(if not.)2.5 E
-F2(int)108 609.6 Q F1(write_history)2.5 E F0(\()4.166 E F2(const c)A
+5.053 F F1(fr)2.553 E(om)-.45 E F0 .053(and end at)2.553 F F1(to)2.553 E
+F0(.)A(If)108 621.6 Q F1(fr)2.889 E(om)-.45 E F0 .389
+(is zero, start at the be)2.889 F 2.889(ginning. If)-.15 F F1(to)2.889 E
+F0 .389(is less than)2.889 F F1(fr)2.889 E(om)-.45 E F0 2.889(,t)C .388
+(hen read until the end of the \214le.)-2.889 F(If)5.388 E F1
+(\214lename)2.888 E F0(is)108 633.6 Q F2(NULL)2.5 E F0 2.5(,t)C
+(hen read from)-2.5 E F1(~/.history)2.5 E F0 5(.R)C
+(eturns 0 if successful, or)-5 E F2(err)2.5 E(no)-.15 E F0(if not.)2.5 E
+F1(int)108 657.6 Q F2(write_history)2.5 E F0(\()4.166 E F1(const c)A
(har *\214lename)-.15 E F0(\))1.666 E .961(Write the current history to)
-108 621.6 R F2(\214lename)3.461 E F0 3.461(,o)C -.15(ve)-3.611 G
-(rwriting).15 E F2(\214lename)3.461 E F0 .961(if necessary)3.461 F 5.961
-(.I)-.65 G(f)-5.961 E F2(\214lename)3.462 E F0(is)3.462 E F1(NULL)3.462
-E F0 3.462(,t)C .962(hen write)-3.462 F(the history list to)108 633.6 Q
-F2(~/.history)2.5 E F0 5(.R)C(eturns 0 on success, or)-5 E F1(err)2.5 E
-(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F2(int)108 669.6 Q
-F1(append_history)2.5 E F0(\()4.166 E F2(int nelements,)A(const c)1.666
-E(har *\214lename)-.15 E F0(\))1.666 E .839(Append the last)108 681.6 R
-F2(nelements)3.339 E F0 .839(of the history list to)3.339 F F2
-(\214lename)3.339 E F0 5.839(.I)C(f)-5.839 E F2(\214lename)3.339 E F0
-(is)3.339 E F1(NULL)3.339 E F0 3.339(,t)C .838(hen append to)-3.339 F F2
-(~/.history)3.338 E F0(.)A(Returns 0 on success, or)108 693.6 Q F1(err)
-2.5 E(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F2(int)108
-717.6 Q F1(history_truncate_\214le)2.5 E F0(\()4.166 E F2(const c)A
-(har *\214lename)-.15 E 1.666(,i)-.1 G(nt nlines)-1.666 E F0(\))1.666 E
--.35(Tr)108 729.6 S .38(uncate the history \214le).35 F F2(\214lename)
-2.88 E F0 2.88(,l)C(ea)-2.88 E .38(ving only the last)-.2 F F2(nlines)
-2.881 E F0 2.881(lines. If)2.881 F F2(\214lename)2.881 E F0(is)2.881 E
-F1(NULL)2.881 E F0 2.881(,t)C(hen)-2.881 E F2(~/.history)2.881 E F0(is)
-2.881 E(GNU History 6.3)72 768 Q(2017 October 8)133.735 E(5)197.895 E 0
-Cg EP
+108 669.6 R F1(\214lename)3.461 E F0 3.461(,o)C -.15(ve)-3.611 G
+(rwriting).15 E F1(\214lename)3.461 E F0 .961(if necessary)3.461 F 5.961
+(.I)-.65 G(f)-5.961 E F1(\214lename)3.462 E F0(is)3.462 E F2(NULL)3.462
+E F0 3.462(,t)C .962(hen write)-3.462 F(the history list to)108 681.6 Q
+F1(~/.history)2.5 E F0 5(.R)C(eturns 0 on success, or)-5 E F2(err)2.5 E
+(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F1(int)108 717.6 Q
+F2(append_history)2.5 E F0(\()4.166 E F1(int nelements,)A(const c)1.666
+E(har *\214lename)-.15 E F0(\))1.666 E .839(Append the last)108 729.6 R
+F1(nelements)3.339 E F0 .839(of the history list to)3.339 F F1
+(\214lename)3.339 E F0 5.839(.I)C(f)-5.839 E F1(\214lename)3.339 E F0
+(is)3.339 E F2(NULL)3.339 E F0 3.339(,t)C .838(hen append to)-3.339 F F1
+(~/.history)3.338 E F0(.)A(GNU History 8.1)72 768 Q(2020 July 17)139.005
+E(5)203.165 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 124.845(Y\(3\) Library)
--.65 F(Functions Manual)2.5 E(HIST)127.345 E(OR)-.18 E(Y\(3\))-.65 E 2.5
-(truncated. Returns)108 84 R 2.5(0o)2.5 G 2.5(ns)-2.5 G(uccess, or)-2.5
-E/F1 10/Times-Bold@0 SF(err)2.5 E(no)-.15 E F0(on f)2.5 E(ailure.)-.1 E
-F1(History Expansion)87 112.8 Q F0(These functions implement history e)
-108 124.8 Q(xpansion.)-.15 E/F2 10/Times-Italic@0 SF(int)108 148.8 Q F1
-(history_expand)2.5 E F0(\()4.166 E F2 -.15(ch)C(ar *string).15 E 1.666
-(,c)-.1 G(har **output)-1.816 E F0(\))1.666 E(Expand)108 160.8 Q F2
-(string)2.5 E F0 2.5(,p)C(lacing the result into)-2.5 E F2(output)2.5 E
-F0 2.5(,ap)C(ointer to a string.)-2.5 E(Returns:)5 E(0)144 172.8 Q .566
-(If no e)180 172.8 R .566(xpansions took place \(or)-.15 F 3.065(,i)-.4
-G 3.065(ft)-3.065 G .565(he only change in the te)-3.065 F .565(xt w)
--.15 F .565(as the remo)-.1 F -.25(va)-.15 G 3.065(lo).25 G 3.065(fe)
--3.065 G(scape)-3.065 E(characters preceding the history e)180 184.8 Q
-(xpansion character\);)-.15 E(1)144 196.8 Q(if e)180 196.8 Q
-(xpansions did tak)-.15 E 2.5(ep)-.1 G(lace;)-2.5 E(-1)144 208.8 Q
-(if there w)180 208.8 Q(as an error in e)-.1 E(xpansion;)-.15 E(2)144
-220.8 Q(if the returned line should be displayed, b)180 220.8 Q
-(ut not e)-.2 E -.15(xe)-.15 G(cuted, as with the).15 E F1(:p)2.5 E F0
-(modi\214er)2.5 E(.)-.55 E(If an error ocurred in e)108 232.8 Q
-(xpansion, then)-.15 E F2(output)2.5 E F0(contains a descripti)2.5 E .3
--.15(ve e)-.25 H(rror message.).15 E F2 -.15(ch)108 256.8 S(ar *).15 E
-F1(get_history_e)2.5 E -.1(ve)-.15 G(nt).1 E F0(\()4.166 E F2(const c)A
-(har *string)-.15 E 1.666(,i)-.1 G(nt *cinde)-1.666 E -.834(x, int)-.2 F
-(qc)2.5 E(har)-.15 E F0(\))3.332 E .262(Returns the te)108 268.8 R .262
+-.65 F(Functions Manual)2.5 E(HIST)127.345 E(OR)-.18 E(Y\(3\))-.65 E
+(Returns 0 on success, or)108 84 Q/F1 10/Times-Bold@0 SF(err)2.5 E(no)
+-.15 E F0(on a read or write error)2.5 E(.)-.55 E/F2 10/Times-Italic@0
+SF(int)108 108 Q F1(history_truncate_\214le)2.5 E F0(\()4.166 E F2
+(const c)A(har *\214lename)-.15 E 1.666(,i)-.1 G(nt nlines)-1.666 E F0
+(\))1.666 E -.35(Tr)108 120 S .38(uncate the history \214le).35 F F2
+(\214lename)2.88 E F0 2.88(,l)C(ea)-2.88 E .38(ving only the last)-.2 F
+F2(nlines)2.881 E F0 2.881(lines. If)2.881 F F2(\214lename)2.881 E F0
+(is)2.881 E F1(NULL)2.881 E F0 2.881(,t)C(hen)-2.881 E F2(~/.history)
+2.881 E F0(is)2.881 E 2.5(truncated. Returns)108 132 R 2.5(0o)2.5 G 2.5
+(ns)-2.5 G(uccess, or)-2.5 E F1(err)2.5 E(no)-.15 E F0(on f)2.5 E
+(ailure.)-.1 E F1(History Expansion)87 160.8 Q F0
+(These functions implement history e)108 172.8 Q(xpansion.)-.15 E F2
+(int)108 196.8 Q F1(history_expand)2.5 E F0(\()4.166 E F2 -.15(ch)C
+(ar *string).15 E 1.666(,c)-.1 G(har **output)-1.816 E F0(\))1.666 E
+(Expand)108 208.8 Q F2(string)2.5 E F0 2.5(,p)C(lacing the result into)
+-2.5 E F2(output)2.5 E F0 2.5(,ap)C(ointer to a string.)-2.5 E(Returns:)
+5 E(0)144 220.8 Q .566(If no e)180 220.8 R .566
+(xpansions took place \(or)-.15 F 3.065(,i)-.4 G 3.065(ft)-3.065 G .565
+(he only change in the te)-3.065 F .565(xt w)-.15 F .565(as the remo)-.1
+F -.25(va)-.15 G 3.065(lo).25 G 3.065(fe)-3.065 G(scape)-3.065 E
+(characters preceding the history e)180 232.8 Q(xpansion character\);)
+-.15 E(1)144 244.8 Q(if e)180 244.8 Q(xpansions did tak)-.15 E 2.5(ep)
+-.1 G(lace;)-2.5 E(-1)144 256.8 Q(if there w)180 256.8 Q
+(as an error in e)-.1 E(xpansion;)-.15 E(2)144 268.8 Q
+(if the returned line should be displayed, b)180 268.8 Q(ut not e)-.2 E
+-.15(xe)-.15 G(cuted, as with the).15 E F1(:p)2.5 E F0(modi\214er)2.5 E
+(.)-.55 E(If an error occurred in e)108 280.8 Q(xpansion, then)-.15 E F2
+(output)2.5 E F0(contains a descripti)2.5 E .3 -.15(ve e)-.25 H
+(rror message.).15 E F2 -.15(ch)108 304.8 S(ar *).15 E F1(get_history_e)
+2.5 E -.1(ve)-.15 G(nt).1 E F0(\()4.166 E F2(const c)A(har *string)-.15
+E 1.666(,i)-.1 G(nt *cinde)-1.666 E -.834(x, int)-.2 F(qc)2.5 E(har)-.15
+E F0(\))3.332 E .262(Returns the te)108 316.8 R .262
(xt of the history e)-.15 F -.15(ve)-.25 G .262(nt be).15 F .263
(ginning at)-.15 F F2(string)2.763 E F0(+)2.763 E F2(*cinde)2.763 E(x)
-.2 E F0(.)A F2(*cinde)5.263 E(x)-.2 E F0 .263
-(is modi\214ed to point to after the)2.763 F -2.15 -.25(ev e)108 280.8 T
+(is modi\214ed to point to after the)2.763 F -2.15 -.25(ev e)108 328.8 T
.71(nt speci\214er).25 F 5.71(.A)-.55 G 3.21(tf)-5.71 G .71
(unction entry)-3.21 F(,)-.65 E F2(cinde)3.21 E(x)-.2 E F0 .709
(points to the inde)3.21 F 3.209(xi)-.15 G(nto)-3.209 E F2(string)3.209
E F0 .709(where the history e)3.209 F -.15(ve)-.25 G .709
-(nt speci\214ca-).15 F .527(tion be)108 292.8 R(gins.)-.15 E F2(qc)5.527
+(nt speci\214ca-).15 F .527(tion be)108 340.8 R(gins.)-.15 E F2(qc)5.527
E(har)-.15 E F0 .527(is a character that is allo)3.027 F .527
(wed to end the e)-.25 F -.15(ve)-.25 G .528
(nt speci\214cation in addition to the `).15 F(`normal')-.74 E(')-.74 E
-(terminating characters.)108 304.8 Q F2 -.15(ch)108 328.8 S(ar **).15 E
+(terminating characters.)108 352.8 Q F2 -.15(ch)108 376.8 S(ar **).15 E
F1(history_tok)2.5 E(enize)-.1 E F0(\()4.166 E F2(const c)A(har *string)
--.15 E F0(\))1.666 E .239(Return an array of tok)108 340.8 R .239
+-.15 E F0(\))1.666 E .239(Return an array of tok)108 388.8 R .239
(ens parsed out of)-.1 F F2(string)2.739 E F0 2.739(,m)C .238
(uch as the shell might.)-2.739 F .238(The tok)5.238 F .238
-(ens are split on the charac-)-.1 F(ters in the)108 352.8 Q F1
+(ens are split on the charac-)-.1 F(ters in the)108 400.8 Q F1
(history_w)2.5 E(ord_delimiters)-.1 E F0 -.25(va)2.5 G
(riable, and shell quoting con).25 E -.15(ve)-.4 G(ntions are obe).15 E
-(yed.)-.15 E F2 -.15(ch)108 376.8 S(ar *).15 E F1(history_ar)2.5 E
+(yed.)-.15 E F2 -.15(ch)108 424.8 S(ar *).15 E F1(history_ar)2.5 E
(g_extract)-.1 E F0(\()4.166 E F2(int \214r)A -.834(st, int)-.1 F -.834
(last, const)2.5 F -.15(ch)2.5 G(ar *string).15 E F0(\))3.332 E .025
-(Extract a string se)108 388.8 R .025(gment consisting of the)-.15 F F2
+(Extract a string se)108 436.8 R .025(gment consisting of the)-.15 F F2
<8c72>2.526 E(st)-.1 E F0(through)2.526 E F2(last)2.526 E F0(ar)2.526 E
.026(guments present in)-.18 F F2(string)2.526 E F0 5.026(.A)C -.18(rg)
--5.026 G .026(uments are split).18 F(using)108 400.8 Q F1(history_tok)
-2.5 E(enize\(\))-.1 E F0(.)A F1(History V)87 429.6 Q(ariables)-.92 E F0
-(This section describes the e)108 441.6 Q(xternally-visible v)-.15 E
+-5.026 G .026(uments are split).18 F(using)108 448.8 Q F1(history_tok)
+2.5 E(enize\(\))-.1 E F0(.)A F1(History V)87 477.6 Q(ariables)-.92 E F0
+(This section describes the e)108 489.6 Q(xternally-visible v)-.15 E
(ariables e)-.25 E(xported by the GNU History Library)-.15 E(.)-.65 E F2
-(int)108 465.6 Q F1(history_base)2.5 E F0(The logical of)108 477.6 Q
-(fset of the \214rst entry in the history list.)-.25 E F2(int)108 501.6
+(int)108 513.6 Q F1(history_base)2.5 E F0(The logical of)108 525.6 Q
+(fset of the \214rst entry in the history list.)-.25 E F2(int)108 549.6
Q F1(history_length)2.5 E F0
-(The number of entries currently stored in the history list.)108 513.6 Q
-F2(int)108 537.6 Q F1(history_max_entries)2.5 E F0
-(The maximum number of history entries.)108 549.6 Q
+(The number of entries currently stored in the history list.)108 561.6 Q
+F2(int)108 585.6 Q F1(history_max_entries)2.5 E F0
+(The maximum number of history entries.)108 597.6 Q
(This must be changed using)5 E F1(sti\215e_history\(\))2.5 E F0(.)A F2
-(int)108 573.6 Q F1(history_wite_timestamps)2.5 E F0 1.468
+(int)108 621.6 Q F1(history_write_timestamps)2.5 E F0 .484
(If non-zero, timestamps are written to the history \214le, so the)108
-585.6 R 3.968(yc)-.15 G 1.468(an be preserv)-3.968 F 1.468
-(ed between sessions.)-.15 F(The)6.468 E(def)108 597.6 Q .438(ault v)-.1
-F .439(alue is 0, meaning that timestamps are not sa)-.25 F -.15(ve)-.2
-G 2.939(d. The).15 F .439(current timestamp format uses the v)2.939 F
-.439(alue of)-.25 F F2(history_comment_c)108 609.6 Q(har)-.15 E F0 .051
+633.6 R 2.983(yc)-.15 G .483(an be preserv)-2.983 F .483
+(ed between sessions.)-.15 F .483(The de-)5.483 F -.1(fa)108 645.6 S
+.994(ult v).1 F .994(alue is 0, meaning that timestamps are not sa)-.25
+F -.15(ve)-.2 G 3.494(d. The).15 F .994
+(current timestamp format uses the v)3.494 F .995(alue of)-.25 F F2
+(history_comment_c)108 657.6 Q(har)-.15 E F0 .051
(to delimit timestamp entries in the history \214le.)2.552 F .051
(If that v)5.051 F .051(ariable does not ha)-.25 F .351 -.15(ve a v)-.2
-H(alue)-.1 E(\(the def)108 621.6 Q
-(ault\), timestamps will not be written.)-.1 E F2 -.15(ch)108 645.6 S
+H(alue)-.1 E(\(the def)108 669.6 Q
+(ault\), timestamps will not be written.)-.1 E F2 -.15(ch)108 693.6 S
(ar).15 E F1(history_expansion_char)2.5 E F0
-(The character that introduces a history e)108 657.6 Q -.15(ve)-.25 G
+(The character that introduces a history e)108 705.6 Q -.15(ve)-.25 G
2.5(nt. The).15 F(def)2.5 E(ault is)-.1 E F1(!)2.5 E F0 5(.S)C
(etting this to 0 inhibits history e)-5 E(xpansion.)-.15 E F2 -.15(ch)
-108 681.6 S(ar).15 E F1(history_subst_char)2.5 E F0
-(The character that in)108 693.6 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(sw).1 G
-(ord substitution if found at the start of a line.)-2.6 E(The def)5 E
-(ault is)-.1 E F1(^)2.5 E F0(.)A F2 -.15(ch)108 717.6 S(ar).15 E F1
-(history_comment_char)2.5 E F0 1.392(During tok)108 729.6 R 1.392
-(enization, if this character is seen as the \214rst character of a w)
--.1 F 1.393(ord, then it and all subsequent)-.1 F(GNU History 6.3)72 768
-Q(2017 October 8)133.735 E(6)197.895 E 0 Cg EP
+108 729.6 S(ar).15 E F1(history_subst_char)2.5 E F0(GNU History 8.1)72
+768 Q(2020 July 17)139.005 E(6)203.165 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 124.845(Y\(3\) Library)
--.65 F(Functions Manual)2.5 E(HIST)127.345 E(OR)-.18 E(Y\(3\))-.65 E .31
-(characters up to a ne)108 84 R .31
-(wline are ignored, suppressing history e)-.25 F .309
-(xpansion for the remainder of the line.)-.15 F .309(This is)5.309 F
-(disabled by def)108 96 Q(ault.)-.1 E/F1 10/Times-Italic@0 SF -.15(ch)
-108 120 S(ar *).15 E/F2 10/Times-Bold@0 SF(history_w)2.5 E
-(ord_delimiters)-.1 E F0(The characters that separate tok)108 132 Q
-(ens for)-.1 E F2(history_tok)2.5 E(enize\(\))-.1 E F0 5(.T)C(he def)-5
-E(ault v)-.1 E(alue is)-.25 E F2 2.5("\\)2.5 G(t\\n\(\)<>;&|")-2.5 E F0
-(.)A F1 -.15(ch)108 156 S(ar *).15 E F2(history_no_expand_chars)2.5 E F0
-2.054(The list of characters which inhibit history e)108 168 R 2.054
-(xpansion if found immediately follo)-.15 F(wing)-.25 E F2
-(history_expan-)4.555 E(sion_char)108 180 Q F0 5(.T)C(he def)-5 E
-(ault is space, tab, ne)-.1 E(wline,)-.25 E F2(\\r)2.5 E F0 2.5(,a)C(nd)
--2.5 E F2(=)2.5 E F0(.)A F1 -.15(ch)108 204 S(ar *).15 E F2
+-.65 F(Functions Manual)2.5 E(HIST)127.345 E(OR)-.18 E(Y\(3\))-.65 E
+(The character that in)108 84 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(sw).1 G
+(ord substitution if found at the start of a line.)-2.6 E(The def)5 E
+(ault is)-.1 E/F1 10/Times-Bold@0 SF(^)2.5 E F0(.)A/F2 10/Times-Italic@0
+SF -.15(ch)108 108 S(ar).15 E F1(history_comment_char)2.5 E F0 .116
+(During tok)108 120 R .117
+(enization, if this character is seen as the \214rst character of a w)
+-.1 F .117(ord, then it and all subsequent char)-.1 F(-)-.2 E .277
+(acters up to a ne)108 132 R .276
+(wline are ignored, suppressing history e)-.25 F .276
+(xpansion for the remainder of the line.)-.15 F .276(This is dis-)5.276
+F(abled by def)108 144 Q(ault.)-.1 E F2 -.15(ch)108 168 S(ar *).15 E F1
+(history_w)2.5 E(ord_delimiters)-.1 E F0
+(The characters that separate tok)108 180 Q(ens for)-.1 E F1
+(history_tok)2.5 E(enize\(\))-.1 E F0 5(.T)C(he def)-5 E(ault v)-.1 E
+(alue is)-.25 E F1 2.5("\\)2.5 G(t\\n\(\)<>;&|")-2.5 E F0(.)A F2 -.15
+(ch)108 204 S(ar *).15 E F1(history_no_expand_chars)2.5 E F0 2.054
+(The list of characters which inhibit history e)108 216 R 2.054
+(xpansion if found immediately follo)-.15 F(wing)-.25 E F1
+(history_expan-)4.555 E(sion_char)108 228 Q F0 5(.T)C(he def)-5 E
+(ault is space, tab, ne)-.1 E(wline,)-.25 E F1(\\r)2.5 E F0 2.5(,a)C(nd)
+-2.5 E F1(=)2.5 E F0(.)A F2 -.15(ch)108 252 S(ar *).15 E F1
(history_sear)2.5 E(ch_delimiter_chars)-.18 E F0 .401(The list of addit\
ional characters which can delimit a history search string, in addition\
- to space, tab,)108 216 R F1(:)2.901 E F0(and)2.901 E F1(?)2.901 E F0
-(in the case of a substring search.)108 228 Q(The def)5 E(ault is empty)
--.1 E(.)-.65 E F1(int)108 252 Q F2(history_quotes_inhibit_expansion)2.5
-E F0 .86(If non-zero, double-quoted w)108 264 R .861
+ to space, tab,)108 264 R F2(:)2.901 E F0(and)2.901 E F2(?)2.901 E F0
+(in the case of a substring search.)108 276 Q(The def)5 E(ault is empty)
+-.1 E(.)-.65 E F2(int)108 300 Q F1(history_quotes_inhibit_expansion)2.5
+E F0 .86(If non-zero, double-quoted w)108 312 R .861
(ords are not scanned for the history e)-.1 F .861
-(xpansion character or the history com-)-.15 F(ment character)108 276 Q
-5(.T)-.55 G(he def)-5 E(ault v)-.1 E(alue is 0.)-.25 E F1(rl_lineb)108
-300 Q(uf_func_t *)-.2 E F2(history_inhibit_expansion_function)2.5 E F0
-.348(This should be set to the address of a function that tak)108 312 R
-.348(es tw)-.1 F 2.848(oa)-.1 G -.18(rg)-2.848 G .347(uments: a).18 F F2
-.347(char *)2.847 F F0(\()2.847 E F1(string)A F0 2.847(\)a)C .347(nd an)
--2.847 F F2(int)2.847 E F0(inde)2.847 E(x)-.15 E .227
-(into that string \()108 324 R F1(i)A F0 2.727(\). It)B .227
+(xpansion character or the history com-)-.15 F(ment character)108 324 Q
+5(.T)-.55 G(he def)-5 E(ault v)-.1 E(alue is 0.)-.25 E F2(rl_lineb)108
+348 Q(uf_func_t *)-.2 E F1(history_inhibit_expansion_function)2.5 E F0
+.348(This should be set to the address of a function that tak)108 360 R
+.348(es tw)-.1 F 2.848(oa)-.1 G -.18(rg)-2.848 G .347(uments: a).18 F F1
+.347(char *)2.847 F F0(\()2.847 E F2(string)A F0 2.847(\)a)C .347(nd an)
+-2.847 F F1(int)2.847 E F0(inde)2.847 E(x)-.15 E .227
+(into that string \()108 372 R F2(i)A F0 2.727(\). It)B .227
(should return a non-zero v)2.727 F .227(alue if the history e)-.25 F
-.227(xpansion starting at)-.15 F F1(string[i])2.728 E F0 .228
-(should not)2.728 F .019(be performed; zero if the e)108 336 R .019
+.227(xpansion starting at)-.15 F F2(string[i])2.728 E F0 .228
+(should not)2.728 F .019(be performed; zero if the e)108 384 R .019
(xpansion should be done.)-.15 F .019
-(It is intended for use by applications lik)5.019 F(e)-.1 E F2(bash)
-2.519 E F0 .018(that use)2.519 F(the history e)108 348 Q
+(It is intended for use by applications lik)5.019 F(e)-.1 E F1(bash)
+2.519 E F0 .018(that use)2.519 F(the history e)108 396 Q
(xpansion character for additional purposes.)-.15 E(By def)5 E
-(ault, this v)-.1 E(ariable is set to)-.25 E F2(NULL)2.5 E F0(.)A/F3
-10.95/Times-Bold@0 SF(FILES)72 364.8 Q F1(~/.history)109.666 376.8 Q F0
-(Def)144 388.8 Q(ault \214lename for reading and writing sa)-.1 E -.15
-(ve)-.2 G 2.5(dh).15 G(istory)-2.5 E F3(SEE ALSO)72 405.6 Q F1
-(The Gnu Readline Libr)108 417.6 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
-(ox and Chet Rame)-.15 E(y)-.15 E F1(The Gnu History Libr)108 429.6 Q
+(ault, this v)-.1 E(ariable is set to)-.25 E F1(NULL)2.5 E F0(.)A/F3
+10.95/Times-Bold@0 SF(FILES)72 412.8 Q F2(~/.history)109.666 424.8 Q F0
+(Def)144 436.8 Q(ault \214lename for reading and writing sa)-.1 E -.15
+(ve)-.2 G 2.5(dh).15 G(istory)-2.5 E F3(SEE ALSO)72 453.6 Q F2
+(The Gnu Readline Libr)108 465.6 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
+(ox and Chet Rame)-.15 E(y)-.15 E F2(The Gnu History Libr)108 477.6 Q
(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E
-F1(bash)108 441.6 Q F0(\(1\))A F1 -.37(re)108 453.6 S(adline).37 E F0
-(\(3\))A F3 -.548(AU)72 470.4 S(THORS).548 E F0(Brian F)108 482.4 Q
+F2(bash)108 489.6 Q F0(\(1\))A F2 -.37(re)108 501.6 S(adline).37 E F0
+(\(3\))A F3 -.548(AU)72 518.4 S(THORS).548 E F0(Brian F)108 530.4 Q
(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108
-494.4 Q(g)-.18 E(Chet Rame)108 511.2 Q 1.3 -.65(y, C)-.15 H(ase W).65 E
+542.4 Q(g)-.18 E(Chet Rame)108 559.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 523.2 Q(y@case.edu)-.15 E F3 -.11(BU)72 540 S 2.738(GR)
-.11 G(EPOR)-2.738 E(TS)-.438 E F0 .16(If you \214nd a b)108 552 R .16
-(ug in the)-.2 F F2(history)2.66 E F0(library)2.66 E 2.66(,y)-.65 G .16
+(chet.rame)108 571.2 Q(y@case.edu)-.15 E F3 -.11(BU)72 588 S 2.738(GR)
+.11 G(EPOR)-2.738 E(TS)-.438 E F0 .16(If you \214nd a b)108 600 R .16
+(ug in the)-.2 F F1(history)2.66 E F0(library)2.66 E 2.66(,y)-.65 G .16
(ou should report it.)-2.66 F .16(But \214rst, you should mak)5.16 F
-2.66(es)-.1 G .16(ure that it really is)-2.66 F 2.5(ab)108 564 S
-(ug, and that it appears in the latest v)-2.7 E(ersion of the)-.15 E F2
+2.66(es)-.1 G .16(ure that it really is)-2.66 F 2.5(ab)108 612 S
+(ug, and that it appears in the latest v)-2.7 E(ersion of the)-.15 E F1
(history)2.5 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.).15 E .705
-(Once you ha)108 580.8 R 1.005 -.15(ve d)-.2 H .705(etermined that a b)
+(Once you ha)108 628.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 .704
-(ug report to)-.2 F F1 -.2(bu)3.204 G(g\255r).2 E(eadline)-.37 E F0(@)A
-F1(gnu.or)A(g)-.37 E F0 5.704(.I)C 3.204(fy)-5.704 G(ou)-3.204 E(ha)108
-592.8 Q 1.809 -.15(ve a \214)-.2 H 1.509
+(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
+640.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 604.8 Q F1 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F1
-(gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F2
-(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 621.6 Q
-(ug reports concerning this manual page should be directed to)-.2 E F1
+(mailed to)108 652.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 F1
+(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 669.6 Q
+(ug reports concerning this manual page should be directed to)-.2 E F2
-.15(ch)2.5 G(et.r).15 E(ame)-.15 E(y@case)-.3 E(.edu)-.15 E F0(.).25 E
-(GNU History 6.3)72 768 Q(2017 October 8)133.735 E(7)197.895 E 0 Cg EP
+(GNU History 8.1)72 768 Q(2020 July 17)139.005 E(7)203.165 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/hstech.texi b/doc/hstech.texi
index dbc21c1..7ac1195 100644
--- a/doc/hstech.texi
+++ b/doc/hstech.texi
@@ -1,7 +1,7 @@
@ignore
This file documents the user interface to the GNU History library.
-Copyright (C) 1988-2016 Free Software Foundation, Inc.
+Copyright (C) 1988-2020 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
@@ -48,7 +48,7 @@ History library is able to keep track of those lines, associate arbitrary
data with each line, and utilize information from previous lines in
composing new ones.
-The programmer using the History library has available functions
+A programmer using the History library has available functions
for remembering lines on a history list, associating arbitrary data
with a line, removing lines from the list, searching through the list
for a line containing an arbitrary text string, and referencing any line
@@ -62,7 +62,7 @@ commands for manipulating the text of previous lines and using that text
in new commands. The basic history manipulation commands are similar to
the history substitution provided by @code{csh}.
-If the programmer desires, he can use the Readline library, which
+The programmer can also use the Readline library, which
includes some history manipulation by default, and has the added
advantage of command line editing.
diff --git a/doc/hsuser.texi b/doc/hsuser.texi
index 521ccc7..b8fedf3 100644
--- a/doc/hsuser.texi
+++ b/doc/hsuser.texi
@@ -1,7 +1,7 @@
@ignore
This file documents the user interface to the GNU History library.
-Copyright (C) 1988--2018 Free Software Foundation, Inc.
+Copyright (C) 1988--2020 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
@@ -149,7 +149,14 @@ Both @var{first} and
@var{last} may be specified as a string (to locate the most recent
command beginning with that string) or as a number (an index into the
history list, where a negative number is used as an offset from the
-current command number). If @var{last} is not specified, it is set to
+current command number).
+
+When listing, a @var{first} or @var{last} of 0 is equivalent to -1
+and -0 is equivalent to the current command (usually the @code{fc}
+command);
+otherwise 0 is equivalent to -1 and -0 is invalid.
+
+If @var{last} is not specified, it is set to
@var{first}. If @var{first} is not specified, it is set to the previous
command for editing and @minus{}16 for listing. If the @option{-l} flag is
given, the commands are listed on standard output. The @option{-n} flag
@@ -164,7 +171,7 @@ When editing is complete, the edited commands are echoed and executed.
In the second form, @var{command} is re-executed after each instance
of @var{pat} in the selected command is replaced by @var{rep}.
-@var{command} is intepreted the same as @var{first} above.
+@var{command} is interpreted the same as @var{first} above.
A useful alias to use with the @code{fc} command is @code{r='fc -s'}, so
that typing @samp{r cc} runs the last command beginning with @code{cc}
@@ -370,11 +377,13 @@ containing @var{string}.
The trailing
@samp{?} may be omitted if the @var{string} is followed immediately by
a newline.
+If @var{string} is missing, the string from the most recent search is used;
+it is an error if there is no previous search string.
@item @code{^@var{string1}^@var{string2}^}
Quick Substitution. Repeat the last command, replacing @var{string1}
with @var{string2}. Equivalent to
-@code{!!:s/@var{string1}/@var{string2}/}.
+@code{!!:s^@var{string1}^@var{string2}^}.
@item @code{!#}
The entire command line typed so far.
@@ -426,7 +435,8 @@ The first argument; that is, word 1.
The last argument.
@item %
-The word matched by the most recent @samp{?@var{string}?} search.
+The first word matched by the most recent @samp{?@var{string}?} search,
+if the search string begins with a character that is part of a word.
@item @var{x}-@var{y}
A range of words; @samp{-@var{y}} abbreviates @samp{0-@var{y}}.
@@ -441,6 +451,7 @@ Abbreviates @samp{@var{x}-$}
@item @var{x}-
Abbreviates @samp{@var{x}-$} like @samp{@var{x}*}, but omits the last word.
+If @samp{x} is missing, it defaults to 0.
@end table
@@ -452,6 +463,7 @@ previous command is used as the event.
After the optional word designator, you can add a sequence of one or more
of the following modifiers, each preceded by a @samp{:}.
+These modify, or edit, the word or words selected from the history event.
@table @code
@@ -478,15 +490,25 @@ Quote the substituted words, escaping further substitutions.
@item x
Quote the substituted words as with @samp{q},
but break into words at spaces, tabs, and newlines.
+The @samp{q} and @samp{x} modifiers are mutually exclusive; the last one
+supplied is used.
@end ifset
@item s/@var{old}/@var{new}/
Substitute @var{new} for the first occurrence of @var{old} in the
-event line. Any delimiter may be used in place of @samp{/}.
+event line.
+Any character may be used as the delimiter in place of @samp{/}.
The delimiter may be quoted in @var{old} and @var{new}
with a single backslash. If @samp{&} appears in @var{new},
it is replaced by @var{old}. A single backslash will quote
-the @samp{&}. The final delimiter is optional if it is the last
+the @samp{&}.
+If @var{old} is null, it is set to the last @var{old}
+substituted, or, if no previous history substitutions took place,
+the last @var{string}
+in a !?@var{string}@code{[?]}
+search.
+If @var{new} is is null, each matching @var{old} is deleted.
+The final delimiter is optional if it is the last
character on the input line.
@item &
@@ -499,6 +521,7 @@ conjunction with @samp{s}, as in @code{gs/@var{old}/@var{new}/},
or with @samp{&}.
@item G
-Apply the following @samp{s} modifier once to each word in the event.
+Apply the following @samp{s} or @samp{&} modifier once to each word
+in the event.
@end table
diff --git a/doc/readline.0 b/doc/readline.0
index 3654f6f..d32329b 100644
--- a/doc/readline.0
+++ b/doc/readline.0
@@ -14,14 +14,14 @@ READLINE(3) Library Functions Manual READLINE(3)
readline (const char *prompt);
COPYRIGHT
- Readline is Copyright (C) 1989-2014 Free Software Foundation, Inc.
+ Readline is Copyright (C) 1989-2020 Free Software Foundation, Inc.
DESCRIPTION
readline will read a line from the terminal and return it, using prompt
- as a prompt. If prompt is NULL or the empty string, no prompt is
- issued. The line returned is allocated with malloc(3); the caller must
- free it when finished. The line returned has the final newline
- removed, so only the text of the line remains.
+ as a prompt. If prompt is NULL or the empty string, no prompt is is-
+ sued. The line returned is allocated with malloc(3); the caller must
+ free it when finished. The line returned has the final newline re-
+ moved, so only the text of the line remains.
readline offers editing capabilities while the user is entering the
line. By default, the line editing commands are similar to those of
@@ -62,8 +62,8 @@ READLINE(3) Library Functions Manual READLINE(3)
INITIALIZATION FILE
Readline is customized by putting commands in an initialization file
(the inputrc file). The name of this file is taken from the value of
- the INPUTRC environment variable. If that variable is unset, the
- default is ~/.inputrc. If that file does not exist or cannot be read,
+ the INPUTRC environment variable. If that variable is unset, the de-
+ fault is ~/.inputrc. If that file does not exist or cannot be read,
the ultimate default is /etc/inputrc. When a program which uses the
readline library starts up, the init file is read, and the key bindings
and variables are set. There are only a few basic constructs allowed
@@ -223,10 +223,10 @@ READLINE(3) Library Functions Manual READLINE(3)
ber of possible completions generated by the possible-comple-
tions command. It may be set to any integer value greater than
or equal to zero. If the number of possible completions is
- greater than or equal to the value of this variable, the user is
- asked whether or not he wishes to view them; otherwise they are
- simply listed on the terminal. A negative value causes readline
- to never ask.
+ greater than or equal to the value of this variable, readline
+ will ask whether or not the user wishes to view them; otherwise
+ they are simply listed on the terminal. A negative value causes
+ readline to never ask.
convert-meta (On)
If set to On, readline will convert characters with the eighth
bit set to an ASCII key sequence by stripping the eighth bit and
@@ -254,7 +254,7 @@ READLINE(3) Library Functions Manual READLINE(3)
escapes to begin and end sequences of non-printing characters,
which can be used to embed a terminal control sequence into the
mode string.
- enable-bracketed-paste (Off)
+ enable-bracketed-paste (On)
When set to On, readline will configure the terminal in a way
that will enable it to insert each paste into the editing buffer
as a single string of characters, instead of treating each char-
@@ -263,15 +263,15 @@ READLINE(3) Library Functions Manual READLINE(3)
mands.
enable-keypad (Off)
When set to On, readline will try to enable the application key-
- pad when it is called. Some systems need this to enable the
- arrow keys.
+ pad when it is called. Some systems need this to enable the ar-
+ row keys.
enable-meta-key (On)
When set to On, readline will try to enable any meta modifier
key the terminal claims to support when it is called. On many
terminals, the meta key is used to send eight-bit characters.
expand-tilde (Off)
- If set to On, tilde expansion is performed when readline
- attempts word completion.
+ If set to On, tilde expansion is performed when readline at-
+ tempts word completion.
history-preserve-point (Off)
If set to On, the history code attempts to place point at the
same location on each history line retrieved with previous-his-
@@ -288,166 +288,167 @@ READLINE(3) Library Functions Manual READLINE(3)
When set to On, makes readline use a single line for display,
scrolling the input horizontally on a single screen line when it
becomes longer than the screen width rather than wrapping to a
- new line.
+ new line. This setting is automatically enabled for terminals
+ of height 1.
input-meta (Off)
- If set to On, readline will enable eight-bit input (that is, it
- will not clear the eighth bit in the characters it reads),
- regardless of what the terminal claims it can support. The name
- meta-flag is a synonym for this variable. The default is Off,
- but readline will set it to On if the locale contains eight-bit
+ If set to On, readline will enable eight-bit input (that is, it
+ will not clear the eighth bit in the characters it reads), re-
+ gardless of what the terminal claims it can support. The name
+ meta-flag is a synonym for this variable. The default is Off,
+ but readline will set it to On if the locale contains eight-bit
characters.
isearch-terminators (``C-[ C-J'')
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a com-
- mand. If this variable has not been given a value, the charac-
+ The string of characters that should terminate an incremental
+ search without subsequently executing the character as a com-
+ mand. If this variable has not been given a value, the charac-
ters ESC and C-J will terminate an incremental search.
keymap (emacs)
- Set the current readline keymap. The set of legal keymap names
- is emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,
- vi-command, and vi-insert. vi is equivalent to vi-command;
- emacs is equivalent to emacs-standard. The default value is
- emacs. The value of editing-mode also affects the default
+ Set the current readline keymap. The set of legal keymap names
+ is emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,
+ vi-command, and vi-insert. vi is equivalent to vi-command;
+ emacs is equivalent to emacs-standard. The default value is
+ emacs. The value of editing-mode also affects the default
keymap.
keyseq-timeout (500)
- Specifies the duration readline will wait for a character when
- reading an ambiguous key sequence (one that can form a complete
+ Specifies the duration readline will wait for a character when
+ reading an ambiguous key sequence (one that can form a complete
key sequence using the input read so far, or can take additional
- input to complete a longer key sequence). If no input is
- received within the timeout, readline will use the shorter but
- complete key sequence. The value is specified in milliseconds,
- so a value of 1000 means that readline will wait one second for
- additional input. If this variable is set to a value less than
- or equal to zero, or to a non-numeric value, readline will wait
- until another key is pressed to decide which key sequence to
+ input to complete a longer key sequence). If no input is re-
+ ceived within the timeout, readline will use the shorter but
+ complete key sequence. The value is specified in milliseconds,
+ so a value of 1000 means that readline will wait one second for
+ additional input. If this variable is set to a value less than
+ or equal to zero, or to a non-numeric value, readline will wait
+ until another key is pressed to decide which key sequence to
complete.
mark-directories (On)
If set to On, completed directory names have a slash appended.
mark-modified-lines (Off)
- If set to On, history lines that have been modified are dis-
+ If set to On, history lines that have been modified are dis-
played with a preceding asterisk (*).
mark-symlinked-directories (Off)
If set to On, completed names which are symbolic links to direc-
- tories have a slash appended (subject to the value of
- mark-directories).
+ tories have a slash appended (subject to the value of mark-di-
+ rectories).
match-hidden-files (On)
- This variable, when set to On, causes readline to match files
- whose names begin with a `.' (hidden files) when performing
- filename completion. If set to Off, the leading `.' must be
+ This variable, when set to On, causes readline to match files
+ whose names begin with a `.' (hidden files) when performing
+ filename completion. If set to Off, the leading `.' must be
supplied by the user in the filename to be completed.
menu-complete-display-prefix (Off)
- If set to On, menu completion displays the common prefix of the
+ If set to On, menu completion displays the common prefix of the
list of possible completions (which may be empty) before cycling
through the list.
output-meta (Off)
- If set to On, readline will display characters with the eighth
+ If set to On, readline will display characters with the eighth
bit set directly rather than as a meta-prefixed escape sequence.
The default is Off, but readline will set it to On if the locale
contains eight-bit characters.
page-completions (On)
- If set to On, readline uses an internal more-like pager to dis-
+ If set to On, readline uses an internal more-like pager to dis-
play a screenful of possible completions at a time.
print-completions-horizontally (Off)
- If set to On, readline will display completions with matches
- sorted horizontally in alphabetical order, rather than down the
+ If set to On, readline will display completions with matches
+ sorted horizontally in alphabetical order, rather than down the
screen.
revert-all-at-newline (Off)
- If set to On, readline will undo all changes to history lines
+ If set to On, readline will undo all changes to history lines
before returning when accept-line is executed. By default, his-
- tory lines may be modified and retain individual undo lists
+ tory lines may be modified and retain individual undo lists
across calls to readline.
show-all-if-ambiguous (Off)
- This alters the default behavior of the completion functions.
+ This alters the default behavior of the completion functions.
If set to On, words which have more than one possible completion
- cause the matches to be listed immediately instead of ringing
+ cause the matches to be listed immediately instead of ringing
the bell.
show-all-if-unmodified (Off)
- This alters the default behavior of the completion functions in
+ This alters the default behavior of the completion functions in
a fashion similar to show-all-if-ambiguous. If set to On, words
- which have more than one possible completion without any possi-
- ble partial completion (the possible completions don't share a
- common prefix) cause the matches to be listed immediately
- instead of ringing the bell.
+ which have more than one possible completion without any possi-
+ ble partial completion (the possible completions don't share a
+ common prefix) cause the matches to be listed immediately in-
+ stead of ringing the bell.
show-mode-in-prompt (Off)
- If set to On, add a string to the beginning of the prompt indi-
- cating the editing mode: emacs, vi command, or vi insertion.
+ If set to On, add a string to the beginning of the prompt indi-
+ cating the editing mode: emacs, vi command, or vi insertion.
The mode strings are user-settable (e.g., emacs-mode-string).
skip-completed-text (Off)
- If set to On, this alters the default completion behavior when
- inserting a single match into the line. It's only active when
- performing completion in the middle of a word. If enabled,
- readline does not insert characters from the completion that
- match characters after point in the word being completed, so
+ If set to On, this alters the default completion behavior when
+ inserting a single match into the line. It's only active when
+ performing completion in the middle of a word. If enabled,
+ readline does not insert characters from the completion that
+ match characters after point in the word being completed, so
portions of the word following the cursor are not duplicated.
vi-cmd-mode-string ((cmd))
- If the show-mode-in-prompt variable is enabled, this string is
+ If the show-mode-in-prompt variable is enabled, this string is
displayed immediately before the last line of the primary prompt
- when vi editing mode is active and in command mode. The value
+ when vi editing mode is active and in command mode. The value
is expanded like a key binding, so the standard set of meta- and
- control prefixes and backslash escape sequences is available.
- Use the \1 and \2 escapes to begin and end sequences of non-
- printing characters, which can be used to embed a terminal con-
+ control prefixes and backslash escape sequences is available.
+ Use the \1 and \2 escapes to begin and end sequences of non-
+ printing characters, which can be used to embed a terminal con-
trol sequence into the mode string.
vi-ins-mode-string ((ins))
- If the show-mode-in-prompt variable is enabled, this string is
+ If the show-mode-in-prompt variable is enabled, this string is
displayed immediately before the last line of the primary prompt
when vi editing mode is active and in insertion mode. The value
is expanded like a key binding, so the standard set of meta- and
- control prefixes and backslash escape sequences is available.
- Use the \1 and \2 escapes to begin and end sequences of non-
- printing characters, which can be used to embed a terminal con-
+ control prefixes and backslash escape sequences is available.
+ Use the \1 and \2 escapes to begin and end sequences of non-
+ printing characters, which can be used to embed a terminal con-
trol sequence into the mode string.
visible-stats (Off)
- If set to On, a character denoting a file's type as reported by
- stat(2) is appended to the filename when listing possible com-
+ If set to On, a character denoting a file's type as reported by
+ stat(2) is appended to the filename when listing possible com-
pletions.
Conditional Constructs
- Readline implements a facility similar in spirit to the conditional
- compilation features of the C preprocessor which allows key bindings
- and variable settings to be performed as the result of tests. There
+ Readline implements a facility similar in spirit to the conditional
+ compilation features of the C preprocessor which allows key bindings
+ and variable settings to be performed as the result of tests. There
are four parser directives used.
- $if The $if construct allows bindings to be made based on the edit-
- ing mode, the terminal being used, or the application using
- readline. The text of the test, after any comparison operator,
+ $if The $if construct allows bindings to be made based on the edit-
+ ing mode, the terminal being used, or the application using
+ readline. The text of the test, after any comparison operator,
extends to the end of the line; unless otherwise noted, no char-
acters are required to isolate it.
- mode The mode= form of the $if directive is used to test
- whether readline is in emacs or vi mode. This may be
- used in conjunction with the set keymap command, for
- instance, to set bindings in the emacs-standard and
- emacs-ctlx keymaps only if readline is starting out in
- emacs mode.
+ mode The mode= form of the $if directive is used to test
+ whether readline is in emacs or vi mode. This may be
+ used in conjunction with the set keymap command, for in-
+ stance, to set bindings in the emacs-standard and emacs-
+ ctlx keymaps only if readline is starting out in emacs
+ mode.
- term The term= form may be used to include terminal-specific
+ term The term= form may be used to include terminal-specific
key bindings, perhaps to bind the key sequences output by
the terminal's function keys. The word on the right side
- of the = is tested against the full name of the terminal
- and the portion of the terminal name before the first -.
- This allows sun to match both sun and sun-cmd, for
- instance.
+ of the = is tested against the full name of the terminal
+ and the portion of the terminal name before the first -.
+ This allows sun to match both sun and sun-cmd, for in-
+ stance.
version
- The version test may be used to perform comparisons
- against specific readline versions. The version expands
- to the current readline version. The set of comparison
- operators includes =, (and ==), !=, <=, >=, <, and >.
- The version number supplied on the right side of the
- operator consists of a major version number, an optional
+ The version test may be used to perform comparisons
+ against specific readline versions. The version expands
+ to the current readline version. The set of comparison
+ operators includes =, (and ==), !=, <=, >=, <, and >.
+ The version number supplied on the right side of the op-
+ erator consists of a major version number, an optional
decimal point, and an optional minor version (e.g., 7.1).
- If the minor version is omitted, it is assumed to be 0.
+ If the minor version is omitted, it is assumed to be 0.
The operator may be separated from the string version and
from the version number argument by whitespace.
application
The application construct is used to include application-
- specific settings. Each program using the readline
- library sets the application name, and an initialization
+ specific settings. Each program using the readline li-
+ brary sets the application name, and an initialization
file can test for a particular value. This could be used
- to bind key sequences to functions useful for a specific
- program. For instance, the following command adds a key
- sequence that quotes the current or previous word in
+ to bind key sequences to functions useful for a specific
+ program. For instance, the following command adds a key
+ sequence that quotes the current or previous word in
bash:
$if Bash
@@ -457,12 +458,12 @@ READLINE(3) Library Functions Manual READLINE(3)
variable
The variable construct provides simple equality tests for
- readline variables and values. The permitted comparison
- operators are =, ==, and !=. The variable name must be
+ readline variables and values. The permitted comparison
+ operators are =, ==, and !=. The variable name must be
separated from the comparison operator by whitespace; the
- operator may be separated from the value on the right
- hand side by whitespace. Both string and boolean vari-
- ables may be tested. Boolean variables must be tested
+ operator may be separated from the value on the right
+ hand side by whitespace. Both string and boolean vari-
+ ables may be tested. Boolean variables must be tested
against the values on and off.
$endif This command, as seen in the previous example, terminates an $if
@@ -472,53 +473,53 @@ READLINE(3) Library Functions Manual READLINE(3)
test fails.
$include
- This directive takes a single filename as an argument and reads
- commands and bindings from that file. For example, the follow-
+ This directive takes a single filename as an argument and reads
+ commands and bindings from that file. For example, the follow-
ing directive would read /etc/inputrc:
$include /etc/inputrc
SEARCHING
- Readline provides commands for searching through the command history
- for lines containing a specified string. There are two search modes:
+ Readline provides commands for searching through the command history
+ for lines containing a specified string. There are two search modes:
incremental and non-incremental.
- Incremental searches begin before the user has finished typing the
- search string. As each character of the search string is typed, read-
+ Incremental searches begin before the user has finished typing the
+ search string. As each character of the search string is typed, read-
line displays the next entry from the history matching the string typed
- so far. An incremental search requires only as many characters as
- needed to find the desired history entry. To search backward in the
+ so far. An incremental search requires only as many characters as
+ needed to find the desired history entry. To search backward in the
history for a particular string, type C-r. Typing C-s searches forward
- through the history. The characters present in the value of the
- isearch-terminators variable are used to terminate an incremental
- search. If that variable has not been assigned a value the Escape and
+ through the history. The characters present in the value of the
+ isearch-terminators variable are used to terminate an incremental
+ search. If that variable has not been assigned a value the Escape and
C-J characters will terminate an incremental search. C-G will abort an
- incremental search and restore the original line. When the search is
- terminated, the history entry containing the search string becomes the
+ incremental search and restore the original line. When the search is
+ terminated, the history entry containing the search string becomes the
current line.
- To find other matching entries in the history list, type C-s or C-r as
- appropriate. This will search backward or forward in the history for
- the next line matching the search string typed so far. Any other key
+ To find other matching entries in the history list, type C-s or C-r as
+ appropriate. This will search backward or forward in the history for
+ the next line matching the search string typed so far. Any other key
sequence bound to a readline command will terminate the search and exe-
- cute that command. For instance, a newline will terminate the search
- and accept the line, thereby executing the command from the history
+ cute that command. For instance, a newline will terminate the search
+ and accept the line, thereby executing the command from the history
list. A movement command will terminate the search, make the last line
found the current line, and begin editing.
- Non-incremental searches read the entire search string before starting
- to search for matching history lines. The search string may be typed
+ Non-incremental searches read the entire search string before starting
+ to search for matching history lines. The search string may be typed
by the user or be part of the contents of the current line.
EDITING COMMANDS
- The following is a list of the names of the commands and the default
+ The following is a list of the names of the commands and the default
key sequences to which they are bound. Command names without an accom-
panying key sequence are unbound by default.
In the following descriptions, point refers to the current cursor posi-
- tion, and mark refers to a cursor position saved by the set-mark com-
- mand. The text between the point and mark is referred to as the
- region.
+ tion, and mark refers to a cursor position saved by the set-mark com-
+ mand. The text between the point and mark is referred to as the re-
+ gion.
Commands for Moving
beginning-of-line (C-a)
@@ -533,115 +534,125 @@ READLINE(3) Library Functions Manual READLINE(3)
Move forward to the end of the next word. Words are composed of
alphanumeric characters (letters and digits).
backward-word (M-b)
- Move back to the start of the current or previous word. Words
+ Move back to the start of the current or previous word. Words
are composed of alphanumeric characters (letters and digits).
previous-screen-line
- Attempt to move point to the same physical screen column on the
- previous physical screen line. This will not have the desired
- effect if the current Readline line does not take up more than
- one physical line or if point is not greater than the length of
+ Attempt to move point to the same physical screen column on the
+ previous physical screen line. This will not have the desired
+ effect if the current Readline line does not take up more than
+ one physical line or if point is not greater than the length of
the prompt plus the screen width.
next-screen-line
- Attempt to move point to the same physical screen column on the
+ Attempt to move point to the same physical screen column on the
next physical screen line. This will not have the desired effect
- if the current Readline line does not take up more than one
- physical line or if the length of the current Readline line is
+ if the current Readline line does not take up more than one
+ physical line or if the length of the current Readline line is
not greater than the length of the prompt plus the screen width.
+ clear-display (M-C-l)
+ Clear the screen and, if possible, the terminal's scrollback
+ buffer, then redraw the current line, leaving the current line
+ at the top of the screen.
clear-screen (C-l)
- Clear the screen leaving the current line at the top of the
- screen. With an argument, refresh the current line without
- clearing the screen.
+ Clear the screen, then redraw the current line, leaving the cur-
+ rent line at the top of the screen. With an argument, refresh
+ the current line without clearing the screen.
redraw-current-line
Refresh the current line.
Commands for Manipulating the History
accept-line (Newline, Return)
Accept the line regardless of where the cursor is. If this line
- is non-empty, it may be added to the history list for future
- recall with add_history(). If the line is a modified history
+ is non-empty, it may be added to the history list for future re-
+ call with add_history(). If the line is a modified history
line, the history line is restored to its original state.
previous-history (C-p)
Fetch the previous command from the history list, moving back in
the list.
next-history (C-n)
- Fetch the next command from the history list, moving forward in
+ Fetch the next command from the history list, moving forward in
the list.
beginning-of-history (M-<)
Move to the first line in the history.
end-of-history (M->)
- Move to the end of the input history, i.e., the line currently
+ Move to the end of the input history, i.e., the line currently
being entered.
reverse-search-history (C-r)
- Search backward starting at the current line and moving `up'
- through the history as necessary. This is an incremental
+ Search backward starting at the current line and moving `up'
+ through the history as necessary. This is an incremental
search.
forward-search-history (C-s)
- Search forward starting at the current line and moving `down'
- through the history as necessary. This is an incremental
+ Search forward starting at the current line and moving `down'
+ through the history as necessary. This is an incremental
search.
non-incremental-reverse-search-history (M-p)
Search backward through the history starting at the current line
- using a non-incremental search for a string supplied by the
+ using a non-incremental search for a string supplied by the
user.
non-incremental-forward-search-history (M-n)
- Search forward through the history using a non-incremental
+ Search forward through the history using a non-incremental
search for a string supplied by the user.
history-search-backward
Search backward through the history for the string of characters
- between the start of the current line and the current cursor
- position (the point). The search string must match at the
- beginning of a history line. This is a non-incremental search.
+ between the start of the current line and the current cursor po-
+ sition (the point). The search string must match at the begin-
+ ning of a history line. This is a non-incremental search.
history-search-forward
- Search forward through the history for the string of characters
+ Search forward through the history for the string of characters
between the start of the current line and the point. The search
string must match at the beginning of a history line. This is a
non-incremental search.
history-substring-search-backward
Search backward through the history for the string of characters
- between the start of the current line and the current cursor
- position (the point). The search string may match anywhere in a
+ between the start of the current line and the current cursor po-
+ sition (the point). The search string may match anywhere in a
history line. This is a non-incremental search.
history-substring-search-forward
- Search forward through the history for the string of characters
+ Search forward through the history for the string of characters
between the start of the current line and the point. The search
- string may match anywhere in a history line. This is a non-
- incremental search.
+ string may match anywhere in a history line. This is a non-in-
+ cremental search.
yank-nth-arg (M-C-y)
- Insert the first argument to the previous command (usually the
+ Insert the first argument to the previous command (usually the
second word on the previous line) at point. With an argument n,
- insert the nth word from the previous command (the words in the
- previous command begin with word 0). A negative argument
- inserts the nth word from the end of the previous command. Once
- the argument n is computed, the argument is extracted as if the
+ insert the nth word from the previous command (the words in the
+ previous command begin with word 0). A negative argument in-
+ serts the nth word from the end of the previous command. Once
+ the argument n is computed, the argument is extracted as if the
"!n" history expansion had been specified.
yank-last-arg (M-., M-_)
- Insert the last argument to the previous command (the last word
+ Insert the last argument to the previous command (the last word
of the previous history entry). With a numeric argument, behave
- exactly like yank-nth-arg. Successive calls to yank-last-arg
- move back through the history list, inserting the last word (or
- the word specified by the argument to the first call) of each
+ exactly like yank-nth-arg. Successive calls to yank-last-arg
+ move back through the history list, inserting the last word (or
+ the word specified by the argument to the first call) of each
line in turn. Any numeric argument supplied to these successive
- calls determines the direction to move through the history. A
- negative argument switches the direction through the history
+ calls determines the direction to move through the history. A
+ negative argument switches the direction through the history
(back or forward). The history expansion facilities are used to
- extract the last argument, as if the "!$" history expansion had
+ extract the last argument, as if the "!$" history expansion had
been specified.
+ operate-and-get-next (C-o)
+ Accept the current line for return to the calling application as
+ if a newline had been entered, and fetch the next line relative
+ to the current line from the history for editing. A numeric ar-
+ gument, if supplied, specifies the history entry to use instead
+ of the current line.
Commands for Changing Text
end-of-file (usually C-d)
- The character indicating end-of-file as set, for example, by
- ``stty''. If this character is read when there are no charac-
- ters on the line, and point is at the beginning of the line,
+ The character indicating end-of-file as set, for example, by
+ ``stty''. If this character is read when there are no charac-
+ ters on the line, and point is at the beginning of the line,
Readline interprets it as the end of input and returns EOF.
delete-char (C-d)
Delete the character at point. If this function is bound to the
same character as the tty EOF character, as C-d commonly is, see
above for the effects.
backward-delete-char (Rubout)
- Delete the character behind the cursor. When given a numeric
+ Delete the character behind the cursor. When given a numeric
argument, save the deleted text on the kill ring.
forward-backward-delete-char
- Delete the character under the cursor, unless the cursor is at
+ Delete the character under the cursor, unless the cursor is at
the end of the line, in which case the character behind the cur-
sor is deleted.
quoted-insert (C-q, C-v)
@@ -652,32 +663,32 @@ READLINE(3) Library Functions Manual READLINE(3)
self-insert (a, b, A, 1, !, ...)
Insert the character typed.
transpose-chars (C-t)
- Drag the character before point forward over the character at
- point, moving point forward as well. If point is at the end of
- the line, then this transposes the two characters before point.
+ Drag the character before point forward over the character at
+ point, moving point forward as well. If point is at the end of
+ the line, then this transposes the two characters before point.
Negative arguments have no effect.
transpose-words (M-t)
- Drag the word before point past the word after point, moving
- point over that word as well. If point is at the end of the
+ Drag the word before point past the word after point, moving
+ point over that word as well. If point is at the end of the
line, this transposes the last two words on the line.
upcase-word (M-u)
- Uppercase the current (or following) word. With a negative
- argument, uppercase the previous word, but do not move point.
+ Uppercase the current (or following) word. With a negative ar-
+ gument, uppercase the previous word, but do not move point.
downcase-word (M-l)
- Lowercase the current (or following) word. With a negative
- argument, lowercase the previous word, but do not move point.
+ Lowercase the current (or following) word. With a negative ar-
+ gument, lowercase the previous word, but do not move point.
capitalize-word (M-c)
- Capitalize the current (or following) word. With a negative
- argument, capitalize the previous word, but do not move point.
+ Capitalize the current (or following) word. With a negative ar-
+ gument, capitalize the previous word, but do not move point.
overwrite-mode
- Toggle overwrite mode. With an explicit positive numeric argu-
+ Toggle overwrite mode. With an explicit positive numeric argu-
ment, switches to overwrite mode. With an explicit non-positive
numeric argument, switches to insert mode. This command affects
- only emacs mode; vi mode does overwrite differently. Each call
+ only emacs mode; vi mode does overwrite differently. Each call
to readline() starts in insert mode. In overwrite mode, charac-
- ters bound to self-insert replace the text at point rather than
- pushing the text to the right. Characters bound to back-
- ward-delete-char replace the character before point with a
+ ters bound to self-insert replace the text at point rather than
+ pushing the text to the right. Characters bound to back-
+ ward-delete-char replace the character before point with a
space. By default, this command is unbound.
Killing and Yanking
@@ -686,92 +697,91 @@ READLINE(3) Library Functions Manual READLINE(3)
backward-kill-line (C-x Rubout)
Kill backward to the beginning of the line.
unix-line-discard (C-u)
- Kill backward from point to the beginning of the line. The
+ Kill backward from point to the beginning of the line. The
killed text is saved on the kill-ring.
kill-whole-line
- Kill all characters on the current line, no matter where point
+ Kill all characters on the current line, no matter where point
is.
kill-word (M-d)
- Kill from point the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the
+ Kill from point the end of the current word, or if between
+ words, to the end of the next word. Word boundaries are the
same as those used by forward-word.
backward-kill-word (M-Rubout)
- Kill the word behind point. Word boundaries are the same as
+ Kill the word behind point. Word boundaries are the same as
those used by backward-word.
unix-word-rubout (C-w)
- Kill the word behind point, using white space as a word bound-
+ Kill the word behind point, using white space as a word bound-
ary. The killed text is saved on the kill-ring.
unix-filename-rubout
- Kill the word behind point, using white space and the slash
- character as the word boundaries. The killed text is saved on
+ Kill the word behind point, using white space and the slash
+ character as the word boundaries. The killed text is saved on
the kill-ring.
delete-horizontal-space (M-\)
Delete all spaces and tabs around point.
kill-region
- Kill the text between the point and mark (saved cursor posi-
+ Kill the text between the point and mark (saved cursor posi-
tion). This text is referred to as the region.
copy-region-as-kill
Copy the text in the region to the kill buffer.
copy-backward-word
- Copy the word before point to the kill buffer. The word bound-
+ Copy the word before point to the kill buffer. The word bound-
aries are the same as backward-word.
copy-forward-word
- Copy the word following point to the kill buffer. The word
+ Copy the word following point to the kill buffer. The word
boundaries are the same as forward-word.
yank (C-y)
Yank the top of the kill ring into the buffer at point.
yank-pop (M-y)
- Rotate the kill ring, and yank the new top. Only works follow-
+ Rotate the kill ring, and yank the new top. Only works follow-
ing yank or yank-pop.
Numeric Arguments
digit-argument (M-0, M-1, ..., M--)
- Add this digit to the argument already accumulating, or start a
+ Add this digit to the argument already accumulating, or start a
new argument. M-- starts a negative argument.
universal-argument
- This is another way to specify an argument. If this command is
- followed by one or more digits, optionally with a leading minus
- sign, those digits define the argument. If the command is fol-
- lowed by digits, executing universal-argument again ends the
- numeric argument, but is otherwise ignored. As a special case,
- if this command is immediately followed by a character that is
- neither a digit or minus sign, the argument count for the next
- command is multiplied by four. The argument count is initially
- one, so executing this function the first time makes the argu-
+ This is another way to specify an argument. If this command is
+ followed by one or more digits, optionally with a leading minus
+ sign, those digits define the argument. If the command is fol-
+ lowed by digits, executing universal-argument again ends the nu-
+ meric argument, but is otherwise ignored. As a special case, if
+ this command is immediately followed by a character that is nei-
+ ther a digit or minus sign, the argument count for the next com-
+ mand is multiplied by four. The argument count is initially
+ one, so executing this function the first time makes the argu-
ment count four, a second time makes the argument count sixteen,
and so on.
Completing
complete (TAB)
- Attempt to perform completion on the text before point. The
- actual completion performed is application-specific. Bash, for
- instance, attempts completion treating the text as a variable
- (if the text begins with $), username (if the text begins with
- ~), hostname (if the text begins with @), or command (including
- aliases and functions) in turn. If none of these produces a
- match, filename completion is attempted. Gdb, on the other
- hand, allows completion of program functions and variables, and
+ Attempt to perform completion on the text before point. The ac-
+ tual completion performed is application-specific. Bash, for
+ instance, attempts completion treating the text as a variable
+ (if the text begins with $), username (if the text begins with
+ ~), hostname (if the text begins with @), or command (including
+ aliases and functions) in turn. If none of these produces a
+ match, filename completion is attempted. Gdb, on the other
+ hand, allows completion of program functions and variables, and
only attempts filename completion under certain circumstances.
possible-completions (M-?)
- List the possible completions of the text before point. When
+ List the possible completions of the text before point. When
displaying completions, readline sets the number of columns used
- for display to the value of completion-display-width, the value
- of the environment variable COLUMNS, or the screen width, in
+ for display to the value of completion-display-width, the value
+ of the environment variable COLUMNS, or the screen width, in
that order.
insert-completions (M-*)
- Insert all completions of the text before point that would have
+ Insert all completions of the text before point that would have
been generated by possible-completions.
menu-complete
- Similar to complete, but replaces the word to be completed with
- a single match from the list of possible completions. Repeated
- execution of menu-complete steps through the list of possible
- completions, inserting each match in turn. At the end of the
+ Similar to complete, but replaces the word to be completed with
+ a single match from the list of possible completions. Repeated
+ execution of menu-complete steps through the list of possible
+ completions, inserting each match in turn. At the end of the
list of completions, the bell is rung (subject to the setting of
bell-style) and the original text is restored. An argument of n
- moves n positions forward in the list of matches; a negative
- argument may be used to move backward through the list. This
- command is intended to be bound to TAB, but is unbound by
- default.
+ moves n positions forward in the list of matches; a negative ar-
+ gument may be used to move backward through the list. This com-
+ mand is intended to be bound to TAB, but is unbound by default.
menu-complete-backward
Identical to menu-complete, but moves backward through the list
of possible completions, as if menu-complete had been given a
@@ -849,8 +859,8 @@ READLINE(3) Library Functions Manual READLINE(3)
ning of the line. In either case, the line is accepted as if a
newline had been typed. The default value of comment-begin
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.
+ causes the comment character to be removed, the line will be ex-
+ ecuted by the shell.
dump-functions
Print all of the functions and their key bindings to the read-
line output stream. If a numeric argument is supplied, the out-
@@ -875,8 +885,8 @@ READLINE(3) Library Functions Manual READLINE(3)
DEFAULT KEY BINDINGS
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 metafied characters. The printable ASCII characters not
+ ters with the eighth bit set are written as M-<character>, and are re-
+ ferred to as metafied characters. The printable ASCII characters not
mentioned in the list of emacs standard bindings are bound to the
self-insert function, which just inserts the given character into the
input line. In vi insertion mode, all characters not specifically men-
@@ -926,6 +936,7 @@ READLINE(3) Library Functions Manual READLINE(3)
"M-C-H" backward-kill-word
"M-C-I" tab-insert
"M-C-J" vi-editing-mode
+ "M-C-L" clear-display
"M-C-M" vi-editing-mode
"M-C-R" revert-line
"M-C-Y" yank-nth-arg
@@ -1116,4 +1127,4 @@ READLINE(3) Library Functions Manual READLINE(3)
-GNU Readline 7.0 2017 December 28 READLINE(3)
+GNU Readline 8.1 2020 October 29 READLINE(3)
diff --git a/doc/readline.3 b/doc/readline.3
index be89c2d..179c781 100644
--- a/doc/readline.3
+++ b/doc/readline.3
@@ -6,9 +6,9 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
-.\" Last Change: Thu Dec 28 14:49:51 EST 2017
+.\" Last Change: Tue Mar 24 09:27:30 EDT 2020
.\"
-.TH READLINE 3 "2017 December 28" "GNU Readline 7.0"
+.TH READLINE 3 "2020 October 29" "GNU Readline 8.1"
.\"
.\" File Name macro. This used to be `.PN', for Path Name,
.\" but Sun doesn't seem to like that very much.
@@ -34,8 +34,8 @@ readline \- get a line from a user with editing
\fBreadline\fP (\fIconst char *prompt\fP);
.fi
.SH COPYRIGHT
-.if n Readline is Copyright (C) 1989\-2014 Free Software Foundation, Inc.
-.if t Readline is Copyright \(co 1989\-2014 Free Software Foundation, Inc.
+.if n Readline is Copyright (C) 1989\-2020 Free Software Foundation, Inc.
+.if t Readline is Copyright \(co 1989\-2020 Free Software Foundation, Inc.
.SH DESCRIPTION
.LP
.B readline
@@ -163,7 +163,6 @@ In addition to command names, readline allows keys to be bound
to a string that is inserted when the key is pressed (a \fImacro\fP).
.PP
.SS Key Bindings
-.PP
The syntax for controlling key bindings in the
.I inputrc
file is simple. All that is required is the name of the
@@ -318,7 +317,6 @@ similar mechanisms. The
file may be edited and re-read if a program does not provide
any other means to incorporate new bindings.
.SS Variables
-.PP
Readline has variables that can be used to further customize its
behavior. A variable may be set in the
.I inputrc
@@ -405,10 +403,11 @@ replaced with an ellipsis when displaying possible completions.
This determines when the user is queried about viewing
the number of possible completions
generated by the \fBpossible\-completions\fP command.
-It may be set to any integer value greater than or equal to
-zero. If the number of possible completions is greater than
-or equal to the value of this variable, the user is asked whether
-or not he wishes to view them; otherwise they are simply listed
+It may be set to any integer value greater than or equal to zero.
+If the number of possible completions is greater than
+or equal to the value of this variable,
+readline will ask whether or not the user wishes to view them;
+otherwise they are simply listed
on the terminal. A negative value causes readline to never ask.
.TP
.B convert\-meta (On)
@@ -448,7 +447,7 @@ Use the \e1 and \e2 escapes to begin and end sequences of
non-printing characters, which can be used to embed a terminal control
sequence into the mode string.
.TP
-.B enable\-bracketed\-paste (Off)
+.B enable\-bracketed\-paste (On)
When set to \fBOn\fP, readline will configure the terminal in a way
that will enable it to insert each paste into the editing buffer as a
single string of characters, instead of treating each character as if
@@ -488,6 +487,7 @@ the maximum number of history entries will be set to 500.
When set to \fBOn\fP, makes readline use a single line for display,
scrolling the input horizontally on a single screen line when it
becomes longer than the screen width rather than wrapping to a new line.
+This setting is automatically enabled for terminals of height 1.
.TP
.B input\-meta (Off)
If set to \fBOn\fP, readline will enable eight-bit input (that is,
@@ -633,7 +633,6 @@ by \fIstat\fP(2) is appended to the filename when listing possible
completions.
.PD
.SS Conditional Constructs
-.PP
Readline implements a facility similar in spirit to the conditional
compilation features of the C preprocessor which allows key
bindings and variable settings to be performed as the result
@@ -731,7 +730,6 @@ would read \fI/etc/inputrc\fP:
.fi
.RE
.SH SEARCHING
-.PP
Readline provides commands for searching through the command history
for lines containing a specified string.
There are two search modes:
@@ -771,7 +769,6 @@ Non-incremental searches read the entire search string before starting
to search for matching history lines. The search string may be
typed by the user or be part of the contents of the current line.
.SH EDITING COMMANDS
-.PP
The following is a list of the names of the commands and the default
key sequences to which they are bound.
Command names without an accompanying key sequence are unbound by default.
@@ -781,7 +778,6 @@ position, and \fImark\fP refers to a cursor position saved by the
\fBset\-mark\fP command.
The text between the point and mark is referred to as the \fIregion\fP.
.SS Commands for Moving
-.PP
.PD 0
.TP
.B beginning\-of\-line (C\-a)
@@ -817,8 +813,15 @@ Readline line does not take up more than one physical line or if the length
of the current Readline line is not greater than the length of the prompt
plus the screen width.
.TP
+.B clear\-display (M\-C\-l)
+Clear the screen and, if possible, the terminal's scrollback buffer,
+then redraw the current line,
+leaving the current line at the top of the screen.
+.TP
.B clear\-screen (C\-l)
-Clear the screen leaving the current line at the top of the screen.
+Clear the screen,
+then redraw the current line,
+leaving the current line at the top of the screen.
With an argument, refresh the current line without clearing the
screen.
.TP
@@ -826,7 +829,6 @@ screen.
Refresh the current line.
.PD
.SS Commands for Manipulating the History
-.PP
.PD 0
.TP
.B accept\-line (Newline, Return)
@@ -917,9 +919,17 @@ the direction to move through the history. A negative argument switches
the direction through the history (back or forward).
The history expansion facilities are used to extract the last argument,
as if the "!$" history expansion had been specified.
+.TP
+.B
+operate\-and\-get\-next (C\-o)
+Accept the current line for return to the calling application as if a
+newline had been entered,
+and fetch the next line relative to the current line from the history
+for editing.
+A numeric argument, if supplied, specifies the history entry to use instead
+of the current line.
.PD
.SS Commands for Changing Text
-.PP
.PD 0
.TP
.B \fIend\-of\-file\fP (usually C\-d)
@@ -994,7 +1004,6 @@ Characters bound to \fBbackward\-delete\-char\fP replace the character
before point with a space. By default, this command is unbound.
.PD
.SS Killing and Yanking
-.PP
.PD 0
.TP
.B kill\-line (C\-k)
@@ -1057,7 +1066,6 @@ or
.BR yank\-pop .
.PD
.SS Numeric Arguments
-.PP
.PD 0
.TP
.B digit\-argument (M\-0, M\-1, ..., M\-\-)
@@ -1079,7 +1087,6 @@ first time makes the argument count four, a second time makes the
argument count sixteen, and so on.
.PD
.SS Completing
-.PP
.PD 0
.TP
.B complete (TAB)
@@ -1136,7 +1143,6 @@ If at the end of the line, behaves identically to
\fBpossible-completions\fP.
.PD
.SS Keyboard Macros
-.PP
.PD 0
.TP
.B start\-kbd\-macro (C\-x (\^)
@@ -1155,7 +1161,6 @@ Print the last keyboard macro defined in a format suitable for the
\fIinputrc\fP file.
.PD
.SS Miscellaneous
-.PP
.PD 0
.TP
.B re\-read\-init\-file (C\-x C\-r)
@@ -1331,6 +1336,7 @@ Emacs Meta bindings
"M-C-H" backward-kill-word
"M-C-I" tab-insert
"M-C-J" vi-editing-mode
+"M-C-L" clear-display
"M-C-M" vi-editing-mode
"M-C-R" revert-line
"M-C-Y" yank-nth-arg
@@ -1535,5 +1541,4 @@ Comments and bug reports concerning
this manual page should be directed to
.IR chet.ramey@case.edu .
.SH BUGS
-.PP
It's too big and too slow.
diff --git a/doc/readline.dvi b/doc/readline.dvi
index f6ca0a0..715e5ae 100644
--- a/doc/readline.dvi
+++ b/doc/readline.dvi
Binary files differ
diff --git a/doc/readline.html b/doc/readline.html
index bb0ca68..1dd7693 100644
--- a/doc/readline.html
+++ b/doc/readline.html
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on December, 18 2018 by texi2html 1.64 -->
+<!-- Created on October, 30 2020 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -666,9 +666,9 @@ replaced with an ellipsis when displaying possible completions.
<DD><A NAME="IDX15"></A>
The number of possible completions that determines when the user is
asked whether the list of possibilities should be displayed.
-If the number of possible completions is greater than this value,
-Readline will ask the user whether or not he wishes to view
-them; otherwise, they are simply listed.
+If the number of possible completions is greater than or equal to this value,
+Readline will ask whether or not the user wishes to view them;
+otherwise, they are simply listed.
This variable must be set to an integer value greater than or equal to 0.
A negative value means Readline should never ask.
The default limit is <CODE>100</CODE>.
@@ -725,7 +725,7 @@ When set to <SAMP>`On'</SAMP>, Readline will configure the terminal in a way
that will enable it to insert each paste into the editing buffer as a
single string of characters, instead of treating each character as if
it had been read from the keyboard. This can prevent pasted characters
-from being interpreted as editing commands. The default is <SAMP>`off'</SAMP>.
+from being interpreted as editing commands. The default is <SAMP>`On'</SAMP>.
<P>
<DT><CODE>enable-keypad</CODE>
@@ -773,8 +773,9 @@ the maximum number of history entries will be set to 500.
This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>. Setting it
to <SAMP>`on'</SAMP> means that the text of the lines being edited will scroll
horizontally on a single screen line when they are longer than the width
-of the screen, instead of wrapping onto a new screen line. By default,
-this variable is set to <SAMP>`off'</SAMP>.
+of the screen, instead of wrapping onto a new screen line.
+This variable is automatically set to <SAMP>`on'</SAMP> for terminals of height 1.
+By default, this variable is set to <SAMP>`off'</SAMP>.
<P>
<DT><CODE>input-meta</CODE>
@@ -1356,8 +1357,8 @@ set convert-meta off
# rather than as meta-prefixed characters
set output-meta on
-# if there are more than 150 possible completions for
-# a word, ask the user if he wants to see all of them
+# if there are 150 or more possible completions for a word,
+# ask whether or not the user wants to see all of them
set completion-query-items 150
# For FTP
@@ -1484,15 +1485,24 @@ plus the screen width.
<P>
<A NAME="IDX61"></A>
-<DT><CODE>clear-screen (C-l)</CODE>
+<DT><CODE>clear-display (M-C-l)</CODE>
<DD><A NAME="IDX62"></A>
-Clear the screen and redraw the current line,
+Clear the screen and, if possible, the terminal's scrollback buffer,
+then redraw the current line,
leaving the current line at the top of the screen.
<P>
<A NAME="IDX63"></A>
-<DT><CODE>redraw-current-line ()</CODE>
+<DT><CODE>clear-screen (C-l)</CODE>
<DD><A NAME="IDX64"></A>
+Clear the screen,
+then redraw the current line,
+leaving the current line at the top of the screen.
+<P>
+
+<A NAME="IDX65"></A>
+<DT><CODE>redraw-current-line ()</CODE>
+<DD><A NAME="IDX66"></A>
Refresh the current line. By default, this is unbound.
<P>
@@ -1518,9 +1528,9 @@ Refresh the current line. By default, this is unbound.
<P>
<DL COMPACT>
-<A NAME="IDX65"></A>
+<A NAME="IDX67"></A>
<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX66"></A>
+<DD><A NAME="IDX68"></A>
Accept the line regardless of where the cursor is.
If this line is
non-empty, it may be added to the history list for future recall with
@@ -1529,66 +1539,68 @@ If this line is a modified history line, the history line is restored
to its original state.
<P>
-<A NAME="IDX67"></A>
+<A NAME="IDX69"></A>
<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX68"></A>
+<DD><A NAME="IDX70"></A>
Move `back' through the history list, fetching the previous command.
<P>
-<A NAME="IDX69"></A>
+<A NAME="IDX71"></A>
<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX70"></A>
+<DD><A NAME="IDX72"></A>
Move `forward' through the history list, fetching the next command.
<P>
-<A NAME="IDX71"></A>
+<A NAME="IDX73"></A>
<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX72"></A>
+<DD><A NAME="IDX74"></A>
Move to the first line in the history.
<P>
-<A NAME="IDX73"></A>
+<A NAME="IDX75"></A>
<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX74"></A>
+<DD><A NAME="IDX76"></A>
Move to the end of the input history, i.e., the line currently
being entered.
<P>
-<A NAME="IDX75"></A>
+<A NAME="IDX77"></A>
<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX76"></A>
+<DD><A NAME="IDX78"></A>
Search backward starting at the current line and moving `up' through
the history as necessary. This is an incremental search.
+This command sets the region to the matched text and activates the mark.
<P>
-<A NAME="IDX77"></A>
+<A NAME="IDX79"></A>
<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX78"></A>
+<DD><A NAME="IDX80"></A>
Search forward starting at the current line and moving `down' through
the history as necessary. This is an incremental search.
+This command sets the region to the matched text and activates the mark.
<P>
-<A NAME="IDX79"></A>
+<A NAME="IDX81"></A>
<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX80"></A>
+<DD><A NAME="IDX82"></A>
Search backward starting at the current line and moving `up'
through the history as necessary using a non-incremental search
for a string supplied by the user.
The search string may match anywhere in a history line.
<P>
-<A NAME="IDX81"></A>
+<A NAME="IDX83"></A>
<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX82"></A>
+<DD><A NAME="IDX84"></A>
Search forward starting at the current line and moving `down'
through the history as necessary using a non-incremental search
for a string supplied by the user.
The search string may match anywhere in a history line.
<P>
-<A NAME="IDX83"></A>
+<A NAME="IDX85"></A>
<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX84"></A>
+<DD><A NAME="IDX86"></A>
Search forward through the history for the string of characters
between the start of the current line and the point.
The search string must match at the beginning of a history line.
@@ -1596,9 +1608,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX85"></A>
+<A NAME="IDX87"></A>
<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX86"></A>
+<DD><A NAME="IDX88"></A>
Search backward through the history for the string of characters
between the start of the current line and the point.
The search string must match at the beginning of a history line.
@@ -1606,9 +1618,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX87"></A>
+<A NAME="IDX89"></A>
<DT><CODE>history-substring-search-forward ()</CODE>
-<DD><A NAME="IDX88"></A>
+<DD><A NAME="IDX90"></A>
Search forward through the history for the string of characters
between the start of the current line and the point.
The search string may match anywhere in a history line.
@@ -1616,9 +1628,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX89"></A>
+<A NAME="IDX91"></A>
<DT><CODE>history-substring-search-backward ()</CODE>
-<DD><A NAME="IDX90"></A>
+<DD><A NAME="IDX92"></A>
Search backward through the history for the string of characters
between the start of the current line and the point.
The search string may match anywhere in a history line.
@@ -1626,9 +1638,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX91"></A>
+<A NAME="IDX93"></A>
<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX92"></A>
+<DD><A NAME="IDX94"></A>
Insert the first argument to the previous command (usually
the second word on the previous line) at point.
With an argument <VAR>n</VAR>,
@@ -1639,9 +1651,9 @@ Once the argument <VAR>n</VAR> is computed, the argument is extracted
as if the <SAMP>`!<VAR>n</VAR>'</SAMP> history expansion had been specified.
<P>
-<A NAME="IDX93"></A>
+<A NAME="IDX95"></A>
<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX94"></A>
+<DD><A NAME="IDX96"></A>
Insert last argument to the previous command (the last word of the
previous history entry).
With a numeric argument, behave exactly like <CODE>yank-nth-arg</CODE>.
@@ -1655,6 +1667,17 @@ The history expansion facilities are used to extract the last argument,
as if the <SAMP>`!$'</SAMP> history expansion had been specified.
<P>
+<A NAME="IDX97"></A>
+<DT><CODE>operate-and-get-next (C-o)</CODE>
+<DD><A NAME="IDX98"></A>
+Accept the current line for return to the calling application as if a
+newline had been entered,
+and fetch the next line relative to the current line from the history
+for editing.
+A numeric argument, if supplied, specifies the history entry to use instead
+of the current line.
+<P>
+
</DL>
<P>
@@ -1678,60 +1701,60 @@ as if the <SAMP>`!$'</SAMP> history expansion had been specified.
<DL COMPACT>
-<A NAME="IDX95"></A>
+<A NAME="IDX99"></A>
<DT><CODE><I>end-of-file</I> (usually C-d)</CODE>
-<DD><A NAME="IDX96"></A>
+<DD><A NAME="IDX100"></A>
The character indicating end-of-file as set, for example, by
<CODE>stty</CODE>. If this character is read when there are no characters
on the line, and point is at the beginning of the line, Readline
interprets it as the end of input and returns EOF.
<P>
-<A NAME="IDX97"></A>
+<A NAME="IDX101"></A>
<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX98"></A>
+<DD><A NAME="IDX102"></A>
Delete the character at point. If this function is bound to the
same character as the tty EOF character, as <KBD>C-d</KBD>
commonly is, see above for the effects.
<P>
-<A NAME="IDX99"></A>
+<A NAME="IDX103"></A>
<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX100"></A>
+<DD><A NAME="IDX104"></A>
Delete the character behind the cursor. A numeric argument means
to kill the characters instead of deleting them.
<P>
-<A NAME="IDX101"></A>
+<A NAME="IDX105"></A>
<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX102"></A>
+<DD><A NAME="IDX106"></A>
Delete the character under the cursor, unless the cursor is at the
end of the line, in which case the character behind the cursor is
deleted. By default, this is not bound to a key.
<P>
-<A NAME="IDX103"></A>
+<A NAME="IDX107"></A>
<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX104"></A>
+<DD><A NAME="IDX108"></A>
Add the next character typed to the line verbatim. This is
how to insert key sequences like <KBD>C-q</KBD>, for example.
<P>
-<A NAME="IDX105"></A>
+<A NAME="IDX109"></A>
<DT><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX106"></A>
+<DD><A NAME="IDX110"></A>
Insert a tab character.
<P>
-<A NAME="IDX107"></A>
+<A NAME="IDX111"></A>
<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX108"></A>
+<DD><A NAME="IDX112"></A>
Insert yourself.
<P>
-<A NAME="IDX109"></A>
+<A NAME="IDX113"></A>
<DT><CODE>bracketed-paste-begin ()</CODE>
-<DD><A NAME="IDX110"></A>
+<DD><A NAME="IDX114"></A>
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
@@ -1740,9 +1763,15 @@ are inserted as if each one was bound to <CODE>self-insert</CODE> instead of
executing any editing commands.
<P>
-<A NAME="IDX111"></A>
+Bracketed paste sets the region (the characters between point and the mark)
+to the inserted text. It uses the concept of an <EM>active mark</EM>: when the
+mark is active, Readline redisplay uses the terminal's standout mode to
+denote the region.
+</P><P>
+
+<A NAME="IDX115"></A>
<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX112"></A>
+<DD><A NAME="IDX116"></A>
Drag the character before the cursor forward over
the character at the cursor, moving the
cursor forward as well. If the insertion point
@@ -1751,39 +1780,39 @@ transposes the last two characters of the line.
Negative arguments have no effect.
<P>
-<A NAME="IDX113"></A>
+<A NAME="IDX117"></A>
<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX114"></A>
+<DD><A NAME="IDX118"></A>
Drag the word before point past the word after point,
moving point past that word as well.
If the insertion point is at the end of the line, this transposes
the last two words on the line.
<P>
-<A NAME="IDX115"></A>
+<A NAME="IDX119"></A>
<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX116"></A>
+<DD><A NAME="IDX120"></A>
Uppercase the current (or following) word. With a negative argument,
uppercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX117"></A>
+<A NAME="IDX121"></A>
<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX118"></A>
+<DD><A NAME="IDX122"></A>
Lowercase the current (or following) word. With a negative argument,
lowercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX119"></A>
+<A NAME="IDX123"></A>
<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX120"></A>
+<DD><A NAME="IDX124"></A>
Capitalize the current (or following) word. With a negative argument,
capitalize the previous word, but do not move the cursor.
<P>
-<A NAME="IDX121"></A>
+<A NAME="IDX125"></A>
<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX122"></A>
+<DD><A NAME="IDX126"></A>
Toggle overwrite mode. With an explicit positive numeric argument,
switches to overwrite mode. With an explicit non-positive numeric
argument, switches to insert mode. This command affects only
@@ -1823,106 +1852,121 @@ By default, this command is unbound.
<DL COMPACT>
-<A NAME="IDX123"></A>
+<A NAME="IDX127"></A>
<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX124"></A>
+<DD><A NAME="IDX128"></A>
Kill the text from point to the end of the line.
+With a negative numeric argument, kill backward from the cursor to the
+beginning of the current line.
<P>
-<A NAME="IDX125"></A>
+<A NAME="IDX129"></A>
<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX126"></A>
+<DD><A NAME="IDX130"></A>
Kill backward from the cursor to the beginning of the current line.
+With a negative numeric argument, kill forward from the cursor to the
+end of the current line.
<P>
-<A NAME="IDX127"></A>
+<A NAME="IDX131"></A>
<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX128"></A>
+<DD><A NAME="IDX132"></A>
Kill backward from the cursor to the beginning of the current line.
<P>
-<A NAME="IDX129"></A>
+<A NAME="IDX133"></A>
<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX130"></A>
+<DD><A NAME="IDX134"></A>
Kill all characters on the current line, no matter where point is.
By default, this is unbound.
<P>
-<A NAME="IDX131"></A>
+<A NAME="IDX135"></A>
<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX132"></A>
+<DD><A NAME="IDX136"></A>
Kill from point to the end of the current word, or if between
words, to the end of the next word.
Word boundaries are the same as <CODE>forward-word</CODE>.
<P>
-<A NAME="IDX133"></A>
+<A NAME="IDX137"></A>
<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX134"></A>
+<DD><A NAME="IDX138"></A>
Kill the word behind point.
Word boundaries are the same as <CODE>backward-word</CODE>.
<P>
-<A NAME="IDX135"></A>
+<A NAME="IDX139"></A>
+<DT><CODE>shell-transpose-words (M-C-t)</CODE>
+<DD><A NAME="IDX140"></A>
+Drag the word before point past the word after point,
+moving point past that word as well.
+If the insertion point is at the end of the line, this transposes
+the last two words on the line.
+Word boundaries are the same as <CODE>shell-forward-word</CODE> and
+<CODE>shell-backward-word</CODE>.
+<P>
+
+<A NAME="IDX141"></A>
<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX136"></A>
+<DD><A NAME="IDX142"></A>
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
<P>
-<A NAME="IDX137"></A>
+<A NAME="IDX143"></A>
<DT><CODE>unix-filename-rubout ()</CODE>
-<DD><A NAME="IDX138"></A>
+<DD><A NAME="IDX144"></A>
Kill the word behind point, using white space and the slash character
as the word boundaries.
The killed text is saved on the kill-ring.
<P>
-<A NAME="IDX139"></A>
+<A NAME="IDX145"></A>
<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX140"></A>
+<DD><A NAME="IDX146"></A>
Delete all spaces and tabs around point. By default, this is unbound.
<P>
-<A NAME="IDX141"></A>
+<A NAME="IDX147"></A>
<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX142"></A>
+<DD><A NAME="IDX148"></A>
Kill the text in the current region.
By default, this command is unbound.
<P>
-<A NAME="IDX143"></A>
+<A NAME="IDX149"></A>
<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX144"></A>
+<DD><A NAME="IDX150"></A>
Copy the text in the region to the kill buffer, so it can be yanked
right away. By default, this command is unbound.
<P>
-<A NAME="IDX145"></A>
+<A NAME="IDX151"></A>
<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX146"></A>
+<DD><A NAME="IDX152"></A>
Copy the word before point to the kill buffer.
The word boundaries are the same as <CODE>backward-word</CODE>.
By default, this command is unbound.
<P>
-<A NAME="IDX147"></A>
+<A NAME="IDX153"></A>
<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX148"></A>
+<DD><A NAME="IDX154"></A>
Copy the word following point to the kill buffer.
The word boundaries are the same as <CODE>forward-word</CODE>.
By default, this command is unbound.
<P>
-<A NAME="IDX149"></A>
+<A NAME="IDX155"></A>
<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX150"></A>
+<DD><A NAME="IDX156"></A>
Yank the top of the kill ring into the buffer at point.
<P>
-<A NAME="IDX151"></A>
+<A NAME="IDX157"></A>
<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX152"></A>
+<DD><A NAME="IDX158"></A>
Rotate the kill-ring, and yank the new top. You can only do this if
the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
</DL>
@@ -1946,16 +1990,16 @@ the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
<!--docid::SEC18::-->
<DL COMPACT>
-<A NAME="IDX153"></A>
+<A NAME="IDX159"></A>
<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX154"></A>
+<DD><A NAME="IDX160"></A>
Add this digit to the argument already accumulating, or start a new
argument. <KBD>M--</KBD> starts a negative argument.
<P>
-<A NAME="IDX155"></A>
+<A NAME="IDX161"></A>
<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX156"></A>
+<DD><A NAME="IDX162"></A>
This is another way to specify an argument.
If this command is followed by one or more digits, optionally with a
leading minus sign, those digits define the argument.
@@ -1990,33 +2034,33 @@ By default, this is not bound to a key.
<P>
<DL COMPACT>
-<A NAME="IDX157"></A>
+<A NAME="IDX163"></A>
<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX158"></A>
+<DD><A NAME="IDX164"></A>
Attempt to perform completion on the text before point.
The actual completion performed is application-specific.
The default is filename completion.
<P>
-<A NAME="IDX159"></A>
+<A NAME="IDX165"></A>
<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX160"></A>
+<DD><A NAME="IDX166"></A>
List the possible completions of the text before point.
When displaying completions, Readline sets the number of columns used
for display to the value of <CODE>completion-display-width</CODE>, the value of
the environment variable <CODE>COLUMNS</CODE>, or the screen width, in that order.
<P>
-<A NAME="IDX161"></A>
+<A NAME="IDX167"></A>
<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX162"></A>
+<DD><A NAME="IDX168"></A>
Insert all completions of the text before point that would have
been generated by <CODE>possible-completions</CODE>.
<P>
-<A NAME="IDX163"></A>
+<A NAME="IDX169"></A>
<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX164"></A>
+<DD><A NAME="IDX170"></A>
Similar to <CODE>complete</CODE>, but replaces the word to be completed
with a single match from the list of possible completions.
Repeated execution of <CODE>menu-complete</CODE> steps through the list
@@ -2031,17 +2075,17 @@ This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
by default.
<P>
-<A NAME="IDX165"></A>
+<A NAME="IDX171"></A>
<DT><CODE>menu-complete-backward ()</CODE>
-<DD><A NAME="IDX166"></A>
+<DD><A NAME="IDX172"></A>
Identical to <CODE>menu-complete</CODE>, but moves backward through the list
of possible completions, as if <CODE>menu-complete</CODE> had been given a
negative argument.
<P>
-<A NAME="IDX167"></A>
+<A NAME="IDX173"></A>
<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX168"></A>
+<DD><A NAME="IDX174"></A>
Deletes the character under the cursor if not at the beginning or
end of the line (like <CODE>delete-char</CODE>).
If at the end of the line, behaves identically to
@@ -2070,29 +2114,29 @@ This command is unbound by default.
<!--docid::SEC20::-->
<DL COMPACT>
-<A NAME="IDX169"></A>
+<A NAME="IDX175"></A>
<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX170"></A>
+<DD><A NAME="IDX176"></A>
Begin saving the characters typed into the current keyboard macro.
<P>
-<A NAME="IDX171"></A>
+<A NAME="IDX177"></A>
<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX172"></A>
+<DD><A NAME="IDX178"></A>
Stop saving the characters typed into the current keyboard macro
and save the definition.
<P>
-<A NAME="IDX173"></A>
+<A NAME="IDX179"></A>
<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX174"></A>
+<DD><A NAME="IDX180"></A>
Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
<P>
-<A NAME="IDX175"></A>
+<A NAME="IDX181"></A>
<DT><CODE>print-last-kbd-macro ()</CODE>
-<DD><A NAME="IDX176"></A>
+<DD><A NAME="IDX182"></A>
Print the last keboard macro defined in a format suitable for the
<VAR>inputrc</VAR> file.
<P>
@@ -2118,88 +2162,88 @@ Print the last keboard macro defined in a format suitable for the
<!--docid::SEC21::-->
<DL COMPACT>
-<A NAME="IDX177"></A>
+<A NAME="IDX183"></A>
<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX178"></A>
+<DD><A NAME="IDX184"></A>
Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
any bindings or variable assignments found there.
<P>
-<A NAME="IDX179"></A>
+<A NAME="IDX185"></A>
<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX180"></A>
+<DD><A NAME="IDX186"></A>
Abort the current editing command and
ring the terminal's bell (subject to the setting of
<CODE>bell-style</CODE>).
<P>
-<A NAME="IDX181"></A>
+<A NAME="IDX187"></A>
<DT><CODE>do-lowercase-version (M-A, M-B, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX182"></A>
+<DD><A NAME="IDX188"></A>
If the metafied character <VAR>x</VAR> is upper case, run the command
that is bound to the corresponding metafied lower case character.
The behavior is undefined if <VAR>x</VAR> is already lower case.
<P>
-<A NAME="IDX183"></A>
+<A NAME="IDX189"></A>
<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX184"></A>
+<DD><A NAME="IDX190"></A>
Metafy the next character typed. This is for keyboards
without a meta key. Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
<KBD>M-f</KBD>.
<P>
-<A NAME="IDX185"></A>
+<A NAME="IDX191"></A>
<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX186"></A>
+<DD><A NAME="IDX192"></A>
Incremental undo, separately remembered for each line.
<P>
-<A NAME="IDX187"></A>
+<A NAME="IDX193"></A>
<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX188"></A>
+<DD><A NAME="IDX194"></A>
Undo all changes made to this line. This is like executing the <CODE>undo</CODE>
command enough times to get back to the beginning.
<P>
-<A NAME="IDX189"></A>
+<A NAME="IDX195"></A>
<DT><CODE>tilde-expand (M-~)</CODE>
-<DD><A NAME="IDX190"></A>
+<DD><A NAME="IDX196"></A>
Perform tilde expansion on the current word.
<P>
-<A NAME="IDX191"></A>
+<A NAME="IDX197"></A>
<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX192"></A>
+<DD><A NAME="IDX198"></A>
Set the mark to the point. If a
numeric argument is supplied, the mark is set to that position.
<P>
-<A NAME="IDX193"></A>
+<A NAME="IDX199"></A>
<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX194"></A>
+<DD><A NAME="IDX200"></A>
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.
<P>
-<A NAME="IDX195"></A>
+<A NAME="IDX201"></A>
<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX196"></A>
+<DD><A NAME="IDX202"></A>
A character is read and point is moved to the next occurrence of that
character. A negative count searches for previous occurrences.
<P>
-<A NAME="IDX197"></A>
+<A NAME="IDX203"></A>
<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX198"></A>
+<DD><A NAME="IDX204"></A>
A character is read and point is moved to the previous occurrence
of that character. A negative count searches for subsequent
occurrences.
<P>
-<A NAME="IDX199"></A>
+<A NAME="IDX205"></A>
<DT><CODE>skip-csi-sequence ()</CODE>
-<DD><A NAME="IDX200"></A>
+<DD><A NAME="IDX206"></A>
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
@@ -2209,9 +2253,9 @@ stray characters into the editing buffer. This is unbound by default,
but usually bound to ESC-[.
<P>
-<A NAME="IDX201"></A>
+<A NAME="IDX207"></A>
<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX202"></A>
+<DD><A NAME="IDX208"></A>
Without a numeric argument, the value of the <CODE>comment-begin</CODE>
variable is inserted at the beginning of the current line.
If a numeric argument is supplied, this command acts as a toggle: if
@@ -2222,43 +2266,43 @@ the line.
In either case, the line is accepted as if a newline had been typed.
<P>
-<A NAME="IDX203"></A>
+<A NAME="IDX209"></A>
<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX204"></A>
+<DD><A NAME="IDX210"></A>
Print all of the functions and their key bindings 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 <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX205"></A>
+<A NAME="IDX211"></A>
<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX206"></A>
+<DD><A NAME="IDX212"></A>
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 <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX207"></A>
+<A NAME="IDX213"></A>
<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX208"></A>
+<DD><A NAME="IDX214"></A>
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 <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX209"></A>
+<A NAME="IDX215"></A>
<DT><CODE>emacs-editing-mode (C-e)</CODE>
-<DD><A NAME="IDX210"></A>
+<DD><A NAME="IDX216"></A>
When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
editing mode.
<P>
-<A NAME="IDX211"></A>
+<A NAME="IDX217"></A>
<DT><CODE>vi-editing-mode (M-C-j)</CODE>
-<DD><A NAME="IDX212"></A>
+<DD><A NAME="IDX218"></A>
When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
editing mode.
<P>
@@ -2309,7 +2353,7 @@ in the consistency of user interface across discrete programs that need
to provide a command line interface.
</P><P>
-Copyright (C) 1988--2016 Free Software Foundation, Inc.
+Copyright (C) 1988--2020 Free Software Foundation, Inc.
</P><P>
Permission is granted to make and distribute verbatim copies of
@@ -2393,8 +2437,8 @@ the simplest way possible, perhaps to replace calls in your code to
<CODE>gets()</CODE> or <CODE>fgets()</CODE>.
</P><P>
-<A NAME="IDX213"></A>
-<A NAME="IDX214"></A>
+<A NAME="IDX219"></A>
+<A NAME="IDX220"></A>
</P><P>
The function <CODE>readline()</CODE> prints a prompt <VAR>prompt</VAR>
@@ -2717,7 +2761,7 @@ command functions.
These variables are available to function writers.
</P><P>
-<A NAME="IDX215"></A>
+<A NAME="IDX221"></A>
<DL>
<DT><U>Variable:</U> char * <B>rl_line_buffer</B>
<DD>This is the line gathered so far. You are welcome to modify the
@@ -2727,7 +2771,7 @@ the memory allocated to <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX216"></A>
+<A NAME="IDX222"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_point</B>
<DD>The offset of the current cursor position in <CODE>rl_line_buffer</CODE>
@@ -2735,7 +2779,7 @@ the memory allocated to <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX217"></A>
+<A NAME="IDX223"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_end</B>
<DD>The number of characters present in <CODE>rl_line_buffer</CODE>. When
@@ -2744,7 +2788,7 @@ the memory allocated to <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX218"></A>
+<A NAME="IDX224"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_mark</B>
<DD>The <VAR>mark</VAR> (saved position) in the current line. If set, the mark
@@ -2752,7 +2796,7 @@ and point define a <EM>region</EM>.
</DL>
</P><P>
-<A NAME="IDX219"></A>
+<A NAME="IDX225"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_done</B>
<DD>Setting this to a non-zero value causes Readline to return the current
@@ -2760,7 +2804,7 @@ line immediately.
</DL>
</P><P>
-<A NAME="IDX220"></A>
+<A NAME="IDX226"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_num_chars_to_read</B>
<DD>Setting this to a positive value before calling <CODE>readline()</CODE> causes
@@ -2769,7 +2813,7 @@ than reading up to a character bound to <CODE>accept-line</CODE>.
</DL>
</P><P>
-<A NAME="IDX221"></A>
+<A NAME="IDX227"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_pending_input</B>
<DD>Setting this to a value makes it the next keystroke read. This is a
@@ -2777,7 +2821,7 @@ way to stuff a single character into the input stream.
</DL>
</P><P>
-<A NAME="IDX222"></A>
+<A NAME="IDX228"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_dispatching</B>
<DD>Set to a non-zero value if a function is being called from a key binding;
@@ -2786,7 +2830,7 @@ they were called directly or by Readline's dispatching mechanism.
</DL>
</P><P>
-<A NAME="IDX223"></A>
+<A NAME="IDX229"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_erase_empty_line</B>
<DD>Setting this to a non-zero value causes Readline to completely erase
@@ -2796,7 +2840,7 @@ the beginning of the newly-blank line.
</DL>
</P><P>
-<A NAME="IDX224"></A>
+<A NAME="IDX230"></A>
<DL>
<DT><U>Variable:</U> char * <B>rl_prompt</B>
<DD>The prompt Readline uses. This is set from the argument to
@@ -2806,7 +2850,7 @@ be used to modify the prompt string after calling <CODE>readline()</CODE>.
</DL>
</P><P>
-<A NAME="IDX225"></A>
+<A NAME="IDX231"></A>
<DL>
<DT><U>Variable:</U> char * <B>rl_display_prompt</B>
<DD>The string displayed as the prompt. This is usually identical to
@@ -2815,7 +2859,7 @@ use the prompt string as a message area, such as incremental search.
</DL>
</P><P>
-<A NAME="IDX226"></A>
+<A NAME="IDX232"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_already_prompted</B>
<DD>If an application wishes to display the prompt itself, rather than have
@@ -2828,14 +2872,14 @@ never sets it.
</DL>
</P><P>
-<A NAME="IDX227"></A>
+<A NAME="IDX233"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_library_version</B>
<DD>The version number of this revision of the library.
</DL>
</P><P>
-<A NAME="IDX228"></A>
+<A NAME="IDX234"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_readline_version</B>
<DD>An integer encoding the current version of the library. The encoding is
@@ -2846,7 +2890,7 @@ value 0x0402.
</DL>
</P><P>
-<A NAME="IDX229"></A>
+<A NAME="IDX235"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_gnu_readline_p</B>
<DD>Always set to 1, denoting that this is GNU readline rather than some
@@ -2854,7 +2898,7 @@ emulation.
</DL>
</P><P>
-<A NAME="IDX230"></A>
+<A NAME="IDX236"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_terminal_name</B>
<DD>The terminal type, used for initialization. If not set by the application,
@@ -2863,7 +2907,7 @@ the first time it is called.
</DL>
</P><P>
-<A NAME="IDX231"></A>
+<A NAME="IDX237"></A>
<DL>
<DT><U>Variable:</U> const char * <B>rl_readline_name</B>
<DD>This variable is set to a unique name by each application using Readline.
@@ -2872,7 +2916,7 @@ The value allows conditional parsing of the inputrc file
</DL>
</P><P>
-<A NAME="IDX232"></A>
+<A NAME="IDX238"></A>
<DL>
<DT><U>Variable:</U> FILE * <B>rl_instream</B>
<DD>The stdio stream from which Readline reads input.
@@ -2880,7 +2924,7 @@ If <CODE>NULL</CODE>, Readline defaults to <VAR>stdin</VAR>.
</DL>
</P><P>
-<A NAME="IDX233"></A>
+<A NAME="IDX239"></A>
<DL>
<DT><U>Variable:</U> FILE * <B>rl_outstream</B>
<DD>The stdio stream to which Readline performs output.
@@ -2888,7 +2932,7 @@ If <CODE>NULL</CODE>, Readline defaults to <VAR>stdout</VAR>.
</DL>
</P><P>
-<A NAME="IDX234"></A>
+<A NAME="IDX240"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_prefer_env_winsize</B>
<DD>If non-zero, Readline gives values found in the <CODE>LINES</CODE> and
@@ -2897,7 +2941,7 @@ from the kernel when computing the screen dimensions.
</DL>
</P><P>
-<A NAME="IDX235"></A>
+<A NAME="IDX241"></A>
<DL>
<DT><U>Variable:</U> rl_command_func_t * <B>rl_last_func</B>
<DD>The address of the last command function Readline executed. May be used to
@@ -2906,7 +2950,7 @@ example.
</DL>
</P><P>
-<A NAME="IDX236"></A>
+<A NAME="IDX242"></A>
<DL>
<DT><U>Variable:</U> rl_hook_func_t * <B>rl_startup_hook</B>
<DD>If non-zero, this is the address of a function to call just
@@ -2914,7 +2958,7 @@ before <CODE>readline</CODE> prints the first prompt.
</DL>
</P><P>
-<A NAME="IDX237"></A>
+<A NAME="IDX243"></A>
<DL>
<DT><U>Variable:</U> rl_hook_func_t * <B>rl_pre_input_hook</B>
<DD>If non-zero, this is the address of a function to call after
@@ -2923,7 +2967,7 @@ starts reading input characters.
</DL>
</P><P>
-<A NAME="IDX238"></A>
+<A NAME="IDX244"></A>
<DL>
<DT><U>Variable:</U> rl_hook_func_t * <B>rl_event_hook</B>
<DD>If non-zero, this is the address of a function to call periodically
@@ -2933,7 +2977,7 @@ is no keyboard input.
</DL>
</P><P>
-<A NAME="IDX239"></A>
+<A NAME="IDX245"></A>
<DL>
<DT><U>Variable:</U> rl_getc_func_t * <B>rl_getc_function</B>
<DD>If non-zero, Readline will call indirectly through this pointer
@@ -2945,7 +2989,7 @@ setting <VAR>rl_input_available_hook</VAR> as well.
</DL>
</P><P>
-<A NAME="IDX240"></A>
+<A NAME="IDX246"></A>
<DL>
<DT><U>Variable:</U> rl_hook_func_t * <B>rl_signal_event_hook</B>
<DD>If non-zero, this is the address of a function to call if a read system
@@ -2953,7 +2997,7 @@ call is interrupted when Readline is reading terminal input.
</DL>
</P><P>
-<A NAME="IDX241"></A>
+<A NAME="IDX247"></A>
<DL>
<DT><U>Variable:</U> rl_hook_func_t * <B>rl_input_available_hook</B>
<DD>If non-zero, Readline will use this function's return value when it needs
@@ -2978,7 +3022,7 @@ setting <VAR>rl_input_available_hook</VAR> as well.
</DL>
</P><P>
-<A NAME="IDX242"></A>
+<A NAME="IDX248"></A>
<DL>
<DT><U>Variable:</U> rl_voidfunc_t * <B>rl_redisplay_function</B>
<DD>If non-zero, Readline will call indirectly through this pointer
@@ -2988,7 +3032,7 @@ redisplay function (see section <A HREF="readline.html#SEC35">2.4.6 Redisplay</A
</DL>
</P><P>
-<A NAME="IDX243"></A>
+<A NAME="IDX249"></A>
<DL>
<DT><U>Variable:</U> rl_vintfunc_t * <B>rl_prep_term_function</B>
<DD>If non-zero, Readline will call indirectly through this pointer
@@ -2999,7 +3043,7 @@ By default, this is set to <CODE>rl_prep_terminal</CODE>
</DL>
</P><P>
-<A NAME="IDX244"></A>
+<A NAME="IDX250"></A>
<DL>
<DT><U>Variable:</U> rl_voidfunc_t * <B>rl_deprep_term_function</B>
<DD>If non-zero, Readline will call indirectly through this pointer
@@ -3010,7 +3054,7 @@ By default, this is set to <CODE>rl_deprep_terminal</CODE>
</DL>
</P><P>
-<A NAME="IDX245"></A>
+<A NAME="IDX251"></A>
<DL>
<DT><U>Variable:</U> Keymap <B>rl_executing_keymap</B>
<DD>This variable is set to the keymap (see section <A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A>) in which the
@@ -3018,7 +3062,7 @@ currently executing readline function was found.
</DL>
</P><P>
-<A NAME="IDX246"></A>
+<A NAME="IDX252"></A>
<DL>
<DT><U>Variable:</U> Keymap <B>rl_binding_keymap</B>
<DD>This variable is set to the keymap (see section <A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A>) in which the
@@ -3026,21 +3070,21 @@ last key binding occurred.
</DL>
</P><P>
-<A NAME="IDX247"></A>
+<A NAME="IDX253"></A>
<DL>
<DT><U>Variable:</U> char * <B>rl_executing_macro</B>
<DD>This variable is set to the text of any currently-executing macro.
</DL>
</P><P>
-<A NAME="IDX248"></A>
+<A NAME="IDX254"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_executing_key</B>
<DD>The key that caused the dispatch to the currently-executing Readline function.
</DL>
</P><P>
-<A NAME="IDX249"></A>
+<A NAME="IDX255"></A>
<DL>
<DT><U>Variable:</U> char * <B>rl_executing_keyseq</B>
<DD>The full key sequence that caused the dispatch to the currently-executing
@@ -3048,14 +3092,14 @@ Readline function.
</DL>
</P><P>
-<A NAME="IDX250"></A>
+<A NAME="IDX256"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_key_sequence_length</B>
<DD>The number of characters in <VAR>rl_executing_keyseq</VAR>.
</DL>
</P><P>
-<A NAME="IDX251"></A>
+<A NAME="IDX257"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_readline_state</B>
<DD>A variable with bit values that encapsulate the current Readline state.
@@ -3125,7 +3169,7 @@ and is about to return the line to the caller.
</DL>
</P><P>
-<A NAME="IDX252"></A>
+<A NAME="IDX258"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_explicit_arg</B>
<DD>Set to a non-zero value if an explicit numeric argument was specified by
@@ -3133,7 +3177,7 @@ the user. Only valid in a bindable command function.
</DL>
</P><P>
-<A NAME="IDX253"></A>
+<A NAME="IDX259"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_numeric_arg</B>
<DD>Set to the value of any numeric argument explicitly specified by the user
@@ -3142,7 +3186,7 @@ command function.
</DL>
</P><P>
-<A NAME="IDX254"></A>
+<A NAME="IDX260"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_editing_mode</B>
<DD>Set to a value denoting Readline's current editing mode. A value of
@@ -3221,7 +3265,7 @@ programmer, should bind the functions you write to descriptive names as
well. Readline provides a function for doing that:
</P><P>
-<A NAME="IDX255"></A>
+<A NAME="IDX261"></A>
<DL>
<DT><U>Function:</U> int <B>rl_add_defun</B> <I>(const char *name, rl_command_func_t *function, int key)</I>
<DD>Add <VAR>name</VAR> to the list of named functions. Make <VAR>function</VAR> be
@@ -3261,7 +3305,7 @@ get run. You can make your own keymaps, copy existing keymaps, and tell
Readline which keymap to use.
</P><P>
-<A NAME="IDX256"></A>
+<A NAME="IDX262"></A>
<DL>
<DT><U>Function:</U> Keymap <B>rl_make_bare_keymap</B> <I>(void)</I>
<DD>Returns a new, empty keymap. The space for the keymap is allocated with
@@ -3270,14 +3314,14 @@ Readline which keymap to use.
</DL>
</P><P>
-<A NAME="IDX257"></A>
+<A NAME="IDX263"></A>
<DL>
<DT><U>Function:</U> Keymap <B>rl_copy_keymap</B> <I>(Keymap map)</I>
<DD>Return a new keymap which is a copy of <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX258"></A>
+<A NAME="IDX264"></A>
<DL>
<DT><U>Function:</U> Keymap <B>rl_make_keymap</B> <I>(void)</I>
<DD>Return a new keymap with the printing characters bound to rl_insert,
@@ -3286,7 +3330,7 @@ the Meta digits bound to produce numeric arguments.
</DL>
</P><P>
-<A NAME="IDX259"></A>
+<A NAME="IDX265"></A>
<DL>
<DT><U>Function:</U> void <B>rl_discard_keymap</B> <I>(Keymap keymap)</I>
<DD>Free the storage associated with the data in <VAR>keymap</VAR>.
@@ -3294,7 +3338,7 @@ The caller should free <VAR>keymap</VAR>.
</DL>
</P><P>
-<A NAME="IDX260"></A>
+<A NAME="IDX266"></A>
<DL>
<DT><U>Function:</U> void <B>rl_free_keymap</B> <I>(Keymap keymap)</I>
<DD>Free all storage associated with <VAR>keymap</VAR>. This calls
@@ -3302,7 +3346,7 @@ The caller should free <VAR>keymap</VAR>.
</DL>
</P><P>
-<A NAME="IDX261"></A>
+<A NAME="IDX267"></A>
<DL>
<DT><U>Function:</U> int <B>rl_empty_keymap</B> <I>(Keymap keymap)</I>
<DD>Return non-zero if there are no keys bound to functions in <VAR>keymap</VAR>;
@@ -3314,21 +3358,21 @@ Readline has several internal keymaps. These functions allow you to
change which keymap is active.
</P><P>
-<A NAME="IDX262"></A>
+<A NAME="IDX268"></A>
<DL>
<DT><U>Function:</U> Keymap <B>rl_get_keymap</B> <I>(void)</I>
<DD>Returns the currently active keymap.
</DL>
</P><P>
-<A NAME="IDX263"></A>
+<A NAME="IDX269"></A>
<DL>
<DT><U>Function:</U> void <B>rl_set_keymap</B> <I>(Keymap keymap)</I>
<DD>Makes <VAR>keymap</VAR> the currently active keymap.
</DL>
</P><P>
-<A NAME="IDX264"></A>
+<A NAME="IDX270"></A>
<DL>
<DT><U>Function:</U> Keymap <B>rl_get_keymap_by_name</B> <I>(const char *name)</I>
<DD>Return the keymap matching <VAR>name</VAR>. <VAR>name</VAR> is one which would
@@ -3336,7 +3380,7 @@ be supplied in a <CODE>set keymap</CODE> inputrc line (see section <A HREF="read
</DL>
</P><P>
-<A NAME="IDX265"></A>
+<A NAME="IDX271"></A>
<DL>
<DT><U>Function:</U> char * <B>rl_get_keymap_name</B> <I>(Keymap keymap)</I>
<DD>Return the name matching <VAR>keymap</VAR>. <VAR>name</VAR> is one which would
@@ -3344,7 +3388,7 @@ be supplied in a <CODE>set keymap</CODE> inputrc line (see section <A HREF="read
</DL>
</P><P>
-<A NAME="IDX266"></A>
+<A NAME="IDX272"></A>
<DL>
<DT><U>Function:</U> int <B>rl_set_keymap_name</B> <I>(const char *name, Keymap keymap)</I>
<DD>Set the name of <VAR>keymap</VAR>. This name will then be "registered" and
@@ -3402,7 +3446,7 @@ initialization function assigned to the <CODE>rl_startup_hook</CODE> variable
These functions manage key bindings.
</P><P>
-<A NAME="IDX267"></A>
+<A NAME="IDX273"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_key</B> <I>(int key, rl_command_func_t *function)</I>
<DD>Binds <VAR>key</VAR> to <VAR>function</VAR> in the currently active keymap.
@@ -3410,7 +3454,7 @@ Returns non-zero in the case of an invalid <VAR>key</VAR>.
</DL>
</P><P>
-<A NAME="IDX268"></A>
+<A NAME="IDX274"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_key_in_map</B> <I>(int key, rl_command_func_t *function, Keymap map)</I>
<DD>Bind <VAR>key</VAR> to <VAR>function</VAR> in <VAR>map</VAR>.
@@ -3418,7 +3462,7 @@ Returns non-zero in the case of an invalid <VAR>key</VAR>.
</DL>
</P><P>
-<A NAME="IDX269"></A>
+<A NAME="IDX275"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_key_if_unbound</B> <I>(int key, rl_command_func_t *function)</I>
<DD>Binds <VAR>key</VAR> to <VAR>function</VAR> if it is not already bound in the
@@ -3428,7 +3472,7 @@ already bound.
</DL>
</P><P>
-<A NAME="IDX270"></A>
+<A NAME="IDX276"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_key_if_unbound_in_map</B> <I>(int key, rl_command_func_t *function, Keymap map)</I>
<DD>Binds <VAR>key</VAR> to <VAR>function</VAR> if it is not already bound in <VAR>map</VAR>.
@@ -3437,7 +3481,7 @@ already bound.
</DL>
</P><P>
-<A NAME="IDX271"></A>
+<A NAME="IDX277"></A>
<DL>
<DT><U>Function:</U> int <B>rl_unbind_key</B> <I>(int key)</I>
<DD>Bind <VAR>key</VAR> to the null function in the currently active keymap.
@@ -3445,7 +3489,7 @@ Returns non-zero in case of error.
</DL>
</P><P>
-<A NAME="IDX272"></A>
+<A NAME="IDX278"></A>
<DL>
<DT><U>Function:</U> int <B>rl_unbind_key_in_map</B> <I>(int key, Keymap map)</I>
<DD>Bind <VAR>key</VAR> to the null function in <VAR>map</VAR>.
@@ -3453,21 +3497,21 @@ Returns non-zero in case of error.
</DL>
</P><P>
-<A NAME="IDX273"></A>
+<A NAME="IDX279"></A>
<DL>
<DT><U>Function:</U> int <B>rl_unbind_function_in_map</B> <I>(rl_command_func_t *function, Keymap map)</I>
<DD>Unbind all keys that execute <VAR>function</VAR> in <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX274"></A>
+<A NAME="IDX280"></A>
<DL>
<DT><U>Function:</U> int <B>rl_unbind_command_in_map</B> <I>(const char *command, Keymap map)</I>
<DD>Unbind all keys that are bound to <VAR>command</VAR> in <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX275"></A>
+<A NAME="IDX281"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_keyseq</B> <I>(const char *keyseq, rl_command_func_t *function)</I>
<DD>Bind the key sequence represented by the string <VAR>keyseq</VAR> to the function
@@ -3477,7 +3521,7 @@ The return value is non-zero if <VAR>keyseq</VAR> is invalid.
</DL>
</P><P>
-<A NAME="IDX276"></A>
+<A NAME="IDX282"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_keyseq_in_map</B> <I>(const char *keyseq, rl_command_func_t *function, Keymap map)</I>
<DD>Bind the key sequence represented by the string <VAR>keyseq</VAR> to the function
@@ -3487,14 +3531,14 @@ The return value is non-zero if <VAR>keyseq</VAR> is invalid.
</DL>
</P><P>
-<A NAME="IDX277"></A>
+<A NAME="IDX283"></A>
<DL>
<DT><U>Function:</U> int <B>rl_set_key</B> <I>(const char *keyseq, rl_command_func_t *function, Keymap map)</I>
<DD>Equivalent to <CODE>rl_bind_keyseq_in_map</CODE>.
</DL>
</P><P>
-<A NAME="IDX278"></A>
+<A NAME="IDX284"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_keyseq_if_unbound</B> <I>(const char *keyseq, rl_command_func_t *function)</I>
<DD>Binds <VAR>keyseq</VAR> to <VAR>function</VAR> if it is not already bound in the
@@ -3504,7 +3548,7 @@ already bound.
</DL>
</P><P>
-<A NAME="IDX279"></A>
+<A NAME="IDX285"></A>
<DL>
<DT><U>Function:</U> int <B>rl_bind_keyseq_if_unbound_in_map</B> <I>(const char *keyseq, rl_command_func_t *function, Keymap map)</I>
<DD>Binds <VAR>keyseq</VAR> to <VAR>function</VAR> if it is not already bound in <VAR>map</VAR>.
@@ -3513,7 +3557,7 @@ already bound.
</DL>
</P><P>
-<A NAME="IDX280"></A>
+<A NAME="IDX286"></A>
<DL>
<DT><U>Function:</U> int <B>rl_generic_bind</B> <I>(int type, const char *keyseq, char *data, Keymap map)</I>
<DD>Bind the key sequence represented by the string <VAR>keyseq</VAR> to the arbitrary
@@ -3524,7 +3568,7 @@ necessary. The initial keymap in which to do bindings is <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX281"></A>
+<A NAME="IDX287"></A>
<DL>
<DT><U>Function:</U> int <B>rl_parse_and_bind</B> <I>(char *line)</I>
<DD>Parse <VAR>line</VAR> as if it had been read from the <CODE>inputrc</CODE> file and
@@ -3533,7 +3577,7 @@ perform any key bindings and variable assignments found
</DL>
</P><P>
-<A NAME="IDX282"></A>
+<A NAME="IDX288"></A>
<DL>
<DT><U>Function:</U> int <B>rl_read_init_file</B> <I>(const char *filename)</I>
<DD>Read keybindings and variable assignments from <VAR>filename</VAR>
@@ -3564,14 +3608,14 @@ and the functions invoked by a particular key sequence. You may also
associate a new function name with an arbitrary function.
</P><P>
-<A NAME="IDX283"></A>
+<A NAME="IDX289"></A>
<DL>
<DT><U>Function:</U> rl_command_func_t * <B>rl_named_function</B> <I>(const char *name)</I>
<DD>Return the function with name <VAR>name</VAR>.
</DL>
</P><P>
-<A NAME="IDX284"></A>
+<A NAME="IDX290"></A>
<DL>
<DT><U>Function:</U> rl_command_func_t * <B>rl_function_of_keyseq</B> <I>(const char *keyseq, Keymap map, int *type)</I>
<DD>Return the function invoked by <VAR>keyseq</VAR> in keymap <VAR>map</VAR>.
@@ -3583,7 +3627,7 @@ can include NUL.
</DL>
</P><P>
-<A NAME="IDX285"></A>
+<A NAME="IDX291"></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>
@@ -3594,7 +3638,7 @@ can include NUL.
</DL>
</P><P>
-<A NAME="IDX286"></A>
+<A NAME="IDX292"></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
@@ -3602,7 +3646,7 @@ invoke <VAR>function</VAR> in the current keymap.
</DL>
</P><P>
-<A NAME="IDX287"></A>
+<A NAME="IDX293"></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
@@ -3610,7 +3654,7 @@ invoke <VAR>function</VAR> in the keymap <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX288"></A>
+<A NAME="IDX294"></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
@@ -3620,14 +3664,14 @@ the list is formatted in such a way that it can be made part of an
</DL>
</P><P>
-<A NAME="IDX289"></A>
+<A NAME="IDX295"></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="IDX290"></A>
+<A NAME="IDX296"></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
@@ -3637,7 +3681,7 @@ should free the array, but not the pointers, using <CODE>free</CODE> or
</DL>
</P><P>
-<A NAME="IDX291"></A>
+<A NAME="IDX297"></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
@@ -3692,7 +3736,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="IDX292"></A>
+<A NAME="IDX298"></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
@@ -3702,7 +3746,7 @@ information usually comes from calls to <CODE>rl_insert_text()</CODE> and
</DL>
</P><P>
-<A NAME="IDX293"></A>
+<A NAME="IDX299"></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
@@ -3711,7 +3755,7 @@ for each call to <CODE>rl_begin_undo_group()</CODE>.
</DL>
</P><P>
-<A NAME="IDX294"></A>
+<A NAME="IDX300"></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
@@ -3719,14 +3763,14 @@ text runs from <VAR>start</VAR> to <VAR>end</VAR>, and encompasses <VAR>text</VA
</DL>
</P><P>
-<A NAME="IDX295"></A>
+<A NAME="IDX301"></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="IDX296"></A>
+<A NAME="IDX302"></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
@@ -3740,7 +3784,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="IDX297"></A>
+<A NAME="IDX303"></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
@@ -3767,7 +3811,7 @@ that text.
<!--docid::SEC35::-->
<P>
-<A NAME="IDX298"></A>
+<A NAME="IDX304"></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
@@ -3775,7 +3819,7 @@ of <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX299"></A>
+<A NAME="IDX305"></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
@@ -3783,7 +3827,7 @@ Readline thinks the screen display is correct.
</DL>
</P><P>
-<A NAME="IDX300"></A>
+<A NAME="IDX306"></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,
@@ -3791,7 +3835,7 @@ usually after outputting a newline.
</DL>
</P><P>
-<A NAME="IDX301"></A>
+<A NAME="IDX307"></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
@@ -3803,14 +3847,14 @@ It should be used after setting <VAR>rl_already_prompted</VAR>.
</DL>
</P><P>
-<A NAME="IDX302"></A>
+<A NAME="IDX308"></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="IDX303"></A>
+<A NAME="IDX309"></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
@@ -3818,14 +3862,14 @@ starting on a new line.
</DL>
</P><P>
-<A NAME="IDX304"></A>
+<A NAME="IDX310"></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="IDX305"></A>
+<A NAME="IDX311"></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>.
@@ -3836,7 +3880,7 @@ redisplay.
</DL>
</P><P>
-<A NAME="IDX306"></A>
+<A NAME="IDX312"></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>,
@@ -3849,7 +3893,7 @@ before calling this function.
</DL>
</P><P>
-<A NAME="IDX307"></A>
+<A NAME="IDX313"></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
@@ -3858,7 +3902,7 @@ call <CODE>rl_restore_prompt</CODE> before calling this function.
</DL>
</P><P>
-<A NAME="IDX308"></A>
+<A NAME="IDX314"></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
@@ -3866,7 +3910,7 @@ displaying a new message in the message area with <CODE>rl_message()</CODE>.
</DL>
</P><P>
-<A NAME="IDX309"></A>
+<A NAME="IDX315"></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
@@ -3877,7 +3921,7 @@ corresponding call to <CODE>rl_clear_message</CODE>.
</DL>
</P><P>
-<A NAME="IDX310"></A>
+<A NAME="IDX316"></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
@@ -3895,7 +3939,7 @@ be used to embed terminal-specific escape sequences in prompts.
</DL>
</P><P>
-<A NAME="IDX311"></A>
+<A NAME="IDX317"></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
@@ -3922,7 +3966,7 @@ to the result.
<!--docid::SEC36::-->
<P>
-<A NAME="IDX312"></A>
+<A NAME="IDX318"></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.
@@ -3930,7 +3974,7 @@ Returns the number of characters inserted.
</DL>
</P><P>
-<A NAME="IDX313"></A>
+<A NAME="IDX319"></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.
@@ -3938,7 +3982,7 @@ Returns the number of characters deleted.
</DL>
</P><P>
-<A NAME="IDX314"></A>
+<A NAME="IDX320"></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
@@ -3946,7 +3990,7 @@ the current line.
</DL>
</P><P>
-<A NAME="IDX315"></A>
+<A NAME="IDX321"></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
@@ -3958,7 +4002,7 @@ not a kill, a new kill ring slot is used.
</DL>
</P><P>
-<A NAME="IDX316"></A>
+<A NAME="IDX322"></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
@@ -3985,7 +4029,7 @@ by a key bound to a macro. Not especially useful; use
<!--docid::SEC37::-->
<P>
-<A NAME="IDX317"></A>
+<A NAME="IDX323"></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.
@@ -3997,7 +4041,7 @@ the <CODE>rl_event_hook</CODE> variable.
</DL>
</P><P>
-<A NAME="IDX318"></A>
+<A NAME="IDX324"></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
@@ -4005,7 +4049,7 @@ be the keyboard.
</DL>
</P><P>
-<A NAME="IDX319"></A>
+<A NAME="IDX325"></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"
@@ -4016,7 +4060,7 @@ before Readline attempts to read characters from the terminal with
</DL>
</P><P>
-<A NAME="IDX320"></A>
+<A NAME="IDX326"></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>
@@ -4024,7 +4068,7 @@ is called. This sets <VAR>rl_pending_input</VAR>.
</DL>
</P><P>
-<A NAME="IDX321"></A>
+<A NAME="IDX327"></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
@@ -4033,7 +4077,7 @@ pending input has not already been read with <CODE>rl_read_key()</CODE>.
</DL>
</P><P>
-<A NAME="IDX322"></A>
+<A NAME="IDX328"></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
@@ -4063,7 +4107,7 @@ Returns the old timeout value.
<!--docid::SEC38::-->
<P>
-<A NAME="IDX323"></A>
+<A NAME="IDX329"></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>
@@ -4073,7 +4117,7 @@ read eight-bit input.
</DL>
</P><P>
-<A NAME="IDX324"></A>
+<A NAME="IDX330"></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
@@ -4082,7 +4126,7 @@ the state in which it was before the most recent call to
</DL>
</P><P>
-<A NAME="IDX325"></A>
+<A NAME="IDX331"></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
@@ -4091,7 +4135,7 @@ The bindings are performed in <VAR>kmap</VAR>.
</DL>
</P><P>
-<A NAME="IDX326"></A>
+<A NAME="IDX332"></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
@@ -4100,7 +4144,7 @@ The bindings are performed in <VAR>kmap</VAR>.
</DL>
</P><P>
-<A NAME="IDX327"></A>
+<A NAME="IDX333"></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
@@ -4111,7 +4155,7 @@ This function returns the previous value.
</DL>
</P><P>
-<A NAME="IDX328"></A>
+<A NAME="IDX334"></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
@@ -4139,7 +4183,7 @@ environment variable is used.
<!--docid::SEC39::-->
<P>
-<A NAME="IDX329"></A>
+<A NAME="IDX335"></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>.
@@ -4149,7 +4193,7 @@ The caller is responsible for allocating the structure.
</DL>
</P><P>
-<A NAME="IDX330"></A>
+<A NAME="IDX336"></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
@@ -4160,7 +4204,7 @@ The caller is responsible for freeing the structure.
</DL>
</P><P>
-<A NAME="IDX331"></A>
+<A NAME="IDX337"></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
@@ -4168,7 +4212,7 @@ allocated by <CODE>malloc</CODE>.
</DL>
</P><P>
-<A NAME="IDX332"></A>
+<A NAME="IDX338"></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>.
@@ -4178,7 +4222,7 @@ current line is cleared.
</DL>
</P><P>
-<A NAME="IDX333"></A>
+<A NAME="IDX339"></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>
@@ -4186,7 +4230,7 @@ characters, possibly reallocating it if necessary.
</DL>
</P><P>
-<A NAME="IDX334"></A>
+<A NAME="IDX340"></A>
<DL>
<DT><U>Function:</U> int <B>rl_initialize</B> <I>(void)</I>
<DD>Initialize or re-initialize Readline's internal state.
@@ -4195,21 +4239,21 @@ reading any input.
</DL>
</P><P>
-<A NAME="IDX335"></A>
+<A NAME="IDX341"></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="IDX336"></A>
+<A NAME="IDX342"></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="IDX337"></A>
+<A NAME="IDX343"></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
@@ -4229,28 +4273,28 @@ The following are implemented as macros, defined in <CODE>chardefs.h</CODE>.
Applications should refrain from using them.
</P><P>
-<A NAME="IDX338"></A>
+<A NAME="IDX344"></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="IDX339"></A>
+<A NAME="IDX345"></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="IDX340"></A>
+<A NAME="IDX346"></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="IDX341"></A>
+<A NAME="IDX347"></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
@@ -4258,7 +4302,7 @@ uppercase character.
</DL>
</P><P>
-<A NAME="IDX342"></A>
+<A NAME="IDX348"></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
@@ -4266,7 +4310,7 @@ lowercase character.
</DL>
</P><P>
-<A NAME="IDX343"></A>
+<A NAME="IDX349"></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.
@@ -4291,7 +4335,7 @@ lowercase character.
<!--docid::SEC40::-->
<P>
-<A NAME="IDX344"></A>
+<A NAME="IDX350"></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>.
@@ -4301,7 +4345,7 @@ use <CODE>rl_generic_bind()</CODE> instead.
</DL>
</P><P>
-<A NAME="IDX345"></A>
+<A NAME="IDX351"></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
@@ -4311,7 +4355,7 @@ that it can be made part of an <CODE>inputrc</CODE> file and re-read.
</DL>
</P><P>
-<A NAME="IDX346"></A>
+<A NAME="IDX352"></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>.
@@ -4321,7 +4365,7 @@ file (see section <A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax<
</DL>
</P><P>
-<A NAME="IDX347"></A>
+<A NAME="IDX353"></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>.
@@ -4329,7 +4373,7 @@ For boolean variables, this string is either <SAMP>`on'</SAMP> or <SAMP>`off'</S
</DL>
</P><P>
-<A NAME="IDX348"></A>
+<A NAME="IDX354"></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
@@ -4339,7 +4383,7 @@ that it can be made part of an <CODE>inputrc</CODE> file and re-read.
</DL>
</P><P>
-<A NAME="IDX349"></A>
+<A NAME="IDX355"></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
@@ -4347,7 +4391,7 @@ a balancing character when <CODE>blink-matching-paren</CODE> has been enabled.
</DL>
</P><P>
-<A NAME="IDX350"></A>
+<A NAME="IDX356"></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>.
@@ -4359,7 +4403,7 @@ values for only those capabilities Readline uses.
</DL>
</P><P>
-<A NAME="IDX351"></A>
+<A NAME="IDX357"></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
@@ -4369,6 +4413,41 @@ Readline saves in the history list.
</DL>
</P><P>
+<A NAME="IDX358"></A>
+<DL>
+<DT><U>Function:</U> void <B>rl_activate_mark</B> <I>(void)</I>
+<DD>Enable an <EM>active</EM> mark.
+When this is enabled, the text between point and mark (the <VAR>region</VAR>) is
+displayed in the terminal's standout mode (a <VAR>face</VAR>).
+This is called by various readline functions that set the mark and insert
+text, and is available for applications to call.
+</DL>
+</P><P>
+
+<A NAME="IDX359"></A>
+<DL>
+<DT><U>Function:</U> void <B>rl_deactivate_mark</B> <I>(void)</I>
+<DD>Turn off the active mark.
+</DL>
+</P><P>
+
+<A NAME="IDX360"></A>
+<DL>
+<DT><U>Function:</U> void <B>rl_keep_mark_active</B> <I>(void)</I>
+<DD>Indicate that the mark should remain active when the current readline function
+completes and after redisplay occurs.
+In most cases, the mark remains active for only the duration of a single
+bindable readline function.
+</DL>
+</P><P>
+
+<A NAME="IDX361"></A>
+<DL>
+<DT><U>Function:</U> int <B>rl_mark_active_p</B> <I>(void)</I>
+<DD>Return a non-zero value if the mark is currently active; zero otherwise.
+</DL>
+</P><P>
+
<A NAME="Alternate Interface"></A>
<HR SIZE="6">
<A NAME="SEC41"></A>
@@ -4395,7 +4474,7 @@ also be invoked as a `callback' function from an event loop. There
are functions available to make this easy.
</P><P>
-<A NAME="IDX352"></A>
+<A NAME="IDX362"></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
@@ -4408,7 +4487,7 @@ line when it it finished with it.
</DL>
</P><P>
-<A NAME="IDX353"></A>
+<A NAME="IDX363"></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
@@ -4428,7 +4507,7 @@ the terminal settings are modified for Readline's use again.
</DL>
</P><P>
-<A NAME="IDX354"></A>
+<A NAME="IDX364"></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
@@ -4439,7 +4518,7 @@ calls this when appropriate.
</DL>
</P><P>
-<A NAME="IDX355"></A>
+<A NAME="IDX365"></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.
@@ -4758,7 +4837,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="IDX356"></A>
+<A NAME="IDX366"></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
@@ -4770,7 +4849,7 @@ The default value of <CODE>rl_catch_signals</CODE> is 1.
</DL>
</P><P>
-<A NAME="IDX357"></A>
+<A NAME="IDX367"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_catch_sigwinch</B>
<DD>If this variable is set to a non-zero value,
@@ -4781,7 +4860,7 @@ The default value of <CODE>rl_catch_sigwinch</CODE> is 1.
</DL>
</P><P>
-<A NAME="IDX358"></A>
+<A NAME="IDX368"></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
@@ -4794,7 +4873,7 @@ The default value of <CODE>rl_persistent_signal_handlers</CODE> is 0.
</DL>
</P><P>
-<A NAME="IDX359"></A>
+<A NAME="IDX369"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_change_environment</B>
<DD>If this variable is set to a non-zero value,
@@ -4814,7 +4893,7 @@ Readline provides convenience functions to do the necessary terminal
and internal state cleanup upon receipt of a signal.
</P><P>
-<A NAME="IDX360"></A>
+<A NAME="IDX370"></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
@@ -4822,7 +4901,7 @@ has not yet handled, or 0 if there is no pending signal.
</DL>
</P><P>
-<A NAME="IDX361"></A>
+<A NAME="IDX371"></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
@@ -4832,7 +4911,7 @@ all signals, depending on the values of <CODE>rl_catch_signals</CODE> and
</DL>
</P><P>
-<A NAME="IDX362"></A>
+<A NAME="IDX372"></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
@@ -4844,7 +4923,7 @@ current input line.
</DL>
</P><P>
-<A NAME="IDX363"></A>
+<A NAME="IDX373"></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
@@ -4861,7 +4940,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="IDX364"></A>
+<A NAME="IDX374"></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
@@ -4872,11 +4951,11 @@ to determine whether or not there are any pending signals.
If an application does not wish Readline to catch <CODE>SIGWINCH</CODE>, it may
call <CODE>rl_resize_terminal()</CODE> or <CODE>rl_set_screen_size()</CODE> to force
-Readline to update its idea of the terminal size when a <CODE>SIGWINCH</CODE>
-is received.
+Readline to update its idea of the terminal size when it receives
+a <CODE>SIGWINCH</CODE>.
</P><P>
-<A NAME="IDX365"></A>
+<A NAME="IDX375"></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
@@ -4886,28 +4965,31 @@ function with <VAR>sig</VAR> set to <CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>, o
</DL>
</P><P>
-<A NAME="IDX366"></A>
+<A NAME="IDX376"></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="IDX367"></A>
+<A NAME="IDX377"></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
<VAR>cols</VAR> columns. If either <VAR>rows</VAR> or <VAR>columns</VAR> is less than
or equal to 0, Readline's idea of that terminal dimension is unchanged.
+This is intended to tell Readline the physical dimensions of the terminal,
+and is used internally to calculate the maximum number of characters that
+may appear on a single line and on the screen.
</DL>
</P><P>
If an application does not want to install a <CODE>SIGWINCH</CODE> handler, but
-is still interested in the screen dimensions, Readline's idea of the screen
-size may be queried.
+is still interested in the screen dimensions, it may query Readline's idea
+of the screen size.
</P><P>
-<A NAME="IDX368"></A>
+<A NAME="IDX378"></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
@@ -4915,7 +4997,7 @@ variables pointed to by the arguments.
</DL>
</P><P>
-<A NAME="IDX369"></A>
+<A NAME="IDX379"></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.
@@ -4925,7 +5007,7 @@ variables pointed to by the arguments.
The following functions install and remove Readline's signal handlers.
</P><P>
-<A NAME="IDX370"></A>
+<A NAME="IDX380"></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>,
@@ -4935,7 +5017,7 @@ The following functions install and remove Readline's signal handlers.
</DL>
</P><P>
-<A NAME="IDX371"></A>
+<A NAME="IDX381"></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
@@ -5048,7 +5130,7 @@ Such a generator function is referred to as an
</OL>
<P>
-<A NAME="IDX372"></A>
+<A NAME="IDX382"></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
@@ -5057,7 +5139,7 @@ that does the initial simple matching selection algorithm (see
</DL>
</P><P>
-<A NAME="IDX373"></A>
+<A NAME="IDX383"></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
@@ -5093,7 +5175,7 @@ Here is the complete list of callable completion functions present in
Readline.
</P><P>
-<A NAME="IDX374"></A>
+<A NAME="IDX384"></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
@@ -5107,7 +5189,7 @@ a common prefix.
</DL>
</P><P>
-<A NAME="IDX375"></A>
+<A NAME="IDX385"></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
@@ -5119,7 +5201,7 @@ argument depending on <VAR>invoking_key</VAR>.
</DL>
</P><P>
-<A NAME="IDX376"></A>
+<A NAME="IDX386"></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
@@ -5128,7 +5210,7 @@ argument depending on <VAR>invoking_key</VAR>.
</DL>
</P><P>
-<A NAME="IDX377"></A>
+<A NAME="IDX387"></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
@@ -5137,7 +5219,7 @@ This calls <CODE>rl_complete_internal()</CODE> with an argument of <SAMP>`*'</SA
</DL>
</P><P>
-<A NAME="IDX378"></A>
+<A NAME="IDX388"></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>
@@ -5149,7 +5231,7 @@ the same interface as <CODE>rl_complete()</CODE>.
</DL>
</P><P>
-<A NAME="IDX379"></A>
+<A NAME="IDX389"></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
@@ -5167,7 +5249,7 @@ when there are no more matches.
</DL>
</P><P>
-<A NAME="IDX380"></A>
+<A NAME="IDX390"></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.
@@ -5178,7 +5260,7 @@ Readline functions).
</DL>
</P><P>
-<A NAME="IDX381"></A>
+<A NAME="IDX391"></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
@@ -5206,7 +5288,7 @@ for subsequent calls.
<!--docid::SEC48::-->
<P>
-<A NAME="IDX382"></A>
+<A NAME="IDX392"></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>.
@@ -5215,7 +5297,7 @@ the default filename completer.
</DL>
</P><P>
-<A NAME="IDX383"></A>
+<A NAME="IDX393"></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.
@@ -5232,7 +5314,7 @@ completion even if this function returns no matches.
</DL>
</P><P>
-<A NAME="IDX384"></A>
+<A NAME="IDX394"></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
@@ -5249,7 +5331,7 @@ to reset this character.
</DL>
</P><P>
-<A NAME="IDX385"></A>
+<A NAME="IDX395"></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
@@ -5262,7 +5344,7 @@ that delimits the filename (usually <SAMP>`''</SAMP> or <SAMP>`"'</SAMP>). If
</DL>
</P><P>
-<A NAME="IDX386"></A>
+<A NAME="IDX396"></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
@@ -5275,7 +5357,7 @@ used to break words for the completer.
</DL>
</P><P>
-<A NAME="IDX387"></A>
+<A NAME="IDX397"></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
@@ -5288,7 +5370,7 @@ from the array must be freed.
</DL>
</P><P>
-<A NAME="IDX388"></A>
+<A NAME="IDX398"></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
@@ -5311,7 +5393,7 @@ The function should not modify the directory argument if it returns 0.
</DL>
</P><P>
-<A NAME="IDX389"></A>
+<A NAME="IDX399"></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
@@ -5326,12 +5408,12 @@ be passed directly to <CODE>opendir()</CODE>.
</P><P>
The directory rewrite hook returns an integer that should be non-zero if
-the function modfies its directory argument.
+the function modifies its directory argument.
The function should not modify the directory argument if it returns 0.
</DL>
</P><P>
-<A NAME="IDX390"></A>
+<A NAME="IDX400"></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
@@ -5342,12 +5424,12 @@ This function does not need to remove quote characters from the filename.
</P><P>
The stat hook returns an integer that should be non-zero if
-the function modfies its directory argument.
+the function modifies its directory argument.
The function should not modify the directory argument if it returns 0.
</DL>
</P><P>
-<A NAME="IDX391"></A>
+<A NAME="IDX401"></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
@@ -5366,7 +5448,7 @@ allocated string.
</DL>
</P><P>
-<A NAME="IDX392"></A>
+<A NAME="IDX402"></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
@@ -5383,7 +5465,7 @@ You may call that function from this hook.
</DL>
</P><P>
-<A NAME="IDX393"></A>
+<A NAME="IDX403"></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
@@ -5393,14 +5475,14 @@ which break words for completion in Bash:
</DL>
</P><P>
-<A NAME="IDX394"></A>
+<A NAME="IDX404"></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="IDX395"></A>
+<A NAME="IDX405"></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
@@ -5409,7 +5491,7 @@ which break words for completion in Bash:
</DL>
</P><P>
-<A NAME="IDX396"></A>
+<A NAME="IDX406"></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
@@ -5421,7 +5503,7 @@ returns <CODE>NULL</CODE>, <CODE>rl_completer_word_break_characters</CODE> is us
</DL>
</P><P>
-<A NAME="IDX397"></A>
+<A NAME="IDX407"></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.
@@ -5431,7 +5513,7 @@ unless they also appear within this list.
</DL>
</P><P>
-<A NAME="IDX398"></A>
+<A NAME="IDX408"></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
@@ -5439,7 +5521,7 @@ when they appear in a completed filename. The default is the null string.
</DL>
</P><P>
-<A NAME="IDX399"></A>
+<A NAME="IDX409"></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
@@ -5450,7 +5532,7 @@ shell variables and hostnames.
</DL>
</P><P>
-<A NAME="IDX400"></A>
+<A NAME="IDX410"></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
@@ -5460,7 +5542,7 @@ indicates that Readline should never ask the user.
</DL>
</P><P>
-<A NAME="IDX401"></A>
+<A NAME="IDX411"></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
@@ -5475,7 +5557,7 @@ is called, and may only be changed within such a function.
</DL>
</P><P>
-<A NAME="IDX402"></A>
+<A NAME="IDX412"></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
@@ -5485,7 +5567,7 @@ is called, and may only be changed within such a function.
</DL>
</P><P>
-<A NAME="IDX403"></A>
+<A NAME="IDX413"></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
@@ -5495,7 +5577,7 @@ This is set before any application-specific completion function is called.
</DL>
</P><P>
-<A NAME="IDX404"></A>
+<A NAME="IDX414"></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
@@ -5505,7 +5587,7 @@ is called, and may only be changed within such a function.
</DL>
</P><P>
-<A NAME="IDX405"></A>
+<A NAME="IDX415"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_found_quote</B>
<DD>When Readline is completing quoted text, it sets this variable
@@ -5515,7 +5597,7 @@ This is set before any application-specific completion function is called.
</DL>
</P><P>
-<A NAME="IDX406"></A>
+<A NAME="IDX416"></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
@@ -5530,7 +5612,7 @@ function modifies the value, the user's preferences are honored.
</DL>
</P><P>
-<A NAME="IDX407"></A>
+<A NAME="IDX417"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_ignore_completion_duplicates</B>
<DD>If non-zero, then duplicates in the matches are removed.
@@ -5538,7 +5620,7 @@ The default is 1.
</DL>
</P><P>
-<A NAME="IDX408"></A>
+<A NAME="IDX418"></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
@@ -5552,7 +5634,7 @@ characters in <CODE>rl_filename_quote_characters</CODE> and
</DL>
</P><P>
-<A NAME="IDX409"></A>
+<A NAME="IDX419"></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
@@ -5566,7 +5648,7 @@ by <CODE>rl_filename_quoting_function</CODE>.
</DL>
</P><P>
-<A NAME="IDX410"></A>
+<A NAME="IDX420"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_attempted_completion_over</B>
<DD>If an application-specific completion function assigned to
@@ -5577,7 +5659,7 @@ It should be set only by an application's completion function.
</DL>
</P><P>
-<A NAME="IDX411"></A>
+<A NAME="IDX421"></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
@@ -5589,7 +5671,7 @@ matches.
</DL>
</P><P>
-<A NAME="IDX412"></A>
+<A NAME="IDX422"></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
@@ -5601,7 +5683,7 @@ the same interface as <CODE>rl_complete()</CODE>.
</DL>
</P><P>
-<A NAME="IDX413"></A>
+<A NAME="IDX423"></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
@@ -5611,7 +5693,7 @@ function is called.
</DL>
</P><P>
-<A NAME="IDX414"></A>
+<A NAME="IDX424"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_inhibit_completion</B>
<DD>If this variable is non-zero, completion is inhibited. The completion
@@ -6023,7 +6105,7 @@ com_help (arg)
if (!printed)
{
- printf ("No commands match `%s'. Possibilties are:\n", arg);
+ printf ("No commands match `%s'. Possibilities are:\n", arg);
for (i = 0; commands[i].name; i++)
{
@@ -6758,7 +6840,7 @@ to permit their use in free software.
<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC4">notation, readline</A></TD><TD valign=top><A HREF="readline.html#SEC4">1.2.1 Readline Bare Essentials</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX214">readline, function</A></TD><TD valign=top><A HREF="readline.html#SEC24">2.1 Basic Behavior</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX220">readline, function</A></TD><TD valign=top><A HREF="readline.html#SEC24">2.1 Basic Behavior</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_V"></A>V</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX4">variables, readline</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
@@ -6850,455 +6932,465 @@ 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#IDX340"><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#IDX343"><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#IDX339"><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#IDX342"><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#IDX341"><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#IDX338"><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#IDX346"><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#IDX349"><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#IDX345"><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#IDX348"><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#IDX347"><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#IDX344"><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>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX180"><CODE>abort (C-g)</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#IDX65"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX66"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX185"><CODE>abort (C-g)</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#IDX186"><CODE>abort (C-g)</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#IDX67"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX68"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_B"></A>B</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX51"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX52"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX99"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX100"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX125"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX126"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX133"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX134"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX103"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX104"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX129"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX130"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX137"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX138"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX55"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX56"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX71"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX72"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX73"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX74"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX45"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX46"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX5">bell-style</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX6">bind-tty-special-chars</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX7">blink-matching-paren</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX109"><CODE>bracketed-paste-begin ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX110"><CODE>bracketed-paste-begin ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX113"><CODE>bracketed-paste-begin ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX114"><CODE>bracketed-paste-begin ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX173"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX174"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX119"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX120"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX195"><CODE>character-search (C-])</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#IDX196"><CODE>character-search (C-])</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#IDX197"><CODE>character-search-backward (M-C-])</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#IDX198"><CODE>character-search-backward (M-C-])</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#IDX61"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX62"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX179"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX180"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX123"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX124"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX201"><CODE>character-search (C-])</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#IDX202"><CODE>character-search (C-])</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#IDX203"><CODE>character-search-backward (M-C-])</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#IDX204"><CODE>character-search-backward (M-C-])</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#IDX61"><CODE>clear-display (M-C-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX62"><CODE>clear-display (M-C-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX63"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX64"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX8">colored-completion-prefix</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX9">colored-stats</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX10">comment-begin</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX157"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX158"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX163"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX164"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX11">completion-display-width</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX12">completion-ignore-case</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX13">completion-map-case</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX14">completion-prefix-display-length</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX15">completion-query-items</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX16">convert-meta</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX145"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX146"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX147"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX148"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX143"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX144"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX151"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX152"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX153"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX154"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX149"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX150"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_D"></A>D</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX97"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX98"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX167"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX168"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX139"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX140"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX153"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX154"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX101"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX102"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX173"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX174"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX145"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX146"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX159"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX160"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX17">disable-completion</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX181"><CODE>do-lowercase-version (M-A, M-B, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</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#IDX182"><CODE>do-lowercase-version (M-A, M-B, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</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#IDX117"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX118"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX203"><CODE>dump-functions ()</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#IDX204"><CODE>dump-functions ()</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#IDX207"><CODE>dump-macros ()</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#IDX208"><CODE>dump-macros ()</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#IDX205"><CODE>dump-variables ()</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#IDX206"><CODE>dump-variables ()</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#IDX187"><CODE>do-lowercase-version (M-A, M-B, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</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>do-lowercase-version (M-A, M-B, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</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#IDX121"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX122"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX209"><CODE>dump-functions ()</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#IDX210"><CODE>dump-functions ()</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#IDX213"><CODE>dump-macros ()</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#IDX214"><CODE>dump-macros ()</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#IDX211"><CODE>dump-variables ()</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#IDX212"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_E"></A>E</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX18">echo-control-characters</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX19">editing-mode</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX209"><CODE>emacs-editing-mode (C-e)</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#IDX210"><CODE>emacs-editing-mode (C-e)</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#IDX215"><CODE>emacs-editing-mode (C-e)</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#IDX216"><CODE>emacs-editing-mode (C-e)</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#IDX20">emacs-mode-string</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX21">enable-bracketed-paste</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX22">enable-keypad</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX171"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX172"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX95"><CODE><I>end-of-file</I> (usually C-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX96"><CODE><I>end-of-file</I> (usually C-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX73"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX74"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX177"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX178"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX99"><CODE><I>end-of-file</I> (usually C-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX100"><CODE><I>end-of-file</I> (usually C-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX75"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX76"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX47"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX48"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX193"><CODE>exchange-point-and-mark (C-x C-x)</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#IDX194"><CODE>exchange-point-and-mark (C-x C-x)</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#IDX199"><CODE>exchange-point-and-mark (C-x C-x)</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#IDX200"><CODE>exchange-point-and-mark (C-x C-x)</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#IDX23">expand-tilde</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_F"></A>F</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX101"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX102"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX105"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX106"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX49"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX50"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX77"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX78"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX79"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX80"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX53"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX54"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_H"></A>H</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX24">history-preserve-point</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX85"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX86"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX83"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX84"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX87"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX88"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX85"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX86"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX25">history-size</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX89"><CODE>history-substring-search-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX90"><CODE>history-substring-search-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX87"><CODE>history-substring-search-forward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX88"><CODE>history-substring-search-forward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX91"><CODE>history-substring-search-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX92"><CODE>history-substring-search-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX89"><CODE>history-substring-search-forward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX90"><CODE>history-substring-search-forward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX26">horizontal-scroll-mode</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_I"></A>I</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX27">input-meta</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX201"><CODE>insert-comment (M-#)</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#IDX202"><CODE>insert-comment (M-#)</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#IDX161"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX162"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX207"><CODE>insert-comment (M-#)</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#IDX208"><CODE>insert-comment (M-#)</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#IDX167"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX168"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX29">isearch-terminators</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_K"></A>K</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX30">keymap</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX123"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX124"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX141"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX142"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX129"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX130"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX131"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX132"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX127"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX128"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX147"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX148"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX133"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX134"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX135"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX136"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_M"></A>M</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX31">mark-modified-lines</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX32">mark-symlinked-directories</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX33">match-hidden-files</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX163"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX164"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX165"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX166"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX169"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX170"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX171"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX172"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX34">menu-complete-display-prefix</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX28">meta-flag</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_N"></A>N</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX69"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX70"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX71"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX72"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX59"><CODE>next-screen-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX60"><CODE>next-screen-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX81"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX82"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX79"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX80"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX83"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX84"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX81"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX82"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_O"></A>O</TH><TD></TD><TD></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX97"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX98"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX35">output-meta</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX121"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX122"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX125"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX126"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_P"></A>P</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX36">page-completions</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX159"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX160"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX183"><CODE>prefix-meta (<KBD>ESC</KBD>)</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#IDX184"><CODE>prefix-meta (<KBD>ESC</KBD>)</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#IDX67"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX68"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX165"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX166"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX189"><CODE>prefix-meta (<KBD>ESC</KBD>)</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#IDX190"><CODE>prefix-meta (<KBD>ESC</KBD>)</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#IDX69"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX70"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX57"><CODE>previous-screen-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX58"><CODE>previous-screen-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX175"><CODE>print-last-kbd-macro ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX176"><CODE>print-last-kbd-macro ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX181"><CODE>print-last-kbd-macro ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX182"><CODE>print-last-kbd-macro ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_Q"></A>Q</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX103"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX104"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX107"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX108"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX177"><CODE>re-read-init-file (C-x C-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#IDX178"><CODE>re-read-init-file (C-x C-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#IDX213"><CODE>readline</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC24">2.1 Basic Behavior</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX63"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX64"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX75"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX76"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX183"><CODE>re-read-init-file (C-x C-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#IDX184"><CODE>re-read-init-file (C-x C-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#IDX219"><CODE>readline</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC24">2.1 Basic Behavior</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX65"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX66"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX77"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX78"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX37">revert-all-at-newline</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<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#IDX291"><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#IDX294"><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#IDX336"><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#IDX383">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#IDX410">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#IDX394">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#IDX393">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#IDX292"><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#IDX267"><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#IDX269"><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#IDX270"><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>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX268"><CODE>rl_bind_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#IDX275"><CODE>rl_bind_keyseq</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#IDX278"><CODE>rl_bind_keyseq_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#IDX279"><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#IDX276"><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#IDX352"><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#IDX355"><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#IDX353"><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#IDX354"><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#IDX356">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#IDX357">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#IDX359">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#IDX386">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#IDX364"><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#IDX361"><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#IDX351"><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#IDX307"><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#IDX321"><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#IDX371"><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#IDX302"><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#IDX372"><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#IDX375"><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#IDX374"><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#IDX397">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#IDX395">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#IDX401">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#IDX392">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#IDX373">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#IDX382">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#IDX405">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#IDX413">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#IDX406">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#IDX379"><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#IDX378"><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#IDX400">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#IDX403">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#IDX402">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#IDX404">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#IDX412">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#IDX396">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#IDX314"><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#IDX304"><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#IDX313"><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#IDX324"><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#IDX335"><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#IDX388">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#IDX389">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#IDX337"><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#IDX296"><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#IDX365"><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#IDX293"><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#IDX320"><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#IDX310"><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#IDX333"><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#IDX408">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#IDX380"><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#IDX385">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#IDX398">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#IDX409">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#IDX384">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#IDX391">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#IDX390">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#IDX299"><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#IDX331"><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#IDX362"><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#IDX295"><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#IDX288"><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#IDX284"><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#IDX285"><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#IDX290"><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#IDX280"><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#IDX368"><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#IDX350"><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#IDX318"><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#IDX407">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#IDX387">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#IDX414">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#IDX334"><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#IDX377"><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#IDX312"><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#IDX286"><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#IDX287"><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#IDX315"><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#IDX289"><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#IDX344"><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#IDX345"><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#IDX306"><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#IDX297"><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#IDX283"><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#IDX300"><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#IDX301"><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#IDX281"><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#IDX360"><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#IDX358">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#IDX376"><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#IDX323"><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#IDX316"><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#IDX282"><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#IDX317"><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#IDX298"><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#IDX332"><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#IDX363"><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#IDX303"><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#IDX369"><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#IDX328"><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#IDX366"><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#IDX309"><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#IDX330"><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#IDX308"><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#IDX329"><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#IDX277"><CODE>rl_set_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX322"><CODE>rl_set_keyboard_input_timeout</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX263"><CODE>rl_set_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX266"><CODE>rl_set_keymap_name</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX349"><CODE>rl_set_paren_blink_timeout</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX311"><CODE>rl_set_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX367"><CODE>rl_set_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC44">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX370"><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#IDX305"><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#IDX411">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#IDX399">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#IDX319"><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#IDX325"><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#IDX327"><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#IDX326"><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#IDX274"><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#IDX273"><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#IDX271"><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#IDX272"><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#IDX381"><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#IDX346"><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#IDX348"><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#IDX347"><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#IDX193"><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#IDX194"><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#IDX358"><CODE>rl_activate_mark</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#IDX261"><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#IDX297"><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#IDX300"><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#IDX342"><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#IDX232">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#IDX393">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#IDX420">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#IDX404">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#IDX403">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#IDX298"><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#IDX273"><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#IDX275"><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#IDX276"><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>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX274"><CODE>rl_bind_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#IDX281"><CODE>rl_bind_keyseq</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#IDX284"><CODE>rl_bind_keyseq_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#IDX285"><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#IDX282"><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#IDX252">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#IDX362"><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#IDX365"><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#IDX363"><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#IDX364"><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#IDX366">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#IDX367">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#IDX369">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#IDX396">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#IDX374"><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#IDX371"><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#IDX357"><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#IDX313"><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#IDX327"><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#IDX381"><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#IDX308"><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#IDX382"><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#IDX385"><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#IDX384"><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#IDX407">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#IDX405">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#IDX411">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#IDX402">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#IDX383">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#IDX392">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#IDX415">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#IDX423">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#IDX416">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#IDX389"><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#IDX388"><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#IDX410">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#IDX413">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#IDX412">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#IDX414">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#IDX422">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#IDX406">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#IDX263"><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#IDX320"><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#IDX310"><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#IDX359"><CODE>rl_deactivate_mark</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#IDX319"><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#IDX250">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#IDX330"><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#IDX341"><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#IDX398">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#IDX399">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#IDX265"><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#IDX228">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#IDX343"><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#IDX231">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#IDX302"><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#IDX225">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#IDX375"><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#IDX260">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#IDX267"><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#IDX223">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#IDX299"><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#IDX229">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#IDX244">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#IDX326"><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#IDX254">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#IDX251">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#IDX255">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#IDX253">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#IDX316"><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#IDX258">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#IDX339"><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#IDX418">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#IDX390"><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#IDX395">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#IDX408">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#IDX419">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#IDX394">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#IDX401">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#IDX400">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#IDX305"><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#IDX337"><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#IDX266"><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#IDX372"><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#IDX301"><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#IDX294"><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#IDX290"><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#IDX291"><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#IDX296"><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#IDX286"><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#IDX268"><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#IDX270"><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#IDX271"><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#IDX378"><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#IDX356"><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#IDX324"><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#IDX245">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#IDX235">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#IDX417">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#IDX397">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#IDX424">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#IDX340"><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#IDX247">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#IDX387"><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#IDX318"><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#IDX238">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#IDX292"><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#IDX293"><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#IDX360"><CODE>rl_keep_mark_active</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">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#IDX321"><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#IDX241">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#IDX233">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#IDX221">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#IDX295"><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#IDX350"><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#IDX351"><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#IDX262"><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#IDX264"><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#IDX224">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#IDX361"><CODE>rl_mark_active_p</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#IDX312"><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#IDX303"><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#IDX289"><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#IDX226">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#IDX259">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#IDX306"><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#IDX307"><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#IDX239">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#IDX287"><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#IDX227">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#IDX370"><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#IDX368">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#IDX222">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#IDX386"><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#IDX243">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#IDX240">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#IDX249">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#IDX329"><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#IDX230">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#IDX322"><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#IDX288"><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#IDX323"><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#IDX237">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#IDX257">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#IDX234">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#IDX304"><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#IDX248">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#IDX338"><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#IDX373"><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#IDX309"><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#IDX379"><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#IDX334"><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#IDX376"><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#IDX315"><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#IDX336"><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#IDX314"><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#IDX335"><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#IDX283"><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#IDX328"><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#IDX269"><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#IDX272"><CODE>rl_set_keymap_name</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX355"><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#IDX317"><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#IDX377"><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#IDX380"><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#IDX311"><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#IDX246">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#IDX421">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#IDX409">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#IDX242">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#IDX325"><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#IDX236">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#IDX331"><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#IDX333"><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#IDX332"><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#IDX280"><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#IDX279"><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#IDX277"><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#IDX278"><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#IDX391"><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#IDX352"><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#IDX354"><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#IDX353"><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>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX108"><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>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX191"><CODE>set-mark (C-@)</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#IDX192"><CODE>set-mark (C-@)</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#IDX111"><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>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX112"><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>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX197"><CODE>set-mark (C-@)</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#IDX198"><CODE>set-mark (C-@)</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#IDX139"><CODE>shell-transpose-words (M-C-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX140"><CODE>shell-transpose-words (M-C-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX38">show-all-if-ambiguous</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX39">show-all-if-unmodified</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX40">show-mode-in-prompt</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX41">skip-completed-text</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX199"><CODE>skip-csi-sequence ()</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#IDX200"><CODE>skip-csi-sequence ()</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#IDX169"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX170"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX205"><CODE>skip-csi-sequence ()</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#IDX206"><CODE>skip-csi-sequence ()</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#IDX175"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX176"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_T"></A>T</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX105"><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX106"><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX189"><CODE>tilde-expand (M-~)</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#IDX190"><CODE>tilde-expand (M-~)</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#IDX111"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX112"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX113"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX114"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX109"><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX110"><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX195"><CODE>tilde-expand (M-~)</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#IDX196"><CODE>tilde-expand (M-~)</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#IDX115"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX116"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX117"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX118"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_U"></A>U</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX185"><CODE>undo (C-_ or C-x C-u)</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#IDX186"><CODE>undo (C-_ or C-x C-u)</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#IDX155"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX156"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX137"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX138"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX127"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX128"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX135"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX136"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX115"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX116"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX191"><CODE>undo (C-_ or C-x C-u)</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#IDX192"><CODE>undo (C-_ or C-x C-u)</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#IDX161"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX162"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX143"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX144"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX131"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX132"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX141"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX142"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX119"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX120"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_V"></A>V</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX42">vi-cmd-mode-string</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX211"><CODE>vi-editing-mode (M-C-j)</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#IDX212"><CODE>vi-editing-mode (M-C-j)</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#IDX217"><CODE>vi-editing-mode (M-C-j)</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#IDX218"><CODE>vi-editing-mode (M-C-j)</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#IDX43">vi-ins-mode-string</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX44">visible-stats</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_Y"></A>Y</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX149"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX150"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX93"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX94"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX91"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX92"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX151"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX152"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX155"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX156"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX95"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX96"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX93"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX94"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX157"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX158"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#fn__" style="text-decoration:none"><b>_</b></A>
&nbsp;
@@ -7507,7 +7599,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>chet</I> on <I>December, 18 2018</I>
+This document was generated by <I>Chet Ramey</I> on <I>October, 30 2020</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -7669,7 +7761,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>chet</I> on <I>December, 18 2018</I>
+by <I>Chet Ramey</I> on <I>October, 30 2020</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
diff --git a/doc/readline.info b/doc/readline.info
index a0f841c..93d54dc 100644
--- a/doc/readline.info
+++ b/doc/readline.info
@@ -1,10 +1,10 @@
-This is readline.info, produced by makeinfo version 6.5 from rlman.texi.
+This is readline.info, produced by makeinfo version 6.7 from rlman.texi.
-This manual describes the GNU Readline Library (version 8.0, 30 November
-2018), a library which aids in the consistency of user interface across
+This manual describes the GNU Readline Library (version 8.1, 29 October
+2020), a library which aids in the consistency of user interface across
discrete programs which provide a command line interface.
- Copyright (C) 1988-2016 Free Software Foundation, Inc.
+ Copyright (C) 1988-2020 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -427,11 +427,11 @@ Variable Settings
The number of possible completions that determines when the
user is asked whether the list of possibilities should be
displayed. If the number of possible completions is greater
- than this value, Readline will ask the user whether or not he
- wishes to view them; otherwise, they are simply listed. This
- variable must be set to an integer value greater than or equal
- to 0. A negative value means Readline should never ask. The
- default limit is '100'.
+ than or equal to this value, Readline will ask whether or not
+ the user wishes to view them; otherwise, they are simply
+ listed. This variable must be set to an integer value greater
+ than or equal to 0. A negative value means Readline should
+ never ask. The default limit is '100'.
'convert-meta'
If set to 'on', Readline will convert characters with the
@@ -473,7 +473,7 @@ Variable Settings
buffer as a single string of characters, instead of treating
each character as if it had been read from the keyboard. This
can prevent pasted characters from being interpreted as
- editing commands. The default is 'off'.
+ editing commands. The default is 'On'.
'enable-keypad'
When set to 'on', Readline will try to enable the application
@@ -510,7 +510,9 @@ Variable Settings
to 'on' means that the text of the lines being edited will
scroll horizontally on a single screen line when they are
longer than the width of the screen, instead of wrapping onto
- a new screen line. By default, this variable is set to 'off'.
+ a new screen line. This variable is automatically set to 'on'
+ for terminals of height 1. By default, this variable is set
+ to 'off'.
'input-meta'
If set to 'on', Readline will enable eight-bit input (it will
@@ -952,8 +954,8 @@ variable assignment, and conditional syntax.
# rather than as meta-prefixed characters
set output-meta on
- # if there are more than 150 possible completions for
- # a word, ask the user if he wants to see all of them
+ # if there are 150 or more possible completions for a word,
+ # ask whether or not the user wants to see all of them
set completion-query-items 150
# For FTP
@@ -1029,8 +1031,13 @@ File: readline.info, Node: Commands For Moving, Next: Commands For History, U
physical line or if the length of the current Readline line is not
greater than the length of the prompt plus the screen width.
+'clear-display (M-C-l)'
+ Clear the screen and, if possible, the terminal's scrollback
+ buffer, then redraw the current line, leaving the current line at
+ the top of the screen.
+
'clear-screen (C-l)'
- Clear the screen and redraw the current line, leaving the current
+ Clear the screen, then redraw the current line, leaving the current
line at the top of the screen.
'redraw-current-line ()'
@@ -1065,10 +1072,14 @@ File: readline.info, Node: Commands For History, Next: Commands For Text, Pre
'reverse-search-history (C-r)'
Search backward starting at the current line and moving 'up'
through the history as necessary. This is an incremental search.
+ This command sets the region to the matched text and activates the
+ mark.
'forward-search-history (C-s)'
Search forward starting at the current line and moving 'down'
through the history as necessary. This is an incremental search.
+ This command sets the region to the matched text and activates the
+ mark.
'non-incremental-reverse-search-history (M-p)'
Search backward starting at the current line and moving 'up'
@@ -1127,6 +1138,13 @@ File: readline.info, Node: Commands For History, Next: Commands For Text, Pre
history expansion facilities are used to extract the last argument,
as if the '!$' history expansion had been specified.
+'operate-and-get-next (C-o)'
+ Accept the current line for return to the calling application as if
+ a newline had been entered, and fetch the next line relative to the
+ current line from the history for editing. A numeric argument, if
+ supplied, specifies the history entry to use instead of the current
+ line.
+

File: readline.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
@@ -1172,6 +1190,11 @@ File: readline.info, Node: Commands For Text, Next: Commands For Killing, Pre
was bound to 'self-insert' instead of executing any editing
commands.
+ Bracketed paste sets the region (the characters between point and
+ the mark) to the inserted text. It uses the concept of an _active
+ mark_: when the mark is active, Readline redisplay uses the
+ terminal's standout mode to denote the region.
+
'transpose-chars (C-t)'
Drag the character before the cursor forward over the character at
the cursor, moving the cursor forward as well. If the insertion
@@ -1216,10 +1239,14 @@ File: readline.info, Node: Commands For Killing, Next: Numeric Arguments, Pre
-------------------------
'kill-line (C-k)'
- Kill the text from point to the end of the line.
+ Kill the text from point to the end of the line. With a negative
+ numeric argument, kill backward from the cursor to the beginning of
+ the current line.
'backward-kill-line (C-x Rubout)'
Kill backward from the cursor to the beginning of the current line.
+ With a negative numeric argument, kill forward from the cursor to
+ the end of the current line.
'unix-line-discard (C-u)'
Kill backward from the cursor to the beginning of the current line.
@@ -1237,6 +1264,13 @@ File: readline.info, Node: Commands For Killing, Next: Numeric Arguments, Pre
Kill the word behind point. Word boundaries are the same as
'backward-word'.
+'shell-transpose-words (M-C-t)'
+ Drag the word before point past the word after point, moving point
+ past that word as well. If the insertion point is at the end of
+ the line, this transposes the last two words on the line. Word
+ boundaries are the same as 'shell-forward-word' and
+ 'shell-backward-word'.
+
'unix-word-rubout (C-w)'
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
@@ -1485,7 +1519,7 @@ and subsequent lines with 'j', and so forth.
aiding in the consistency of user interface across discrete programs
that need to provide a command line interface.
- Copyright (C) 1988-2016 Free Software Foundation, Inc.
+ Copyright (C) 1988-2020 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice pare
@@ -2709,6 +2743,26 @@ File: readline.info, Node: Miscellaneous Functions, Next: Alternate Interface,
differs from 'clear_history' because it frees private data Readline
saves in the history list.
+ -- Function: void rl_activate_mark (void)
+ Enable an _active_ mark. When this is enabled, the text between
+ point and mark (the REGION) is displayed in the terminal's standout
+ mode (a FACE). This is called by various readline functions that
+ set the mark and insert text, and is available for applications to
+ call.
+
+ -- Function: void rl_deactivate_mark (void)
+ Turn off the active mark.
+
+ -- Function: void rl_keep_mark_active (void)
+ Indicate that the mark should remain active when the current
+ readline function completes and after redisplay occurs. In most
+ cases, the mark remains active for only the duration of a single
+ bindable readline function.
+
+ -- Function: int rl_mark_active_p (void)
+ Return a non-zero value if the mark is currently active; zero
+ otherwise.
+

File: readline.info, Node: Alternate Interface, Next: A Readline Example, Prev: Miscellaneous Functions, Up: Readline Convenience Functions
@@ -3090,7 +3144,7 @@ signals received while waiting for input.
If an application does not wish Readline to catch 'SIGWINCH', it may
call 'rl_resize_terminal()' or 'rl_set_screen_size()' to force Readline
-to update its idea of the terminal size when a 'SIGWINCH' is received.
+to update its idea of the terminal size when it receives a 'SIGWINCH'.
-- Function: void rl_echo_signal_char (int sig)
If an application wishes to install its own signal handlers, but
@@ -3105,11 +3159,14 @@ to update its idea of the terminal size when a 'SIGWINCH' is received.
-- Function: void rl_set_screen_size (int rows, int cols)
Set Readline's idea of the terminal size to ROWS rows and COLS
columns. If either ROWS or COLUMNS is less than or equal to 0,
- Readline's idea of that terminal dimension is unchanged.
+ Readline's idea of that terminal dimension is unchanged. This is
+ intended to tell Readline the physical dimensions of the terminal,
+ and is used internally to calculate the maximum number of
+ characters that may appear on a single line and on the screen.
If an application does not want to install a 'SIGWINCH' handler, but
-is still interested in the screen dimensions, Readline's idea of the
-screen size may be queried.
+is still interested in the screen dimensions, it may query Readline's
+idea of the screen size.
-- Function: void rl_get_screen_size (int *rows, int *cols)
Return Readline's idea of the terminal's size in the variables
@@ -3377,7 +3434,7 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
passed directly to 'opendir()'.
The directory rewrite hook returns an integer that should be
- non-zero if the function modfies its directory argument. The
+ non-zero if the function modifies its directory argument. The
function should not modify the directory argument if it returns 0.
-- Variable: rl_icppfunc_t * rl_filename_stat_hook
@@ -3389,7 +3446,7 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
characters from the filename.
The stat hook returns an integer that should be non-zero if the
- function modfies its directory argument. The function should not
+ function modifies its directory argument. The function should not
modify the directory argument if it returns 0.
-- Variable: rl_dequote_func_t * rl_filename_rewrite_hook
@@ -3962,7 +4019,7 @@ command names, line editing features, and access to the history list.
if (!printed)
{
- printf ("No commands match `%s'. Possibilties are:\n", arg);
+ printf ("No commands match `%s'. Possibilities are:\n", arg);
for (i = 0; commands[i].name; i++)
{
@@ -4579,9 +4636,9 @@ Function and Variable Index
* backward-char (C-b): Commands For Moving. (line 15)
* backward-delete-char (Rubout): Commands For Text. (line 17)
* backward-kill-line (C-x Rubout): Commands For Killing.
- (line 9)
+ (line 11)
* backward-kill-word (M-<DEL>): Commands For Killing.
- (line 24)
+ (line 28)
* backward-word (M-b): Commands For Moving. (line 22)
* beginning-of-history (M-<): Commands For History.
(line 19)
@@ -4594,12 +4651,13 @@ Function and Variable Index
(line 47)
* bracketed-paste-begin (): Commands For Text. (line 36)
* call-last-kbd-macro (C-x e): Keyboard Macros. (line 13)
-* capitalize-word (M-c): Commands For Text. (line 64)
+* capitalize-word (M-c): Commands For Text. (line 69)
* character-search (C-]): Miscellaneous Commands.
(line 42)
* character-search-backward (M-C-]): Miscellaneous Commands.
(line 47)
-* clear-screen (C-l): Commands For Moving. (line 40)
+* clear-display (M-C-l): Commands For Moving. (line 40)
+* clear-screen (C-l): Commands For Moving. (line 45)
* colored-completion-prefix: Readline Init File Syntax.
(line 52)
* colored-stats: Readline Init File Syntax.
@@ -4621,22 +4679,22 @@ Function and Variable Index
* convert-meta: Readline Init File Syntax.
(line 105)
* copy-backward-word (): Commands For Killing.
- (line 49)
+ (line 60)
* copy-forward-word (): Commands For Killing.
- (line 54)
+ (line 65)
* copy-region-as-kill (): Commands For Killing.
- (line 45)
+ (line 56)
* delete-char (C-d): Commands For Text. (line 12)
* delete-char-or-list (): Commands For Completion.
(line 39)
* delete-horizontal-space (): Commands For Killing.
- (line 37)
+ (line 48)
* digit-argument (M-0, M-1, ... M--): Numeric Arguments. (line 6)
* disable-completion: Readline Init File Syntax.
(line 113)
* do-lowercase-version (M-A, M-B, M-X, ...): Miscellaneous Commands.
(line 14)
-* downcase-word (M-l): Commands For Text. (line 60)
+* downcase-word (M-l): Commands For Text. (line 65)
* dump-functions (): Miscellaneous Commands.
(line 70)
* dump-macros (): Miscellaneous Commands.
@@ -4667,66 +4725,68 @@ Function and Variable Index
* forward-backward-delete-char (): Commands For Text. (line 21)
* forward-char (C-f): Commands For Moving. (line 12)
* forward-search-history (C-s): Commands For History.
- (line 30)
+ (line 32)
* forward-word (M-f): Commands For Moving. (line 18)
* history-preserve-point: Readline Init File Syntax.
(line 162)
* history-search-backward (): Commands For History.
- (line 52)
+ (line 56)
* history-search-forward (): Commands For History.
- (line 46)
+ (line 50)
* history-size: Readline Init File Syntax.
(line 168)
* history-substring-search-backward (): Commands For History.
- (line 64)
+ (line 68)
* history-substring-search-forward (): Commands For History.
- (line 58)
+ (line 62)
* horizontal-scroll-mode: Readline Init File Syntax.
(line 177)
* input-meta: Readline Init File Syntax.
- (line 184)
+ (line 186)
* insert-comment (M-#): Miscellaneous Commands.
(line 61)
* insert-completions (M-*): Commands For Completion.
(line 18)
* isearch-terminators: Readline Init File Syntax.
- (line 192)
+ (line 194)
* keymap: Readline Init File Syntax.
- (line 199)
+ (line 201)
* kill-line (C-k): Commands For Killing.
(line 6)
* kill-region (): Commands For Killing.
- (line 41)
+ (line 52)
* kill-whole-line (): Commands For Killing.
- (line 15)
-* kill-word (M-d): Commands For Killing.
(line 19)
+* kill-word (M-d): Commands For Killing.
+ (line 23)
* mark-modified-lines: Readline Init File Syntax.
- (line 229)
+ (line 231)
* mark-symlinked-directories: Readline Init File Syntax.
- (line 234)
+ (line 236)
* match-hidden-files: Readline Init File Syntax.
- (line 239)
+ (line 241)
* menu-complete (): Commands For Completion.
(line 22)
* menu-complete-backward (): Commands For Completion.
(line 34)
* menu-complete-display-prefix: Readline Init File Syntax.
- (line 246)
+ (line 248)
* meta-flag: Readline Init File Syntax.
- (line 184)
+ (line 186)
* next-history (C-n): Commands For History.
(line 16)
* next-screen-line (): Commands For Moving. (line 33)
* non-incremental-forward-search-history (M-n): Commands For History.
- (line 40)
+ (line 44)
* non-incremental-reverse-search-history (M-p): Commands For History.
- (line 34)
+ (line 38)
+* operate-and-get-next (C-o): Commands For History.
+ (line 95)
* output-meta: Readline Init File Syntax.
- (line 251)
-* overwrite-mode (): Commands For Text. (line 68)
+ (line 253)
+* overwrite-mode (): Commands For Text. (line 73)
* page-completions: Readline Init File Syntax.
- (line 257)
+ (line 259)
* possible-completions (M-?): Commands For Completion.
(line 11)
* prefix-meta (<ESC>): Miscellaneous Commands.
@@ -4739,13 +4799,15 @@ Function and Variable Index
* re-read-init-file (C-x C-r): Miscellaneous Commands.
(line 6)
* readline: Basic Behavior. (line 12)
-* redraw-current-line (): Commands For Moving. (line 44)
+* redraw-current-line (): Commands For Moving. (line 49)
* reverse-search-history (C-r): Commands For History.
(line 26)
* revert-all-at-newline: Readline Init File Syntax.
- (line 267)
+ (line 269)
* revert-line (M-r): Miscellaneous Commands.
(line 26)
+* rl_activate_mark: Miscellaneous Functions.
+ (line 55)
* rl_add_defun: Function Naming. (line 18)
* rl_add_funmap_entry: Associating Function Names and Bindings.
(line 54)
@@ -4791,7 +4853,7 @@ Function and Variable Index
* rl_clear_message: Redisplay. (line 51)
* rl_clear_pending_input: Character Input. (line 29)
* rl_clear_signals: Readline Signal Handling.
- (line 179)
+ (line 182)
* rl_clear_visible_line: Redisplay. (line 25)
* rl_complete: How Completing Works.
(line 46)
@@ -4836,6 +4898,8 @@ Function and Variable Index
* rl_copy_keymap: Keymaps. (line 16)
* rl_copy_text: Modifying Text. (line 14)
* rl_crlf: Redisplay. (line 33)
+* rl_deactivate_mark: Miscellaneous Functions.
+ (line 62)
* rl_delete_text: Modifying Text. (line 10)
* rl_deprep_terminal: Terminal Management. (line 12)
* rl_deprep_term_function: Readline Variables. (line 174)
@@ -4903,7 +4967,7 @@ Function and Variable Index
* rl_get_keymap_by_name: Keymaps. (line 46)
* rl_get_keymap_name: Keymaps. (line 51)
* rl_get_screen_size: Readline Signal Handling.
- (line 162)
+ (line 165)
* rl_get_termcap: Miscellaneous Functions.
(line 41)
* rl_gnu_readline_p: Readline Variables. (line 82)
@@ -4923,6 +4987,8 @@ Function and Variable Index
(line 29)
* rl_invoking_keyseqs_in_map: Associating Function Names and Bindings.
(line 33)
+* rl_keep_mark_active: Miscellaneous Functions.
+ (line 65)
* rl_key_sequence_length: Readline Variables. (line 199)
* rl_kill_text: Modifying Text. (line 18)
* rl_last_func: Readline Variables. (line 109)
@@ -4937,6 +5003,8 @@ Function and Variable Index
* rl_make_bare_keymap: Keymaps. (line 11)
* rl_make_keymap: Keymaps. (line 19)
* rl_mark: Readline Variables. (line 23)
+* rl_mark_active_p: Miscellaneous Functions.
+ (line 71)
* rl_message: Redisplay. (line 42)
* rl_modifying: Allowing Undoing. (line 56)
* rl_named_function: Associating Function Names and Bindings.
@@ -4973,7 +5041,7 @@ Function and Variable Index
(line 121)
* rl_reset_line_state: Redisplay. (line 29)
* rl_reset_screen_size: Readline Signal Handling.
- (line 166)
+ (line 169)
* rl_reset_terminal: Terminal Management. (line 34)
* rl_resize_terminal: Readline Signal Handling.
(line 149)
@@ -4991,7 +5059,7 @@ Function and Variable Index
* rl_set_screen_size: Readline Signal Handling.
(line 153)
* rl_set_signals: Readline Signal Handling.
- (line 173)
+ (line 176)
* rl_show_char: Redisplay. (line 36)
* rl_signal_event_hook: Readline Variables. (line 136)
* rl_sort_completion_matches: Completion Variables.
@@ -5019,104 +5087,111 @@ Function and Variable Index
* self-insert (a, b, A, 1, !, ...): Commands For Text. (line 33)
* set-mark (C-@): Miscellaneous Commands.
(line 33)
+* shell-transpose-words (M-C-t): Commands For Killing.
+ (line 32)
* show-all-if-ambiguous: Readline Init File Syntax.
- (line 273)
+ (line 275)
* show-all-if-unmodified: Readline Init File Syntax.
- (line 279)
+ (line 281)
* show-mode-in-prompt: Readline Init File Syntax.
- (line 288)
+ (line 290)
* skip-completed-text: Readline Init File Syntax.
- (line 294)
+ (line 296)
* skip-csi-sequence (): Miscellaneous Commands.
(line 52)
* start-kbd-macro (C-x (): Keyboard Macros. (line 6)
* tab-insert (M-<TAB>): Commands For Text. (line 30)
* tilde-expand (M-~): Miscellaneous Commands.
(line 30)
-* transpose-chars (C-t): Commands For Text. (line 45)
-* transpose-words (M-t): Commands For Text. (line 51)
+* transpose-chars (C-t): Commands For Text. (line 50)
+* transpose-words (M-t): Commands For Text. (line 56)
* undo (C-_ or C-x C-u): Miscellaneous Commands.
(line 23)
* universal-argument (): Numeric Arguments. (line 10)
* unix-filename-rubout (): Commands For Killing.
- (line 32)
+ (line 43)
* unix-line-discard (C-u): Commands For Killing.
- (line 12)
+ (line 16)
* unix-word-rubout (C-w): Commands For Killing.
- (line 28)
-* upcase-word (M-u): Commands For Text. (line 56)
+ (line 39)
+* upcase-word (M-u): Commands For Text. (line 61)
* vi-cmd-mode-string: Readline Init File Syntax.
- (line 307)
+ (line 309)
* vi-editing-mode (M-C-j): Miscellaneous Commands.
(line 92)
* vi-ins-mode-string: Readline Init File Syntax.
- (line 318)
+ (line 320)
* visible-stats: Readline Init File Syntax.
- (line 329)
+ (line 331)
* yank (C-y): Commands For Killing.
- (line 59)
+ (line 70)
* yank-last-arg (M-. or M-_): Commands For History.
- (line 79)
+ (line 83)
* yank-nth-arg (M-C-y): Commands For History.
- (line 70)
+ (line 74)
* yank-pop (M-y): Commands For Killing.
- (line 62)
+ (line 73)

Tag Table:
-Node: Top865
-Node: Command Line Editing1590
-Node: Introduction and Notation2242
-Node: Readline Interaction3866
-Node: Readline Bare Essentials5058
-Node: Readline Movement Commands6842
-Node: Readline Killing Commands7803
-Node: Readline Arguments9722
-Node: Searching10767
-Node: Readline Init File12920
-Node: Readline Init File Syntax14074
-Node: Conditional Init Constructs34233
-Node: Sample Init File38430
-Node: Bindable Readline Commands41548
-Node: Commands For Moving42603
-Node: Commands For History44170
-Node: Commands For Text48435
-Node: Commands For Killing51877
-Node: Numeric Arguments54044
-Node: Commands For Completion55184
-Node: Keyboard Macros57153
-Node: Miscellaneous Commands57841
-Node: Readline vi Mode61763
-Node: Programming with GNU Readline63580
-Node: Basic Behavior64566
-Node: Custom Functions68249
-Node: Readline Typedefs69732
-Node: Function Writing71366
-Node: Readline Variables72680
-Node: Readline Convenience Functions85352
-Node: Function Naming86424
-Node: Keymaps87686
-Node: Binding Keys90765
-Node: Associating Function Names and Bindings95313
-Node: Allowing Undoing98092
-Node: Redisplay100642
-Node: Modifying Text104666
-Node: Character Input105913
-Node: Terminal Management107811
-Node: Utility Functions109634
-Node: Miscellaneous Functions112962
-Node: Alternate Interface115551
-Node: A Readline Example118293
-Node: Alternate Interface Example120232
-Node: Readline Signal Handling123764
-Node: Custom Completers132813
-Node: How Completing Works133533
-Node: Completion Functions136840
-Node: Completion Variables140414
-Node: A Short Completion Example156205
-Node: GNU Free Documentation License168984
-Node: Concept Index194158
-Node: Function and Variable Index195679
+Node: Top864
+Node: Command Line Editing1589
+Node: Introduction and Notation2241
+Node: Readline Interaction3865
+Node: Readline Bare Essentials5057
+Node: Readline Movement Commands6841
+Node: Readline Killing Commands7802
+Node: Readline Arguments9721
+Node: Searching10766
+Node: Readline Init File12919
+Node: Readline Init File Syntax14073
+Node: Conditional Init Constructs34331
+Node: Sample Init File38528
+Node: Bindable Readline Commands41653
+Node: Commands For Moving42708
+Node: Commands For History44467
+Node: Commands For Text49230
+Node: Commands For Killing52933
+Node: Numeric Arguments55647
+Node: Commands For Completion56787
+Node: Keyboard Macros58756
+Node: Miscellaneous Commands59444
+Node: Readline vi Mode63366
+Node: Programming with GNU Readline65183
+Node: Basic Behavior66169
+Node: Custom Functions69852
+Node: Readline Typedefs71335
+Node: Function Writing72969
+Node: Readline Variables74283
+Node: Readline Convenience Functions86955
+Node: Function Naming88027
+Node: Keymaps89289
+Node: Binding Keys92368
+Node: Associating Function Names and Bindings96916
+Node: Allowing Undoing99695
+Node: Redisplay102245
+Node: Modifying Text106269
+Node: Character Input107516
+Node: Terminal Management109414
+Node: Utility Functions111237
+Node: Miscellaneous Functions114565
+Node: Alternate Interface117984
+Node: A Readline Example120726
+Node: Alternate Interface Example122665
+Node: Readline Signal Handling126197
+Node: Custom Completers135456
+Node: How Completing Works136176
+Node: Completion Functions139483
+Node: Completion Variables143057
+Node: A Short Completion Example158850
+Node: GNU Free Documentation License171630
+Node: Concept Index196804
+Node: Function and Variable Index198325

End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/doc/readline.pdf b/doc/readline.pdf
index 95f99b9..8723e98 100644
--- a/doc/readline.pdf
+++ b/doc/readline.pdf
Binary files differ
diff --git a/doc/readline.ps b/doc/readline.ps
index 41cdd24..229f63f 100644
--- a/doc/readline.ps
+++ b/doc/readline.ps
@@ -1,8 +1,8 @@
%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.998 Copyright 2018 Radical Eye Software
+%%Creator: dvips(k) 5.999 Copyright 2019 Radical Eye Software
%%Title: readline.dvi
-%%CreationDate: Tue Dec 18 16:44:18 2018
-%%Pages: 81
+%%CreationDate: Fri Oct 30 14:07:46 2020
+%%Pages: 82
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSY10 CMMI12 CMMI10 CMCSC10
@@ -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.12.18:1144
+%DVIPSSource: TeX output 2020.10.30:1007
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -5212,6 +5212,7 @@ dup 100 /d put
dup 101 /e put
dup 103 /g put
dup 105 /i put
+dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
@@ -5447,120 +5448,129 @@ CEBF16946487E546C6E433A5C5B9FB7D5B97F2B4B202F892CF5121199EB48642
4448B45EDB617EDB931969D53B9C200E954B4A6DA6617E3A56D72EF332FB941F
4694BAF21CAF8473EE2767CB5434E955C5A08DB04F67508AA1F5CFAE25FBC9B3
9FA855CBF2DFBD04C656532230B8A2A0B33C7EC74BF3EB2877DA369035C976C2
-F3227355AE2E740152A344AC5E0CB3D04A1D4273A54A35BF8B1F24797246B5E1
-CFD5D260F4D5E5131120AEE3B3BF1308B9E55026C969C5451EDA76E0F06E75F2
-6DCC258952B63FE0B7B99B39D5563AB4F7CDE57AA7490C71E3CD9EB563E0A9C0
-8C54E64E3B537A901395E33847C6FF75C2B6FC3536E8F990C18A6623A00AB558
-272AE4D142503BF0B82A13EB6088D27E0D8B319D6BCF1E0E8EE94C9ADD6D4645
-A5B0FBD17AF7CB1E1ADDD2D822A76F6B9338B6B459D4A67631292AA028A8B976
-8F9771C890FFDF7751F3079E36D8F92AFB62BBB960A45891B5FABC8E5BDA1348
-5AC23D29879FA27A392E3DE732D78EFF7168F2FB7B0841C8B3729FFA2B515885
-C699663626473D04C1421BE24259C91B9FE8F63DC99929D9741F37E67CF70E38
-3C489E823CF0F62B020CF576753734C989AA1A360A21A137DFD644ED2197032C
-3DEAB8E7A1306D8DF7E36DDD52A895488E63701D6A69E634EC862DFCDAC01BA2
-56DE73FC77027F65B89BF3188686026D0C2A2F22DA92B8DA0F6476F6252D8066
-D9F0AEAC5E6F09120646EF77CC81FEDB1BC8E3197E9CCA12C941152387E71286
-E00B8ED61DBA85D2EF5550663A1D2C7233D6FDEDBE947241585C4B9580E7A700
-5081C957D863FD2DBDBF56CE8DA67E3D6A8A47C3BF38478D3D4D72A803DEC0D5
-797CC1ED5B005CFE4A46CF549FEE756419351B89B8DDF13BC2EC18939901BA5D
-37ED1DBCE8DA072938DFA9585444FA6F09CC32C7098E2ACCEEEDF7D117235385
-BD95CE9C7C997491613FA253743E7D0B03348072F516B7436A78435B19C828FB
-1712254A679503CE81FF1761ACA3C3BEC0C1E2736A2908C7A8D6F30D86F7DD00
-1BA2200908FA4180273E50863CA552868F1EE5EC1D8D47AE159B4A42C65F3D7A
-73332A618CEA966BFA32B9AEFCE9C7CD4678B2301FC1DB91964486B62E28DD60
-11D123711C6A2D190F6FB97ECE36679247507514606287D049455AB9CCF928CE
-CB2C62D55BBC4DFB1F8A033B7D42D8D1119D71F616205A91B48C7C83CB2D0B39
-15824D6F324A9CB64E6C09D65C478F8753905E1A0B094D310123FBB7CBC4CF71
-08D6381228C2B6C393E8055AF7D226FFBD9CF19379B4E7F75938D5A39E3410D5
-4E2BB197AD202DB623844B156AD0FD80AE4CB0E8B7831CECF25E15753FE27E19
-A8CF57C78C6D1CD021C6FED91E81AE1F09F1F9CE7D8CB480EB559729BAFB507D
-B99DE23E7D3A9FD04345DDC7E8E498F2229CC33A991418E69A9366ECB375C42E
-69E1B73DC94401E5E7AD9CFE8086432F8026224CD42D9A1EFDB1B3B0D5BE74A9
-186F30C774BAF35F25D4B0B1C9C791CAA87015D3A7519184FCE9DB2439A98A49
-0DA01A0A9ED463382DAAA05555106902836A46E3651871D20B65879902C0D93E
-C8C3358A8F64CD0CA264614EBE741ABEC13F29CAC4625A1A7301889D9A994416
-24BC8C7816579FB7D7AF946DBB3D911457CB2D0CE74BD645CE388BEDA28CA1F6
-EF4DD197628362D38ED6499657B1E45D1DDE460ABE0EC838DF3BBD2B90FD2245
-6DC211B771E1ECC3E294F1B767BA0F3D041BF4DB159EF01C3AC7C00281A675A7
-BECDF043A5EB64CB6D99FC8E7876EA1216F005A7A63EBA79549D5B6C33FA47BE
-38466B6D62D3D00C52D9BB7AB23DD4A4C896D3A5890E8C57B7ED5A627CC7EA4C
-0BE63CAA285E1A35808FEE0ADB1FF9EA3B18EC1040560B1FD950D7EF32F7F958
-5ECEFC1C01A98E4DCB69934F9314316D3CBC0AD4A1F68346CD40AE6E3A804EA5
-7286646FB2A7ABFE62B300F72A0484CC51D34D3FA2B292D308D605576D56EFAD
-DB68453A08E5B45720C99964B02A5F517A7CA00F6976CF1F6CAEBCDC1772568D
-14129CB82DDE0705F45EABE56EA4DC5AC1656105957F509F2E8AA72FE5C2F830
-38F2BB415C413D54F348903AA6B614A3AE99EC4B800D4AA2677BC588B5813A94
-F5C2FC3F8B09E58B00DA92C2946D5B9FD8DECF4E0B49BF16A81A6F19EA1FBA6A
-41FA0D679E6CA980C541395DD15AA0C203335ADF3B0D48D519816D46681993D4
-A857426475A068E6C30E75E1201524D6B5EEA7BFCAA429AD5DA4504B245B23D1
-9E5E2498B1F63A7E2B7CC42C3E5B75F075006FC833724FC05AE4157F640E7D1F
-48C35EC8DF3DDD461EA211E48B2B3E628BE4A523680BC78FAC41FA1FCBC6FE81
-17AC84A895CB2CC9CAE4D77FE1ADC8C8A4797A3F1D00E090282FE2116D5848BD
-1E61B36613A89BECE27188CBE9E0C7ED75385BDC63BBC9C55E2191F1186917F8
-423A10D8326896DF44D7B2A5AC320B1818771EFCC9C20D7E5BD5291ABE762A50
-5148AE49289CF337FE6F2B6A369C557D6AA731ACF3BB97E38306F77A94C6EB2B
-B7846ABC4F32E886B0C66A806C27B4EE3CE94297C19714C889943921426433BF
-19002E5C083BA89BF31D8F5A2602BF058A8C5C78DA421DA74A4E2DCE034D6510
-C4720403654A84BD4000C074522F9D2D7ED733AC6B46232C69E21496575EFA86
-D24B2A8DC064071F35AA926565BF09130B4F96A8150A2E3EB36355535D866B67
-17B9F62C47A065E28261990D79E64DE2E4C5CA8E3B6D215925200D982510F150
-8B0562589AA66EC47508F0A5AC15B06078A83B911C15232963F6B59BEDF57A57
-1322DB18C44E6CA9154AF9084CC02095987FA65AFB0D896551415EC9D45BE803
-BD428A107A492BBA8AD075A89112B3FE451399E061AFB98FBDDDEC71DA7BCFB5
-2833E5299591FC86BF14F7B324F7F3EBAD36DDFB77313F1ACC40D0E4805D5B04
-FB965C08CEC682A07412118A17C4549C0A96F397C3FB466C6D888F5A407D43B7
-761962E8CBC5C7E27AD0A3605336CA17DB4CC1593C64E66285117EF7CCFE1A17
-203C9F1ED41FB4FADFF14DE66F78E87A9028C853A757204F81CC7F425FC7F8A2
-509611BDE84D0F549F5614C814C3E88851F9FE74506EB52C5BCEE4F21DB52BBF
-31940BC2156EF38908869732038D1EA6E39B5417E547DC412CDB0B1F1DA09E65
-07B13C1C9C962D1A9F7A0EE6187B92874964B3C5E20AFAE716E33C3E999A4FC9
-462899118EA9CC961A7D704FE46A872BCF77491F70DEE94E1335196FD787579E
-30A01C29CBCA08F301889C27910B03E20B4DA1363F6F5896007F71CA90E1DC57
-9C6BE8898B3E2AC201895AB1223CEC56C003299D9C0947320DA9D9DA474D59F8
-1EF5F4720AE0FCA1A8E55A2B9CD79801FECDABE6E5FDDDA140226714304D6EC0
-AE2BDDDD1A02E3C01D6A46682D801A7BD61C1737358EDAD7D993D9006B56BC43
-2467A2A0B58C33FE4BCFD8DAE939184D45DFC23F5B597D788F14319EB52B1FCE
-DF8C405005CEFF39D4167B66082A38209A7A8E1D5E73D87CE049BDA2FFDD49C6
-3DA02E5D6405E2F54C921F6E2CF9F1E18268DCE0D0C960D477C8525CE5FEE998
-82ACB08902CF6FF1E437468C519FDD447A2661C381A999E8724AACE9F461E629
-998539472CC9355A9E55989EB7CE1FEC9D313A160294AA55910F4F8E55BFB917
-BC77A51055CCC1772D0021AFBC1E79B289B539ADC3E99D9632919F8BD17A1B91
-BA25661178C5EE19D4CEC42744B52F04FFC27A2E3C044BAEDCBFE020A896BA3E
-79A6451ADECB932F183CD599F694DC8393E1F878737113E3DCBA11F22D46F028
-6FA7CF148F2CFEB03F61D40D6A0D30451723E7C91D4BE58E6976FBDB89D50F4B
-6EE65D2DB6465545038E094E333A015E79737CEDA211F913D831E78032B2626B
-0FB1E7E20CAD4E01BF398E9C4965BF91136D4AE83029E5F3A6339CE3C8FB64DF
-E5925D739FD720AE38EFBA0E32E74317DD35363F19EEC4806EA840F2A77AAE2C
-8752B4B786378B134F5A376A1F0BDF8FE6F0B247D4A28248D0693988D696E7B3
-4B937A41277C56A182BC2BE08D57939398C3CC125A74905ABE953028EB2A8A0B
-9BEB795D484BC979809506C8FA55AD6135FA66A0FAEC7EF53F5F91B37D8515DB
-C93CD4EF0A12CF0F9C3CD06C57FC9646A15810910EACA53BCBAEFF4AC568CD8D
-13DE144FF06FB3F1A6CE76ACC351297DE4D7E755561C1EEBBD39F1351D1731C2
-16AAFFB586C680F588B62AEC37650017928769C53E032EEADAE9E5361F28F78E
-1841C1419290D1A453C63EBEFD3C99B5F8A72548393E2C6B1C95A43CB19EC099
-4DA22BC088E6E95FC177B3D00DB7B3652D8C5DF1682DE9C3D22796AF78149E7E
-A951D0A46EB6EFDA46594BF4D608E3C4BF9406EC7A09D3A8D6623D79FB609222
-C8B1257CAB63C810A5C6983BD16FE6322E5CACDF56B91FDD46AA8B292210D3D4
-B59BE801C1B5A425CF5F5774968D510C017C3EA4D7B86C8555A96D4F0163DD8D
-F1FD9DA5D9D15999E626DB68763C5CD22EF18C747BCA003DA4354FD484A56552
-D0A96B7FF1958035AE04025DF7F67EB52B468D63D735CC8EA34484B7E18136F9
-9D4C0966C79990ED629A87C033A52F4C96295E3D3CCD4B476188101B94E214B0
-7B4C4463CEB3C81E8838D0FFC9BA36CB0A39173105C90BF8A6FE12A0B3749045
-7CA9DB29EE500088F3FFD13BAC41782854B25955B23118FF880BF20D66E30C4F
-164FD408E5E5636976D9D2686192BE5AE7B2C96A911C290B749344C0B630DF9F
-B3FD98F2E62707541A128058A5F22E05922103A39A95C1B7F6F807A5F3A21A25
-50EBF0F5950A45C9B864D2785C24F30108BB15A3E5468902D83B5F3CFBE1E359
-BD129E494D769A371B26967AC8D715BB742EA20B414D5ACBB4B25A5770A80E7F
-B315EC73D3AD78C7BEC227661C2EFDCED86C4240D38267BF1EE26C506CF00382
-8E7F86509AFABDA5ABA519C6CDA52703B40DB3502D72E8308725E660F107F4A9
-026DFE14CF4BCFD2F4832F6AD1550CDBDB5644CA52899F4641C5897D4F907931
-185D13C33184D78EAE54BCC164076DB74D99F52C064216C7FAAC977CFB69B150
-A78A2052E4EE7090A7465324648976E1C3F19F146328BA460DADED492AA74BFD
-04AE08FD24AC871D21CF7CC808495ECA5E73B26D97EAE5F9BC435D53BF2C1BD9
-0A9004BFC44EBBF6683D52781943814C3C942BDD9BF95F1661761119B49AED7B
-D9376B6124A4DC87B9D7DDB2386974A6E02B29AC5A994617F3F988B692EDC47E
-6C948C5071CFE0D680E018950F545831B5EBE3C19BF384A51DF56F3CC7757B8D
-037FDB95F4D1878C407B8C1DF1CA9E9236C468E9B8
+F3227355AE2E740152A344AC5E0CB3D04A1D4273A54A35BF8B1F247973158C4E
+2ADCC0E93E456A8F099F28C99EE6497EDBAD4A0E7937FAD55FF114586FF56F02
+D7DE3994628E4816B2D15C8370B95E334D9D374A9C1B6C7A10E83874B380B6F2
+A527D6AE149DA8AEC229DF8964FD62D697D99C3CA805CDD28742348F462C2FA5
+6E83657F5587E0E9FBBD2540F4E14876CF5BE9A38270E56C85C0732DC781344A
+A480D0BAD09DE7839C3CFF2BD09C9A9A80F985DB188B8C1689CC8A4AD620196D
+06D17C44063A9CB2F30EDAE6DAE4FC7751BC8CB7D2B54CC5FED51A14354725A5
+5D3568B56A54EEFB5C20E38A336DD50BAFCB061B051A0AADB33DE07516535472
+379855FDFF2C07BC75FCE7E930062C334CE95B6B538CBC41B0322812E1E51679
+1716297E204395DA31ECBF6177CE515E88B4F4D61348CE6AAE02FD0F1D286114
+3BCA0B5199B0505D786AB3ED0CED56A180DA736C3EEEE8825A3BAADCE6A49117
+B0B754B2B53ACE67F02AEBC31A4665FF2B023F5ADFE660CC2E34967D5208BC6D
+2F686AB71E897B3DFF0BEAB60E661F651F6BC46DC1FAB62EE9BD004B03358262
+32EFB3F4E4F7C13275442F3404888CF7FA12872A463CBBC52B993DFCC8CA0981
+991AE2D8738573A60531C13C0FC33A9309D9C99F3A68B7BB3EEB118E0943DE7B
+5CFDCA5615AFA20AFB7467D2541ABE54E4DE0226A49A72C2DF120A6A1E9CD16B
+143E9D3CEC3D6EACB409AAED738C066C9F8714E1D062AC775BD346019D2B86EB
+21007D2847DC4F694FD547A5C1C3C8089E9F6DBE130C6EF07766D89A5BD25778
+27056E32DBF97F975EA2495B466D643625BDE7F55B35FA5FD47F2707F76A3D25
+9117398C915A3BB4B461972B136CE89DEA6304D5D99C043F3CBFAB9E1B68AB10
+D416CB8A4F7760D76F3750D41AB01151F36EC6E47ED148FC15FE7DB2C0AE91E4
+40222918FACD5EFE0F8A2093D487E9C7E840C25BFD2E49617FFED0B13490E86C
+89A9DD5544A0CE6B49162B950CAA484227A5BA5C6AD796D57A7F8DF7DDBC1FEB
+9CE33165B20539DE7DB2F0B4FAB376000013828B458F938375769B75DF7541E6
+21937987B397872B880D350D359A9183D1F9B530C3FDCE648262E1E10B8BA95A
+D23B1EB3C38FC30A6A70A541A31E626427790AF8ED201B2F813DDD1AB47EA8C8
+370E1591073B6E128BA9B02116F28A929A0F34E1C12C091E4820C12FE47E31A8
+B56EC3E47D203D61DFFEF269A4EB9B7BEADE78B9506CEF4F200BE114A7669473
+4D16CCFDBBC2B8DF7AF87F60EEAF24BB9137E58CEF2F83F0E9116E9ADD2067DC
+DB5C9E05440EA0DCE72F3C98B3E97D907B63DE8F2AB4F06A572EFA28A395B653
+DEF02B8BC01E79FDAC8528DCF05A1BC986C9133FE81B274ED656E8F54087F85E
+9AE42FB250690B927A0378FAE0FC32602718E29AB9595A48B51E0914D9A5F6B0
+45CBD36D854AB5717CF8E645D7DDCE370D8B555B2DF0EB9E3CFEF436F4306065
+A8EDD52C19D9330F2518B1637D69A72DE1903D5C7D246A5DBB7D33AFBEEF9217
+1F8DFE2E5B3CF13AF8F74B728479B7E7D227FCF6BB618140E795916010E7A814
+F7CC8B76EA35BEF33551819D6EC75245FB5324775E1CAC860543BB7931404BE9
+D535D9DC60A9C43428E03CAAB2C5530DB97491A498BBC8A03361C0DD06828CFB
+AC3E51B672D460BBE1FA0FADFFBD7B6528D96E0496A8F62C8E3D4AF463CE4D4C
+3DEC985D05FF44FC710605EC1C7F2C77469E7C4DFB13DBD74DE4AB848D81DEA0
+B974766E14A6F2FAEC6BB1C0185D6079BFCA713481EF5872D53EBE1630DA0FCC
+977B484D15B1B9BCE324E375FCA501D3C2EAAB0A366AF151DADB9A45EE0B7D07
+3F6F6D7B104411688787A811D525AE0273989C7EC61F4211B6E982C9A957617E
+96933996835140D7F944DE6AEC922CC203C63798F0D617C1946047303B163B10
+2E9EC86E4AE909B7D5926F97BD05F6D4B81A5AB5F2CC682B02857AB89C9058D3
+4AB595E9EC0BD0AA10F4C35E33B6179A0EE971DC7739BFF1235C7669D098C848
+A8ACC9785237D6249D4DB97E3EFE29B4C2471A9475E1A9B1B238FBC5C11E6E67
+D3FFCE034BDAC6D8A9C679E06FC504375FE7C5C2CD713FA67A8A3CF2912A2A4E
+AC61EF89F0D4BCCF3638857C2525E9666109A1D529DDB3A570ACC33718E43EF0
+62BCDD2A6259292D5581F0076287E1A676D1B971959A143CA314D558DA5337D7
+2241B07CA926C8FC0771D56585CE189318BADE9B63A4246A01DAF7B8A58899D6
+5D5E95F4E0E9D0DE0E7DC14675DE607204E0FFC429DAACFA6BC3732B0A3AAF09
+14D5B15F9972A0D4E5483CD19DDB3D4142994B6687D1096FE57725EE8342A3FD
+62997C2DD51B51F4872C985D8C25827B40ECBA559450C7B275F6592704CA842A
+B24F2F28E0A4D1B2BED9905C9D7D527B4A09C3E1F56C0B954F6B80308BDE6E2F
+2CCA155B1E504D0CE5B00203A3DC21E281FB218340699D3D7246E16696EFBFF1
+C0D29066F8496F6E83FCC932AC2B66A12C91D27E7E7305C4B12B6F595F77664F
+763EDF055907BFA90503B5C92F8B3B1D9F234BCE872AEACA16AA1FE701A4795D
+93ABF4030B0169EF2084D46D96F011158139337D51822A3269827770ECC3B6C5
+A302C2884AFA7129DED8420B9E134EA54FAF797A324EC2310D777432FB630605
+AD3A28F2363D7B2FEA9528AB95C7B9B2DCEBDFA94D9391CC8893C9BC0B68D2D2
+7793B9F2DA30F6FA0045826999B0B8F8B103AC9F35A3174DCD3658A4C924377E
+655B9A37532B3BE2109EBA9AF8CCD5105905934C28D9F8B82D413F1F8D844D1F
+5F36F7540A97445D45D01C92CCB1C3DD1F11E3148E9FB14BB414CF383504298E
+43F21314C75676E8B8F0DE47FE006DFDB857C015EEFBEB3795B27730693EC62D
+B25EEAEF20F83E1B43C0E860024CBA717101F51049094FBAB4D0F991312106D0
+CF1C70EDBC10CAD125F46418D620849DDA9868A20DBA44126AAE63FB50CA16CC
+6F8BBEAE9F660F9141F14162C2CB22AA9F0ACA1D977733E250C492CB0F281D0D
+4104E440A2B60511BB701B6FD9B894909DE4D6399663896527DC894C0C99CD5F
+0164897CD14A4E73C9B32EA4931A0D1B629C5F78DFC0EF737DB040458982F808
+56A5E2136FF134199B00782AA6B90D303CF3BD557A5127595F54155F0394B7EF
+7B1320A078EBF18A81CF8B258345ABBC744858039176956A6A9FE480DE0197D6
+AEA79AD19158C9099DDB125F05A2D6591B9262788D04FC6C62AD3E1F15030EA4
+1B1EE0EC169C3B33FD21C55F75873D0CC4441A9ABFC267EE406E8F674636A1DC
+1926B470845050D61E3B368731C0826CBD0C9D9652D87A166C3B72750F629ECE
+42CE84FC05BED43AADEC7B2790E23983FFA6FE909AA195441DF31DE62A694AC5
+601ACB4E3FB6DF0D0672CEEBC1651885E7344B873A1CF9EF7E3712EEFAA5E329
+3FF7A2CC06427BBCFE91750070B65471F7F97AC3831F0234CB49C6E15C59C9BE
+F528991410DDBEDE9AAFAD2DCE9060C3ED864CB1AFD6A46ED385A33918D90EDD
+18476E09EA8BD621C5CEE1A171DF48BDC0E012A2038552DDE53D553DFE6B03B8
+1579FF629DA867302F75DDBB32899A26BE11B8F8575DC18D67922DEB40A3DDB4
+596879E4B817F39FCF678FCEB94B19C5AAF076D4440807A320AE1D2CAED5790E
+3B2405A0C99736B7E56CAA78CDC63A3A62C462C9BE9FBEA067AEFB9F7045B6DE
+DA819A42D2D28D9635B83F59DADB671D33A5AA6022FF8C406907A174EE9868E8
+302EE498ECF450911F8B4A06EC07B81468029A7E3CE34EF1AF35DBFD66B2E804
+26FAF5A3D3E0E41205F3584C5FEC21904297196C53A467EA1FE56E65B9D87A98
+2B8884E1105C47F9BFAA57AFDE233E09BAAF9C5A7DD05C45674A951CE1B2CDA0
+A176D473F1949221DEF2AA6E35FE72627DCD1B920B5B8CCC4E5BAAF3F97D8FFE
+F15FC0B0D07E01B3A7DAC22DA34CED526708B049889CB600E61029D9C7D7AB85
+05E5C0D1D14CEB1248D8B889892B2A5B2F7C10AF3395A0EC02F9A3765FFDF0AC
+17BF4202576D48FC88280A85495719114C0DA6D1B040C832D25C97B7C5A31D96
+E03F0E502FD0115D971936DB5A8808B9977D7107696041B997CF1C3CF3D2558B
+05AEA679512B9CE6518DD10C408B83DC1EDACA0D0EA6434119AC08611CE1E2D8
+39A7354A2A24B2317A8C1C17E8E314BB6E0DFEC26AD1A43076625C96DBAF488B
+4C76B2BA32DCDA9161B850B428D8EEA0C034E8C9FEC8BEDA74C552D78ABC253A
+86AC5C8CCBE7658AE83374D417F1FCB5836AC25507A5B2B9FCF680880F72CCFC
+43CC23A3019BBFB7E9FC6BBD00166F577BB3F1EB97BEE6368007D9A3671432F8
+F7754423350A5FCB3979D629AB52136FA3CF750E9A96A52F3E74D0DAF9249613
+21A2BF4FC21C9A8EF53AD911AFAA853340CE0E95D8096CDAFA28A1544233539B
+4D1C0AF2B635BD2FDA2AE06485A42B94EC24CD6D08AD5FE186A4B330B7A7E2CF
+7CAF7C929B2EC0AC0CF066F642B1FD77A6299F6FD50315A27A9E7F416D0A59DA
+C5740A6AA35FB37ED7E2631784AB9427C71CACFD7F1BB8A08D466E40C5FEFE67
+4E81C0B6597B886B4E81BEFEE7501BD140C5F34653AB6443210E94B52B092D65
+0C86122ECF14BE14F3D21104698412DBA2B9186BE1F3EC2CC5721DCD12057E25
+1A95D75E1D173C301566B9CF19A092DB1F90793FCB1F0F6671C871E5EDDBB6D5
+2D054B41B59D69CB2C205F7E86C30778B4C254F6606F2BA759D08E4DBD800776
+69F14DAAB8A3BEF3A808EBD917970D254E6BCCDC98FC42C8ECAE8311822A18BD
+765CF8F136485692B2B069359F11851F2AA9F9A14DB1EFBC34FCB46C0251458D
+8C9FEFEA2723AD67668854A5A85E9E1831143D60194DDB8E8059344485F3B65D
+FA047A29CC91CC45A3FDCA6677F836ABEC1C7A9029A0C7461DA9856C1D37908A
+9992810D459F0598CC390135A481DD241E59B85938545ED728D332675BDB5857
+00DC0CED734A5D295D69C3657F8F32130CC0447B8D609D0AD9E97AF80FCFD766
+9018C9D1FC42DACFE999198F9D47A870CE7B48BCF539138B398662537EDA1E9D
+2B7C7F9F75663CEA2960AB88B126A98CA16E3E8AC4F13706443D4F469F9D44F0
+002716FD449285518CD845A2E8BB824F2E03C5393E803A967955B7069AA8EF3A
+2C49A16D753E5A34D7DB3688E5B5C116208AE555A23A13A91331E79541C56F74
+9A09E3A0123A38517511B9D4CD18F5230891AF7052C29E6B9E0AB664331CFEA3
+AC7A1BDDC53E9FE118307D548CBF22DC10017A3A3B606B9760CC286B6D05887F
+357C778050E31D29D5ADACB352B2257234057B7ECC7384A0CE2097ACDB1981D2
+C9C4798FEA02362D04DBE745631DBF9DDBDD479603592BD898712A64FCB981F5
+B18423AC72E311461084CA85AF30F274D84468B319E675C8EE651A28F89D4DB9
+266E4513AE286EC25A6C5CEB8354C896C79EAE31B3D3E0D3ECB47526AFF2507F
+0AD61CFD7C07B0D2513C2DB1EED8781C233EB06E4AE484D44A04E3B3AE2BF44B
+40A6777DDB
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -6629,10 +6639,10 @@ rf /Ff 133[44 53 53 72 53 55 39 39 39 53 55 50 55 83
48 51 45 51 76 25 48 1[25 51 45 28 40 51 40 51 45 9[93
1[68 66 51 67 1[62 71 68 83 57 71 1[33 68 1[59 62 69
66 64 68 15[45 45 2[30 31[51 51 53 11[{}50 90.9091 /CMSL10
-rf /Fk 134[44 1[60 42 49 30 37 38 1[46 46 51 74 23 2[28
-1[42 1[42 46 42 1[46 84[51 12[{}19 90.9091 /CMTI10 rf
-/Fl 134[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
-48 48 1[48 48 48 48 48 48 48 1[48 2[48 14[48 48 1[48
+rf /Fk 134[44 1[60 42 49 30 37 38 1[46 46 51 74 23 42
+1[28 1[42 1[42 46 42 1[46 84[51 12[{}20 90.9091 /CMTI10
+rf /Fl 134[48 48 48 48 48 48 48 48 48 48 48 48 48 48
+48 48 48 1[48 48 48 48 48 48 48 1[48 2[48 14[48 48 1[48
1[48 2[48 48 48 17[48 48 2[48 5[48 39[{}37 90.9091 /CMSLTT10
rf /Fm 135[56 2[56 1[42 2[51 58 56 4[27 1[58 49 51 1[54
1[56 97[{}12 90.9091 /CMCSC10 rf /Fn 197[25 58[{}1 90.9091
@@ -6673,31 +6683,29 @@ ifelse
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 150 1318 a Fu(GNU)65 b(Readline)g(Library)p
-150 1418 3600 34 v 1873 1515 a Ft(Edition)30 b(8.0,)i(for)e
-Fs(Readline)e(Library)h Ft(V)-8 b(ersion)31 b(8.0.)3139
-1623 y(No)m(v)m(em)m(b)s(er)g(2018)150 4927 y Fr(Chet)45
-b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l
-(ersit)l(y)150 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11
-b(ree)45 b(Soft)l(w)l(are)h(F)-11 b(oundation)p 150 5141
-3600 17 v eop end
+150 1418 3600 34 v 1873 1515 a Ft(Edition)30 b(8.1,)i(for)e
+Fs(Readline)e(Library)h Ft(V)-8 b(ersion)31 b(8.1.)3217
+1623 y(Octob)s(er)f(2020)150 4927 y Fr(Chet)45 b(Ramey)-11
+b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150
+5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)
+-11 b(oundation)p 150 5141 3600 17 v eop end
%%Page: 2 2
-TeXDict begin 2 1 bop 150 4413 a Ft(This)22 b(man)m(ual)h(describ)s(es)
-g(the)g(GNU)g(Readline)h(Library)e(\(v)m(ersion)i(8.0,)h(30)f(No)m(v)m
-(em)m(b)s(er)g(2018\),)j(a)c(library)150 4523 y(whic)m(h)39
-b(aids)g(in)g(the)g(consistency)h(of)g(user)e(in)m(terface)j(across)f
-(discrete)g(programs)e(whic)m(h)h(pro)m(vide)h(a)150
-4633 y(command)30 b(line)h(in)m(terface.)150 4767 y(Cop)m(yrigh)m(t)602
-4764 y(c)577 4767 y Fq(\015)f Ft(1988{2016)35 b(F)-8
-b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390
-4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
-b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f
-(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
-b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
-b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43
-b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8
-b(oundation;)53 b(with)44 b(no)g(In)m(v)-5 b(arian)m(t)46
-b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)31
-b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8
+TeXDict begin 2 1 bop 150 4413 a Ft(This)28 b(man)m(ual)i(describ)s(es)
+e(the)i(GNU)f(Readline)h(Library)e(\(v)m(ersion)i(8.1,)h(29)f(Octob)s
+(er)f(2020\),)j(a)d(library)150 4523 y(whic)m(h)39 b(aids)g(in)g(the)g
+(consistency)h(of)g(user)e(in)m(terface)j(across)f(discrete)g(programs)
+e(whic)m(h)h(pro)m(vide)h(a)150 4633 y(command)30 b(line)h(in)m
+(terface.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577
+4767 y Fq(\015)f Ft(1988{2020)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)
+-8 b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21
+b(is)f(gran)m(ted)h(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s
+(dify)e(this)i(do)s(cumen)m(t)f(under)f(the)390 5011
+y(terms)25 b(of)h(the)f(GNU)h(F)-8 b(ree)27 b(Do)s(cumen)m(tation)g
+(License,)g(V)-8 b(ersion)26 b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)
+390 5121 y(published)43 b(b)m(y)h(the)h(F)-8 b(ree)46
+b(Soft)m(w)m(are)g(F)-8 b(oundation;)53 b(with)44 b(no)g(In)m(v)-5
+b(arian)m(t)46 b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)
+31 b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8
b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390
5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8
b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end
@@ -6757,124 +6765,124 @@ h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)25
b Ft(18)399 2430 y(1.4.4)93 b(Killing)31 b(And)e(Y)-8
b(anking)13 b Fn(:)k(:)e(:)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
-(:)f(:)g(:)h(:)f(:)h(:)f(:)26 b Ft(19)399 2540 y(1.4.5)93
+(:)f(:)g(:)h(:)f(:)h(:)f(:)26 b Ft(20)399 2540 y(1.4.5)93
b(Sp)s(ecifying)30 b(Numeric)g(Argumen)m(ts)e Fn(:)15
b(:)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(:)41 b Ft(20)399 2649
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)41 b Ft(21)399 2649
y(1.4.6)93 b(Letting)31 b(Readline)g(T)m(yp)s(e)f(F)-8
b(or)31 b(Y)-8 b(ou)22 b Fn(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)35
b Ft(21)399 2759 y(1.4.7)93 b(Keyb)s(oard)29 b(Macros)11
b Fn(:)17 b(:)e(:)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(:)h(:)f(:)h(:)f(:)g(:)h(:)24 b Ft(21)399 2868 y(1.4.8)93
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)24 b Ft(22)399 2868 y(1.4.8)93
b(Some)30 b(Miscellaneous)j(Commands)16 b Fn(:)e(:)h(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)29 b Ft(22)275 2978 y(1.5)92 b(Readline)31
b(vi)f(Mo)s(de)10 b Fn(:)16 b(:)f(:)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(:)h(:)f(:)h(:)f(:)g(:)h(:)23
-b Ft(23)150 3229 y Fr(2)135 b(Programming)46 b(with)f(GNU)g(Readline)37
+b Ft(24)150 3229 y Fr(2)135 b(Programming)46 b(with)f(GNU)g(Readline)37
b Fo(:)19 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)48
-b Fr(24)275 3366 y Ft(2.1)92 b(Basic)31 b(Beha)m(vior)23
+b Fr(25)275 3366 y Ft(2.1)92 b(Basic)31 b(Beha)m(vior)23
b Fn(:)17 b(:)f(:)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(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)36
-b Ft(24)275 3475 y(2.2)92 b(Custom)29 b(F)-8 b(unctions)19
+b Ft(25)275 3475 y(2.2)92 b(Custom)29 b(F)-8 b(unctions)19
b Fn(:)d(:)g(:)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(:)f(:)g
-(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)32 b Ft(25)399
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)32 b Ft(26)399
3585 y(2.2.1)93 b(Readline)31 b(T)m(yp)s(edefs)17 b Fn(:)e(:)g(:)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(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)30 b Ft(26)399 3694 y(2.2.2)93 b(W)-8 b(riting)31
+(:)30 b Ft(27)399 3694 y(2.2.2)93 b(W)-8 b(riting)31
b(a)g(New)g(F)-8 b(unction)24 b Fn(:)16 b(:)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(:)f(:)g(:)37 b Ft(26)275 3804 y(2.3)92
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)37 b Ft(27)275 3804 y(2.3)92
b(Readline)31 b(V)-8 b(ariables)11 b Fn(:)17 b(:)e(:)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(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)h(:)f(:)24 b Ft(27)275 3914 y(2.4)92 b(Readline)31
+(:)h(:)f(:)24 b Ft(28)275 3914 y(2.4)92 b(Readline)31
b(Con)m(v)m(enience)g(F)-8 b(unctions)22 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(:)35 b Ft(32)399 4023 y(2.4.1)93
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)35 b Ft(33)399 4023 y(2.4.1)93
b(Naming)31 b(a)g(F)-8 b(unction)21 b Fn(:)16 b(:)f(:)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(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)34
-b Ft(32)399 4133 y(2.4.2)93 b(Selecting)32 b(a)e(Keymap)9
+b Ft(33)399 4133 y(2.4.2)93 b(Selecting)32 b(a)e(Keymap)9
b Fn(:)16 b(:)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(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)22 b Ft(33)399 4242 y(2.4.3)93 b(Binding)30
+f(:)h(:)f(:)g(:)h(:)22 b Ft(34)399 4242 y(2.4.3)93 b(Binding)30
b(Keys)15 b Fn(:)g(:)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(:)h(:)f(:)h(:)f(:)g(:)28
-b Ft(34)399 4352 y(2.4.4)93 b(Asso)s(ciating)32 b(F)-8
+b Ft(35)399 4352 y(2.4.4)93 b(Asso)s(ciating)32 b(F)-8
b(unction)31 b(Names)g(and)e(Bindings)d Fn(:)16 b(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39 b Ft(35)399
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39 b Ft(36)399
4462 y(2.4.5)93 b(Allo)m(wing)32 b(Undoing)26 b 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(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)40 b Ft(36)399 4571 y(2.4.6)93 b(Redispla)m(y)10
+f(:)g(:)h(:)f(:)40 b Ft(37)399 4571 y(2.4.6)93 b(Redispla)m(y)10
b Fn(:)15 b(:)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(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)23
-b Ft(37)399 4681 y(2.4.7)93 b(Mo)s(difying)30 b(T)-8
+b Ft(38)399 4681 y(2.4.7)93 b(Mo)s(difying)30 b(T)-8
b(ext)16 b Fn(:)g(:)f(:)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(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)28 b Ft(39)399
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)28 b Ft(40)399
4790 y(2.4.8)93 b(Character)31 b(Input)22 b Fn(:)13 b(:)j(:)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(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)35 b Ft(39)399 4900 y(2.4.9)93 b(T)-8 b(erminal)30
+(:)g(:)35 b Ft(40)399 4900 y(2.4.9)93 b(T)-8 b(erminal)30
b(Managemen)m(t)17 b Fn(:)h(:)d(:)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(:)30 b Ft(40)399 5010 y(2.4.10)93
+g(:)h(:)f(:)h(:)f(:)g(:)30 b Ft(41)399 5010 y(2.4.10)93
b(Utilit)m(y)33 b(F)-8 b(unctions)24 b Fn(:)15 b(:)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(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)36
-b Ft(40)399 5119 y(2.4.11)93 b(Miscellaneous)33 b(F)-8
+b Ft(41)399 5119 y(2.4.11)93 b(Miscellaneous)33 b(F)-8
b(unctions)23 b Fn(:)16 b(:)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(:)f(:)36 b Ft(42)399 5229 y(2.4.12)93 b(Alternate)32
+f(:)h(:)f(:)36 b Ft(43)399 5229 y(2.4.12)93 b(Alternate)32
b(In)m(terface)27 b Fn(:)15 b(:)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(:)f(:)g(:)h(:)f(:)h(:)38 b Ft(43)399 5338
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)38 b Ft(44)399 5338
y(2.4.13)93 b(A)31 b(Readline)g(Example)12 b Fn(:)j(:)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(:)f(:)g(:)h(:)f(:)25
-b Ft(43)p eop end
+b Ft(45)p eop end
%%Page: -2 4
TeXDict begin -2 3 bop 3699 -116 a Ft(ii)399 83 y(2.4.14)93
b(Alternate)32 b(In)m(terface)g(Example)18 b Fn(:)e(:)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(:)31 b Ft(45)275 193 y(2.5)92 b(Readline)31
+f(:)g(:)h(:)f(:)h(:)31 b Ft(46)275 193 y(2.5)92 b(Readline)31
b(Signal)f(Handling)18 b Fn(:)e(:)f(:)g(:)h(:)f(:)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(:)f(:)g(:)h(:)f(:)31 b Ft(47)275 302
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)31 b Ft(48)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(50)399 412 y(2.6.1)93 b(Ho)m(w)31 b(Completing)g(W)-8
+(:)40 b Ft(51)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
+g(:)h(:)f(:)h(:)24 b Ft(51)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(51)399 631 y(2.6.3)93
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)40 b Ft(52)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
-Ft(52)399 741 y(2.6.4)93 b(A)30 b(Short)g(Completion)h(Example)15
+Ft(53)399 741 y(2.6.4)93 b(A)30 b(Short)g(Completion)h(Example)15
b Fn(:)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(:)28 b
-Ft(57)150 991 y Fr(App)t(endix)44 b(A)119 b(GNU)39 b(F)-11
+Ft(58)150 991 y Fr(App)t(endix)44 b(A)119 b(GNU)39 b(F)-11
b(ree)38 b(Do)t(cumen)l(tation)i(License)25 b Fo(:)20
-b(:)32 b Fr(66)150 1269 y(Concept)45 b(Index)36 b Fo(:)19
+b(:)32 b Fr(67)150 1269 y(Concept)45 b(Index)36 b Fo(:)19
b(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)
-h(:)49 b Fr(74)150 1548 y(F)-11 b(unction)44 b(and)h(V)-11
+h(:)49 b Fr(75)150 1548 y(F)-11 b(unction)44 b(and)h(V)-11
b(ariable)45 b(Index)20 b Fo(:)g(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)33 b Fr(75)p
+f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)33 b Fr(76)p
eop end
%%Page: 1 5
TeXDict begin 1 4 bop 3705 -116 a Ft(1)150 299 y Fp(1)80
@@ -7267,27 +7275,28 @@ b(alue)26 b(greater)h(than)e(zero,)j(common)e(pre\014xes)e(longer)j
(ellipsis)h(when)e(displa)m(ying)i(p)s(ossible)f(completions.)630
565 y Fs(completion-query-items)1110 675 y Ft(The)c(n)m(um)m(b)s(er)f
(of)h(p)s(ossible)g(completions)h(that)g(determines)f(when)f(the)i
-(user)1110 784 y(is)i(ask)m(ed)h(whether)f(the)h(list)g(of)f(p)s
-(ossibilities)h(should)e(b)s(e)h(displa)m(y)m(ed.)41
-b(If)29 b(the)1110 894 y(n)m(um)m(b)s(er)d(of)h(p)s(ossible)f
-(completions)i(is)f(greater)h(than)e(this)h(v)-5 b(alue,)28
-b(Readline)1110 1003 y(will)f(ask)g(the)f(user)g(whether)g(or)g(not)h
-(he)f(wishes)g(to)i(view)e(them;)i(otherwise,)1110 1113
-y(they)d(are)f(simply)g(listed.)40 b(This)23 b(v)-5 b(ariable)25
-b(m)m(ust)g(b)s(e)e(set)i(to)g(an)g(in)m(teger)g(v)-5
-b(alue)1110 1223 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
-b(A)24 b(negativ)m(e)j(v)-5 b(alue)26 b(means)e(Readline)i(should)1110
-1332 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
-Fs(100)p Ft(.)630 1489 y Fs(convert-meta)1110 1598 y
-Ft(If)22 b(set)g(to)h(`)p Fs(on)p Ft(',)h(Readline)f(will)f(con)m(v)m
-(ert)i(c)m(haracters)f(with)f(the)g(eigh)m(th)h(bit)f(set)1110
-1708 y(to)33 b(an)e Fm(asci)r(i)h Ft(k)m(ey)h(sequence)f(b)m(y)g
-(stripping)f(the)h(eigh)m(th)h(bit)f(and)f(pre\014xing)1110
-1817 y(an)24 b Fs(ESC)g Ft(c)m(haracter,)j(con)m(v)m(erting)f(them)f
-(to)g(a)g(meta-pre\014xed)f(k)m(ey)h(sequence.)1110 1927
-y(The)i(default)h(v)-5 b(alue)28 b(is)f(`)p Fs(on)p Ft(',)i(but)d(will)
-i(b)s(e)f(set)h(to)g(`)p Fs(off)p Ft(')g(if)f(the)h(lo)s(cale)h(is)f
-(one)1110 2037 y(that)j(con)m(tains)h(eigh)m(t-bit)g(c)m(haracters.)630
+(user)1110 784 y(is)43 b(ask)m(ed)g(whether)f(the)g(list)h(of)g(p)s
+(ossibilities)g(should)f(b)s(e)g(displa)m(y)m(ed.)77
+b(If)1110 894 y(the)29 b(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g
+(completions)h(is)f(greater)h(than)f(or)g(equal)g(to)h(this)1110
+1003 y(v)-5 b(alue,)45 b(Readline)e(will)f(ask)g(whether)f(or)h(not)g
+(the)g(user)f(wishes)g(to)i(view)1110 1113 y(them;)33
+b(otherwise,)f(they)g(are)g(simply)g(listed.)45 b(This)31
+b(v)-5 b(ariable)33 b(m)m(ust)e(b)s(e)g(set)1110 1223
+y(to)39 b(an)f(in)m(teger)i(v)-5 b(alue)39 b(greater)g(than)f(or)h
+(equal)g(to)g(0.)65 b(A)38 b(negativ)m(e)i(v)-5 b(alue)1110
+1332 y(means)30 b(Readline)h(should)f(nev)m(er)g(ask.)41
+b(The)30 b(default)h(limit)g(is)f Fs(100)p Ft(.)630 1489
+y Fs(convert-meta)1110 1598 y Ft(If)22 b(set)g(to)h(`)p
+Fs(on)p Ft(',)h(Readline)f(will)f(con)m(v)m(ert)i(c)m(haracters)f(with)
+f(the)g(eigh)m(th)h(bit)f(set)1110 1708 y(to)33 b(an)e
+Fm(asci)r(i)h Ft(k)m(ey)h(sequence)f(b)m(y)g(stripping)f(the)h(eigh)m
+(th)h(bit)f(and)f(pre\014xing)1110 1817 y(an)24 b Fs(ESC)g
+Ft(c)m(haracter,)j(con)m(v)m(erting)f(them)f(to)g(a)g(meta-pre\014xed)f
+(k)m(ey)h(sequence.)1110 1927 y(The)i(default)h(v)-5
+b(alue)28 b(is)f(`)p Fs(on)p Ft(',)i(but)d(will)i(b)s(e)f(set)h(to)g(`)
+p Fs(off)p Ft(')g(if)f(the)h(lo)s(cale)h(is)f(one)1110
+2037 y(that)j(con)m(tains)h(eigh)m(t-bit)g(c)m(haracters.)630
2193 y Fs(disable-completion)1110 2303 y Ft(If)k(set)h(to)h(`)p
Fs(On)p Ft(',)g(Readline)f(will)g(inhibit)f(w)m(ord)h(completion.)60
b(Completion)1110 2412 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h
@@ -7330,7 +7339,7 @@ e(of)g(treating)h(eac)m(h)g(c)m(haracter)g(as)f(if)f(it)i(had)1110
5230 y(b)s(een)e(read)i(from)e(the)i(k)m(eyb)s(oard.)49
b(This)32 b(can)h(prev)m(en)m(t)h(pasted)f(c)m(haracters)1110
5340 y(from)d(b)s(eing)g(in)m(terpreted)h(as)f(editing)h(commands.)41
-b(The)29 b(default)i(is)f(`)p Fs(off)p Ft('.)p eop end
+b(The)29 b(default)i(is)f(`)p Fs(On)p Ft('.)p eop end
%%Page: 7 11
TeXDict begin 7 10 bop 150 -116 a Ft(Chapter)30 b(1:)41
b(Command)29 b(Line)i(Editing)2153 b(7)630 299 y Fs(enable-keypad)1110
@@ -7338,55 +7347,57 @@ b(Command)29 b(Line)i(Editing)2153 b(7)630 299 y Fs(enable-keypad)1110
(try)f(to)h(enable)g(the)f(application)i(k)m(eypad)1110
518 y(when)h(it)h(is)f(called.)41 b(Some)27 b(systems)f(need)h(this)f
(to)h(enable)g(the)g(arro)m(w)g(k)m(eys.)1110 628 y(The)j(default)g(is)
-h(`)p Fs(off)p Ft('.)630 800 y Fs(enable-meta-key)1110
-909 y Ft(When)40 b(set)g(to)g(`)p Fs(on)p Ft(',)j(Readline)d(will)g
+h(`)p Fs(off)p Ft('.)630 784 y Fs(enable-meta-key)1110
+894 y Ft(When)40 b(set)g(to)g(`)p Fs(on)p Ft(',)j(Readline)d(will)g
(try)g(to)g(enable)g(an)m(y)g(meta)h(mo)s(di\014er)1110
-1019 y(k)m(ey)i(the)e(terminal)i(claims)f(to)h(supp)s(ort)d(when)h(it)h
-(is)g(called.)76 b(On)41 b(man)m(y)1110 1129 y(terminals,)c(the)e(meta)
+1003 y(k)m(ey)i(the)e(terminal)i(claims)f(to)h(supp)s(ort)d(when)h(it)h
+(is)g(called.)76 b(On)41 b(man)m(y)1110 1113 y(terminals,)c(the)e(meta)
h(k)m(ey)g(is)f(used)g(to)h(send)e(eigh)m(t-bit)j(c)m(haracters.)56
-b(The)1110 1238 y(default)31 b(is)f(`)p Fs(on)p Ft('.)630
-1410 y Fs(expand-tilde)1110 1520 y Ft(If)d(set)h(to)h(`)p
+b(The)1110 1223 y(default)31 b(is)f(`)p Fs(on)p Ft('.)630
+1379 y Fs(expand-tilde)1110 1489 y Ft(If)d(set)h(to)h(`)p
Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f(p)s(erformed)f(when)h
-(Readline)h(attempts)1110 1630 y(w)m(ord)i(completion.)42
-b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)630 1802
-y Fs(history-preserve-point)1110 1911 y Ft(If)41 b(set)h(to)h(`)p
+(Readline)h(attempts)1110 1598 y(w)m(ord)i(completion.)42
+b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)630 1755
+y Fs(history-preserve-point)1110 1864 y Ft(If)41 b(set)h(to)h(`)p
Fs(on)p Ft(',)i(the)c(history)h(co)s(de)g(attempts)h(to)f(place)h(the)f
-(p)s(oin)m(t)f(\(the)1110 2021 y(curren)m(t)35 b(cursor)g(p)s
+(p)s(oin)m(t)f(\(the)1110 1974 y(curren)m(t)35 b(cursor)g(p)s
(osition\))g(at)h(the)g(same)f(lo)s(cation)i(on)e(eac)m(h)h(history)g
-(line)1110 2131 y(retriev)m(ed)h(with)f Fs(previous-history)c
+(line)1110 2084 y(retriev)m(ed)h(with)f Fs(previous-history)c
Ft(or)37 b Fs(next-history)p Ft(.)55 b(The)36 b(default)1110
-2240 y(is)30 b(`)p Fs(off)p Ft('.)630 2412 y Fs(history-size)1110
-2522 y Ft(Set)39 b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g
-(en)m(tries)h(sa)m(v)m(ed)g(in)f(the)g(history)1110 2632
+2193 y(is)30 b(`)p Fs(off)p Ft('.)630 2350 y Fs(history-size)1110
+2459 y Ft(Set)39 b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g
+(en)m(tries)h(sa)m(v)m(ed)g(in)f(the)g(history)1110 2569
y(list.)51 b(If)34 b(set)g(to)h(zero,)g(an)m(y)f(existing)h(history)f
-(en)m(tries)g(are)g(deleted)h(and)e(no)1110 2741 y(new)e(en)m(tries)i
+(en)m(tries)g(are)g(deleted)h(and)e(no)1110 2679 y(new)e(en)m(tries)i
(are)f(sa)m(v)m(ed.)46 b(If)31 b(set)h(to)h(a)f(v)-5
b(alue)32 b(less)g(than)f(zero,)i(the)f(n)m(um)m(b)s(er)1110
-2851 y(of)f(history)f(en)m(tries)h(is)g(not)g(limited.)42
+2788 y(of)f(history)f(en)m(tries)h(is)g(not)g(limited.)42
b(By)30 b(default,)h(the)g(n)m(um)m(b)s(er)e(of)i(history)1110
-2960 y(en)m(tries)j(is)f(not)g(limited.)49 b(If)32 b(an)h(attempt)h(is)
-f(made)g(to)h(set)f Fj(history-size)39 b Ft(to)1110 3070
+2898 y(en)m(tries)j(is)f(not)g(limited.)49 b(If)32 b(an)h(attempt)h(is)
+f(made)g(to)h(set)f Fj(history-size)39 b Ft(to)1110 3007
y(a)34 b(non-n)m(umeric)f(v)-5 b(alue,)34 b(the)g(maxim)m(um)f(n)m(um)m
-(b)s(er)f(of)h(history)h(en)m(tries)g(will)1110 3180
-y(b)s(e)c(set)h(to)g(500.)630 3352 y Fs(horizontal-scroll-mode)1110
-3461 y Ft(This)k(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f
+(b)s(er)f(of)h(history)h(en)m(tries)g(will)1110 3117
+y(b)s(e)c(set)h(to)g(500.)630 3273 y Fs(horizontal-scroll-mode)1110
+3383 y Ft(This)k(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f
(`)p Fs(on)p Ft(')g(or)g(`)p Fs(off)p Ft('.)57 b(Setting)36
-b(it)g(to)h(`)p Fs(on)p Ft(')1110 3571 y(means)26 b(that)h(the)f(text)h
+b(it)g(to)h(`)p Fs(on)p Ft(')1110 3493 y(means)26 b(that)h(the)f(text)h
(of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m
-(tally)1110 3680 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
-(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 3790
-y(screen,)27 b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g
-(line.)39 b(By)27 b(default,)g(this)1110 3900 y(v)-5
-b(ariable)31 b(is)g(set)f(to)i(`)p Fs(off)p Ft('.)630
-4072 y Fs(input-meta)1110 4181 y Ft(If)f(set)g(to)h(`)p
+(tally)1110 3602 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
+(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 3712
+y(screen,)c(instead)g(of)f(wrapping)f(on)m(to)i(a)g(new)e(screen)i
+(line.)40 b(This)26 b(v)-5 b(ariable)28 b(is)1110 3821
+y(automatically)k(set)e(to)g(`)p Fs(on)p Ft(')f(for)g(terminals)g(of)h
+(heigh)m(t)g(1.)41 b(By)29 b(default,)h(this)1110 3931
+y(v)-5 b(ariable)31 b(is)g(set)f(to)i(`)p Fs(off)p Ft('.)630
+4088 y Fs(input-meta)1110 4197 y Ft(If)f(set)g(to)h(`)p
Fs(on)p Ft(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it)
-i(will)f(not)h(clear)1110 4291 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
+i(will)f(not)h(clear)1110 4307 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
(c)m(haracters)h(it)f(reads\),)j(regardless)c(of)h(what)g(the)1110
-4401 y(terminal)k(claims)h(it)f(can)g(supp)s(ort.)79
+4416 y(terminal)k(claims)h(it)f(can)g(supp)s(ort.)79
b(The)44 b(default)g(v)-5 b(alue)44 b(is)g(`)p Fs(off)p
-Ft(',)j(but)1110 4510 y(Readline)24 b(will)h(set)f(it)g(to)h(`)p
+Ft(',)j(but)1110 4526 y(Readline)24 b(will)h(set)f(it)g(to)h(`)p
Fs(on)p Ft(')e(if)h(the)g(lo)s(cale)i(con)m(tains)f(eigh)m(t-bit)g(c)m
-(haracters.)1110 4620 y(The)30 b(name)g Fs(meta-flag)e
+(haracters.)1110 4635 y(The)30 b(name)g Fs(meta-flag)e
Ft(is)j(a)f(synon)m(ym)g(for)g(this)h(v)-5 b(ariable.)630
4792 y Fs(isearch-terminators)1110 4902 y Ft(The)51 b(string)h(of)g(c)m
(haracters)h(that)f(should)e(terminate)j(an)f(incremen)m(tal)1110
@@ -7847,9 +7858,9 @@ y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h
(convert-meta)d(off)390 4573 y(#)j(display)f(characters)f(with)i(the)g
(eighth)f(bit)h(set)g(directly)390 4682 y(#)g(rather)g(than)f(as)h
(meta-prefixed)e(characters)390 4792 y(set)i(output-meta)e(on)390
-5011 y(#)i(if)h(there)e(are)h(more)g(than)f(150)h(possible)f
-(completions)e(for)390 5121 y(#)j(a)h(word,)e(ask)h(the)g(user)g(if)g
-(he)g(wants)f(to)i(see)f(all)f(of)i(them)390 5230 y(set)f
+5011 y(#)i(if)h(there)e(are)h(150)g(or)g(more)g(possible)e(completions)
+g(for)i(a)g(word,)390 5121 y(#)g(ask)g(whether)f(or)h(not)g(the)g(user)
+g(wants)f(to)h(see)g(all)g(of)g(them)390 5230 y(set)g
(completion-query-items)42 b(150)p eop end
%%Page: 16 20
TeXDict begin 16 19 bop 150 -116 a Ft(Chapter)30 b(1:)41
@@ -7898,482 +7909,519 @@ b(This)23 b(will)g(not)h(ha)m(v)m(e)h(the)e(desired)g(e\013ect)i(if)e
y(not)k(tak)m(e)i(up)e(more)g(than)g(one)g(ph)m(ysical)h(line)g(or)f
(if)g(the)h(length)f(of)h(the)f(curren)m(t)g(Readline)630
4960 y(line)k(is)f(not)h(greater)g(than)f(the)h(length)g(of)f(the)h
-(prompt)e(plus)h(the)g(screen)h(width.)150 5121 y Fs(clear-screen)c
-(\(C-l\))630 5230 y Ft(Clear)g(the)g(screen)f(and)h(redra)m(w)f(the)h
-(curren)m(t)f(line,)i(lea)m(ving)g(the)f(curren)m(t)g(line)g(at)g(the)g
-(top)630 5340 y(of)k(the)f(screen.)p eop end
+(prompt)e(plus)h(the)g(screen)h(width.)150 5121 y Fs(clear-display)c
+(\(M-C-l\))630 5230 y Ft(Clear)33 b(the)g(screen)g(and,)h(if)e(p)s
+(ossible,)i(the)f(terminal's)g(scrollbac)m(k)i(bu\013er,)e(then)f
+(redra)m(w)630 5340 y(the)f(curren)m(t)f(line,)h(lea)m(ving)h(the)e
+(curren)m(t)h(line)f(at)h(the)g(top)g(of)f(the)h(screen.)p
+eop end
%%Page: 17 21
TeXDict begin 17 20 bop 150 -116 a Ft(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(17)150 299 y Fs
-(redraw-current-line)25 b(\(\))630 408 y Ft(Refresh)30
+b(Command)29 b(Line)i(Editing)2107 b(17)150 299 y Fs(clear-screen)27
+b(\(C-l\))630 408 y Ft(Clear)35 b(the)f(screen,)i(then)e(redra)m(w)g
+(the)h(curren)m(t)f(line,)i(lea)m(ving)g(the)f(curren)m(t)f(line)h(at)g
+(the)630 518 y(top)c(of)f(the)h(screen.)150 665 y Fs
+(redraw-current-line)25 b(\(\))630 775 y Ft(Refresh)30
b(the)g(curren)m(t)h(line.)41 b(By)30 b(default,)h(this)f(is)h(un)m(b)s
-(ound.)150 596 y Fi(1.4.2)63 b(Commands)42 b(F)-10 b(or)41
-b(Manipulating)h(The)f(History)150 761 y Fs(accept-line)27
-b(\(Newline)h(or)i(Return\))630 871 y Ft(Accept)36 b(the)g(line)f
+(ound.)150 962 y Fi(1.4.2)63 b(Commands)42 b(F)-10 b(or)41
+b(Manipulating)h(The)f(History)150 1128 y Fs(accept-line)27
+b(\(Newline)h(or)i(Return\))630 1237 y Ft(Accept)36 b(the)g(line)f
(regardless)h(of)f(where)g(the)g(cursor)g(is.)55 b(If)34
b(this)h(line)h(is)f(non-empt)m(y)-8 b(,)37 b(it)630
-981 y(ma)m(y)32 b(b)s(e)g(added)f(to)h(the)g(history)g(list)h(for)e
+1347 y(ma)m(y)32 b(b)s(e)g(added)f(to)h(the)g(history)g(list)h(for)e
(future)g(recall)j(with)d Fs(add_history\(\))p Ft(.)42
-b(If)31 b(this)630 1090 y(line)g(is)f(a)h(mo)s(di\014ed)e(history)h
+b(If)31 b(this)630 1457 y(line)g(is)f(a)h(mo)s(di\014ed)e(history)h
(line,)h(the)g(history)f(line)h(is)f(restored)h(to)g(its)g(original)g
-(state.)150 1237 y Fs(previous-history)26 b(\(C-p\))630
-1347 y Ft(Mo)m(v)m(e)32 b(`bac)m(k')g(through)e(the)g(history)h(list,)g
-(fetc)m(hing)g(the)g(previous)f(command.)150 1494 y Fs(next-history)d
-(\(C-n\))630 1604 y Ft(Mo)m(v)m(e)32 b(`forw)m(ard')f(through)e(the)i
+(state.)150 1604 y Fs(previous-history)26 b(\(C-p\))630
+1713 y Ft(Mo)m(v)m(e)32 b(`bac)m(k')g(through)e(the)g(history)h(list,)g
+(fetc)m(hing)g(the)g(previous)f(command.)150 1861 y Fs(next-history)d
+(\(C-n\))630 1970 y Ft(Mo)m(v)m(e)32 b(`forw)m(ard')f(through)e(the)i
(history)f(list,)i(fetc)m(hing)f(the)g(next)f(command.)150
-1751 y Fs(beginning-of-history)25 b(\(M-<\))630 1861
+2117 y Fs(beginning-of-history)25 b(\(M-<\))630 2227
y Ft(Mo)m(v)m(e)32 b(to)g(the)e(\014rst)g(line)g(in)h(the)f(history)-8
-b(.)150 2008 y Fs(end-of-history)26 b(\(M->\))630 2117
+b(.)150 2374 y Fs(end-of-history)26 b(\(M->\))630 2484
y Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(input)e(history)-8
b(,)31 b(i.e.,)h(the)f(line)f(curren)m(tly)h(b)s(eing)f(en)m(tered.)150
-2265 y Fs(reverse-search-history)24 b(\(C-r\))630 2374
+2631 y Fs(reverse-search-history)24 b(\(C-r\))630 2741
y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g(the)f(curren)m(t)g
(line)g(and)g(mo)m(ving)h(`up')e(through)h(the)g(his-)630
-2484 y(tory)g(as)f(necessary)-8 b(.)42 b(This)29 b(is)i(an)f(incremen)m
-(tal)i(searc)m(h.)150 2631 y Fs(forward-search-history)24
-b(\(C-s\))630 2741 y Ft(Searc)m(h)44 b(forw)m(ard)f(starting)h(at)h
+2850 y(tory)26 b(as)h(necessary)-8 b(.)40 b(This)25 b(is)i(an)f
+(incremen)m(tal)h(searc)m(h.)40 b(This)25 b(command)h(sets)h(the)f
+(region)630 2960 y(to)31 b(the)g(matc)m(hed)g(text)g(and)f(activ)-5
+b(ates)33 b(the)d(mark.)150 3107 y Fs(forward-search-history)24
+b(\(C-s\))630 3217 y Ft(Searc)m(h)44 b(forw)m(ard)f(starting)h(at)h
(the)e(curren)m(t)h(line)g(and)f(mo)m(ving)h(`do)m(wn')g(through)f(the)
-630 2850 y(history)30 b(as)h(necessary)-8 b(.)41 b(This)30
-b(is)g(an)h(incremen)m(tal)g(searc)m(h.)150 2998 y Fs
-(non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24
-b(\(M-p\))630 3107 y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g
+630 3326 y(history)38 b(as)g(necessary)-8 b(.)65 b(This)38
+b(is)g(an)g(incremen)m(tal)h(searc)m(h.)65 b(This)37
+b(command)h(sets)h(the)630 3436 y(region)31 b(to)g(the)g(matc)m(hed)g
+(text)g(and)f(activ)-5 b(ates)33 b(the)d(mark.)150 3583
+y Fs(non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24
+b(\(M-p\))630 3693 y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g
(the)f(curren)m(t)g(line)g(and)g(mo)m(ving)h(`up')e(through)h(the)g
-(his-)630 3217 y(tory)36 b(as)g(necessary)h(using)e(a)i(non-incremen)m
+(his-)630 3802 y(tory)36 b(as)g(necessary)h(using)e(a)i(non-incremen)m
(tal)g(searc)m(h)f(for)g(a)g(string)g(supplied)f(b)m(y)h(the)630
-3326 y(user.)k(The)30 b(searc)m(h)h(string)f(ma)m(y)h(matc)m(h)g(an)m
-(ywhere)g(in)f(a)h(history)f(line.)150 3474 y Fs
+3912 y(user.)k(The)30 b(searc)m(h)h(string)f(ma)m(y)h(matc)m(h)g(an)m
+(ywhere)g(in)f(a)h(history)f(line.)150 4059 y Fs
(non-incremental-forward-)o(sear)o(ch-h)o(ist)o(ory)24
-b(\(M-n\))630 3583 y Ft(Searc)m(h)44 b(forw)m(ard)f(starting)h(at)h
+b(\(M-n\))630 4169 y Ft(Searc)m(h)44 b(forw)m(ard)f(starting)h(at)h
(the)e(curren)m(t)h(line)g(and)f(mo)m(ving)h(`do)m(wn')g(through)f(the)
-630 3693 y(history)27 b(as)f(necessary)i(using)e(a)h(non-incremen)m
+630 4278 y(history)27 b(as)f(necessary)i(using)e(a)h(non-incremen)m
(tal)g(searc)m(h)h(for)e(a)h(string)g(supplied)e(b)m(y)i(the)630
-3802 y(user.)40 b(The)30 b(searc)m(h)h(string)f(ma)m(y)h(matc)m(h)g(an)
-m(ywhere)g(in)f(a)h(history)f(line.)150 3950 y Fs
-(history-search-forward)24 b(\(\))630 4059 y Ft(Searc)m(h)42
+4388 y(user.)40 b(The)30 b(searc)m(h)h(string)f(ma)m(y)h(matc)m(h)g(an)
+m(ywhere)g(in)f(a)h(history)f(line.)150 4535 y Fs
+(history-search-forward)24 b(\(\))630 4645 y Ft(Searc)m(h)42
b(forw)m(ard)f(through)f(the)i(history)f(for)g(the)h(string)f(of)h(c)m
-(haracters)h(b)s(et)m(w)m(een)f(the)630 4169 y(start)36
+(haracters)h(b)s(et)m(w)m(een)f(the)630 4754 y(start)36
b(of)h(the)f(curren)m(t)f(line)i(and)e(the)h(p)s(oin)m(t.)58
b(The)35 b(searc)m(h)i(string)e(m)m(ust)h(matc)m(h)h(at)g(the)630
-4278 y(b)s(eginning)32 b(of)g(a)h(history)g(line.)47
-b(This)32 b(is)h(a)f(non-incremen)m(tal)i(searc)m(h.)48
-b(By)33 b(default,)g(this)630 4388 y(command)d(is)h(un)m(b)s(ound.)150
-4535 y Fs(history-search-backward)24 b(\(\))630 4645
-y Ft(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g
-(the)f(string)h(of)g(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630
-4754 y(start)g(of)h(the)f(curren)m(t)f(line)i(and)e(the)h(p)s(oin)m(t.)
-58 b(The)35 b(searc)m(h)i(string)e(m)m(ust)h(matc)m(h)h(at)g(the)630
4864 y(b)s(eginning)32 b(of)g(a)h(history)g(line.)47
b(This)32 b(is)h(a)f(non-incremen)m(tal)i(searc)m(h.)48
b(By)33 b(default,)g(this)630 4974 y(command)d(is)h(un)m(b)s(ound.)150
-5121 y Fs(history-substring-search)o(-for)o(ward)24 b(\(\))630
-5230 y Ft(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)f(for)g
-(the)h(string)f(of)h(c)m(haracters)h(b)s(et)m(w)m(een)f(the)630
-5340 y(start)29 b(of)g(the)g(curren)m(t)g(line)g(and)f(the)h(p)s(oin)m
-(t.)40 b(The)29 b(searc)m(h)g(string)g(ma)m(y)g(matc)m(h)h(an)m(ywhere)
-p eop end
+5121 y Fs(history-search-backward)24 b(\(\))630 5230
+y Ft(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g
+(the)f(string)h(of)g(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630
+5340 y(start)g(of)h(the)f(curren)m(t)f(line)i(and)e(the)h(p)s(oin)m(t.)
+58 b(The)35 b(searc)m(h)i(string)e(m)m(ust)h(matc)m(h)h(at)g(the)p
+eop end
%%Page: 18 22
TeXDict begin 18 21 bop 150 -116 a Ft(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(18)630 299 y(in)32
-b(a)h(history)g(line.)47 b(This)32 b(is)g(a)h(non-incremen)m(tal)h
-(searc)m(h.)47 b(By)33 b(default,)h(this)e(command)630
-408 y(is)e(un)m(b)s(ound.)150 573 y Fs(history-substring-search)o(-bac)
-o(kwar)o(d)24 b(\(\))630 683 y Ft(Searc)m(h)35 b(bac)m(kw)m(ard)g
-(through)f(the)h(history)g(for)g(the)f(string)h(of)g(c)m(haracters)h(b)
-s(et)m(w)m(een)g(the)630 793 y(start)29 b(of)g(the)g(curren)m(t)g(line)
-g(and)f(the)h(p)s(oin)m(t.)40 b(The)29 b(searc)m(h)g(string)g(ma)m(y)g
-(matc)m(h)h(an)m(ywhere)630 902 y(in)i(a)h(history)g(line.)47
-b(This)32 b(is)g(a)h(non-incremen)m(tal)h(searc)m(h.)47
-b(By)33 b(default,)h(this)e(command)630 1012 y(is)e(un)m(b)s(ound.)150
-1177 y Fs(yank-nth-arg)d(\(M-C-y\))630 1286 y Ft(Insert)37
+b(Command)29 b(Line)i(Editing)2107 b(18)630 299 y(b)s(eginning)32
+b(of)g(a)h(history)g(line.)47 b(This)32 b(is)h(a)f(non-incremen)m(tal)i
+(searc)m(h.)48 b(By)33 b(default,)g(this)630 408 y(command)d(is)h(un)m
+(b)s(ound.)150 581 y Fs(history-substring-search)o(-for)o(ward)24
+b(\(\))630 690 y Ft(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i
+(history)f(for)g(the)h(string)f(of)h(c)m(haracters)h(b)s(et)m(w)m(een)f
+(the)630 800 y(start)29 b(of)g(the)g(curren)m(t)g(line)g(and)f(the)h(p)
+s(oin)m(t.)40 b(The)29 b(searc)m(h)g(string)g(ma)m(y)g(matc)m(h)h(an)m
+(ywhere)630 910 y(in)i(a)h(history)g(line.)47 b(This)32
+b(is)g(a)h(non-incremen)m(tal)h(searc)m(h.)47 b(By)33
+b(default,)h(this)e(command)630 1019 y(is)e(un)m(b)s(ound.)150
+1192 y Fs(history-substring-search)o(-bac)o(kwar)o(d)24
+b(\(\))630 1301 y Ft(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h
+(history)g(for)g(the)f(string)h(of)g(c)m(haracters)h(b)s(et)m(w)m(een)g
+(the)630 1411 y(start)29 b(of)g(the)g(curren)m(t)g(line)g(and)f(the)h
+(p)s(oin)m(t.)40 b(The)29 b(searc)m(h)g(string)g(ma)m(y)g(matc)m(h)h
+(an)m(ywhere)630 1520 y(in)i(a)h(history)g(line.)47 b(This)32
+b(is)g(a)h(non-incremen)m(tal)h(searc)m(h.)47 b(By)33
+b(default,)h(this)e(command)630 1630 y(is)e(un)m(b)s(ound.)150
+1802 y Fs(yank-nth-arg)d(\(M-C-y\))630 1912 y Ft(Insert)37
b(the)g(\014rst)f(argumen)m(t)i(to)f(the)h(previous)e(command)h
-(\(usually)g(the)g(second)g(w)m(ord)630 1396 y(on)32
+(\(usually)g(the)g(second)g(w)m(ord)630 2021 y(on)32
b(the)g(previous)f(line\))i(at)f(p)s(oin)m(t.)46 b(With)32
b(an)g(argumen)m(t)g Fj(n)p Ft(,)g(insert)g(the)g Fj(n)p
-Ft(th)f(w)m(ord)g(from)630 1506 y(the)k(previous)f(command)h(\(the)g(w)
+Ft(th)f(w)m(ord)g(from)630 2131 y(the)k(previous)f(command)h(\(the)g(w)
m(ords)g(in)f(the)h(previous)g(command)f(b)s(egin)h(with)f(w)m(ord)630
-1615 y(0\).)69 b(A)40 b(negativ)m(e)h(argumen)m(t)f(inserts)g(the)f
+2241 y(0\).)69 b(A)40 b(negativ)m(e)h(argumen)m(t)f(inserts)g(the)f
Fj(n)p Ft(th)g(w)m(ord)g(from)g(the)h(end)f(of)h(the)f(previous)630
-1725 y(command.)48 b(Once)33 b(the)g(argumen)m(t)h Fj(n)e
+2350 y(command.)48 b(Once)33 b(the)g(argumen)m(t)h Fj(n)e
Ft(is)h(computed,)h(the)f(argumen)m(t)g(is)g(extracted)i(as)e(if)630
-1834 y(the)e(`)p Fs(!)p Fl(n)p Ft(')f(history)g(expansion)g(had)g(b)s
-(een)g(sp)s(eci\014ed.)150 1999 y Fs(yank-last-arg)d(\(M-.)i(or)h
-(M-_\))630 2109 y Ft(Insert)k(last)i(argumen)m(t)g(to)g(the)f(previous)
+2460 y(the)e(`)p Fs(!)p Fl(n)p Ft(')f(history)g(expansion)g(had)g(b)s
+(een)g(sp)s(eci\014ed.)150 2632 y Fs(yank-last-arg)d(\(M-.)i(or)h
+(M-_\))630 2742 y Ft(Insert)k(last)i(argumen)m(t)g(to)g(the)f(previous)
f(command)h(\(the)h(last)f(w)m(ord)g(of)g(the)g(previous)630
-2218 y(history)e(en)m(try\).)51 b(With)34 b(a)g(n)m(umeric)g(argumen)m
+2851 y(history)e(en)m(try\).)51 b(With)34 b(a)g(n)m(umeric)g(argumen)m
(t,)h(b)s(eha)m(v)m(e)f(exactly)h(lik)m(e)g Fs(yank-nth-arg)p
-Ft(.)630 2328 y(Successiv)m(e)26 b(calls)g(to)f Fs(yank-last-arg)c
+Ft(.)630 2961 y(Successiv)m(e)26 b(calls)g(to)f Fs(yank-last-arg)c
Ft(mo)m(v)m(e)27 b(bac)m(k)e(through)f(the)h(history)g(list,)i
-(inserting)630 2438 y(the)c(last)g(w)m(ord)f(\(or)h(the)g(w)m(ord)f(sp)
+(inserting)630 3070 y(the)c(last)g(w)m(ord)f(\(or)h(the)g(w)m(ord)f(sp)
s(eci\014ed)g(b)m(y)g(the)h(argumen)m(t)g(to)g(the)g(\014rst)f(call\))i
-(of)f(eac)m(h)h(line)630 2547 y(in)36 b(turn.)58 b(An)m(y)36
+(of)f(eac)m(h)h(line)630 3180 y(in)36 b(turn.)58 b(An)m(y)36
b(n)m(umeric)h(argumen)m(t)f(supplied)g(to)h(these)g(successiv)m(e)g
-(calls)h(determines)630 2657 y(the)d(direction)g(to)h(mo)m(v)m(e)g
+(calls)h(determines)630 3290 y(the)d(direction)g(to)h(mo)m(v)m(e)g
(through)e(the)h(history)-8 b(.)54 b(A)35 b(negativ)m(e)i(argumen)m(t)e
-(switc)m(hes)h(the)630 2766 y(direction)23 b(through)g(the)g(history)f
+(switc)m(hes)h(the)630 3399 y(direction)23 b(through)g(the)g(history)f
(\(bac)m(k)i(or)f(forw)m(ard\).)38 b(The)22 b(history)h(expansion)g
-(facilities)630 2876 y(are)28 b(used)f(to)h(extract)h(the)f(last)g
+(facilities)630 3509 y(are)28 b(used)f(to)h(extract)h(the)f(last)g
(argumen)m(t,)h(as)e(if)h(the)g(`)p Fs(!$)p Ft(')f(history)g(expansion)
-h(had)f(b)s(een)630 2986 y(sp)s(eci\014ed.)150 3190 y
-Fi(1.4.3)63 b(Commands)42 b(F)-10 b(or)41 b(Changing)g(T)-10
-b(ext)150 3365 y Fl(end-of-file)27 b Fs(\(usually)h(C-d\))630
-3475 y Ft(The)e(c)m(haracter)h(indicating)h(end-of-\014le)e(as)h(set,)g
+h(had)f(b)s(een)630 3618 y(sp)s(eci\014ed.)150 3791 y
+Fs(operate-and-get-next)e(\(C-o\))630 3900 y Ft(Accept)30
+b(the)g(curren)m(t)e(line)i(for)f(return)f(to)h(the)h(calling)g
+(application)h(as)e(if)g(a)h(newline)f(had)630 4010 y(b)s(een)22
+b(en)m(tered,)k(and)d(fetc)m(h)h(the)f(next)g(line)h(relativ)m(e)h(to)f
+(the)f(curren)m(t)g(line)h(from)f(the)g(history)630 4120
+y(for)31 b(editing.)43 b(A)31 b(n)m(umeric)f(argumen)m(t,)i(if)f
+(supplied,)f(sp)s(eci\014es)h(the)g(history)f(en)m(try)i(to)f(use)630
+4229 y(instead)g(of)f(the)h(curren)m(t)f(line.)150 4441
+y Fi(1.4.3)63 b(Commands)42 b(F)-10 b(or)41 b(Changing)g(T)-10
+b(ext)150 4620 y Fl(end-of-file)27 b Fs(\(usually)h(C-d\))630
+4729 y Ft(The)e(c)m(haracter)h(indicating)h(end-of-\014le)e(as)h(set,)g
(for)f(example,)i(b)m(y)e Fs(stty)p Ft(.)39 b(If)25 b(this)h(c)m
-(harac-)630 3584 y(ter)c(is)g(read)g(when)e(there)i(are)h(no)e(c)m
+(harac-)630 4839 y(ter)c(is)g(read)g(when)e(there)i(are)h(no)e(c)m
(haracters)j(on)d(the)h(line,)i(and)d(p)s(oin)m(t)h(is)g(at)h(the)f(b)s
-(eginning)630 3694 y(of)31 b(the)f(line,)h(Readline)g(in)m(terprets)g
+(eginning)630 4948 y(of)31 b(the)f(line,)h(Readline)g(in)m(terprets)g
(it)g(as)f(the)h(end)f(of)g(input)f(and)h(returns)f Fm(eof)p
-Ft(.)150 3859 y Fs(delete-char)e(\(C-d\))630 3968 y Ft(Delete)35
+Ft(.)150 5121 y Fs(delete-char)e(\(C-d\))630 5230 y Ft(Delete)35
b(the)f(c)m(haracter)h(at)f(p)s(oin)m(t.)49 b(If)33 b(this)g(function)g
-(is)g(b)s(ound)e(to)j(the)g(same)f(c)m(haracter)630 4078
+(is)g(b)s(ound)e(to)j(the)g(same)f(c)m(haracter)630 5340
y(as)e(the)f(tt)m(y)i Fm(eof)d Ft(c)m(haracter,)j(as)f
Fl(C-d)e Ft(commonly)i(is,)g(see)g(ab)s(o)m(v)m(e)h(for)e(the)g
-(e\013ects.)150 4243 y Fs(backward-delete-char)25 b(\(Rubout\))630
-4353 y Ft(Delete)32 b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40
-b(A)30 b(n)m(umeric)g(argumen)m(t)h(means)f(to)h(kill)g(the)630
-4462 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
-4627 y Fs(forward-backward-delete-)o(char)24 b(\(\))630
-4737 y Ft(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h
+(e\013ects.)p eop end
+%%Page: 19 23
+TeXDict begin 19 22 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(19)150 299 y Fs
+(backward-delete-char)25 b(\(Rubout\))630 408 y Ft(Delete)32
+b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40 b(A)30
+b(n)m(umeric)g(argumen)m(t)h(means)f(to)h(kill)g(the)630
+518 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
+669 y Fs(forward-backward-delete-)o(char)24 b(\(\))630
+779 y Ft(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h
(unless)d(the)i(cursor)e(is)h(at)h(the)g(end)e(of)i(the)630
-4846 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s
-(ehind)d(the)i(cursor)f(is)g(deleted.)46 b(By)32 b(default,)g(this)630
-4956 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
-5121 y Fs(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 5230
+889 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s(ehind)
+d(the)i(cursor)f(is)g(deleted.)46 b(By)32 b(default,)g(this)630
+998 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
+1149 y Fs(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 1259
y Ft(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)h
(v)m(erbatim.)53 b(This)33 b(is)i(ho)m(w)f(to)h(insert)f(k)m(ey)630
-5340 y(sequences)d(lik)m(e)g Fl(C-q)p Ft(,)f(for)g(example.)p
-eop end
-%%Page: 19 23
-TeXDict begin 19 22 bop 150 -116 a Ft(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(19)150 299 y Fs(tab-insert)28
-b(\(M-TAB\))630 408 y Ft(Insert)i(a)h(tab)f(c)m(haracter.)150
-573 y Fs(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o(\))630
-683 y Ft(Insert)g(y)m(ourself.)150 848 y Fs(bracketed-paste-begin)25
-b(\(\))630 957 y Ft(This)f(function)h(is)f(in)m(tended)h(to)h(b)s(e)e
-(b)s(ound)f(to)i(the)g Fs(")p Ft(brac)m(k)m(eted)h(paste)p
-Fs(")f Ft(escap)s(e)h(sequence)630 1067 y(sen)m(t)38
-b(b)m(y)f(some)h(terminals,)i(and)d(suc)m(h)g(a)h(binding)e(is)i
-(assigned)f(b)m(y)h(default.)62 b(It)38 b(allo)m(ws)630
-1177 y(Readline)33 b(to)g(insert)g(the)f(pasted)h(text)g(as)g(a)g
-(single)g(unit)f(without)h(treating)h(eac)m(h)f(c)m(har-)630
-1286 y(acter)40 b(as)f(if)g(it)g(had)f(b)s(een)g(read)h(from)f(the)h(k)
+1369 y(sequences)d(lik)m(e)g Fl(C-q)p Ft(,)f(for)g(example.)150
+1520 y Fs(tab-insert)e(\(M-TAB\))630 1630 y Ft(Insert)i(a)h(tab)f(c)m
+(haracter.)150 1781 y Fs(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o
+(\))630 1891 y Ft(Insert)g(y)m(ourself.)150 2042 y Fs
+(bracketed-paste-begin)25 b(\(\))630 2151 y Ft(This)f(function)h(is)f
+(in)m(tended)h(to)h(b)s(e)e(b)s(ound)f(to)i(the)g Fs(")p
+Ft(brac)m(k)m(eted)h(paste)p Fs(")f Ft(escap)s(e)h(sequence)630
+2261 y(sen)m(t)38 b(b)m(y)f(some)h(terminals,)i(and)d(suc)m(h)g(a)h
+(binding)e(is)i(assigned)f(b)m(y)h(default.)62 b(It)38
+b(allo)m(ws)630 2371 y(Readline)33 b(to)g(insert)g(the)f(pasted)h(text)
+g(as)g(a)g(single)g(unit)f(without)h(treating)h(eac)m(h)f(c)m(har-)630
+2480 y(acter)40 b(as)f(if)g(it)g(had)f(b)s(een)g(read)h(from)f(the)h(k)
m(eyb)s(oard.)66 b(The)39 b(c)m(haracters)h(are)f(inserted)630
-1396 y(as)44 b(if)g(eac)m(h)i(one)e(w)m(as)g(b)s(ound)e(to)j
+2590 y(as)44 b(if)g(eac)m(h)i(one)e(w)m(as)g(b)s(ound)e(to)j
Fs(self-insert)c Ft(instead)j(of)h(executing)g(an)m(y)f(editing)630
-1505 y(commands.)150 1670 y Fs(transpose-chars)26 b(\(C-t\))630
-1780 y Ft(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)g(cursor)f
-(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g(cursor,)630
-1889 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m(ell.)57
-b(If)35 b(the)h(insertion)g(p)s(oin)m(t)f(is)g(at)i(the)e(end)g(of)h
-(the)630 1999 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h(last)h
-(t)m(w)m(o)g(c)m(haracters)g(of)f(the)h(line.)38 b(Negativ)m(e)25
-b(argumen)m(ts)630 2109 y(ha)m(v)m(e)32 b(no)e(e\013ect.)150
-2273 y Fs(transpose-words)c(\(M-t\))630 2383 y Ft(Drag)33
-b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g(the)h(w)m(ord)f
-(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s(oin)m(t)f(past)g(that)630
-2493 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27 b(the)i(insertion)f(p)s(oin)m
-(t)h(is)f(at)h(the)g(end)e(of)i(the)f(line,)i(this)e(transp)s(oses)g
-(the)630 2602 y(last)j(t)m(w)m(o)h(w)m(ords)e(on)g(the)h(line.)150
-2767 y Fs(upcase-word)c(\(M-u\))630 2877 y Ft(Upp)s(ercase)32
-b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i(w)m(ord.)45
-b(With)32 b(a)g(negativ)m(e)j(argumen)m(t,)e(upp)s(er-)630
-2986 y(case)e(the)g(previous)f(w)m(ord,)g(but)g(do)g(not)h(mo)m(v)m(e)h
-(the)e(cursor.)150 3151 y Fs(downcase-word)d(\(M-l\))630
-3261 y Ft(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))i
+2699 y(commands.)630 2830 y(Brac)m(k)m(eted)38 b(paste)f(sets)f(the)h
+(region)f(\(the)h(c)m(haracters)g(b)s(et)m(w)m(een)g(p)s(oin)m(t)f(and)
+g(the)g(mark\))630 2939 y(to)j(the)g(inserted)f(text.)65
+b(It)39 b(uses)f(the)g(concept)h(of)g(an)f Fk(active)i(mark)10
+b Ft(:)57 b(when)38 b(the)g(mark)630 3049 y(is)d(activ)m(e,)k(Readline)
+c(redispla)m(y)h(uses)e(the)h(terminal's)h(standout)f(mo)s(de)f(to)i
+(denote)g(the)630 3159 y(region.)150 3310 y Fs(transpose-chars)26
+b(\(C-t\))630 3420 y Ft(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)
+g(cursor)f(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g
+(cursor,)630 3529 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m
+(ell.)57 b(If)35 b(the)h(insertion)g(p)s(oin)m(t)f(is)g(at)i(the)e(end)
+g(of)h(the)630 3639 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h
+(last)h(t)m(w)m(o)g(c)m(haracters)g(of)f(the)h(line.)38
+b(Negativ)m(e)25 b(argumen)m(ts)630 3748 y(ha)m(v)m(e)32
+b(no)e(e\013ect.)150 3900 y Fs(transpose-words)c(\(M-t\))630
+4009 y Ft(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g
+(the)h(w)m(ord)f(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s(oin)m(t)f(past)
+g(that)630 4119 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27
+b(the)i(insertion)f(p)s(oin)m(t)h(is)f(at)h(the)g(end)e(of)i(the)f
+(line,)i(this)e(transp)s(oses)g(the)630 4228 y(last)j(t)m(w)m(o)h(w)m
+(ords)e(on)g(the)h(line.)150 4380 y Fs(upcase-word)c(\(M-u\))630
+4489 y Ft(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i
+(w)m(ord.)45 b(With)32 b(a)g(negativ)m(e)j(argumen)m(t,)e(upp)s(er-)630
+4599 y(case)e(the)g(previous)f(w)m(ord,)g(but)g(do)g(not)h(mo)m(v)m(e)h
+(the)e(cursor.)150 4750 y Fs(downcase-word)d(\(M-l\))630
+4860 y Ft(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))i
(w)m(ord.)37 b(With)22 b(a)g(negativ)m(e)i(argumen)m(t,)g(lo)m(w)m
-(ercase)630 3370 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f(mo)m
-(v)m(e)i(the)f(cursor.)150 3535 y Fs(capitalize-word)26
-b(\(M-c\))630 3645 y Ft(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo)m
+(ercase)630 4969 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f(mo)m
+(v)m(e)i(the)f(cursor.)150 5121 y Fs(capitalize-word)26
+b(\(M-c\))630 5230 y Ft(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo)m
(wing\))i(w)m(ord.)38 b(With)21 b(a)h(negativ)m(e)h(argumen)m(t,)h
-(capitalize)630 3754 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f
-(mo)m(v)m(e)i(the)f(cursor.)150 3919 y Fs(overwrite-mode)26
-b(\(\))630 4029 y Ft(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48
+(capitalize)630 5340 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f
+(mo)m(v)m(e)i(the)f(cursor.)p eop end
+%%Page: 20 24
+TeXDict begin 20 23 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(20)150 299 y Fs(overwrite-mode)26
+b(\(\))630 408 y Ft(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48
b(With)33 b(an)g(explicit)h(p)s(ositiv)m(e)g(n)m(umeric)f(argumen)m(t,)
-h(switc)m(hes)630 4138 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37
+h(switc)m(hes)630 518 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37
b(With)22 b(an)g(explicit)h(non-p)s(ositiv)m(e)f(n)m(umeric)g(argumen)m
-(t,)i(switc)m(hes)e(to)630 4248 y(insert)30 b(mo)s(de.)41
+(t,)i(switc)m(hes)e(to)630 628 y(insert)30 b(mo)s(de.)41
b(This)30 b(command)h(a\013ects)h(only)e Fs(emacs)f Ft(mo)s(de;)i
-Fs(vi)f Ft(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 4357
+Fs(vi)f Ft(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 737
y(di\013eren)m(tly)-8 b(.)42 b(Eac)m(h)31 b(call)h(to)f
Fs(readline\(\))c Ft(starts)k(in)f(insert)g(mo)s(de.)630
-4495 y(In)52 b(o)m(v)m(erwrite)h(mo)s(de,)58 b(c)m(haracters)c(b)s
-(ound)c(to)j Fs(self-insert)c Ft(replace)k(the)g(text)g(at)630
-4604 y(p)s(oin)m(t)59 b(rather)f(than)h(pushing)e(the)i(text)g(to)h
-(the)f(righ)m(t.)126 b(Characters)59 b(b)s(ound)d(to)630
-4714 y Fs(backward-delete-char)25 b Ft(replace)31 b(the)g(c)m(haracter)
-h(b)s(efore)e(p)s(oin)m(t)g(with)g(a)h(space.)630 4851
-y(By)g(default,)f(this)h(command)f(is)g(un)m(b)s(ound.)150
-5056 y Fi(1.4.4)63 b(Killing)42 b(And)e(Y)-10 b(anking)150
-5230 y Fs(kill-line)28 b(\(C-k\))630 5340 y Ft(Kill)j(the)f(text)i
-(from)e(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f(line.)p
-eop end
-%%Page: 20 24
-TeXDict begin 20 23 bop 150 -116 a Ft(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(20)150 299 y Fs
-(backward-kill-line)25 b(\(C-x)30 b(Rubout\))630 408
-y Ft(Kill)h(bac)m(kw)m(ard)g(from)e(the)i(cursor)f(to)h(the)f(b)s
-(eginning)g(of)h(the)f(curren)m(t)g(line.)150 566 y Fs
-(unix-line-discard)c(\(C-u\))630 675 y Ft(Kill)31 b(bac)m(kw)m(ard)g
-(from)e(the)i(cursor)f(to)h(the)f(b)s(eginning)g(of)h(the)f(curren)m(t)
-g(line.)150 832 y Fs(kill-whole-line)c(\(\))630 942 y
-Ft(Kill)37 b(all)g(c)m(haracters)h(on)f(the)f(curren)m(t)h(line,)h(no)f
-(matter)g(where)f(p)s(oin)m(t)h(is.)59 b(By)36 b(default,)630
-1052 y(this)30 b(is)h(un)m(b)s(ound.)150 1209 y Fs(kill-word)d(\(M-d\))
-630 1318 y Ft(Kill)i(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f
+877 y(In)52 b(o)m(v)m(erwrite)h(mo)s(de,)58 b(c)m(haracters)c(b)s(ound)
+c(to)j Fs(self-insert)c Ft(replace)k(the)g(text)g(at)630
+986 y(p)s(oin)m(t)59 b(rather)f(than)h(pushing)e(the)i(text)g(to)h(the)
+f(righ)m(t.)126 b(Characters)59 b(b)s(ound)d(to)630 1096
+y Fs(backward-delete-char)25 b Ft(replace)31 b(the)g(c)m(haracter)h(b)s
+(efore)e(p)s(oin)m(t)g(with)g(a)h(space.)630 1236 y(By)g(default,)f
+(this)h(command)f(is)g(un)m(b)s(ound.)150 1445 y Fi(1.4.4)63
+b(Killing)42 b(And)e(Y)-10 b(anking)150 1622 y Fs(kill-line)28
+b(\(C-k\))630 1732 y Ft(Kill)k(the)f(text)i(from)d(p)s(oin)m(t)i(to)g
+(the)f(end)g(of)g(the)h(line.)44 b(With)31 b(a)h(negativ)m(e)i(n)m
+(umeric)d(argu-)630 1841 y(men)m(t,)g(kill)g(bac)m(kw)m(ard)g(from)f
+(the)g(cursor)g(to)h(the)g(b)s(eginning)e(of)i(the)g(curren)m(t)f
+(line.)150 2011 y Fs(backward-kill-line)25 b(\(C-x)30
+b(Rubout\))630 2120 y Ft(Kill)40 b(bac)m(kw)m(ard)h(from)e(the)h
+(cursor)g(to)g(the)g(b)s(eginning)g(of)g(the)g(curren)m(t)f(line.)70
+b(With)41 b(a)630 2230 y(negativ)m(e)47 b(n)m(umeric)e(argumen)m(t,)50
+b(kill)c(forw)m(ard)e(from)h(the)g(cursor)g(to)h(the)f(end)f(of)i(the)
+630 2339 y(curren)m(t)30 b(line.)150 2509 y Fs(unix-line-discard)c
+(\(C-u\))630 2619 y Ft(Kill)31 b(bac)m(kw)m(ard)g(from)e(the)i(cursor)f
+(to)h(the)f(b)s(eginning)g(of)h(the)f(curren)m(t)g(line.)150
+2788 y Fs(kill-whole-line)c(\(\))630 2898 y Ft(Kill)37
+b(all)g(c)m(haracters)h(on)f(the)f(curren)m(t)h(line,)h(no)f(matter)g
+(where)f(p)s(oin)m(t)h(is.)59 b(By)36 b(default,)630
+3007 y(this)30 b(is)h(un)m(b)s(ound.)150 3177 y Fs(kill-word)d(\(M-d\))
+630 3287 y Ft(Kill)i(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f
(curren)m(t)h(w)m(ord,)f(or)g(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)h
-(the)g(end)630 1428 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
+(the)g(end)630 3396 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f Fs(forward-word)p
-Ft(.)150 1585 y Fs(backward-kill-word)25 b(\(M-DEL\))630
-1695 y Ft(Kill)k(the)g(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t.)40
+Ft(.)150 3566 y Fs(backward-kill-word)25 b(\(M-DEL\))630
+3675 y Ft(Kill)k(the)g(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t.)40
b(W)-8 b(ord)29 b(b)s(oundaries)f(are)h(the)g(same)g(as)g
-Fs(backward-word)p Ft(.)150 1852 y Fs(unix-word-rubout)d(\(C-w\))630
-1961 y Ft(Kill)32 b(the)g(w)m(ord)f(b)s(ehind)f(p)s(oin)m(t,)i(using)f
-(white)h(space)g(as)g(a)g(w)m(ord)f(b)s(oundary)-8 b(.)43
-b(The)31 b(killed)630 2071 y(text)g(is)g(sa)m(v)m(ed)g(on)g(the)f
-(kill-ring.)150 2228 y Fs(unix-filename-rubout)25 b(\(\))630
-2338 y Ft(Kill)37 b(the)f(w)m(ord)g(b)s(ehind)f(p)s(oin)m(t,)j(using)e
+Fs(backward-word)p Ft(.)150 3845 y Fs(shell-transpose-words)c
+(\(M-C-t\))630 3955 y Ft(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)
+m(t)g(past)g(the)h(w)m(ord)f(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s
+(oin)m(t)f(past)g(that)630 4064 y(w)m(ord)c(as)h(w)m(ell.)41
+b(If)27 b(the)i(insertion)f(p)s(oin)m(t)h(is)f(at)h(the)g(end)e(of)i
+(the)f(line,)i(this)e(transp)s(oses)g(the)630 4174 y(last)j(t)m(w)m(o)h
+(w)m(ords)d(on)i(the)f(line.)41 b(W)-8 b(ord)31 b(b)s(oundaries)e(are)h
+(the)h(same)f(as)h Fs(shell-forward-)630 4283 y(word)e
+Ft(and)h Fs(shell-backward-word)p Ft(.)150 4453 y Fs(unix-word-rubout)c
+(\(C-w\))630 4562 y Ft(Kill)32 b(the)g(w)m(ord)f(b)s(ehind)f(p)s(oin)m
+(t,)i(using)f(white)h(space)g(as)g(a)g(w)m(ord)f(b)s(oundary)-8
+b(.)43 b(The)31 b(killed)630 4672 y(text)g(is)g(sa)m(v)m(ed)g(on)g(the)
+f(kill-ring.)150 4842 y Fs(unix-filename-rubout)25 b(\(\))630
+4951 y Ft(Kill)37 b(the)f(w)m(ord)g(b)s(ehind)f(p)s(oin)m(t,)j(using)e
(white)g(space)h(and)f(the)g(slash)g(c)m(haracter)i(as)f(the)630
-2447 y(w)m(ord)30 b(b)s(oundaries.)39 b(The)30 b(killed)h(text)g(is)g
-(sa)m(v)m(ed)g(on)g(the)f(kill-ring.)150 2605 y Fs
-(delete-horizontal-space)24 b(\(\))630 2714 y Ft(Delete)33
+5061 y(w)m(ord)30 b(b)s(oundaries.)39 b(The)30 b(killed)h(text)g(is)g
+(sa)m(v)m(ed)g(on)g(the)f(kill-ring.)150 5230 y Fs
+(delete-horizontal-space)24 b(\(\))630 5340 y Ft(Delete)33
b(all)e(spaces)g(and)e(tabs)i(around)e(p)s(oin)m(t.)41
-b(By)31 b(default,)f(this)h(is)f(un)m(b)s(ound.)150 2871
-y Fs(kill-region)d(\(\))630 2981 y Ft(Kill)k(the)f(text)i(in)e(the)g
-(curren)m(t)h(region.)41 b(By)31 b(default,)f(this)h(command)f(is)g(un)
-m(b)s(ound.)150 3138 y Fs(copy-region-as-kill)25 b(\(\))630
-3248 y Ft(Cop)m(y)34 b(the)g(text)h(in)f(the)g(region)g(to)h(the)f
-(kill)h(bu\013er,)f(so)g(it)h(can)f(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)f
-(a)m(w)m(a)m(y)-8 b(.)630 3357 y(By)31 b(default,)f(this)h(command)f
-(is)g(un)m(b)s(ound.)150 3514 y Fs(copy-backward-word)25
-b(\(\))630 3624 y Ft(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m
-(t)g(to)i(the)e(kill)h(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)
-f(are)i(the)630 3734 y(same)31 b(as)f Fs(backward-word)p
-Ft(.)38 b(By)30 b(default,)h(this)f(command)g(is)h(un)m(b)s(ound.)150
-3891 y Fs(copy-forward-word)26 b(\(\))630 4000 y Ft(Cop)m(y)31
+b(By)31 b(default,)f(this)h(is)f(un)m(b)s(ound.)p eop
+end
+%%Page: 21 25
+TeXDict begin 21 24 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(21)150 299 y Fs(kill-region)27
+b(\(\))630 408 y Ft(Kill)k(the)f(text)i(in)e(the)g(curren)m(t)h
+(region.)41 b(By)31 b(default,)f(this)h(command)f(is)g(un)m(b)s(ound.)
+150 554 y Fs(copy-region-as-kill)25 b(\(\))630 663 y
+Ft(Cop)m(y)34 b(the)g(text)h(in)f(the)g(region)g(to)h(the)f(kill)h
+(bu\013er,)f(so)g(it)h(can)f(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)f(a)m(w)m
+(a)m(y)-8 b(.)630 773 y(By)31 b(default,)f(this)h(command)f(is)g(un)m
+(b)s(ound.)150 918 y Fs(copy-backward-word)25 b(\(\))630
+1028 y Ft(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(to)i
+(the)e(kill)h(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)f(are)i
+(the)630 1138 y(same)31 b(as)f Fs(backward-word)p Ft(.)38
+b(By)30 b(default,)h(this)f(command)g(is)h(un)m(b)s(ound.)150
+1283 y Fs(copy-forward-word)26 b(\(\))630 1393 y Ft(Cop)m(y)31
b(the)g(w)m(ord)g(follo)m(wing)h(p)s(oin)m(t)f(to)h(the)f(kill)h
(bu\013er.)42 b(The)30 b(w)m(ord)h(b)s(oundaries)e(are)j(the)630
-4110 y(same)f(as)f Fs(forward-word)p Ft(.)38 b(By)30
+1502 y(same)f(as)f Fs(forward-word)p Ft(.)38 b(By)30
b(default,)h(this)g(command)f(is)g(un)m(b)s(ound.)150
-4267 y Fs(yank)f(\(C-y\))630 4377 y Ft(Y)-8 b(ank)31
+1647 y Fs(yank)f(\(C-y\))630 1757 y Ft(Y)-8 b(ank)31
b(the)f(top)h(of)g(the)f(kill)h(ring)f(in)m(to)i(the)e(bu\013er)g(at)h
-(p)s(oin)m(t.)150 4534 y Fs(yank-pop)d(\(M-y\))630 4643
+(p)s(oin)m(t.)150 1902 y Fs(yank-pop)d(\(M-y\))630 2012
y Ft(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h(the)f(new)g(top.)54
b(Y)-8 b(ou)35 b(can)g(only)f(do)h(this)f(if)h(the)g(prior)630
-4753 y(command)30 b(is)h Fs(yank)e Ft(or)h Fs(yank-pop)p
-Ft(.)150 4950 y Fi(1.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
-(ts)150 5121 y Fs(digit-argument)26 b(\()p Fl(M-0)p Fs(,)j
-Fl(M-1)p Fs(,)h(...)f Fl(M--)p Fs(\))630 5230 y Ft(Add)d(this)h(digit)g
+2122 y(command)30 b(is)h Fs(yank)e Ft(or)h Fs(yank-pop)p
+Ft(.)150 2307 y Fi(1.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
+(ts)150 2472 y Fs(digit-argument)26 b(\()p Fl(M-0)p Fs(,)j
+Fl(M-1)p Fs(,)h(...)f Fl(M--)p Fs(\))630 2581 y Ft(Add)d(this)h(digit)g
(to)h(the)f(argumen)m(t)g(already)h(accum)m(ulating,)h(or)e(start)h(a)f
-(new)f(argumen)m(t.)630 5340 y Fl(M--)j Ft(starts)i(a)g(negativ)m(e)i
-(argumen)m(t.)p eop end
-%%Page: 21 25
-TeXDict begin 21 24 bop 150 -116 a Ft(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(21)150 299 y Fs
-(universal-argument)25 b(\(\))630 408 y Ft(This)g(is)g(another)h(w)m(a)
-m(y)g(to)h(sp)s(ecify)e(an)g(argumen)m(t.)40 b(If)25
-b(this)g(command)h(is)f(follo)m(w)m(ed)i(b)m(y)f(one)630
-518 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h(leading)h(min)m(us)
-e(sign,)h(those)g(digits)g(de\014ne)f(the)h(ar-)630 628
-y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)g(follo)m(w)m(ed)h(b)m(y)f
-(digits,)i(executing)f Fs(universal-argument)630 737
-y Ft(again)j(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h
+(new)f(argumen)m(t.)630 2691 y Fl(M--)j Ft(starts)i(a)g(negativ)m(e)i
+(argumen)m(t.)150 2836 y Fs(universal-argument)25 b(\(\))630
+2946 y Ft(This)g(is)g(another)h(w)m(a)m(y)g(to)h(sp)s(ecify)e(an)g
+(argumen)m(t.)40 b(If)25 b(this)g(command)h(is)f(follo)m(w)m(ed)i(b)m
+(y)f(one)630 3055 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h
+(leading)h(min)m(us)e(sign,)h(those)g(digits)g(de\014ne)f(the)h(ar-)630
+3165 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)g(follo)m(w)m(ed)h(b)
+m(y)f(digits,)i(executing)f Fs(universal-argument)630
+3275 y Ft(again)j(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h
(otherwise)g(ignored.)45 b(As)32 b(a)g(sp)s(ecial)h(case,)630
-847 y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y)d
-(a)h(c)m(haracter)i(that)e(is)g(neither)g(a)g(digit)630
-956 y(nor)41 b(min)m(us)f(sign,)k(the)e(argumen)m(t)f(coun)m(t)h(for)f
+3384 y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y)
+d(a)h(c)m(haracter)i(that)e(is)g(neither)g(a)g(digit)630
+3494 y(nor)41 b(min)m(us)f(sign,)k(the)e(argumen)m(t)f(coun)m(t)h(for)f
(the)h(next)f(command)g(is)g(m)m(ultiplied)h(b)m(y)630
-1066 y(four.)54 b(The)35 b(argumen)m(t)g(coun)m(t)h(is)f(initially)h
+3603 y(four.)54 b(The)35 b(argumen)m(t)g(coun)m(t)h(is)f(initially)h
(one,)h(so)e(executing)i(this)e(function)f(the)i(\014rst)630
-1176 y(time)29 b(mak)m(es)h(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)h
+3713 y(time)29 b(mak)m(es)h(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)h
(second)g(time)g(mak)m(es)h(the)e(argumen)m(t)h(coun)m(t)630
-1285 y(sixteen,)i(and)f(so)h(on.)40 b(By)31 b(default,)g(this)f(is)g
-(not)h(b)s(ound)d(to)k(a)e(k)m(ey)-8 b(.)150 1498 y Fi(1.4.6)63
+3822 y(sixteen,)i(and)f(so)h(on.)40 b(By)31 b(default,)g(this)f(is)g
+(not)h(b)s(ound)d(to)k(a)e(k)m(ey)-8 b(.)150 4008 y Fi(1.4.6)63
b(Letting)40 b(Readline)h(T)m(yp)s(e)g(F)-10 b(or)42
-b(Y)-10 b(ou)150 1676 y Fs(complete)28 b(\(TAB\))630
-1785 y Ft(A)m(ttempt)c(to)f(p)s(erform)e(completion)j(on)f(the)g(text)g
+b(Y)-10 b(ou)150 4173 y Fs(complete)28 b(\(TAB\))630
+4282 y Ft(A)m(ttempt)c(to)f(p)s(erform)e(completion)j(on)f(the)g(text)g
(b)s(efore)f(p)s(oin)m(t.)39 b(The)22 b(actual)i(completion)630
-1895 y(p)s(erformed)29 b(is)h(application-sp)s(eci\014c.)42
+4392 y(p)s(erformed)29 b(is)h(application-sp)s(eci\014c.)42
b(The)30 b(default)h(is)f(\014lename)h(completion.)150
-2068 y Fs(possible-completions)25 b(\(M-?\))630 2177
+4537 y Fs(possible-completions)25 b(\(M-?\))630 4647
y Ft(List)35 b(the)g(p)s(ossible)f(completions)i(of)e(the)h(text)h(b)s
(efore)e(p)s(oin)m(t.)54 b(When)34 b(displa)m(ying)h(com-)630
-2287 y(pletions,)f(Readline)f(sets)f(the)h(n)m(um)m(b)s(er)e(of)i
+4756 y(pletions,)f(Readline)f(sets)f(the)h(n)m(um)m(b)s(er)e(of)i
(columns)f(used)f(for)i(displa)m(y)f(to)h(the)g(v)-5
-b(alue)33 b(of)630 2396 y Fs(completion-display-width)o
+b(alue)33 b(of)630 4866 y Fs(completion-display-width)o
Ft(,)g(the)j(v)-5 b(alue)37 b(of)g(the)f(en)m(vironmen)m(t)h(v)-5
-b(ariable)38 b Fs(COLUMNS)p Ft(,)630 2506 y(or)30 b(the)h(screen)f
-(width,)g(in)g(that)h(order.)150 2678 y Fs(insert-completions)25
-b(\(M-*\))630 2788 y Ft(Insert)30 b(all)h(completions)h(of)f(the)g
+b(ariable)38 b Fs(COLUMNS)p Ft(,)630 4975 y(or)30 b(the)h(screen)f
+(width,)g(in)g(that)h(order.)150 5121 y Fs(insert-completions)25
+b(\(M-*\))630 5230 y Ft(Insert)30 b(all)h(completions)h(of)f(the)g
(text)g(b)s(efore)f(p)s(oin)m(t)h(that)g(w)m(ould)f(ha)m(v)m(e)i(b)s
-(een)e(generated)630 2898 y(b)m(y)g Fs(possible-completions)p
-Ft(.)150 3070 y Fs(menu-complete)d(\(\))630 3180 y Ft(Similar)d(to)g
-Fs(complete)p Ft(,)f(but)h(replaces)g(the)g(w)m(ord)g(to)g(b)s(e)f
-(completed)i(with)e(a)i(single)f(matc)m(h)630 3289 y(from)37
-b(the)h(list)h(of)f(p)s(ossible)f(completions.)64 b(Rep)s(eated)39
-b(execution)g(of)f Fs(menu-complete)630 3399 y Ft(steps)i(through)g
-(the)g(list)h(of)f(p)s(ossible)g(completions,)k(inserting)c(eac)m(h)i
-(matc)m(h)f(in)f(turn.)630 3508 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g
-(of)g(completions,)i(the)e(b)s(ell)g(is)g(rung)f(\(sub)5
-b(ject)36 b(to)i(the)f(setting)630 3618 y(of)f Fs(bell-style)p
-Ft(\))e(and)h(the)h(original)i(text)f(is)f(restored.)57
-b(An)36 b(argumen)m(t)h(of)f Fj(n)f Ft(mo)m(v)m(es)i
-Fj(n)630 3728 y Ft(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e
+(een)e(generated)630 5340 y(b)m(y)g Fs(possible-completions)p
+Ft(.)p eop end
+%%Page: 22 26
+TeXDict begin 22 25 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(22)150 299 y Fs(menu-complete)27
+b(\(\))630 408 y Ft(Similar)d(to)g Fs(complete)p Ft(,)f(but)h(replaces)
+g(the)g(w)m(ord)g(to)g(b)s(e)f(completed)i(with)e(a)i(single)f(matc)m
+(h)630 518 y(from)37 b(the)h(list)h(of)f(p)s(ossible)f(completions.)64
+b(Rep)s(eated)39 b(execution)g(of)f Fs(menu-complete)630
+628 y Ft(steps)i(through)g(the)g(list)h(of)f(p)s(ossible)g
+(completions,)k(inserting)c(eac)m(h)i(matc)m(h)f(in)f(turn.)630
+737 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g(of)g(completions,)i(the)e
+(b)s(ell)g(is)g(rung)f(\(sub)5 b(ject)36 b(to)i(the)f(setting)630
+847 y(of)f Fs(bell-style)p Ft(\))e(and)h(the)h(original)i(text)f(is)f
+(restored.)57 b(An)36 b(argumen)m(t)h(of)f Fj(n)f Ft(mo)m(v)m(es)i
+Fj(n)630 956 y Ft(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e
(matc)m(hes;)39 b(a)c(negativ)m(e)i(argumen)m(t)e(ma)m(y)g(b)s(e)f
-(used)g(to)630 3837 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
+(used)g(to)630 1066 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
(list.)65 b(This)38 b(command)g(is)g(in)m(tended)g(to)h(b)s(e)f(b)s
-(ound)e(to)630 3947 y Fs(TAB)p Ft(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m
-(y)i(default.)150 4119 y Fs(menu-complete-backward)24
-b(\(\))630 4229 y Ft(Iden)m(tical)36 b(to)g Fs(menu-complete)p
+(ound)e(to)630 1176 y Fs(TAB)p Ft(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m
+(y)i(default.)150 1331 y Fs(menu-complete-backward)24
+b(\(\))630 1441 y Ft(Iden)m(tical)36 b(to)g Fs(menu-complete)p
Ft(,)d(but)h(mo)m(v)m(es)j(bac)m(kw)m(ard)e(through)f(the)i(list)f(of)g
-(p)s(ossible)630 4338 y(completions,)d(as)e(if)h Fs(menu-complete)26
+(p)s(ossible)630 1550 y(completions,)d(as)e(if)h Fs(menu-complete)26
b Ft(had)k(b)s(een)g(giv)m(en)h(a)g(negativ)m(e)i(argumen)m(t.)150
-4511 y Fs(delete-char-or-list)25 b(\(\))630 4620 y Ft(Deletes)41
+1705 y Fs(delete-char-or-list)25 b(\(\))630 1815 y Ft(Deletes)41
b(the)e(c)m(haracter)h(under)e(the)h(cursor)f(if)h(not)g(at)g(the)h(b)s
-(eginning)e(or)h(end)f(of)h(the)630 4730 y(line)50 b(\(lik)m(e)h
+(eginning)e(or)h(end)f(of)h(the)630 1925 y(line)50 b(\(lik)m(e)h
Fs(delete-char)p Ft(\).)96 b(If)49 b(at)h(the)g(end)f(of)h(the)f(line,)
-55 b(b)s(eha)m(v)m(es)c(iden)m(tically)g(to)630 4840
+55 b(b)s(eha)m(v)m(es)c(iden)m(tically)g(to)630 2034
y Fs(possible-completions)p Ft(.)35 b(This)30 b(command)g(is)g(un)m(b)s
-(ound)e(b)m(y)i(default.)150 5052 y Fi(1.4.7)63 b(Keyb)s(oard)41
-b(Macros)150 5230 y Fs(start-kbd-macro)26 b(\(C-x)j(\(\))630
-5340 y Ft(Begin)i(sa)m(ving)h(the)e(c)m(haracters)i(t)m(yp)s(ed)e(in)m
-(to)h(the)g(curren)m(t)f(k)m(eyb)s(oard)g(macro.)p eop
-end
-%%Page: 22 26
-TeXDict begin 22 25 bop 150 -116 a Ft(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(22)150 299 y Fs(end-kbd-macro)27
-b(\(C-x)i(\)\))630 408 y Ft(Stop)e(sa)m(ving)h(the)g(c)m(haracters)g(t)
-m(yp)s(ed)f(in)m(to)i(the)e(curren)m(t)g(k)m(eyb)s(oard)g(macro)h(and)f
-(sa)m(v)m(e)i(the)630 518 y(de\014nition.)150 671 y Fs
-(call-last-kbd-macro)c(\(C-x)k(e\))630 780 y Ft(Re-execute)37
-b(the)e(last)h(k)m(eyb)s(oard)f(macro)h(de\014ned,)f(b)m(y)h(making)f
-(the)g(c)m(haracters)i(in)e(the)630 890 y(macro)c(app)s(ear)f(as)g(if)h
-(t)m(yp)s(ed)f(at)h(the)f(k)m(eyb)s(oard.)150 1042 y
-Fs(print-last-kbd-macro)25 b(\(\))630 1152 y Ft(Prin)m(t)30
-b(the)h(last)g(k)m(eb)s(oard)f(macro)h(de\014ned)e(in)i(a)f(format)h
-(suitable)g(for)f(the)h Fj(inputrc)k Ft(\014le.)150 1344
-y Fi(1.4.8)63 b(Some)41 b(Miscellaneous)i(Commands)150
-1513 y Fs(re-read-init-file)26 b(\(C-x)j(C-r\))630 1622
-y Ft(Read)22 b(in)g(the)g(con)m(ten)m(ts)h(of)f(the)g
+(ound)e(b)m(y)i(default.)150 2229 y Fi(1.4.7)63 b(Keyb)s(oard)41
+b(Macros)150 2399 y Fs(start-kbd-macro)26 b(\(C-x)j(\(\))630
+2509 y Ft(Begin)i(sa)m(ving)h(the)e(c)m(haracters)i(t)m(yp)s(ed)e(in)m
+(to)h(the)g(curren)m(t)f(k)m(eyb)s(oard)g(macro.)150
+2664 y Fs(end-kbd-macro)d(\(C-x)i(\)\))630 2774 y Ft(Stop)e(sa)m(ving)h
+(the)g(c)m(haracters)g(t)m(yp)s(ed)f(in)m(to)i(the)e(curren)m(t)g(k)m
+(eyb)s(oard)g(macro)h(and)f(sa)m(v)m(e)i(the)630 2883
+y(de\014nition.)150 3039 y Fs(call-last-kbd-macro)c(\(C-x)k(e\))630
+3148 y Ft(Re-execute)37 b(the)e(last)h(k)m(eyb)s(oard)f(macro)h
+(de\014ned,)f(b)m(y)h(making)f(the)g(c)m(haracters)i(in)e(the)630
+3258 y(macro)c(app)s(ear)f(as)g(if)h(t)m(yp)s(ed)f(at)h(the)f(k)m(eyb)s
+(oard.)150 3413 y Fs(print-last-kbd-macro)25 b(\(\))630
+3523 y Ft(Prin)m(t)30 b(the)h(last)g(k)m(eb)s(oard)f(macro)h(de\014ned)
+e(in)i(a)f(format)h(suitable)g(for)f(the)h Fj(inputrc)k
+Ft(\014le.)150 3718 y Fi(1.4.8)63 b(Some)41 b(Miscellaneous)i(Commands)
+150 3888 y Fs(re-read-init-file)26 b(\(C-x)j(C-r\))630
+3997 y Ft(Read)22 b(in)g(the)g(con)m(ten)m(ts)h(of)f(the)g
Fj(inputrc)27 b Ft(\014le,)d(and)d(incorp)s(orate)h(an)m(y)h(bindings)d
-(or)i(v)-5 b(ariable)630 1732 y(assignmen)m(ts)31 b(found)e(there.)150
-1885 y Fs(abort)g(\(C-g\))630 1994 y Ft(Ab)s(ort)d(the)h(curren)m(t)f
+(or)i(v)-5 b(ariable)630 4107 y(assignmen)m(ts)31 b(found)e(there.)150
+4262 y Fs(abort)g(\(C-g\))630 4372 y Ft(Ab)s(ort)d(the)h(curren)m(t)f
(editing)h(command)f(and)g(ring)h(the)f(terminal's)h(b)s(ell)g(\(sub)5
-b(ject)26 b(to)i(the)630 2104 y(setting)j(of)g Fs(bell-style)p
-Ft(\).)150 2256 y Fs(do-lowercase-version)25 b(\(M-A,)k(M-B,)g(M-)p
-Fl(x)p Fs(,)g(...)o(\))630 2366 y Ft(If)35 b(the)g(meta\014ed)g(c)m
+b(ject)26 b(to)i(the)630 4481 y(setting)j(of)g Fs(bell-style)p
+Ft(\).)150 4637 y Fs(do-lowercase-version)25 b(\(M-A,)k(M-B,)g(M-)p
+Fl(x)p Fs(,)g(...)o(\))630 4746 y Ft(If)35 b(the)g(meta\014ed)g(c)m
(haracter)i Fj(x)k Ft(is)35 b(upp)s(er)e(case,)k(run)d(the)h(command)g
-(that)g(is)g(b)s(ound)e(to)630 2476 y(the)g(corresp)s(onding)f
+(that)g(is)g(b)s(ound)e(to)630 4856 y(the)g(corresp)s(onding)f
(meta\014ed)h(lo)m(w)m(er)i(case)f(c)m(haracter.)50 b(The)32
-b(b)s(eha)m(vior)h(is)g(unde\014ned)e(if)630 2585 y Fj(x)37
-b Ft(is)30 b(already)h(lo)m(w)m(er)h(case.)150 2738 y
-Fs(prefix-meta)27 b(\(ESC\))630 2847 y Ft(Metafy)39 b(the)e(next)h(c)m
+b(b)s(eha)m(vior)h(is)g(unde\014ned)e(if)630 4965 y Fj(x)37
+b Ft(is)30 b(already)h(lo)m(w)m(er)h(case.)150 5121 y
+Fs(prefix-meta)27 b(\(ESC\))630 5230 y Ft(Metafy)39 b(the)e(next)h(c)m
(haracter)h(t)m(yp)s(ed.)62 b(This)37 b(is)g(for)h(k)m(eyb)s(oards)f
-(without)g(a)h(meta)g(k)m(ey)-8 b(.)630 2957 y(T)m(yping)30
+(without)g(a)h(meta)g(k)m(ey)-8 b(.)630 5340 y(T)m(yping)30
b(`)p Fs(ESC)g(f)p Ft(')g(is)h(equiv)-5 b(alen)m(t)31
-b(to)g(t)m(yping)g Fl(M-f)p Ft(.)150 3109 y Fs(undo)e(\(C-_)g(or)h(C-x)
-g(C-u\))630 3219 y Ft(Incremen)m(tal)h(undo,)f(separately)h(remem)m(b)s
-(ered)f(for)g(eac)m(h)i(line.)150 3372 y Fs(revert-line)27
-b(\(M-r\))630 3481 y Ft(Undo)33 b(all)h(c)m(hanges)g(made)f(to)h(this)f
-(line.)49 b(This)32 b(is)h(lik)m(e)i(executing)f(the)f
-Fs(undo)f Ft(command)630 3591 y(enough)e(times)h(to)g(get)h(bac)m(k)f
-(to)g(the)f(b)s(eginning.)150 3743 y Fs(tilde-expand)d(\(M-~\))630
-3853 y Ft(P)m(erform)j(tilde)h(expansion)g(on)f(the)g(curren)m(t)h(w)m
-(ord.)150 4006 y Fs(set-mark)d(\(C-@\))630 4115 y Ft(Set)33
-b(the)g(mark)f(to)i(the)f(p)s(oin)m(t.)48 b(If)32 b(a)h(n)m(umeric)g
-(argumen)m(t)g(is)g(supplied,)f(the)h(mark)g(is)f(set)630
-4225 y(to)f(that)g(p)s(osition.)150 4377 y Fs(exchange-point-and-mark)
-24 b(\(C-x)29 b(C-x\))630 4487 y Ft(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with)
-g(the)g(mark.)43 b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)i(is)f
-(set)h(to)f(the)h(sa)m(v)m(ed)630 4596 y(p)s(osition,)f(and)e(the)i
-(old)g(cursor)e(p)s(osition)i(is)f(sa)m(v)m(ed)i(as)e(the)h(mark.)150
-4749 y Fs(character-search)26 b(\(C-]\))630 4859 y Ft(A)f(c)m(haracter)
-h(is)f(read)g(and)f(p)s(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)g(the)f(next)g
-(o)s(ccurrence)g(of)g(that)g(c)m(haracter.)630 4968 y(A)30
-b(negativ)m(e)j(coun)m(t)e(searc)m(hes)g(for)f(previous)g(o)s
-(ccurrences.)150 5121 y Fs(character-search-backwar)o(d)24
-b(\(M-C-]\))630 5230 y Ft(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s
-(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)f(the)g(previous)f(o)s(ccurrence)h(of)
-g(that)630 5340 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f
-(searc)m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)p
-eop end
+b(to)g(t)m(yping)g Fl(M-f)p Ft(.)p eop end
%%Page: 23 27
TeXDict begin 23 26 bop 150 -116 a Ft(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(23)150 299 y Fs(skip-csi-sequence)
-26 b(\(\))630 408 y Ft(Read)i(enough)f(c)m(haracters)h(to)g(consume)f
-(a)h(m)m(ulti-k)m(ey)h(sequence)f(suc)m(h)f(as)g(those)h(de\014ned)630
-518 y(for)37 b(k)m(eys)h(lik)m(e)g(Home)g(and)f(End.)60
-b(Suc)m(h)37 b(sequences)g(b)s(egin)g(with)g(a)h(Con)m(trol)g(Sequence)
-630 628 y(Indicator)f(\(CSI\),)f(usually)h(ESC-[.)59
+b(Command)29 b(Line)i(Editing)2107 b(23)150 299 y Fs(undo)29
+b(\(C-_)g(or)h(C-x)g(C-u\))630 408 y Ft(Incremen)m(tal)h(undo,)f
+(separately)h(remem)m(b)s(ered)f(for)g(eac)m(h)i(line.)150
+584 y Fs(revert-line)27 b(\(M-r\))630 693 y Ft(Undo)33
+b(all)h(c)m(hanges)g(made)f(to)h(this)f(line.)49 b(This)32
+b(is)h(lik)m(e)i(executing)f(the)f Fs(undo)f Ft(command)630
+803 y(enough)e(times)h(to)g(get)h(bac)m(k)f(to)g(the)f(b)s(eginning.)
+150 978 y Fs(tilde-expand)d(\(M-~\))630 1088 y Ft(P)m(erform)j(tilde)h
+(expansion)g(on)f(the)g(curren)m(t)h(w)m(ord.)150 1263
+y Fs(set-mark)d(\(C-@\))630 1373 y Ft(Set)33 b(the)g(mark)f(to)i(the)f
+(p)s(oin)m(t.)48 b(If)32 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g
+(supplied,)f(the)h(mark)g(is)f(set)630 1482 y(to)f(that)g(p)s(osition.)
+150 1658 y Fs(exchange-point-and-mark)24 b(\(C-x)29 b(C-x\))630
+1767 y Ft(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with)g(the)g(mark.)43
+b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)i(is)f(set)h(to)f(the)h
+(sa)m(v)m(ed)630 1877 y(p)s(osition,)f(and)e(the)i(old)g(cursor)e(p)s
+(osition)i(is)f(sa)m(v)m(ed)i(as)e(the)h(mark.)150 2052
+y Fs(character-search)26 b(\(C-]\))630 2162 y Ft(A)f(c)m(haracter)h(is)
+f(read)g(and)f(p)s(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)g(the)f(next)g(o)s
+(ccurrence)g(of)g(that)g(c)m(haracter.)630 2271 y(A)30
+b(negativ)m(e)j(coun)m(t)e(searc)m(hes)g(for)f(previous)g(o)s
+(ccurrences.)150 2447 y Fs(character-search-backwar)o(d)24
+b(\(M-C-]\))630 2556 y Ft(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s
+(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)f(the)g(previous)f(o)s(ccurrence)h(of)
+g(that)630 2666 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f
+(searc)m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)150
+2841 y Fs(skip-csi-sequence)d(\(\))630 2951 y Ft(Read)i(enough)f(c)m
+(haracters)h(to)g(consume)f(a)h(m)m(ulti-k)m(ey)h(sequence)f(suc)m(h)f
+(as)g(those)h(de\014ned)630 3061 y(for)37 b(k)m(eys)h(lik)m(e)g(Home)g
+(and)f(End.)60 b(Suc)m(h)37 b(sequences)g(b)s(egin)g(with)g(a)h(Con)m
+(trol)g(Sequence)630 3170 y(Indicator)f(\(CSI\),)f(usually)h(ESC-[.)59
b(If)36 b(this)g(sequence)h(is)g(b)s(ound)d(to)k Fs("\\)p
-Ft(e[)p Fs(")p Ft(,)g(k)m(eys)f(pro-)630 737 y(ducing)31
+Ft(e[)p Fs(")p Ft(,)g(k)m(eys)f(pro-)630 3280 y(ducing)31
b(suc)m(h)h(sequences)g(will)h(ha)m(v)m(e)g(no)f(e\013ect)h(unless)e
-(explicitly)j(b)s(ound)c(to)i(a)h(readline)630 847 y(command,)f
+(explicitly)j(b)s(ound)c(to)i(a)h(readline)630 3389 y(command,)f
(instead)g(of)g(inserting)g(stra)m(y)h(c)m(haracters)g(in)m(to)g(the)f
-(editing)h(bu\013er.)44 b(This)31 b(is)630 956 y(un)m(b)s(ound)d(b)m(y)
-i(default,)h(but)f(usually)g(b)s(ound)e(to)j(ESC-[.)150
-1116 y Fs(insert-comment)26 b(\(M-#\))630 1225 y Ft(Without)36
+(editing)h(bu\013er.)44 b(This)31 b(is)630 3499 y(un)m(b)s(ound)d(b)m
+(y)i(default,)h(but)f(usually)g(b)s(ound)e(to)j(ESC-[.)150
+3674 y Fs(insert-comment)26 b(\(M-#\))630 3784 y Ft(Without)36
b(a)g(n)m(umeric)g(argumen)m(t,)h(the)f(v)-5 b(alue)36
b(of)g(the)g Fs(comment-begin)c Ft(v)-5 b(ariable)36
-b(is)g(in-)630 1335 y(serted)c(at)g(the)g(b)s(eginning)f(of)h(the)f
+b(is)g(in-)630 3893 y(serted)c(at)g(the)g(b)s(eginning)f(of)h(the)f
(curren)m(t)h(line.)45 b(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is)g
-(supplied,)630 1444 y(this)k(command)h(acts)g(as)g(a)g(toggle:)55
+(supplied,)630 4003 y(this)k(command)h(acts)g(as)g(a)g(toggle:)55
b(if)37 b(the)f(c)m(haracters)i(at)g(the)e(b)s(eginning)g(of)h(the)g
-(line)630 1554 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5
+(line)630 4113 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5
b(alue)31 b(of)f Fs(comment-begin)p Ft(,)e(the)i(v)-5
-b(alue)31 b(is)g(inserted,)g(otherwise)g(the)630 1664
+b(alue)31 b(is)g(inserted,)g(otherwise)g(the)630 4222
y(c)m(haracters)42 b(in)d Fs(comment-begin)e Ft(are)j(deleted)h(from)f
-(the)g(b)s(eginning)g(of)g(the)g(line.)71 b(In)630 1773
+(the)g(b)s(eginning)g(of)g(the)g(line.)71 b(In)630 4332
y(either)31 b(case,)h(the)e(line)h(is)f(accepted)i(as)f(if)f(a)h
-(newline)f(had)g(b)s(een)f(t)m(yp)s(ed.)150 1932 y Fs(dump-functions)d
-(\(\))630 2042 y Ft(Prin)m(t)g(all)i(of)e(the)h(functions)f(and)g
+(newline)f(had)g(b)s(een)f(t)m(yp)s(ed.)150 4507 y Fs(dump-functions)d
+(\(\))630 4617 y Ft(Prin)m(t)g(all)i(of)e(the)h(functions)f(and)g
(their)g(k)m(ey)h(bindings)e(to)j(the)e(Readline)h(output)f(stream.)630
-2151 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h
+4726 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h
(output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)m(y)g(that)630
-2261 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fj(inputrc)k
+4836 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fj(inputrc)k
Ft(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c(b)m(y)k
-(default.)150 2420 y Fs(dump-variables)26 b(\(\))630
-2530 y Ft(Prin)m(t)21 b(all)h(of)g(the)f(settable)i(v)-5
+(default.)150 5011 y Fs(dump-variables)26 b(\(\))630
+5121 y Ft(Prin)m(t)21 b(all)h(of)g(the)f(settable)i(v)-5
b(ariables)22 b(and)f(their)g(v)-5 b(alues)22 b(to)g(the)f(Readline)h
-(output)f(stream.)630 2639 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)
+(output)f(stream.)630 5230 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)
g(supplied,)f(the)h(output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)
-m(y)g(that)630 2749 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h
+m(y)g(that)630 5340 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h
Fj(inputrc)k Ft(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c
-(b)m(y)k(default.)150 2908 y Fs(dump-macros)c(\(\))630
-3018 y Ft(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h(sequences)
-f(b)s(ound)e(to)i(macros)g(and)f(the)h(strings)g(they)630
-3127 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e
+(b)m(y)k(default.)p eop end
+%%Page: 24 28
+TeXDict begin 24 27 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(24)150 299 y Fs(dump-macros)27
+b(\(\))630 408 y Ft(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h
+(sequences)f(b)s(ound)e(to)i(macros)g(and)f(the)h(strings)g(they)630
+518 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e
(supplied,)h(the)g(output)g(is)f(formatted)i(in)e(suc)m(h)h(a)630
-3237 y(w)m(a)m(y)c(that)g(it)f(can)g(b)s(e)g(made)g(part)f(of)i(an)e
+628 y(w)m(a)m(y)c(that)g(it)f(can)g(b)s(e)g(made)g(part)f(of)i(an)e
Fj(inputrc)35 b Ft(\014le.)41 b(This)29 b(command)h(is)g(un)m(b)s(ound)
-d(b)m(y)630 3346 y(default.)150 3506 y Fs(emacs-editing-mode)e(\(C-e\))
-630 3615 y Ft(When)30 b(in)g Fs(vi)g Ft(command)g(mo)s(de,)g(this)h
+d(b)m(y)630 737 y(default.)150 897 y Fs(emacs-editing-mode)e(\(C-e\))
+630 1006 y Ft(When)30 b(in)g Fs(vi)g Ft(command)g(mo)s(de,)g(this)h
(causes)f(a)h(switc)m(h)g(to)g Fs(emacs)e Ft(editing)i(mo)s(de.)150
-3774 y Fs(vi-editing-mode)26 b(\(M-C-j\))630 3884 y Ft(When)k(in)g
+1166 y Fs(vi-editing-mode)26 b(\(M-C-j\))630 1275 y Ft(When)k(in)g
Fs(emacs)f Ft(editing)i(mo)s(de,)f(this)h(causes)f(a)h(switc)m(h)g(to)g
-Fs(vi)f Ft(editing)h(mo)s(de.)150 4124 y Fr(1.5)68 b(Readline)47
-b(vi)e(Mo)t(de)150 4284 y Ft(While)32 b(the)g(Readline)g(library)f(do)s
+Fs(vi)f Ft(editing)h(mo)s(de.)150 1516 y Fr(1.5)68 b(Readline)47
+b(vi)e(Mo)t(de)150 1675 y Ft(While)32 b(the)g(Readline)g(library)f(do)s
(es)g(not)h(ha)m(v)m(e)h(a)f(full)f(set)h(of)g Fs(vi)f
Ft(editing)h(functions,)f(it)h(do)s(es)g(con)m(tain)150
-4393 y(enough)i(to)h(allo)m(w)g(simple)f(editing)h(of)f(the)g(line.)52
+1785 y(enough)i(to)h(allo)m(w)g(simple)f(editing)h(of)f(the)g(line.)52
b(The)34 b(Readline)g Fs(vi)g Ft(mo)s(de)f(b)s(eha)m(v)m(es)i(as)f(sp)s
-(eci\014ed)f(in)150 4503 y(the)e Fm(posix)e Ft(standard.)275
-4637 y(In)f(order)g(to)i(switc)m(h)g(in)m(teractiv)m(ely)i(b)s(et)m(w)m
+(eci\014ed)f(in)150 1895 y(the)e Fm(posix)e Ft(standard.)275
+2029 y(In)f(order)g(to)i(switc)m(h)g(in)m(teractiv)m(ely)i(b)s(et)m(w)m
(een)d Fs(emacs)f Ft(and)g Fs(vi)h Ft(editing)g(mo)s(des,)g(use)g(the)g
-(command)150 4747 y Fl(M-C-j)36 b Ft(\(b)s(ound)h(to)h
+(command)150 2139 y Fl(M-C-j)36 b Ft(\(b)s(ound)h(to)h
(emacs-editing-mo)s(de)i(when)d(in)g Fs(vi)h Ft(mo)s(de)f(and)g(to)i
-(vi-editing-mo)s(de)g(in)e Fs(emacs)150 4857 y Ft(mo)s(de\).)k(The)30
+(vi-editing-mo)s(de)g(in)e Fs(emacs)150 2248 y Ft(mo)s(de\).)k(The)30
b(Readline)h(default)f(is)g Fs(emacs)f Ft(mo)s(de.)275
-4991 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f(in)g Fs(vi)f
+2383 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f(in)g Fs(vi)f
Ft(mo)s(de,)h(y)m(ou)h(are)f(already)h(placed)f(in)g(`insertion')g(mo)s
-(de,)g(as)h(if)f(y)m(ou)150 5101 y(had)f(t)m(yp)s(ed)g(an)g(`)p
+(de,)g(as)h(if)f(y)m(ou)150 2492 y(had)f(t)m(yp)s(ed)g(an)g(`)p
Fs(i)p Ft('.)41 b(Pressing)29 b Fs(ESC)f Ft(switc)m(hes)i(y)m(ou)g(in)m
(to)h(`command')e(mo)s(de,)h(where)e(y)m(ou)i(can)g(edit)g(the)150
-5210 y(text)35 b(of)f(the)g(line)g(with)f(the)h(standard)f
+2602 y(text)35 b(of)f(the)g(line)g(with)f(the)h(standard)f
Fs(vi)g Ft(mo)m(v)m(emen)m(t)j(k)m(eys,)g(mo)m(v)m(e)f(to)f(previous)g
-(history)f(lines)h(with)150 5320 y(`)p Fs(k)p Ft(')d(and)e(subsequen)m
+(history)f(lines)h(with)150 2711 y(`)p Fs(k)p Ft(')d(and)e(subsequen)m
(t)h(lines)h(with)f(`)p Fs(j)p Ft(',)g(and)g(so)h(forth.)p
eop end
-%%Page: 24 28
-TeXDict begin 24 27 bop 3659 -116 a Ft(24)150 299 y Fp(2)80
+%%Page: 25 29
+TeXDict begin 25 28 bop 3659 -116 a Ft(25)150 299 y Fp(2)80
b(Programming)54 b(with)f(GNU)h(Readline)150 543 y Ft(This)24
b(c)m(hapter)i(describ)s(es)e(the)h(in)m(terface)h(b)s(et)m(w)m(een)g
(the)f Fm(gnu)f Ft(Readline)i(Library)e(and)g(other)h(programs.)150
@@ -8415,7 +8463,7 @@ b(the)f(line)h(is)f(ended)g(just)g(as)g(if)h(a)f(newline)h(had)150
b(p)s(erforms)e(some)j(expansion)e(on)h(the)g Fj(prompt)h
Ft(b)s(efore)f(it)g(is)g(displa)m(y)m(ed)h(on)f(the)g(screen.)38
b(See)150 3336 y(the)27 b(description)g(of)h Fs(rl_expand_prompt)22
-b Ft(\(see)28 b(Section)g(2.4.6)h([Redispla)m(y],)g(page)f(37\))g(for)f
+b Ft(\(see)28 b(Section)g(2.4.6)h([Redispla)m(y],)g(page)f(38\))g(for)f
(additional)150 3446 y(details,)41 b(esp)s(ecially)f(if)e
Fj(prompt)i Ft(will)e(con)m(tain)i(c)m(haracters)f(that)g(do)f(not)h
(consume)f(ph)m(ysical)h(screen)150 3556 y(space)31 b(when)e(displa)m
@@ -8439,9 +8487,9 @@ b(of)d(no)g(static)i(bu\013er)e(to)h(o)m(v)m(er\015o)m(w:)390
4902 y(/*)g(Read)g(a)g(string,)f(and)h(return)f(a)i(pointer)d(to)j(it.)
533 5011 y(Returns)e(NULL)h(on)g(EOF.)f(*/)390 5121 y(char)h(*)390
5230 y(rl_gets)f(\(\))390 5340 y({)p eop end
-%%Page: 25 29
-TeXDict begin 25 28 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(25)485
+%%Page: 26 30
+TeXDict begin 26 29 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(26)485
299 y Fs(/*)48 b(If)f(the)g(buffer)f(has)h(already)f(been)g(allocated,)
629 408 y(return)g(the)h(memory)f(to)h(the)g(free)f(pool.)h(*/)485
518 y(if)h(\(line_read\))581 628 y({)676 737 y(free)f(\(line_read\);)
@@ -8478,7 +8526,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
-(50\).)150 4023 y Fr(2.2)68 b(Custom)45 b(F)-11 b(unctions)150
+(51\).)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
@@ -8501,9 +8549,9 @@ g(v)-5 b(ariable)31 b(that)g(should)f(b)s(e)g(treated)h(as)g(an)g(in)m
(teger,)h Fs(RL_)150 5340 y(READLINE_VERSION)p Ft(,)20
b(whic)m(h)h(ma)m(y)i(b)s(e)f(used)f(to)i(conditionally)h(compile)f
(application)g(co)s(de)f(dep)s(ending)p eop end
-%%Page: 26 30
-TeXDict begin 26 29 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(26)150
+%%Page: 27 31
+TeXDict begin 27 30 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(27)150
299 y(on)35 b(the)g(installed)h(Readline)f(v)m(ersion.)56
b(The)34 b(v)-5 b(alue)35 b(is)h(a)f(hexadecimal)h(enco)s(ding)f(of)g
(the)h(ma)5 b(jor)35 b(and)150 408 y(minor)f(v)m(ersion)g(n)m(um)m(b)s
@@ -8563,9 +8611,9 @@ y(of)h(the)f(line)h(read)f(so)h(far.)275 5196 y(The)e(calling)j
(sequence)f(for)f(a)h(command)f Fs(foo)g Ft(lo)s(oks)g(lik)m(e)390
5340 y Fs(int)47 b(foo)g(\(int)f(count,)h(int)f(key\))p
eop end
-%%Page: 27 31
-TeXDict begin 27 30 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(27)150
+%%Page: 28 32
+TeXDict begin 28 31 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(28)150
299 y(where)35 b Fj(coun)m(t)k Ft(is)d(the)g(n)m(umeric)g(argumen)m(t)g
(\(or)g(1)g(if)g(defaulted\))h(and)e Fj(k)m(ey)44 b Ft(is)36
b(the)g(k)m(ey)h(that)f(in)m(v)m(ok)m(ed)150 408 y(this)30
@@ -8595,7 +8643,7 @@ b(ariable])-3598 b Fh(char)54 b(*)e(rl_line_buffer)390
2183 y Ft(This)30 b(is)i(the)f(line)g(gathered)h(so)f(far.)43
b(Y)-8 b(ou)32 b(are)f(w)m(elcome)i(to)f(mo)s(dify)f(the)g(con)m(ten)m
(ts)i(of)e(the)g(line,)390 2293 y(but)k(see)h(Section)g(2.4.5)h([Allo)m
-(wing)h(Undoing],)f(page)f(36.)57 b(The)35 b(function)g
+(wing)h(Undoing],)f(page)f(37.)57 b(The)35 b(function)g
Fs(rl_extend_line_)390 2402 y(buffer)29 b Ft(is)h(a)m(v)-5
b(ailable)33 b(to)e(increase)g(the)g(memory)f(allo)s(cated)i(to)f
Fs(rl_line_buffer)p Ft(.)3371 2603 y([V)-8 b(ariable])-3598
@@ -8632,9 +8680,9 @@ b Fh(int)53 b(rl_dispatching)390 5121 y Ft(Set)24 b(to)h(a)g(non-zero)g
b(functions)e(can)h(test)h(this)e(to)i(disco)m(v)m(er)g(whether)e(they)
h(w)m(ere)g(called)h(directly)f(or)390 5340 y(b)m(y)30
b(Readline's)h(dispatc)m(hing)g(mec)m(hanism.)p eop end
-%%Page: 28 32
-TeXDict begin 28 31 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(28)3371
+%%Page: 29 33
+TeXDict begin 29 32 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(29)3371
299 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_erase_empty_line)390
408 y Ft(Setting)47 b(this)e(to)i(a)f(non-zero)h(v)-5
b(alue)46 b(causes)h(Readline)f(to)h(completely)g(erase)g(the)f(curren)
@@ -8648,7 +8696,7 @@ b Fh(char)54 b(*)e(rl_prompt)390 1022 y Ft(The)26 b(prompt)f(Readline)i
Fs(readline\(\))p Ft(,)d(and)i(should)390 1132 y(not)h(b)s(e)f
(assigned)h(to)h(directly)-8 b(.)41 b(The)26 b Fs(rl_set_prompt\(\))d
Ft(function)j(\(see)i(Section)g(2.4.6)h([Redis-)390 1241
-y(pla)m(y],)i(page)h(37\))f(ma)m(y)g(b)s(e)f(used)f(to)j(mo)s(dify)d
+y(pla)m(y],)i(page)h(38\))f(ma)m(y)g(b)s(e)f(used)f(to)j(mo)s(dify)d
(the)i(prompt)e(string)h(after)h(calling)h Fs(readline\(\))p
Ft(.)3371 1417 y([V)-8 b(ariable])-3598 b Fh(char)54
b(*)e(rl_display_prompt)390 1526 y Ft(The)31 b(string)h(displa)m(y)m
@@ -8706,9 +8754,9 @@ b Fh(FILE)54 b(*)e(rl_outstream)390 5230 y Ft(The)34
b(stdio)h(stream)f(to)i(whic)m(h)e(Readline)h(p)s(erforms)e(output.)52
b(If)34 b Fs(NULL)p Ft(,)h(Readline)g(defaults)f(to)390
5340 y Fj(stdout)p Ft(.)p eop end
-%%Page: 29 33
-TeXDict begin 29 32 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(29)3371
+%%Page: 30 34
+TeXDict begin 30 33 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(30)3371
299 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_prefer_env_winsize)390
408 y Ft(If)28 b(non-zero,)h(Readline)g(giv)m(es)h(v)-5
b(alues)29 b(found)e(in)h(the)g Fs(LINES)f Ft(and)h Fs(COLUMNS)e
@@ -8743,7 +8791,7 @@ b(*)52 b(rl_getc_function)390 2819 y Ft(If)30 b(non-zero,)h(Readline)g
b(By)21 b(default,)j(it)e(is)f(set)h(to)g Fs(rl_getc)p
Ft(,)f(the)h(default)f(Readline)h(c)m(haracter)h(input)390
3039 y(function)f(\(see)i(Section)g(2.4.8)g([Character)g(Input],)f
-(page)h(39\).)39 b(In)22 b(general,)k(an)c(application)i(that)390
+(page)h(40\).)39 b(In)22 b(general,)k(an)c(application)i(that)390
3148 y(sets)31 b Fj(rl)p 635 3148 28 4 v 40 w(getc)p
835 3148 V 41 w(function)f Ft(should)g(consider)g(setting)h
Fj(rl)p 2234 3148 V 40 w(input)p 2487 3148 V 39 w(a)m(v)-5
@@ -8772,7 +8820,7 @@ b(alue)21 b(passed)f(to)390 4573 y Fs(rl_set_keyboard_input_ti)o(meou)o
Fj(k)m(eyseq-timeout)390 4682 y Ft(v)-5 b(ariable.)48
b(This)31 b(is)i(designed)f(for)g(use)g(b)m(y)g(applications)i(using)e
(Readline's)h(callbac)m(k)h(in)m(terface)390 4792 y(\(see)d(Section)f
-(2.4.12)i([Alternate)f(In)m(terface],)h(page)e(43\),)i(whic)m(h)d(ma)m
+(2.4.12)i([Alternate)f(In)m(terface],)h(page)e(44\),)i(whic)m(h)d(ma)m
(y)h(not)g(use)g(the)g(traditional)390 4902 y Fs(read\(2\))39
b Ft(and)g(\014le)i(descriptor)f(in)m(terface,)45 b(or)c(other)f
(applications)i(using)e(a)h(di\013eren)m(t)g(input)390
@@ -8787,9 +8835,9 @@ Ft(,)k(it)c(should)e(increase)j(the)e(timeout)i(or)f(set)g(this)f(ho)s
Fj(rl)p 2431 5340 V 40 w(input)p 2684 5340 V 39 w(a)m(v)-5
b(ailable)p 3064 5340 V 43 w(ho)s(ok)36 b Ft(as)30 b(w)m(ell.)p
eop end
-%%Page: 30 34
-TeXDict begin 30 33 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(30)3371
+%%Page: 31 35
+TeXDict begin 31 34 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(31)3371
299 y([V)-8 b(ariable])-3598 b Fh(rl_voidfunc_t)56 b(*)d
(rl_redisplay_function)390 408 y Ft(If)36 b(non-zero,)i(Readline)e
(will)h(call)g(indirectly)f(through)g(this)g(p)s(oin)m(ter)g(to)g(up)s
@@ -8797,7 +8845,7 @@ b(Programming)30 b(with)g(GNU)h(Readline)1683 b(30)3371
(ten)m(ts)h(of)f(the)h(editing)f(bu\013er.)39 b(By)27
b(default,)h(it)g(is)f(set)g(to)h Fs(rl_redisplay)p Ft(,)390
628 y(the)j(default)f(Readline)h(redispla)m(y)g(function)f(\(see)h
-(Section)g(2.4.6)h([Redispla)m(y],)g(page)f(37\).)3371
+(Section)g(2.4.6)h([Redispla)m(y],)g(page)f(38\).)3371
817 y([V)-8 b(ariable])-3598 b Fh(rl_vintfunc_t)56 b(*)d
(rl_prep_term_function)390 927 y Ft(If)24 b(non-zero,)i(Readline)e
(will)h(call)g(indirectly)g(through)e(this)h(p)s(oin)m(ter)g(to)h
@@ -8806,7 +8854,7 @@ b(default,)h(it)g(is)f(set)g(to)h Fs(rl_redisplay)p Ft(,)390
(whether)e(or)h(not)g(to)h(use)390 1146 y(eigh)m(t-bit)e(c)m
(haracters.)53 b(By)35 b(default,)g(this)f(is)g(set)h(to)g
Fs(rl_prep_terminal)29 b Ft(\(see)35 b(Section)g(2.4.9)390
-1255 y([T)-8 b(erminal)31 b(Managemen)m(t],)i(page)e(40\).)3371
+1255 y([T)-8 b(erminal)31 b(Managemen)m(t],)i(page)e(41\).)3371
1445 y([V)-8 b(ariable])-3598 b Fh(rl_voidfunc_t)56 b(*)d
(rl_deprep_term_functio)q(n)390 1554 y Ft(If)36 b(non-zero,)j(Readline)
e(will)g(call)h(indirectly)f(through)f(this)g(p)s(oin)m(ter)h(to)g
@@ -8814,15 +8862,15 @@ e(will)g(call)h(indirectly)f(through)f(this)g(p)s(oin)m(ter)h(to)g
(the)h(e\013ects)h(of)f Fs(rl_prep_term_function)p Ft(.)49
b(By)35 b(default,)i(this)390 1774 y(is)30 b(set)h(to)g
Fs(rl_deprep_terminal)26 b Ft(\(see)31 b(Section)g(2.4.9)i([T)-8
-b(erminal)30 b(Managemen)m(t],)j(page)e(40\).)3371 1963
+b(erminal)30 b(Managemen)m(t],)j(page)e(41\).)3371 1963
y([V)-8 b(ariable])-3598 b Fh(Keymap)54 b(rl_executing_keymap)390
2073 y Ft(This)35 b(v)-5 b(ariable)37 b(is)f(set)g(to)h(the)f(k)m
-(eymap)h(\(see)g(Section)f(2.4.2)i([Keymaps],)g(page)e(33\))i(in)d
+(eymap)h(\(see)g(Section)f(2.4.2)i([Keymaps],)g(page)e(34\))i(in)d
(whic)m(h)390 2182 y(the)c(curren)m(tly)f(executing)i(readline)e
(function)g(w)m(as)h(found.)3371 2372 y([V)-8 b(ariable])-3598
b Fh(Keymap)54 b(rl_binding_keymap)390 2481 y Ft(This)35
b(v)-5 b(ariable)37 b(is)f(set)g(to)h(the)f(k)m(eymap)h(\(see)g
-(Section)f(2.4.2)i([Keymaps],)g(page)e(33\))i(in)d(whic)m(h)390
+(Section)f(2.4.2)i([Keymaps],)g(page)e(34\))i(in)d(whic)m(h)390
2591 y(the)c(last)g(k)m(ey)g(binding)e(o)s(ccurred.)3371
2780 y([V)-8 b(ariable])-3598 b Fh(char)54 b(*)e(rl_executing_macro)390
2890 y Ft(This)30 b(v)-5 b(ariable)31 b(is)f(set)h(to)g(the)g(text)g
@@ -8852,9 +8900,9 @@ b(state)j(bits)390 4524 y(include:)390 4687 y Fs(RL_STATE_NONE)870
(its)e(in)m(ternal)g(data)g(structures.)390 5230 y Fs
(RL_STATE_INITIALIZED)870 5340 y Ft(Readline)g(has)f(completed)h(its)g
(initialization.)p eop end
-%%Page: 31 35
-TeXDict begin 31 34 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(31)390
+%%Page: 32 36
+TeXDict begin 32 35 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(32)390
299 y Fs(RL_STATE_TERMPREPPED)870 408 y Ft(Readline)29
b(has)g(mo)s(di\014ed)e(the)i(terminal)g(mo)s(des)f(to)i(do)e(its)i(o)m
(wn)e(input)g(and)g(redis-)870 518 y(pla)m(y)-8 b(.)390
@@ -8893,10 +8941,10 @@ b(alues)31 b(of)f(the)h(terminal's)g(sp)s(ecial)g(c)m(haracters.)390
5121 y Fs(RL_STATE_CALLBACK)870 5230 y Ft(Readline)44
b(is)f(curren)m(tly)g(using)f(the)h(alternate)i(\(callbac)m(k\))h(in)m
(terface)e(\(see)g(Sec-)870 5340 y(tion)31 b(2.4.12)h([Alternate)h(In)m
-(terface],)f(page)f(43\).)p eop end
-%%Page: 32 36
-TeXDict begin 32 35 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(32)390
+(terface],)f(page)f(44\).)p eop end
+%%Page: 33 37
+TeXDict begin 33 36 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(33)390
299 y Fs(RL_STATE_VIMOTION)870 408 y Ft(Readline)31 b(is)f(reading)h
(the)f(argumen)m(t)h(to)g(a)g(vi-mo)s(de)g Fs(")p Ft(motion)p
Fs(")f Ft(command.)390 589 y Fs(RL_STATE_MULTIKEY)870
@@ -8957,9 +9005,9 @@ y(to)e(add)e(a)h(few)g(functions)g(to)g(the)g(default)h(functions)e
(to)h(Readline,)i(y)m(ou)e(ma)m(y)g(need)f(to)i(use)e(the)h(underlying)
150 5340 y(functions)c(describ)s(ed)f(b)s(elo)m(w.)p
eop end
-%%Page: 33 37
-TeXDict begin 33 36 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(33)150
+%%Page: 34 38
+TeXDict begin 34 37 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(34)150
299 y Fi(2.4.2)63 b(Selecting)41 b(a)f(Keymap)150 446
y Ft(Key)f(bindings)e(tak)m(e)j(place)g(on)f(a)g Fj(k)m(eymap)p
Ft(.)66 b(The)38 b(k)m(eymap)h(is)g(the)g(asso)s(ciation)h(b)s(et)m(w)m
@@ -9033,9 +9081,9 @@ b Ft(ma)m(y)c(not)g(b)s(e)e(one)i(of)f(Readline's)h(builtin)f(k)m
5340 y(name)36 b(for)g(one)g(of)g(Readline's)h(builtin)e(k)m(eymaps.)58
b(Y)-8 b(ou)37 b(ma)m(y)f(replace)h(the)f(name)g(asso)s(ciated)p
eop end
-%%Page: 34 38
-TeXDict begin 34 37 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(34)390
+%%Page: 35 39
+TeXDict begin 35 38 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(35)390
299 y(with)31 b(a)g(giv)m(en)h(k)m(eymap)g(b)m(y)f(calling)h(this)f
(function)g(more)h(than)e(once)i(with)f(the)g(same)h
Fj(k)m(eymap)390 408 y Ft(argumen)m(t.)50 b(Y)-8 b(ou)34
@@ -9067,7 +9115,7 @@ b(An)26 b(alternate)h(mec)m(hanism)f(is)g(to)g(install)h(custom)f(k)m
(ey)g(bindings)f(in)g(an)h(initialization)150 2006 y(function)37
b(assigned)g(to)h(the)f Fs(rl_startup_hook)c Ft(v)-5
b(ariable)38 b(\(see)g(Section)g(2.3)g([Readline)g(V)-8
-b(ariables],)150 2115 y(page)31 b(27\).)275 2260 y(These)f(functions)g
+b(ariables],)150 2115 y(page)31 b(28\).)275 2260 y(These)f(functions)g
(manage)h(k)m(ey)g(bindings.)3350 2465 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_bind_key)c Fg(\()p Ff(in)m(t)34 b(k)m(ey)-8
b(,)32 b(rl)p 1441 2465 30 5 v 43 w(command)p 1904 2465
@@ -9116,9 +9164,9 @@ Fj(map)p Ft(.)40 b(Returns)30 b(non-zero)h(in)f(case)h(of)g(error.)3350
5230 y(Keymap)h(map)p Fg(\))390 5340 y Ft(Un)m(bind)29
b(all)i(k)m(eys)g(that)g(execute)h Fj(function)e Ft(in)g
Fj(map)p Ft(.)p eop end
-%%Page: 35 39
-TeXDict begin 35 38 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(35)3350
+%%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(int)53 b(rl_unbind_command_in_)q(map)
f Fg(\()p Ff(const)34 b(c)m(har)g(*command,)f(Keymap)565
408 y(map)p Fg(\))390 518 y Ft(Un)m(bind)c(all)i(k)m(eys)g(that)g(are)g
@@ -9197,9 +9245,9 @@ h(y)m(ou)g(to)f(\014nd)f(out)h(what)g(k)m(eys)h(in)m(v)m(ok)m(e)h
f(b)m(y)e(a)h(particular)g(k)m(ey)g(sequence.)40 b(Y)-8
b(ou)28 b(ma)m(y)g(also)h(asso)s(ciate)g(a)f(new)f(function)g(name)h
(with)f(an)150 5340 y(arbitrary)j(function.)p eop end
-%%Page: 36 40
-TeXDict begin 36 39 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(36)3350
+%%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(rl_command_func_t)57
b(*)c(rl_named_function)e Fg(\()p Ff(const)34 b(c)m(har)g(*name)p
Fg(\))390 408 y Ft(Return)c(the)g(function)g(with)g(name)h
@@ -9278,9 +9326,9 @@ m(h)h(more)150 5089 y(useful.)k(It)30 b(is)h(certainly)g(easy)g(to)g
5340 y(text\(\))26 b Ft(or)i Fs(rl_delete_text\(\))23
b Ft(to)29 b(do)f(it,)h(then)f(undoing)f(is)g(already)i(done)f(for)f(y)
m(ou)h(automatically)-8 b(.)p eop end
-%%Page: 37 41
-TeXDict begin 37 40 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(37)275
+%%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)275
299 y(If)20 b(y)m(ou)g(do)h(m)m(ultiple)g(insertions)f(or)h(m)m
(ultiple)g(deletions,)j(or)c(an)m(y)h(com)m(bination)h(of)e(these)h(op)
s(erations,)150 408 y(y)m(ou)38 b(should)f(group)h(them)g(together)h
@@ -9351,9 +9399,9 @@ Ff(v)m(oid)p Fg(\))390 5230 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 5340
y(outputting)i(a)f(newline.)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)3350
+%%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_on_new_line_with_p)q
(romp)q(t)f Fg(\()p Ff(v)m(oid)p Fg(\))390 408 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
@@ -9433,9 +9481,9 @@ 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 5340 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)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)390
+%%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)390
299 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
408 y(b)m(y)41 b(brac)m(k)m(eting)i(a)e(sequence)g(of)g(suc)m(h)g(c)m
@@ -9488,7 +9536,7 @@ b(ailable)32 b(from)d(Readline's)h(curren)m(t)f(input)g(stream.)41
b(This)28 b(han-)390 4070 y(dles)e(input)g(inserted)g(in)m(to)i(the)e
(input)g(stream)h(via)g Fj(rl)p 2226 4070 28 4 v 40 w(p)s(ending)p
2583 4070 V 38 w(input)h Ft(\(see)f(Section)h(2.3)f([Read-)390
-4180 y(line)40 b(V)-8 b(ariables],)43 b(page)d(27\))g(and)f
+4180 y(line)40 b(V)-8 b(ariables],)43 b(page)d(28\))g(and)f
Fs(rl_stuff_char\(\))p Ft(,)f(macros,)k(and)d(c)m(haracters)h(read)f
(from)390 4289 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
@@ -9507,9 +9555,9 @@ Fs(rl_read_key\(\))p Ft(.)36 b(Up)27 b(to)g(512)h(c)m(haracters)g(ma)m
(y)390 5230 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 5340 y(0)g(otherwise.)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
+%%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(int)53 b(rl_execute_next)d
Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 408 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
@@ -9592,9 +9640,9 @@ Fj(readline)p 3518 5121 28 4 v 40 w(state)390 5230 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 5340 y(structure.)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
+%%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_restore_state)e
Fg(\()p Ff(struct)34 b(readline)p 1916 299 30 5 v 44
w(state)f(*sp)p Fg(\))390 408 y Ft(Restore)23 b(Readline's)g(in)m
@@ -9672,1140 +9720,1163 @@ b(_rl_to_upper)c Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390
5340 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.)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
+%%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(int)53 b(_rl_to_lower)c
Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 408 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
-518 y(ter.)3350 712 y([F)-8 b(unction])-3599 b Fh(int)53
+518 y(ter.)3350 714 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
-821 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 1025 y Fi(2.4.11)63
-b(Miscellaneous)42 b(F)-10 b(unctions)3350 1227 y Ft([F)i(unction])
+823 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 1028 y Fi(2.4.11)63
+b(Miscellaneous)42 b(F)-10 b(unctions)3350 1231 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
-1336 y(Keymap)g(map)p Fg(\))390 1446 y Ft(Bind)23 b(the)g(k)m(ey)h
+1340 y(Keymap)g(map)p Fg(\))390 1450 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
-1556 y Fj(map)p Ft(.)39 b(When)28 b Fj(k)m(eyseq)i Ft(is)e(in)m(v)m(ok)
+1559 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 1665 y(is)k(deprecated;)i(use)
-e Fs(rl_generic_bind\(\))25 b Ft(instead.)3350 1859 y([F)-8
+(the)e(line.)41 b(This)26 b(function)390 1669 y(is)k(deprecated;)i(use)
+e Fs(rl_generic_bind\(\))25 b Ft(instead.)3350 1865 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 1968 y Ft(Prin)m(t)27
+Ff(in)m(t)33 b(readable)p Fg(\))390 1974 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
-2078 y(to)32 b Fs(rl_outstream)p Ft(.)40 b(If)31 b Fj(readable)36
+2084 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 2188 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 2381 y([F)-8
+(w)m(a)m(y)i(that)e(it)390 2193 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 2389 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 2491 y Ft(Mak)m(e)31 b(the)e(Readline)g(v)-5
+b(alue)p Fg(\))390 2499 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 2600 y(mand)h(`)p Fs(set)g
+(the)g(readline)g(com-)390 2608 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
-2710 y([Readline)g(Init)f(File)i(Syn)m(tax],)f(page)g(4\).)3350
-2904 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_variable_value)f
+2718 y([Readline)g(Init)f(File)i(Syn)m(tax],)f(page)g(4\).)3350
+2914 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
-3013 y Ft(Return)28 b(a)i(string)f(represen)m(ting)h(the)f(v)-5
+3023 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
-3123 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 3317 y([F)-8
+3133 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 3328 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 3426 y Ft(Prin)m(t)29
+Fg(\()p Ff(in)m(t)34 b(readable)p Fg(\))390 3438 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 3536 y(able)40 b Ft(is)34 b(non-zero,)i(the)e
+b(If)28 b Fj(read-)390 3548 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 3645 y Fs(inputrc)28
-b Ft(\014le)j(and)f(re-read.)3350 3839 y([F)-8 b(unction])-3599
+(can)g(b)s(e)g(made)g(part)g(of)g(an)390 3657 y Fs(inputrc)28
+b Ft(\014le)j(and)f(re-read.)3350 3853 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 3949 y Ft(Set)25 b(the)h(time)f(in)m(terv)
+Ff(in)m(t)33 b(u)p Fg(\))390 3962 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 4058 y(c)m(haracter)32
+e(sho)m(wing)i(a)f(balancing)390 4072 y(c)m(haracter)32
b(when)d Fs(blink-matching-paren)c Ft(has)30 b(b)s(een)g(enabled.)3350
-4252 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 4361
+4268 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 4377
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 4471 y(en)m(try)34 b(for)f(the)h
+b(fetc)m(hes)h(the)g(termcap)390 4487 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 4581 y(screen)21 b(line)h(and)e(p)s
+f(mo)m(v)m(e)h(around)e(the)390 4596 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 4690 y(do)s(es)d(not)g(use)g
+(erasing)g(a)f(line.)38 b(Readline)390 4706 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 4800 y(only)30
-b(those)h(capabilities)i(Readline)e(uses.)3350 4994 y([F)-8
+(will)g(return)f(v)-5 b(alues)35 b(for)390 4816 y(only)30
+b(those)h(capabilities)i(Readline)e(uses.)3350 5011 y([F)-8
b(unction])-3599 b Fh(void)54 b(rl_clear_history)c Fg(\()p
-Ff(v)m(oid)p Fg(\))390 5103 y Ft(Clear)27 b(the)h(history)f(list)h(b)m
+Ff(v)m(oid)p Fg(\))390 5121 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 5213 y(library's)42
+(manner)g(as)g(the)g(History)390 5230 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 5322 y(frees)30
+Fs(clear_history)e Ft(b)s(ecause)i(it)390 5340 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.)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)150
-299 y Fi(2.4.12)63 b(Alternate)40 b(In)m(terface)150
-446 y Ft(An)21 b(alternate)j(in)m(terface)f(is)f(a)m(v)-5
+%%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)3350
+299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_activate_mark)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Enable)30 b(an)f
+Fk(active)37 b Ft(mark.)j(When)30 b(this)f(is)h(enabled,)g(the)g(text)h
+(b)s(et)m(w)m(een)f(p)s(oin)m(t)g(and)f(mark)g(\(the)390
+518 y Fj(region)p Ft(\))c(is)f(displa)m(y)m(ed)h(in)f(the)g(terminal's)
+h(standout)f(mo)s(de)f(\(a)i Fj(face)5 b Ft(\).)40 b(This)24
+b(is)g(called)h(b)m(y)f(v)-5 b(arious)390 628 y(readline)30
+b(functions)f(that)i(set)f(the)g(mark)g(and)f(insert)h(text,)h(and)e
+(is)h(a)m(v)-5 b(ailable)32 b(for)e(applications)390
+737 y(to)h(call.)3350 951 y([F)-8 b(unction])-3599 b
+Fh(void)54 b(rl_deactivate_mark)c Fg(\()p Ff(v)m(oid)p
+Fg(\))390 1061 y Ft(T)-8 b(urn)29 b(o\013)i(the)f(activ)m(e)j(mark.)
+3350 1274 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_keep_mark_active)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 1384 y Ft(Indicate)28
+b(that)g(the)g(mark)f(should)f(remain)h(activ)m(e)j(when)d(the)g
+(curren)m(t)g(readline)h(function)f(com-)390 1494 y(pletes)h(and)f
+(after)h(redispla)m(y)f(o)s(ccurs.)40 b(In)27 b(most)g(cases,)i(the)f
+(mark)f(remains)g(activ)m(e)j(for)d(only)h(the)390 1603
+y(duration)i(of)g(a)h(single)g(bindable)f(readline)h(function.)3350
+1817 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_mark_active_p)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 1927 y Ft(Return)30 b(a)g(non-zero)h(v)
+-5 b(alue)31 b(if)f(the)h(mark)f(is)h(curren)m(tly)f(activ)m(e;)j(zero)
+e(otherwise.)150 2141 y Fi(2.4.12)63 b(Alternate)40 b(In)m(terface)150
+2288 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
-555 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 665 y Fs(select\(\))42 b Ft(on)i(v)-5 b(arious)45
+2397 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 2507 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 775 y(in)m(v)m(ok)m(ed)33
+(need,)k(readline)d(can)f(also)i(b)s(e)150 2616 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 884 y(this)e(easy)-8 b(.)3350 1080
+b(to)f(mak)m(e)150 2726 y(this)e(easy)-8 b(.)3350 2940
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 1190 y(rl)p
-639 1190 30 5 v 44 w(v)m(cpfunc)p 1016 1190 V 45 w(t)f(*lhandler)p
-Fg(\))390 1300 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 3049 y(rl)p
+639 3049 30 5 v 44 w(v)m(cpfunc)p 1016 3049 V 45 w(t)f(*lhandler)p
+Fg(\))390 3159 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 1409 y(Sa)m(v)m(e)34
+b(alue)26 b(of)f Fj(prompt)p Ft(.)390 3269 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 1519 y(of)h(input)f(has)g(b)s(een)g(en)m(tered.)57
+(line)390 3378 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 1628 y(argumen)m(t.)k(As)29 b(with)f
+(line)g(as)g(an)390 3488 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 1738 y(\014nished)g(with)h
-(it.)3350 1934 y([F)-8 b(unction])-3599 b Fh(void)54
+Fs(free)f Ft(the)h(line)h(when)e(it)i(it)390 3597 y(\014nished)g(with)h
+(it.)3350 3811 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
-2044 y Ft(Whenev)m(er)34 b(an)g(application)h(determines)e(that)i(k)m
+3921 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 2153 y Fs(rl_callback_read_char\(\))p Ft(,)17 b(whic)m(h)22
+390 4030 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 2263 y(source.)40 b(If)27 b(that)i(c)m(haracter)g(completes)
+(input)390 4140 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 2373 y Fj(lhandler)47 b Ft(function)40
+b(in)m(v)m(ok)m(e)i(the)390 4249 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 2482 y(Before)j(calling)h
+b Ft(to)41 b(pro)s(cess)f(the)h(line.)390 4359 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 2592 y(they)44
+g(reset)f(to)h(the)g(v)-5 b(alues)390 4469 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
-2701 y(returns,)27 b(and)h(the)g(line)g(handler)f(remains)h(installed,)
+4578 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
-2811 y(Readline's)k(use)f(again.)42 b Fs(EOF)29 b Ft(is)i(indicated)g
+4688 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 3007 y([F)-8 b(unction])-3599 b Fh(void)54
+Ft(line.)3350 4902 y([F)-8 b(unction])-3599 b Fh(void)54
b(rl_callback_sigcleanup)e Fg(\()p Ff(v)m(oid)p Fg(\))390
-3117 y Ft(Clean)26 b(up)e(an)m(y)i(in)m(ternal)g(state)h(the)e(callbac)
+5011 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 3226 y(to)35 b(rl)p 572 3226 28 4 v
-40 w(callbac)m(k)p 928 3226 V 42 w(read)p 1142 3226 V
+(een)f(calls)390 5121 y(to)35 b(rl)p 572 5121 28 4 v
+40 w(callbac)m(k)p 928 5121 V 42 w(read)p 1142 5121 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
-3336 y(in)m(tended)f(to)h(b)s(e)e(used)g(b)m(y)h(applications)h(that)g
+5230 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
-3446 y(Readline's)f(in)m(ternal)g(signal)g(handler)f(calls)h(this)g
-(when)e(appropriate.)3350 3642 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 3751 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 3861 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
-3971 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 4080 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 4190 y(b)s(efore)f(the)h(program)f
-(exits)h(to)g(reset)g(the)f(terminal)h(settings.)150
-4395 y Fi(2.4.13)63 b(A)41 b(Readline)f(Example)150 4542
-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 4652 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 4761 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
-4871 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
-5011 y Fs(/*)47 b(Invert)f(the)h(case)g(of)g(the)g(COUNT)f(following)g
-(characters.)e(*/)390 5121 y(int)390 5230 y(invert_case_line)f
-(\(count,)j(key\))629 5340 y(int)h(count,)f(key;)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)390
-299 y Fs({)485 408 y(register)46 b(int)h(start,)f(end,)h(i;)485
-628 y(start)g(=)g(rl_point;)485 847 y(if)h(\(rl_point)d(>=)i(rl_end\))
-581 956 y(return)f(\(0\);)485 1176 y(if)i(\(count)e(<)h(0\))581
-1285 y({)676 1395 y(direction)f(=)h(-1;)676 1504 y(count)g(=)g(-count;)
-581 1614 y(})485 1724 y(else)581 1833 y(direction)e(=)j(1;)485
-2052 y(/*)g(Find)e(the)h(end)g(of)g(the)g(range)g(to)g(modify.)f(*/)485
-2162 y(end)h(=)h(start)e(+)i(\(count)e(*)h(direction\);)485
-2381 y(/*)h(Force)e(it)h(to)g(be)h(within)e(range.)g(*/)485
-2491 y(if)i(\(end)e(>)i(rl_end\))581 2600 y(end)f(=)g(rl_end;)485
-2710 y(else)g(if)g(\(end)g(<)g(0\))581 2819 y(end)g(=)g(0;)485
-3039 y(if)h(\(start)e(==)h(end\))581 3148 y(return)f(\(0\);)485
-3367 y(if)i(\(start)e(>)h(end\))581 3477 y({)676 3587
-y(int)g(temp)g(=)g(start;)676 3696 y(start)g(=)g(end;)676
-3806 y(end)g(=)h(temp;)581 3915 y(})485 4134 y(/*)g(Tell)e(readline)g
-(that)g(we)i(are)f(modifying)e(the)i(line,)629 4244 y(so)g(it)g(will)g
-(save)f(the)h(undo)g(information.)d(*/)485 4354 y(rl_modifying)h
-(\(start,)h(end\);)485 4573 y(for)h(\(i)h(=)f(start;)f(i)i(!=)f(end;)f
-(i++\))581 4682 y({)676 4792 y(if)i(\(_rl_uppercase_p)43
-b(\(rl_line_buffer[i]\)\))772 4902 y(rl_line_buffer[i])g(=)k
-(_rl_to_lower)e(\(rl_line_buffer[i]\);)676 5011 y(else)i(if)g
-(\(_rl_lowercase_p)d(\(rl_line_buffer[i]\)\))772 5121
-y(rl_line_buffer[i])f(=)k(_rl_to_upper)e(\(rl_line_buffer[i]\);)581
-5230 y(})485 5340 y(/*)j(Move)e(point)h(to)g(on)g(top)g(of)g(the)g
-(last)g(character)e(changed.)g(*/)p eop end
+5340 y(Readline's)f(in)m(ternal)g(signal)g(handler)f(calls)h(this)g
+(when)e(appropriate.)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)485
-299 y Fs(rl_point)46 b(=)h(\(direction)e(==)j(1\))f(?)g(end)g(-)h(1)f
-(:)h(start;)485 408 y(return)f(\(0\);)390 518 y(})150
-751 y Fi(2.4.14)63 b(Alternate)40 b(In)m(terface)g(Example)150
-898 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
-1007 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 1117 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 1285 y Fs(/*)47 b(Standard)f(include)g(files.)g(stdio.h)f
-(is)j(required.)d(*/)390 1395 y(#include)h(<stdlib.h>)390
-1504 y(#include)g(<string.h>)390 1614 y(#include)g(<unistd.h>)390
-1724 y(#include)g(<locale.h>)390 1943 y(/*)h(Used)g(for)g(select\(2\))e
-(*/)390 2052 y(#include)h(<sys/types.h>)390 2162 y(#include)g
-(<sys/select.h>)390 2381 y(#include)g(<signal.h>)390
-2600 y(#include)g(<stdio.h>)390 2819 y(/*)h(Standard)f(readline)f
-(include)h(files.)g(*/)390 2929 y(#include)g(<readline/readline.h>)390
-3039 y(#include)g(<readline/history.h>)390 3258 y(static)g(void)h
-(cb_linehandler)d(\(char)i(*\);)390 3367 y(static)g(void)h(sighandler)e
-(\(int\);)390 3587 y(int)i(running;)390 3696 y(int)g
-(sigwinch_received;)390 3806 y(const)f(char)h(*prompt)f(=)h("rltest$)f
-(";)390 4025 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 4045
-42 84 v 533 4134 a(reading)g(a)h(character.)e(*/)390
-4244 y(static)h(void)390 4354 y(sighandler)f(\(int)i(sig\))390
-4463 y({)485 4573 y(sigwinch_received)d(=)j(1;)390 4682
-y(})390 4902 y(/*)g(Callback)f(function)f(called)h(for)h(each)g(line)g
-(when)f(accept-line)f(executed,)g(EOF)533 5011 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 5121 y(also)g(call)f(exit\(3\).)g(*/)390
-5230 y(static)g(void)390 5340 y(cb_linehandler)e(\(char)i(*line\))p
-eop end
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(45)3350
+299 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 408 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
+518 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 628 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 737 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 847 y(b)s(efore)f(the)h(program)f(exits)h(to)g(reset)g(the)f
+(terminal)h(settings.)150 1080 y Fi(2.4.13)63 b(A)41
+b(Readline)f(Example)150 1227 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 1336 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 1446 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
+1555 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
+1724 y Fs(/*)47 b(Invert)f(the)h(case)g(of)g(the)g(COUNT)f(following)g
+(characters.)e(*/)390 1833 y(int)390 1943 y(invert_case_line)f
+(\(count,)j(key\))629 2052 y(int)h(count,)f(key;)390
+2162 y({)485 2271 y(register)g(int)h(start,)f(end,)h(i;)485
+2491 y(start)g(=)g(rl_point;)485 2710 y(if)h(\(rl_point)d(>=)i
+(rl_end\))581 2819 y(return)f(\(0\);)485 3039 y(if)i(\(count)e(<)h(0\))
+581 3148 y({)676 3258 y(direction)f(=)h(-1;)676 3367
+y(count)g(=)g(-count;)581 3477 y(})485 3587 y(else)581
+3696 y(direction)e(=)j(1;)485 3915 y(/*)g(Find)e(the)h(end)g(of)g(the)g
+(range)g(to)g(modify.)f(*/)485 4025 y(end)h(=)h(start)e(+)i(\(count)e
+(*)h(direction\);)485 4244 y(/*)h(Force)e(it)h(to)g(be)h(within)e
+(range.)g(*/)485 4354 y(if)i(\(end)e(>)i(rl_end\))581
+4463 y(end)f(=)g(rl_end;)485 4573 y(else)g(if)g(\(end)g(<)g(0\))581
+4682 y(end)g(=)g(0;)485 4902 y(if)h(\(start)e(==)h(end\))581
+5011 y(return)f(\(0\);)485 5230 y(if)i(\(start)e(>)h(end\))581
+5340 y({)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(/*)48 b(Can)f(use)f(^D)i(\(stty)e(eof\))h(or)g
-(`exit')f(to)h(exit.)f(*/)485 518 y(if)i(\(line)e(==)h(NULL)g(||)g
-(strcmp)f(\(line,)g("exit"\))g(==)h(0\))581 628 y({)676
-737 y(if)h(\(line)e(==)h(0\))772 847 y(printf)f(\("\\n"\);)676
-956 y(printf)g(\("exit\\n"\);)676 1066 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 1086 42 84 v 820 1176 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
-1196 42 76 v 820 1285 a(being)g(displayed.)f(*/)676 1395
-y(rl_callback_handler_remove)c(\(\);)676 1614 y(running)46
-b(=)i(0;)581 1724 y(})485 1833 y(else)581 1943 y({)676
-2052 y(if)g(\(*line\))772 2162 y(add_history)d(\(line\);)676
-2271 y(printf)h(\("input)g(line:)h(\045s\\n",)f(line\);)676
-2381 y(free)h(\(line\);)581 2491 y(})390 2600 y(})390
-2819 y(int)390 2929 y(main)g(\(int)f(c,)h(char)g(**v\))390
-3039 y({)485 3148 y(fd_set)g(fds;)485 3258 y(int)g(r;)485
-3477 y(/*)h(Set)f(the)f(default)g(locale)g(values)g(according)g(to)h
-(environment)e(variables.)g(*/)p 3874 3497 42 84 v 485
-3587 a(setlocale)h(\(LC_ALL,)f(""\);)485 3806 y(/*)j(Handle)e(window)g
-(size)g(changes)g(when)h(readline)e(is)j(not)f(active)f(and)h(reading)
-629 3915 y(characters.)d(*/)485 4025 y(signal)j(\(SIGWINCH,)e
-(sighandler\);)485 4244 y(/*)j(Install)d(the)i(line)g(handler.)f(*/)485
-4354 y(rl_callback_handler_instal)o(l)c(\(prompt,)j(cb_linehandler\);)
-485 4573 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
-4682 y(to)g(read)f(on)i(readline's)d(input)h(stream)g(\(defaults)f(to)j
-(standard)d(input\))h(and)629 4792 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
-4902 y(have)g(to)h(modify)g(the)f(user's)h(terminal)e(settings.)g(*/)
-485 5011 y(running)h(=)i(1;)485 5121 y(while)f(\(running\))581
-5230 y({)676 5340 y(FD_ZERO)f(\(&fds\);)p eop end
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(46)676
+299 y Fs(int)47 b(temp)g(=)g(start;)676 408 y(start)g(=)g(end;)676
+518 y(end)g(=)h(temp;)581 628 y(})485 847 y(/*)g(Tell)e(readline)g
+(that)g(we)i(are)f(modifying)e(the)i(line,)629 956 y(so)g(it)g(will)g
+(save)f(the)h(undo)g(information.)d(*/)485 1066 y(rl_modifying)h
+(\(start,)h(end\);)485 1285 y(for)h(\(i)h(=)f(start;)f(i)i(!=)f(end;)f
+(i++\))581 1395 y({)676 1504 y(if)i(\(_rl_uppercase_p)43
+b(\(rl_line_buffer[i]\)\))772 1614 y(rl_line_buffer[i])g(=)k
+(_rl_to_lower)e(\(rl_line_buffer[i]\);)676 1724 y(else)i(if)g
+(\(_rl_lowercase_p)d(\(rl_line_buffer[i]\)\))772 1833
+y(rl_line_buffer[i])f(=)k(_rl_to_upper)e(\(rl_line_buffer[i]\);)581
+1943 y(})485 2052 y(/*)j(Move)e(point)h(to)g(on)g(top)g(of)g(the)g
+(last)g(character)e(changed.)g(*/)485 2162 y(rl_point)h(=)h
+(\(direction)e(==)j(1\))f(?)g(end)g(-)h(1)f(:)h(start;)485
+2271 y(return)f(\(0\);)390 2381 y(})150 2614 y Fi(2.4.14)63
+b(Alternate)40 b(In)m(terface)g(Example)150 2761 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 2870 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
+2980 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
+3148 y Fs(/*)47 b(Standard)f(include)g(files.)g(stdio.h)f(is)j
+(required.)d(*/)390 3258 y(#include)h(<stdlib.h>)390
+3367 y(#include)g(<string.h>)390 3477 y(#include)g(<unistd.h>)390
+3587 y(#include)g(<locale.h>)390 3806 y(/*)h(Used)g(for)g(select\(2\))e
+(*/)390 3915 y(#include)h(<sys/types.h>)390 4025 y(#include)g
+(<sys/select.h>)390 4244 y(#include)g(<signal.h>)390
+4463 y(#include)g(<stdio.h>)390 4682 y(/*)h(Standard)f(readline)f
+(include)h(files.)g(*/)390 4792 y(#include)g(<readline/readline.h>)390
+4902 y(#include)g(<readline/history.h>)390 5121 y(static)g(void)h
+(cb_linehandler)d(\(char)i(*\);)390 5230 y(static)g(void)h(sighandler)e
+(\(int\);)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)676
-299 y Fs(FD_SET)46 b(\(fileno)g(\(rl_instream\),)e(&fds\);)676
-518 y(r)k(=)f(select)f(\(FD_SETSIZE,)f(&fds,)h(NULL,)h(NULL,)f(NULL\);)
-676 628 y(if)i(\(r)f(<)g(0)h(&&)f(errno)f(!=)h(EINTR\))772
-737 y({)867 847 y(perror)f(\("rltest:)g(select"\);)867
-956 y(rl_callback_handler_remov)o(e)c(\(\);)867 1066
-y(break;)772 1176 y(})676 1285 y(if)48 b(\(sigwinch_received\))390
-1395 y({)485 1504 y(rl_resize_terminal)43 b(\(\);)485
-1614 y(sigwinch_received)h(=)j(0;)390 1724 y(})676 1833
-y(if)h(\(r)f(<)g(0\))390 1943 y(continue;)676 2162 y(if)h(\(FD_ISSET)d
-(\(fileno)h(\(rl_instream\),)e(&fds\)\))772 2271 y
-(rl_callback_read_char)e(\(\);)581 2381 y(})485 2600
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(47)390
+299 y Fs(int)47 b(running;)390 408 y(int)g(sigwinch_received;)390
+518 y(const)f(char)h(*prompt)f(=)h("rltest$)f(";)390
+737 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 757 42 84
+v 533 847 a(reading)g(a)h(character.)e(*/)390 956 y(static)h(void)390
+1066 y(sighandler)f(\(int)i(sig\))390 1176 y({)485 1285
+y(sigwinch_received)d(=)j(1;)390 1395 y(})390 1614 y(/*)g(Callback)f
+(function)f(called)h(for)h(each)g(line)g(when)f(accept-line)f
+(executed,)g(EOF)533 1724 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
+1833 y(also)g(call)f(exit\(3\).)g(*/)390 1943 y(static)g(void)390
+2052 y(cb_linehandler)e(\(char)i(*line\))390 2162 y({)485
+2271 y(/*)i(Can)f(use)f(^D)i(\(stty)e(eof\))h(or)g(`exit')f(to)h(exit.)
+f(*/)485 2381 y(if)i(\(line)e(==)h(NULL)g(||)g(strcmp)f(\(line,)g
+("exit"\))g(==)h(0\))581 2491 y({)676 2600 y(if)h(\(line)e(==)h(0\))772
+2710 y(printf)f(\("\\n"\);)676 2819 y(printf)g(\("exit\\n"\);)676
+2929 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 2949 V 820 3039 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 3059 42 76 v 820 3148 a(being)g(displayed.)f(*/)676
+3258 y(rl_callback_handler_remove)c(\(\);)676 3477 y(running)46
+b(=)i(0;)581 3587 y(})485 3696 y(else)581 3806 y({)676
+3915 y(if)g(\(*line\))772 4025 y(add_history)d(\(line\);)676
+4134 y(printf)h(\("input)g(line:)h(\045s\\n",)f(line\);)676
+4244 y(free)h(\(line\);)581 4354 y(})390 4463 y(})390
+4682 y(int)390 4792 y(main)g(\(int)f(c,)h(char)g(**v\))390
+4902 y({)485 5011 y(fd_set)g(fds;)485 5121 y(int)g(r;)485
+5340 y(/*)h(Set)f(the)f(default)g(locale)g(values)g(according)g(to)h
+(environment)e(variables.)g(*/)p 3874 5360 42 84 v 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)485
+299 y Fs(setlocale)46 b(\(LC_ALL,)f(""\);)485 518 y(/*)j(Handle)e
+(window)g(size)g(changes)g(when)h(readline)e(is)j(not)f(active)f(and)h
+(reading)629 628 y(characters.)d(*/)485 737 y(signal)j(\(SIGWINCH,)e
+(sighandler\);)485 956 y(/*)j(Install)d(the)i(line)g(handler.)f(*/)485
+1066 y(rl_callback_handler_instal)o(l)c(\(prompt,)j(cb_linehandler\);)
+485 1285 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
+1395 y(to)g(read)f(on)i(readline's)d(input)h(stream)g(\(defaults)f(to)j
+(standard)d(input\))h(and)629 1504 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
+1614 y(have)g(to)h(modify)g(the)f(user's)h(terminal)e(settings.)g(*/)
+485 1724 y(running)h(=)i(1;)485 1833 y(while)f(\(running\))581
+1943 y({)676 2052 y(FD_ZERO)f(\(&fds\);)676 2162 y(FD_SET)g(\(fileno)g
+(\(rl_instream\),)e(&fds\);)676 2381 y(r)k(=)f(select)f(\(FD_SETSIZE,)f
+(&fds,)h(NULL,)h(NULL,)f(NULL\);)676 2491 y(if)i(\(r)f(<)g(0)h(&&)f
+(errno)f(!=)h(EINTR\))772 2600 y({)867 2710 y(perror)f(\("rltest:)g
+(select"\);)867 2819 y(rl_callback_handler_remov)o(e)c(\(\);)867
+2929 y(break;)772 3039 y(})676 3148 y(if)48 b(\(sigwinch_received\))390
+3258 y({)485 3367 y(rl_resize_terminal)43 b(\(\);)485
+3477 y(sigwinch_received)h(=)j(0;)390 3587 y(})676 3696
+y(if)h(\(r)f(<)g(0\))390 3806 y(continue;)676 4025 y(if)h(\(FD_ISSET)d
+(\(fileno)h(\(rl_instream\),)e(&fds\)\))772 4134 y
+(rl_callback_read_char)e(\(\);)581 4244 y(})485 4463
y(printf)47 b(\("rltest:)e(Event)h(loop)h(has)g(exited\\n"\);)485
-2710 y(return)g(0;)390 2819 y(})150 3054 y Fr(2.5)68
-b(Readline)47 b(Signal)e(Handling)150 3214 y Ft(Signals)31
+4573 y(return)g(0;)390 4682 y(})150 4961 y Fr(2.5)68
+b(Readline)47 b(Signal)e(Handling)150 5121 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
-3323 y(of)k(another)g(pro)s(cess.)53 b(They)34 b(are)h(in)m(tended)g
+5230 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 3433 y(the)g(in)m(terrupt)f(k)m(ey)h(on)g(his)f
+(pressing)150 5340 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 3543 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 3652 y(Readline)45 b(c)m(hanges)g(the)g(terminal)g
+(en.)50 b(There)34 b(is)f(a)h(class)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)150
+299 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 408 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 3762 y(pro)s(cessing)27 b(when)g(suc)m(h)g(a)h(signal)g
+(sp)s(ecial)150 518 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 3871 y(pro)m(vide)g(application)i(writers)e
+(a)f(sane)f(state,)j(or)150 628 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
-4003 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
-4112 y(\()p Fs(SIGINT)p Ft(,)e Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p
+775 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
+885 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 4222 y(one)27 b(of)g(these)g(signals)g(is)g(receiv)m(ed,)i
+b(When)150 994 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 4332 y(that)33 b(w)m(ere)g(in)f(e\013ect)h(b)s(efore)f
+(to)g(those)150 1104 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 4441 y(b)s(efore)26
+(handling)f(to)h(what)f(it)h(w)m(as)150 1214 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
-4551 y(the)34 b(calling)i(application's)f(signal)g(handler)e(returns,)h
+1323 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
-4660 y(con)m(tin)m(ue)29 b(to)g(accept)h(input.)39 b(When)28
+1433 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 4770 y(some)39 b(additional)h(w)m(ork,)h
+(handler)f(p)s(erforms)150 1542 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 4880 y(description)30
+(b)s(e)e(ab)s(orted)g(\(see)i(the)150 1652 y(description)30
b(of)h Fs(rl_free_line_state\(\))25 b Ft(b)s(elo)m(w\).)275
-5011 y(There)e(is)i(an)f(additional)h(Readline)g(signal)g(handler,)g
+1800 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 5121 y(pro)s(cess)i(whenev)m(er)h(the)g(terminal's)g(size)h(c)m
+(a)150 1909 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 5230 y(Readline)d Fs(SIGWINCH)e
+Fs(xterm)p Ft(\).)39 b(The)150 2019 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 5340 y(calls)g(an)m(y)f
+(information,)g(and)e(then)150 2128 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)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)150
-299 y(application's)37 b Fs(SIGWINCH)c Ft(signal)i(handler)g(without)g
-(resetting)h(the)g(terminal)f(to)h(its)g(original)g(state.)150
-408 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
-518 y(return)28 b(\(for)i(example,)h(a)f Fs(longjmp)d
+(installed.)51 b(Readline)35 b(calls)g(the)150 2238 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 2347 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
+2457 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 628 y(after_signal\(\))26
+Fk(must)39 b Ft(call)31 b Fs(rl_cleanup_)150 2567 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 774 y(When)38 b(an)h(application)h(is)f(using)g(the)g
+(state.)275 2714 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 884 y(terface],)48 b(page)c(43\),)j(Readline)c(installs)h
+(In-)150 2824 y(terface],)48 b(page)c(44\),)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 994 y Fs(rl_callback_read_char)p Ft(.)c(Applications)33
+(to)150 2933 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 1103 y(clean)d(up)d(Readline's)j(state)g(if)e(they)h(wish)f
+g(to)150 3043 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 1213 y(and)k(restores)h(the)f(terminal)h(state.)275
-1360 y(If)k(an)g(application)i(using)f(the)g(callbac)m(k)h(in)m
+(completes)150 3153 y(and)k(restores)h(the)f(terminal)h(state.)275
+3300 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 1469 y(handlers)22 b(at)h(the)g(time)h(the)e(application)j
+(signal)150 3410 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 1579 y(only)f(when)g(a)g(complete)i(line)f
+b(remo)m(v)m(e)i(them)150 3519 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 1688 y(handlers)c Ft(v)-5
+Fs(rl_persistent_signal_)150 3629 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 1798 y(of)j(the)h(signals)f(Readline)h(catc)m(hes)h(to)f
+(handling)150 3738 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 1908 y(it)d(can)g(result)g(in)f
+b(ariable)27 b(with)f(care;)150 3848 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 2017 y(to)36
+(\(or)h(allo)m(wing)i(the)e(application)150 3958 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
-2127 y(an)30 b(application)h(b)s(ecoming)f(less)g(resp)s(onsiv)m(e)f
+4067 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 2236 y(do)s(es)24 b(not)g(w)m(an)m(t)h(or)g(need)f(to)
+(application)150 4177 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 2346 y(b)s(et)m(w)m(een)31
+f(to)g(do)h(an)m(y)f(pro)s(cessing)150 4286 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
-2493 y(Readline)f(pro)m(vides)f(t)m(w)m(o)i(v)-5 b(ariables)29
+4434 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 2602 y(it)34 b(will)f(catc)m(h)i(certain)f(signals)f(and)
+(or)h(not)150 4544 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 2712 y(applications)38
+b(It)33 b(is)g(imp)s(ortan)m(t)g(that)150 4653 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 2821 y(signal)31 b(handler,)f(so)g(Readline's)i
+Ft(,)d(not)i(in)g(a)150 4763 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
-3030 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_signals)390
-3140 y Ft(If)28 b(this)h(v)-5 b(ariable)30 b(is)f(non-zero,)h(Readline)
+4973 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_signals)390
+5083 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 3249 y Fs(SIGTERM)p Ft(,)h
+Ft(,)f Fs(SIGQUIT)p Ft(,)390 5192 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 3396
+Fs(SIGTTIN)p Ft(,)f(and)i Fs(SIGTTOU)p Ft(.)390 5340
y(The)g(default)g(v)-5 b(alue)31 b(of)g Fs(rl_catch_signals)26
-b Ft(is)k(1.)3371 3605 y([V)-8 b(ariable])-3598 b Fh(int)53
-b(rl_catch_sigwinch)390 3715 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
-3824 y Fs(SIGWINCH)p Ft(.)390 3971 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
-4180 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_persistent_signal_)q
-(hand)q(ler)q(s)390 4290 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 4399 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 4509 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 4656 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 4864 y([V)-8 b(ariable])-3598
-b Fh(int)53 b(rl_change_environment)390 4974 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 5084 y(line)h(will)h(mo)s(dify)e(the)h
+b Ft(is)k(1.)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)3371
+299 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_sigwinch)390
+408 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 518 y Fs(SIGWINCH)p Ft(.)390 646 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 810 y([V)-8 b(ariable])-3598 b Fh(int)53
+b(rl_persistent_signal_)q(hand)q(ler)q(s)390 920 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 1029
+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
+1139 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
+1267 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
+1431 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_change_environment)390
+1541 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 1650 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
-5193 y Fs(SIGWINCH)390 5340 y Ft(The)f(default)g(v)-5
+1760 y Fs(SIGWINCH)390 1888 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.)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)275
-299 y(If)30 b(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 408 y(other)39 b(than)f(those)h(Readline)h(catc)m(hes)g
+b(1.)275 2052 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 2162 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 518 y(functions)30 b(to)h(do)f(the)h(necessary)g
-(terminal)g(and)e(in)m(ternal)i(state)h(clean)m(up)f(up)s(on)e(receipt)
-i(of)g(a)f(signal.)3350 693 y([F)-8 b(unction])-3599
+(con)m(v)m(enience)150 2271 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 2436 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_pending_signal)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 803 y Ft(Return)27 b(the)g(signal)h(n)m(um)m(b)s(er)e(of)i
+Fg(\))390 2545 y Ft(Return)27 b(the)g(signal)h(n)m(um)m(b)s(er)e(of)i
(the)f(most)h(recen)m(t)h(signal)f(Readline)g(receiv)m(ed)g(but)f(has)g
-(not)h(y)m(et)390 913 y(handled,)i(or)g(0)h(if)f(there)h(is)f(no)g(p)s
-(ending)f(signal.)3350 1088 y([F)-8 b(unction])-3599
+(not)h(y)m(et)390 2655 y(handled,)i(or)g(0)h(if)f(there)h(is)f(no)g(p)s
+(ending)f(signal.)3350 2819 y([F)-8 b(unction])-3599
b Fh(void)54 b(rl_cleanup_after_signal)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 1198 y Ft(This)33 b(function)h(will)g(reset)g(the)g(state)i
+Fg(\))390 2929 y Ft(This)33 b(function)h(will)g(reset)g(the)g(state)i
(of)e(the)g(terminal)g(to)h(what)f(it)g(w)m(as)g(b)s(efore)g
-Fs(readline\(\))390 1307 y Ft(w)m(as)c(called,)h(and)d(remo)m(v)m(e)j
+Fs(readline\(\))390 3039 y Ft(w)m(as)c(called,)h(and)d(remo)m(v)m(e)j
(the)f(Readline)g(signal)g(handlers)e(for)h(all)h(signals,)h(dep)s
-(ending)d(on)h(the)390 1417 y(v)-5 b(alues)31 b(of)f
+(ending)d(on)h(the)390 3148 y(v)-5 b(alues)31 b(of)f
Fs(rl_catch_signals)c Ft(and)k Fs(rl_catch_sigwinch)p
-Ft(.)3350 1592 y([F)-8 b(unction])-3599 b Fh(void)54
+Ft(.)3350 3313 y([F)-8 b(unction])-3599 b Fh(void)54
b(rl_free_line_state)c Fg(\()p Ff(v)m(oid)p Fg(\))390
-1702 y Ft(This)38 b(will)i(free)f(an)m(y)h(partial)g(state)g(asso)s
+3422 y Ft(This)38 b(will)i(free)f(an)m(y)h(partial)g(state)g(asso)s
(ciated)h(with)e(the)g(curren)m(t)g(input)f(line)i(\(undo)e(infor-)390
-1811 y(mation,)46 b(an)m(y)d(partial)h(history)e(en)m(try)-8
+3532 y(mation,)46 b(an)m(y)d(partial)h(history)e(en)m(try)-8
b(,)47 b(an)m(y)42 b(partially-en)m(tered)j(k)m(eyb)s(oard)d(macro,)47
-b(and)42 b(an)m(y)390 1921 y(partially-en)m(tered)50
+b(and)42 b(an)m(y)390 3641 y(partially-en)m(tered)50
b(n)m(umeric)d(argumen)m(t\).)94 b(This)47 b(should)g(b)s(e)g(called)i
-(b)s(efore)e Fs(rl_cleanup_)390 2030 y(after_signal\(\))p
+(b)s(efore)e Fs(rl_cleanup_)390 3751 y(after_signal\(\))p
Ft(.)74 b(The)42 b(Readline)h(signal)g(handler)f(for)h
Fs(SIGINT)e Ft(calls)i(this)g(to)g(ab)s(ort)g(the)390
-2140 y(curren)m(t)30 b(input)g(line.)3350 2315 y([F)-8
+3861 y(curren)m(t)30 b(input)g(line.)3350 4025 y([F)-8
b(unction])-3599 b Fh(void)54 b(rl_reset_after_signal)d
-Fg(\()p Ff(v)m(oid)p Fg(\))390 2425 y Ft(This)28 b(will)g(reinitialize)
+Fg(\()p Ff(v)m(oid)p Fg(\))390 4134 y Ft(This)28 b(will)g(reinitialize)
j(the)e(terminal)g(and)f(reinstall)h(an)m(y)g(Readline)g(signal)g
-(handlers,)f(dep)s(end-)390 2534 y(ing)j(on)f(the)g(v)-5
+(handlers,)f(dep)s(end-)390 4244 y(ing)j(on)f(the)g(v)-5
b(alues)31 b(of)g Fs(rl_catch_signals)26 b Ft(and)j Fs
-(rl_catch_sigwinch)p Ft(.)275 2710 y(If)j(an)g(application)i(w)m(an)m
+(rl_catch_sigwinch)p Ft(.)275 4408 y(If)j(an)g(application)i(w)m(an)m
(ts)g(to)f(force)g(Readline)h(to)f(handle)g(an)m(y)g(signals)g(that)g
-(ha)m(v)m(e)h(arriv)m(ed)f(while)150 2819 y(it)j(has)g(b)s(een)f
+(ha)m(v)m(e)h(arriv)m(ed)f(while)150 4518 y(it)j(has)g(b)s(een)f
(executing,)j Fs(rl_check_signals\(\))31 b Ft(will)36
b(call)h(Readline's)g(in)m(ternal)g(signal)f(handler)f(if)150
-2929 y(there)i(are)g(an)m(y)g(p)s(ending)e(signals.)61
+4628 y(there)i(are)g(an)m(y)g(p)s(ending)e(signals.)61
b(This)36 b(is)g(primarily)h(in)m(tended)f(for)h(those)g(applications)h
-(that)f(use)150 3039 y(a)h(custom)g Fs(rl_getc_function)33
+(that)f(use)150 4737 y(a)h(custom)g Fs(rl_getc_function)33
b Ft(\(see)39 b(Section)g(2.3)g([Readline)f(V)-8 b(ariables],)42
-b(page)c(27\))h(and)e(wish)g(to)150 3148 y(handle)30
+b(page)c(28\))h(and)e(wish)g(to)150 4847 y(handle)30
b(signals)h(receiv)m(ed)h(while)e(w)m(aiting)i(for)e(input.)3350
-3324 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_check_signals)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 3433 y Ft(If)40 b(there)h(are)g(an)m(y)g
+5011 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_check_signals)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 5121 y Ft(If)40 b(there)h(are)g(an)m(y)g
(p)s(ending)e(signals,)44 b(call)e(Readline's)g(in)m(ternal)f(signal)g
-(handling)f(functions)390 3543 y(to)j(pro)s(cess)g(them.)77
+(handling)f(functions)390 5230 y(to)j(pro)s(cess)g(them.)77
b Fs(rl_pending_signal\(\))38 b Ft(can)43 b(b)s(e)f(used)g(indep)s
-(enden)m(tly)f(to)j(determine)390 3652 y(whether)30 b(or)g(not)h(there)
-f(are)h(an)m(y)g(p)s(ending)e(signals.)275 3828 y(If)38
-b(an)i(application)g(do)s(es)f(not)h(wish)f(Readline)h(to)g(catc)m(h)h
-Fs(SIGWINCH)p Ft(,)e(it)h(ma)m(y)g(call)h Fs(rl_resize_)150
-3937 y(terminal\(\))24 b Ft(or)j Fs(rl_set_screen_size\(\))22
-b Ft(to)28 b(force)g(Readline)f(to)h(up)s(date)f(its)g(idea)h(of)f(the)
-g(terminal)150 4047 y(size)k(when)f(a)g Fs(SIGWINCH)e
-Ft(is)j(receiv)m(ed.)3350 4222 y([F)-8 b(unction])-3599
-b Fh(void)54 b(rl_echo_signal_char)d Fg(\()p Ff(in)m(t)33
-b(sig)p Fg(\))390 4332 y Ft(If)43 b(an)g(application)i(wishes)e(to)i
-(install)f(its)g(o)m(wn)f(signal)i(handlers,)h(but)c(still)j(ha)m(v)m
-(e)g(readline)390 4441 y(displa)m(y)31 b(c)m(haracters)h(that)f
-(generate)h(signals,)f(calling)h(this)e(function)g(with)g
-Fj(sig)39 b Ft(set)31 b(to)g Fs(SIGINT)p Ft(,)390 4551
-y Fs(SIGQUIT)p Ft(,)e(or)h Fs(SIGTSTP)e Ft(will)j(displa)m(y)g(the)f(c)
-m(haracter)i(generating)g(that)f(signal.)3350 4726 y([F)-8
-b(unction])-3599 b Fh(void)54 b(rl_resize_terminal)c
-Fg(\()p Ff(v)m(oid)p Fg(\))390 4836 y Ft(Up)s(date)30
-b(Readline's)h(in)m(ternal)g(screen)g(size)g(b)m(y)f(reading)h(v)-5
-b(alues)31 b(from)f(the)g(k)m(ernel.)3350 5011 y([F)-8
-b(unction])-3599 b Fh(void)54 b(rl_set_screen_size)c
+(enden)m(tly)f(to)j(determine)390 5340 y(whether)30 b(or)g(not)h(there)
+f(are)h(an)m(y)g(p)s(ending)e(signals.)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)275
+299 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 408 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 518 y(size)k(when)f(it)h
+(receiv)m(es)h(a)e Fs(SIGWINCH)p Ft(.)3350 703 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 813 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
+922 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 1032 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 1217 y([F)-8 b(unction])-3599 b
+Fh(void)54 b(rl_resize_terminal)c Fg(\()p Ff(v)m(oid)p
+Fg(\))390 1326 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 1511 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_set_screen_size)c
Fg(\()p Ff(in)m(t)34 b(ro)m(ws,)f(in)m(t)g(cols)p Fg(\))390
-5121 y Ft(Set)28 b(Readline's)h(idea)f(of)g(the)g(terminal)g(size)h(to)
+1621 y Ft(Set)28 b(Readline's)h(idea)f(of)g(the)g(terminal)g(size)h(to)
g Fj(ro)m(ws)i Ft(ro)m(ws)d(and)f Fj(cols)33 b Ft(columns.)40
-b(If)27 b(either)h Fj(ro)m(ws)390 5230 y Ft(or)35 b Fj(columns)k
+b(If)27 b(either)h Fj(ro)m(ws)390 1730 y Ft(or)35 b Fj(columns)k
Ft(is)c(less)g(than)g(or)g(equal)h(to)g(0,)h(Readline's)f(idea)g(of)f
-(that)h(terminal)f(dimension)g(is)390 5340 y(unc)m(hanged.)p
-eop end
-%%Page: 50 54
-TeXDict begin 50 53 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(50)275
-299 y(If)32 b(an)i(application)g(do)s(es)f(not)h(w)m(an)m(t)g(to)g
-(install)g(a)g Fs(SIGWINCH)d Ft(handler,)j(but)e(is)i(still)g(in)m
-(terested)g(in)150 408 y(the)d(screen)f(dimensions,)g(Readline's)h
-(idea)g(of)g(the)f(screen)h(size)g(ma)m(y)g(b)s(e)f(queried.)3350
-591 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_get_screen_size)c
+(that)h(terminal)f(dimension)g(is)390 1840 y(unc)m(hanged.)k(This)27
+b(is)h(in)m(tended)g(to)g(tell)h(Readline)f(the)g(ph)m(ysical)g
+(dimensions)f(of)h(the)g(terminal,)390 1949 y(and)44
+b(is)h(used)f(in)m(ternally)i(to)f(calculate)j(the)d(maxim)m(um)f(n)m
+(um)m(b)s(er)g(of)h(c)m(haracters)h(that)f(ma)m(y)390
+2059 y(app)s(ear)30 b(on)g(a)h(single)g(line)g(and)e(on)i(the)f
+(screen.)275 2244 y(If)i(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 2353 y(the)d(screen)f(dimensions,)g(it)h(ma)m(y)g
+(query)f(Readline's)h(idea)g(of)f(the)h(screen)f(size.)3350
+2538 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_get_screen_size)c
Fg(\()p Ff(in)m(t)34 b(*ro)m(ws,)f(in)m(t)g(*cols)p Fg(\))390
-701 y Ft(Return)c(Readline's)i(idea)g(of)f(the)g(terminal's)h(size)g
+2648 y Ft(Return)c(Readline's)i(idea)g(of)f(the)g(terminal's)h(size)g
(in)f(the)g(v)-5 b(ariables)31 b(p)s(oin)m(ted)f(to)g(b)m(y)g(the)h
-(argu-)390 810 y(men)m(ts.)3350 993 y([F)-8 b(unction])-3599
+(argu-)390 2758 y(men)m(ts.)3350 2942 y([F)-8 b(unction])-3599
b Fh(void)54 b(rl_reset_screen_size)d Fg(\()p Ff(v)m(oid)p
-Fg(\))390 1102 y Ft(Cause)30 b(Readline)h(to)g(reobtain)g(the)g(screen)
-f(size)h(and)f(recalculate)j(its)e(dimensions.)275 1285
+Fg(\))390 3052 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 3237
y(The)e(follo)m(wing)j(functions)e(install)h(and)f(remo)m(v)m(e)i
-(Readline's)f(signal)g(handlers.)3350 1467 y([F)-8 b(unction])-3599
+(Readline's)f(signal)g(handlers.)3350 3422 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_set_signals)d Fg(\()p Ff(v)m(oid)p Fg(\))390
-1577 y Ft(Install)40 b(Readline's)h(signal)f(handler)f(for)h
+3531 y Ft(Install)40 b(Readline's)h(signal)f(handler)f(for)h
Fs(SIGINT)p Ft(,)h Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p Ft(,)h
-Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)390 1686 y Fs(SIGTSTP)p
+Fs(SIGHUP)p Ft(,)g Fs(SIGALRM)p Ft(,)390 3641 y Fs(SIGTSTP)p
Ft(,)35 b Fs(SIGTTIN)p Ft(,)f Fs(SIGTTOU)p Ft(,)h(and)g
Fs(SIGWINCH)p Ft(,)f(dep)s(ending)g(on)h(the)g(v)-5 b(alues)36
-b(of)f Fs(rl_catch_)390 1796 y(signals)28 b Ft(and)i
-Fs(rl_catch_sigwinch)p Ft(.)3350 1978 y([F)-8 b(unction])-3599
+b(of)f Fs(rl_catch_)390 3750 y(signals)28 b Ft(and)i
+Fs(rl_catch_sigwinch)p Ft(.)3350 3935 y([F)-8 b(unction])-3599
b Fh(int)53 b(rl_clear_signals)e Fg(\()p Ff(v)m(oid)p
-Fg(\))390 2088 y Ft(Remo)m(v)m(e)32 b(all)f(of)g(the)g(Readline)g
+Fg(\))390 4045 y Ft(Remo)m(v)m(e)32 b(all)f(of)g(the)g(Readline)g
(signal)g(handlers)e(installed)i(b)m(y)f Fs(rl_set_signals\(\))p
-Ft(.)150 2327 y Fr(2.6)68 b(Custom)45 b(Completers)150
-2487 y Ft(T)m(ypically)-8 b(,)47 b(a)c(program)g(that)g(reads)f
+Ft(.)150 4286 y Fr(2.6)68 b(Custom)45 b(Completers)150
+4446 y Ft(T)m(ypically)-8 b(,)47 b(a)c(program)g(that)g(reads)f
(commands)h(from)f(the)g(user)g(has)h(a)g(w)m(a)m(y)g(of)g(disam)m
-(biguating)150 2596 y(commands)35 b(and)g(data.)56 b(If)35
+(biguating)150 4555 y(commands)35 b(and)g(data.)56 b(If)35
b(y)m(our)h(program)f(is)g(one)h(of)g(these,)h(then)e(it)h(can)g(pro)m
-(vide)f(completion)i(for)150 2706 y(commands,)29 b(data,)i(or)e(b)s
+(vide)f(completion)i(for)150 4665 y(commands,)29 b(data,)i(or)e(b)s
(oth.)39 b(The)29 b(follo)m(wing)i(sections)f(describ)s(e)e(ho)m(w)i(y)
-m(our)f(program)g(and)f(Readline)150 2816 y(co)s(op)s(erate)j(to)h(pro)
-m(vide)e(this)g(service.)150 3014 y Fi(2.6.1)63 b(Ho)m(w)40
-b(Completing)i(W)-10 b(orks)150 3161 y Ft(In)26 b(order)f(to)i
+m(our)f(program)g(and)f(Readline)150 4774 y(co)s(op)s(erate)j(to)h(pro)
+m(vide)e(this)g(service.)150 4974 y Fi(2.6.1)63 b(Ho)m(w)40
+b(Completing)i(W)-10 b(orks)150 5121 y Ft(In)26 b(order)f(to)i
(complete)h(some)f(text,)h(the)f(full)f(list)h(of)f(p)s(ossible)g
(completions)h(m)m(ust)g(b)s(e)e(a)m(v)-5 b(ailable.)42
-b(That)150 3270 y(is,)28 b(it)f(is)g(not)g(p)s(ossible)g(to)g
+b(That)150 5230 y(is,)28 b(it)f(is)g(not)g(p)s(ossible)g(to)g
(accurately)i(expand)d(a)h(partial)h(w)m(ord)f(without)f(kno)m(wing)i
-(all)f(of)g(the)g(p)s(ossible)150 3380 y(w)m(ords)33
+(all)f(of)g(the)g(p)s(ossible)150 5340 y(w)m(ords)33
b(whic)m(h)g(mak)m(e)h(sense)f(in)g(that)g(con)m(text.)51
b(The)33 b(Readline)h(library)e(pro)m(vides)i(the)f(user)f(in)m
-(terface)150 3489 y(to)d(completion,)h(and)e(t)m(w)m(o)i(of)e(the)h
-(most)f(common)h(completion)h(functions:)39 b(\014lename)29
-b(and)e(username.)150 3599 y(F)-8 b(or)39 b(completing)g(other)f(t)m
-(yp)s(es)g(of)h(text,)i(y)m(ou)d(m)m(ust)g(write)g(y)m(our)g(o)m(wn)g
-(completion)h(function.)64 b(This)150 3709 y(section)32
-b(describ)s(es)d(exactly)j(what)f(suc)m(h)f(functions)g(m)m(ust)g(do,)g
-(and)g(pro)m(vides)g(an)h(example.)275 3842 y(There)e(are)i(three)g(ma)
-5 b(jor)30 b(functions)g(used)g(to)h(p)s(erform)e(completion:)199
-3976 y(1.)61 b(The)43 b(user-in)m(terface)h(function)f
-Fs(rl_complete\(\))p Ft(.)76 b(This)43 b(function)g(is)g(called)i(with)
-e(the)h(same)330 4086 y(argumen)m(ts)36 b(as)g(other)g(bindable)f
-(Readline)h(functions:)51 b Fj(coun)m(t)38 b Ft(and)d
-Fj(in)m(v)m(oking)p 3107 4086 28 4 v 41 w(k)m(ey)p Ft(.)57
-b(It)36 b(isolates)330 4195 y(the)i(w)m(ord)f(to)h(b)s(e)f(completed)i
-(and)d(calls)j Fs(rl_completion_matches\(\))31 b Ft(to)39
-b(generate)g(a)f(list)g(of)330 4305 y(p)s(ossible)31
-b(completions.)44 b(It)31 b(then)g(either)g(lists)h(the)f(p)s(ossible)g
-(completions,)h(inserts)f(the)g(p)s(ossible)330 4415
-y(completions,)50 b(or)45 b(actually)i(p)s(erforms)d(the)h(completion,)
-50 b(dep)s(ending)44 b(on)h(whic)m(h)g(b)s(eha)m(vior)g(is)330
-4524 y(desired.)199 4658 y(2.)61 b(The)33 b(in)m(ternal)h(function)g
-Fs(rl_completion_matches\(\))27 b Ft(uses)33 b(an)g
-(application-supplied)h Fj(gener-)330 4768 y(ator)44
-b Ft(function)37 b(to)h(generate)g(the)f(list)h(of)f(p)s(ossible)f
-(matc)m(hes,)k(and)d(then)f(returns)g(the)h(arra)m(y)h(of)330
-4877 y(these)h(matc)m(hes.)68 b(The)39 b(caller)h(should)e(place)i(the)
+(terface)p eop end
+%%Page: 52 56
+TeXDict begin 52 55 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(52)150
+299 y(to)29 b(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
+408 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 518 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
+644 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 771 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 880 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 880
+28 4 v 41 w(k)m(ey)p Ft(.)57 b(It)36 b(isolates)330 990
+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 1100 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 1209 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 1319 y(desired.)199 1445 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
+1555 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
+1664 y(these)h(matc)m(hes.)68 b(The)39 b(caller)h(should)e(place)i(the)
f(address)f(of)h(its)g(generator)i(function)d(in)h Fs(rl_)330
-4987 y(completion_entry_functio)o(n)p Ft(.)199 5121 y(3.)61
+1774 y(completion_entry_functio)o(n)p Ft(.)199 1900 y(3.)61
b(The)22 b(generator)i(function)f(is)g(called)h(rep)s(eatedly)f(from)g
-Fs(rl_completion_matches\(\))o Ft(,)c(returning)330 5230
+Fs(rl_completion_matches\(\))o Ft(,)c(returning)330 2010
y(a)33 b(string)g(eac)m(h)h(time.)48 b(The)32 b(argumen)m(ts)h(to)h
(the)f(generator)h(function)e(are)h Fj(text)j Ft(and)c
-Fj(state)p Ft(.)49 b Fj(text)330 5340 y Ft(is)32 b(the)g(partial)h(w)m
+Fj(state)p Ft(.)49 b Fj(text)330 2119 y Ft(is)32 b(the)g(partial)h(w)m
(ord)f(to)h(b)s(e)e(completed.)47 b Fj(state)38 b Ft(is)32
-b(zero)h(the)f(\014rst)g(time)g(the)h(function)e(is)h(called,)p
-eop end
-%%Page: 51 55
-TeXDict begin 51 54 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(51)330
-299 y(allo)m(wing)46 b(the)e(generator)h(to)f(p)s(erform)f(an)m(y)h
+b(zero)h(the)f(\014rst)g(time)g(the)h(function)e(is)h(called,)330
+2229 y(allo)m(wing)46 b(the)e(generator)h(to)f(p)s(erform)f(an)m(y)h
(necessary)g(initialization,)51 b(and)43 b(a)h(p)s(ositiv)m(e)h(non-)
-330 408 y(zero)30 b(in)m(teger)h(for)d(eac)m(h)j(subsequen)m(t)d(call.)
-42 b(The)29 b(generator)h(function)f(returns)f Fs(\(char)h(*\)NULL)e
-Ft(to)330 518 y(inform)37 b Fs(rl_completion_matches\(\))32
-b Ft(that)39 b(there)f(are)g(no)g(more)g(p)s(ossibilities)h(left.)65
-b(Usually)330 628 y(the)39 b(generator)h(function)e(computes)h(the)g
-(list)g(of)g(p)s(ossible)f(completions)i(when)e Fj(state)45
-b Ft(is)39 b(zero,)330 737 y(and)25 b(returns)f(them)i(one)f(at)i(a)f
-(time)g(on)f(subsequen)m(t)g(calls.)40 b(Eac)m(h)26 b(string)g(the)g
-(generator)g(function)330 847 y(returns)31 b(as)h(a)g(matc)m(h)h(m)m
-(ust)f(b)s(e)f(allo)s(cated)j(with)d Fs(malloc\(\))p
-Ft(;)g(Readline)h(frees)g(the)g(strings)g(when)330 956
-y(it)i(has)g(\014nished)e(with)i(them.)51 b(Suc)m(h)33
-b(a)h(generator)h(function)f(is)g(referred)f(to)h(as)h(an)e
-Fj(application-)330 1066 y(sp)s(eci\014c)d(completion)i(function)p
-Ft(.)3350 1237 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete)c
+330 2339 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 2448 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 2558 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
+2667 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
+2777 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 2887 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 2996 y(sp)s(eci\014c)d(completion)i(function)p
+Ft(.)3350 3156 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete)c
Fg(\()p Ff(in)m(t)34 b(ignore,)e(in)m(t)i(in)m(v)m(oking)p
-2020 1237 30 5 v 43 w(k)m(ey)p Fg(\))390 1347 y Ft(Complete)d(the)g(w)m
+2020 3156 30 5 v 43 w(k)m(ey)p Fg(\))390 3266 y Ft(Complete)d(the)g(w)m
(ord)g(at)g(or)g(b)s(efore)f(p)s(oin)m(t.)41 b(Y)-8 b(ou)32
b(ha)m(v)m(e)g(supplied)d(the)i(function)f(that)h(do)s(es)g(the)390
-1456 y(initial)42 b(simple)f(matc)m(hing)i(selection)f(algorithm)h
+3375 y(initial)42 b(simple)f(matc)m(hing)i(selection)f(algorithm)h
(\(see)f Fs(rl_completion_matches\(\))o Ft(\).)67 b(The)390
-1566 y(default)31 b(is)f(to)h(do)f(\014lename)h(completion.)3371
-1737 y([V)-8 b(ariable])-3598 b Fh(rl_compentry_func_t)58
-b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 1846
+3485 y(default)31 b(is)f(to)h(do)f(\014lename)h(completion.)3371
+3645 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 3754
y Ft(This)39 b(is)h(a)g(p)s(oin)m(ter)g(to)h(the)f(generator)h
(function)f(for)f Fs(rl_completion_matches\(\))p Ft(.)63
-b(If)40 b(the)390 1956 y(v)-5 b(alue)24 b(of)g Fs
+b(If)40 b(the)390 3864 y(v)-5 b(alue)24 b(of)g Fs
(rl_completion_entry_funct)o(ion)17 b Ft(is)24 b Fs(NULL)f
Ft(then)g(the)h(default)g(\014lename)g(generator)390
-2066 y(function,)49 b Fs(rl_filename_completion_)o(fun)o(ctio)o(n\(\))p
+3973 y(function,)49 b Fs(rl_filename_completion_)o(fun)o(ctio)o(n\(\))p
Ft(,)42 b(is)j(used.)84 b(An)44 b Fj(application-sp)s(eci\014c)390
-2175 y(completion)22 b(function)f Ft(is)g(a)h(function)e(whose)h
+4083 y(completion)22 b(function)f Ft(is)g(a)h(function)e(whose)h
(address)f(is)h(assigned)h(to)f Fs(rl_completion_entry_)390
-2285 y(function)28 b Ft(and)i(whose)g(return)f(v)-5 b(alues)31
+4193 y(function)28 b Ft(and)i(whose)g(return)f(v)-5 b(alues)31
b(are)g(used)e(to)j(generate)f(p)s(ossible)f(completions.)150
-2475 y Fi(2.6.2)63 b(Completion)41 b(F)-10 b(unctions)150
-2622 y Ft(Here)31 b(is)f(the)h(complete)h(list)f(of)f(callable)j
+4376 y Fi(2.6.2)63 b(Completion)41 b(F)-10 b(unctions)150
+4523 y Ft(Here)31 b(is)f(the)h(complete)h(list)f(of)f(callable)j
(completion)e(functions)f(presen)m(t)h(in)f(Readline.)3350
-2793 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_complete_internal)f
-Fg(\()p Ff(in)m(t)33 b(what)p 1861 2793 V 44 w(to)p 1994
-2793 V 43 w(do)p Fg(\))390 2903 y Ft(Complete)k(the)g(w)m(ord)f(at)i
-(or)e(b)s(efore)g(p)s(oin)m(t.)60 b Fj(what)p 2208 2903
-28 4 v 40 w(to)p 2328 2903 V 41 w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e
-(with)g(the)h(com-)390 3012 y(pletion.)44 b(A)31 b(v)-5
+4682 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 4682 V 44 w(to)p 1994
+4682 V 43 w(do)p Fg(\))390 4792 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 4792
+28 4 v 40 w(to)p 2328 4792 V 41 w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e
+(with)g(the)h(com-)390 4902 y(pletion.)44 b(A)31 b(v)-5
b(alue)32 b(of)f(`)p Fs(?)p Ft(')g(means)h(list)f(the)h(p)s(ossible)e
(completions.)45 b(`)p Fs(TAB)p Ft(')31 b(means)g(do)g(standard)390
-3122 y(completion.)44 b(`)p Fs(*)p Ft(')32 b(means)f(insert)g(all)h(of)
+5011 y(completion.)44 b(`)p Fs(*)p Ft(')32 b(means)f(insert)g(all)h(of)
f(the)g(p)s(ossible)g(completions.)44 b(`)p Fs(!)p Ft(')32
-b(means)f(to)h(displa)m(y)f(all)390 3231 y(of)k(the)f(p)s(ossible)g
+b(means)f(to)h(displa)m(y)f(all)390 5121 y(of)k(the)f(p)s(ossible)g
(completions,)j(if)d(there)h(is)f(more)g(than)h(one,)g(as)g(w)m(ell)g
-(as)g(p)s(erforming)e(partial)390 3341 y(completion.)41
+(as)g(p)s(erforming)e(partial)390 5230 y(completion.)41
b(`)p Fs(@)p Ft(')27 b(is)h(similar)f(to)h(`)p Fs(!)p
Ft(',)h(but)d(p)s(ossible)h(completions)i(are)e(not)h(listed)g(if)f
-(the)g(p)s(ossible)390 3451 y(completions)32 b(share)e(a)g(common)h
-(pre\014x.)3350 3622 y([F)-8 b(unction])-3599 b Fh(int)53
-b(rl_complete)c Fg(\()p Ff(in)m(t)34 b(ignore,)e(in)m(t)i(in)m(v)m
-(oking)p 2020 3622 30 5 v 43 w(k)m(ey)p Fg(\))390 3731
-y Ft(Complete)42 b(the)f(w)m(ord)g(at)h(or)f(b)s(efore)g(p)s(oin)m(t.)
-73 b(Y)-8 b(ou)41 b(ha)m(v)m(e)i(supplied)c(the)j(function)f(that)g(do)
-s(es)390 3841 y(the)33 b(initial)h(simple)f(matc)m(hing)h(selection)h
+(the)g(p)s(ossible)390 5340 y(completions)32 b(share)e(a)g(common)h
+(pre\014x.)p eop end
+%%Page: 53 57
+TeXDict begin 53 56 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(53)3350
+299 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 299 30 5 v 43 w(k)m(ey)p Fg(\))390 408 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 518 y(the)33 b(initial)h(simple)f(matc)m(hing)h(selection)h
(algorithm)f(\(see)g Fs(rl_completion_matches\(\))27
-b Ft(and)390 3950 y Fs(rl_completion_entry_func)o(tion)o
+b Ft(and)390 628 y Fs(rl_completion_entry_func)o(tion)o
Ft(\).)52 b(The)35 b(default)h(is)g(to)h(do)e(\014lename)h(completion.)
-59 b(This)390 4060 y(calls)32 b Fs(rl_complete_internal\(\))24
+59 b(This)390 737 y(calls)32 b Fs(rl_complete_internal\(\))24
b Ft(with)30 b(an)g(argumen)m(t)h(dep)s(ending)e(on)h
-Fj(in)m(v)m(oking)p 3314 4060 28 4 v 41 w(k)m(ey)p Ft(.)3350
-4231 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_possible_completio)q(ns)
-f Fg(\()p Ff(in)m(t)33 b(coun)m(t,)h(in)m(t)f(in)m(v)m(oking)p
-2622 4231 30 5 v 43 w(k)m(ey)p Fg(\))390 4340 y Ft(List)41
+Fj(in)m(v)m(oking)p 3314 737 28 4 v 41 w(k)m(ey)p Ft(.)3350
+923 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 923 30 5 v 43 w(k)m(ey)p Fg(\))390 1032 y Ft(List)41
b(the)f(p)s(ossible)g(completions.)73 b(See)40 b(description)h(of)g
Fs(rl_complete)27 b(\(\))p Ft(.)70 b(This)40 b(calls)i
-Fs(rl_)390 4450 y(complete_internal\(\))25 b Ft(with)30
-b(an)g(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)3350 4621
+Fs(rl_)390 1142 y(complete_internal\(\))25 b Ft(with)30
+b(an)g(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)3350 1327
y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_insert_completions)f
Fg(\()p Ff(in)m(t)34 b(coun)m(t,)f(in)m(t)g(in)m(v)m(oking)p
-2517 4621 V 44 w(k)m(ey)p Fg(\))390 4731 y Ft(Insert)g(the)h(list)g(of)
+2517 1327 V 44 w(k)m(ey)p Fg(\))390 1437 y Ft(Insert)g(the)h(list)g(of)
g(p)s(ossible)f(completions)i(in)m(to)f(the)g(line,)h(deleting)g(the)f
-(partially-completed)390 4840 y(w)m(ord.)44 b(See)32
+(partially-completed)390 1546 y(w)m(ord.)44 b(See)32
b(description)g(of)g Fs(rl_complete\(\))p Ft(.)41 b(This)31
b(calls)i Fs(rl_complete_internal\(\))25 b Ft(with)390
-4950 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p Ft('.)3350
-5121 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_completion_mode)e
-Fg(\()p Ff(rl)p 1455 5121 V 44 w(command)p 1919 5121
-V 44 w(func)p 2147 5121 V 46 w(t)33 b(*cfunc)p Fg(\))390
-5230 y Ft(Returns)40 b(the)i(appropriate)g(v)-5 b(alue)41
+1656 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p Ft('.)3350
+1841 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_completion_mode)e
+Fg(\()p Ff(rl)p 1455 1841 V 44 w(command)p 1919 1841
+V 44 w(func)p 2147 1841 V 46 w(t)33 b(*cfunc)p Fg(\))390
+1951 y Ft(Returns)40 b(the)i(appropriate)g(v)-5 b(alue)41
b(to)i(pass)e(to)h Fs(rl_complete_internal\(\))35 b Ft(dep)s(ending)40
-b(on)390 5340 y(whether)g Fj(cfunc)46 b Ft(w)m(as)41
+b(on)390 2060 y(whether)g Fj(cfunc)46 b Ft(w)m(as)41
b(called)h(t)m(wice)g(in)f(succession)g(and)f(the)h(v)-5
-b(alues)41 b(of)g(the)g Fs(show-all-if-)p eop end
-%%Page: 52 56
-TeXDict begin 52 55 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(52)390
-299 y Fs(ambiguous)25 b Ft(and)i Fs(show-all-if-unmodified)21
-b Ft(v)-5 b(ariables.)41 b(Application-sp)s(eci\014c)29
-b(completion)390 408 y(functions)h(ma)m(y)h(use)f(this)g(function)g(to)
-h(presen)m(t)g(the)f(same)h(in)m(terface)h(as)f Fs(rl_complete\(\))p
-Ft(.)3350 589 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e
+b(alues)41 b(of)g(the)g Fs(show-all-if-)390 2170 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 2279
+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
+2465 y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e
(rl_completion_matches)g Fg(\()p Ff(const)34 b(c)m(har)g(*text,)565
-698 y(rl)p 639 698 30 5 v 44 w(comp)s(en)m(try)p 1145
-698 V 44 w(func)p 1373 698 V 45 w(t)f(*en)m(try)p 1767
-698 V 44 w(func)p Fg(\))390 808 y Ft(Returns)k(an)h(arra)m(y)g(of)g
+2574 y(rl)p 639 2574 V 44 w(comp)s(en)m(try)p 1145 2574
+V 44 w(func)p 1373 2574 V 45 w(t)f(*en)m(try)p 1767 2574
+V 44 w(func)p Fg(\))390 2684 y Ft(Returns)k(an)h(arra)m(y)g(of)g
(strings)g(whic)m(h)f(is)h(a)g(list)h(of)f(completions)h(for)e
-Fj(text)p Ft(.)64 b(If)38 b(there)g(are)g(no)390 917
+Fj(text)p Ft(.)64 b(If)38 b(there)g(are)g(no)390 2794
y(completions,)f(returns)c Fs(NULL)p Ft(.)52 b(The)34
b(\014rst)f(en)m(try)i(in)f(the)h(returned)e(arra)m(y)i(is)g(the)f
-(substitution)390 1027 y(for)26 b Fj(text)p Ft(.)40 b(The)26
+(substitution)390 2903 y(for)26 b Fj(text)p Ft(.)40 b(The)26
b(remaining)h(en)m(tries)g(are)g(the)f(p)s(ossible)g(completions.)40
-b(The)26 b(arra)m(y)h(is)f(terminated)390 1137 y(with)k(a)h
-Fs(NULL)e Ft(p)s(oin)m(ter.)390 1270 y Fj(en)m(try)p
-603 1270 28 4 v 40 w(func)44 b Ft(is)c(a)g(function)f(of)h(t)m(w)m(o)g
+b(The)26 b(arra)m(y)h(is)f(terminated)390 3013 y(with)k(a)h
+Fs(NULL)e Ft(p)s(oin)m(ter.)390 3148 y Fj(en)m(try)p
+603 3148 28 4 v 40 w(func)44 b Ft(is)c(a)g(function)f(of)h(t)m(w)m(o)g
(args,)j(and)38 b(returns)h(a)g Fs(char)30 b(*)p Ft(.)67
-b(The)39 b(\014rst)g(argumen)m(t)h(is)390 1379 y Fj(text)p
+b(The)39 b(\014rst)g(argumen)m(t)h(is)390 3257 y Fj(text)p
Ft(.)66 b(The)39 b(second)f(is)h(a)g(state)h(argumen)m(t;)j(it)c(is)g
(zero)g(on)g(the)g(\014rst)f(call,)k(and)c(non-zero)h(on)390
-1489 y(subsequen)m(t)33 b(calls.)52 b Fj(en)m(try)p 1320
-1489 V 41 w(func)38 b Ft(returns)33 b(a)h Fs(NULL)f Ft(p)s(oin)m(ter)g
-(to)i(the)f(caller)h(when)e(there)h(are)g(no)390 1599
-y(more)d(matc)m(hes.)3350 1779 y([F)-8 b(unction])-3599
+3367 y(subsequen)m(t)33 b(calls.)52 b Fj(en)m(try)p 1320
+3367 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 3476
+y(more)d(matc)m(hes.)3350 3662 y([F)-8 b(unction])-3599
b Fh(char)54 b(*)e(rl_filename_completion)q(_fu)q(nct)q(ion)g
-Fg(\()p Ff(const)34 b(c)m(har)g(*text,)e(in)m(t)565 1888
-y(state)p Fg(\))390 1998 y Ft(A)26 b(generator)h(function)e(for)g
+Fg(\()p Ff(const)34 b(c)m(har)g(*text,)e(in)m(t)565 3771
+y(state)p Fg(\))390 3881 y Ft(A)26 b(generator)h(function)e(for)g
(\014lename)h(completion)h(in)e(the)h(general)h(case.)40
-b Fj(text)28 b Ft(is)e(a)g(partial)h(\014le-)390 2107
+b Fj(text)28 b Ft(is)e(a)g(partial)h(\014le-)390 3991
y(name.)38 b(The)21 b(Bash)g(source)h(is)g(a)f(useful)g(reference)h
(for)f(writing)h(application-sp)s(eci\014c)h(completion)390
-2217 y(functions)30 b(\(the)h(Bash)f(completion)i(functions)e(call)i
-(this)e(and)g(other)g(Readline)h(functions\).)3350 2397
+4100 y(functions)30 b(\(the)h(Bash)f(completion)i(functions)e(call)i
+(this)e(and)g(other)g(Readline)h(functions\).)3350 4285
y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_username_completion)q
(_fu)q(nct)q(ion)g Fg(\()p Ff(const)34 b(c)m(har)g(*text,)e(in)m(t)565
-2507 y(state)p Fg(\))390 2616 y Ft(A)d(completion)g(generator)h(for)e
+4395 y(state)p Fg(\))390 4505 y Ft(A)d(completion)g(generator)h(for)e
(usernames.)40 b Fj(text)31 b Ft(con)m(tains)f(a)f(partial)g(username)f
-(preceded)g(b)m(y)390 2726 y(a)j(random)f(c)m(haracter)i(\(usually)e(`)
+(preceded)g(b)m(y)390 4614 y(a)j(random)f(c)m(haracter)i(\(usually)e(`)
p Fs(~)p Ft('\).)42 b(As)31 b(with)f(all)h(completion)h(generators,)g
-Fj(state)37 b Ft(is)31 b(zero)g(on)390 2836 y(the)g(\014rst)e(call)j
-(and)e(non-zero)h(for)f(subsequen)m(t)f(calls.)150 3032
+Fj(state)37 b Ft(is)31 b(zero)g(on)390 4724 y(the)g(\014rst)e(call)j
+(and)e(non-zero)h(for)f(subsequen)m(t)f(calls.)150 4924
y Fi(2.6.3)63 b(Completion)41 b(V)-10 b(ariables)3371
-3226 y Ft([V)i(ariable])-3598 b Fh(rl_compentry_func_t)58
-b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 3336
+5121 y Ft([V)i(ariable])-3598 b Fh(rl_compentry_func_t)58
+b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 5230
y Ft(A)34 b(p)s(oin)m(ter)f(to)h(the)g(generator)h(function)e(for)g
Fs(rl_completion_matches\(\))p Ft(.)44 b Fs(NULL)32 b
-Ft(means)h(to)390 3445 y(use)d Fs(rl_filename_completion_fu)o(nct)o
-(ion\()o(\))p Ft(,)25 b(the)30 b(default)h(\014lename)f(completer.)3371
-3626 y([V)-8 b(ariable])-3598 b Fh(rl_completion_func_t)58
+Ft(means)h(to)390 5340 y(use)d Fs(rl_filename_completion_fu)o(nct)o
+(ion\()o(\))p Ft(,)25 b(the)30 b(default)h(\014lename)f(completer.)p
+eop end
+%%Page: 54 58
+TeXDict begin 54 57 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(54)3371
+299 y([V)-8 b(ariable])-3598 b Fh(rl_completion_func_t)58
b(*)53 b(rl_attempted_completio)q(n_f)q(unct)q(ion)390
-3735 y Ft(A)35 b(p)s(oin)m(ter)g(to)g(an)g(alternativ)m(e)i(function)d
+408 y Ft(A)35 b(p)s(oin)m(ter)g(to)g(an)g(alternativ)m(e)i(function)d
(to)i(create)g(matc)m(hes.)55 b(The)34 b(function)h(is)f(called)i(with)
-390 3845 y Fj(text)p Ft(,)26 b Fj(start)p Ft(,)f(and)d
+390 518 y Fj(text)p Ft(,)26 b Fj(start)p Ft(,)f(and)d
Fj(end)p Ft(.)38 b Fj(start)25 b Ft(and)e Fj(end)j Ft(are)d(indices)g
(in)g Fs(rl_line_buffer)c Ft(de\014ning)j(the)h(b)s(ound-)390
-3954 y(aries)j(of)h Fj(text)p Ft(,)h(whic)m(h)d(is)h(a)h(c)m(haracter)g
+628 y(aries)j(of)h Fj(text)p Ft(,)h(whic)m(h)d(is)h(a)h(c)m(haracter)g
(string.)39 b(If)26 b(this)g(function)f(exists)i(and)e(returns)g
-Fs(NULL)p Ft(,)h(or)g(if)390 4064 y(this)c(v)-5 b(ariable)22
+Fs(NULL)p Ft(,)h(or)g(if)390 737 y(this)c(v)-5 b(ariable)22
b(is)g(set)h(to)f Fs(NULL)p Ft(,)h(then)f Fs(rl_complete\(\))c
Ft(will)k(call)h(the)f(v)-5 b(alue)23 b(of)f Fs(rl_completion_)390
-4173 y(entry_function)i Ft(to)30 b(generate)f(matc)m(hes,)i(otherwise)d
+847 y(entry_function)i Ft(to)30 b(generate)f(matc)m(hes,)i(otherwise)d
(the)h(arra)m(y)g(of)f(strings)h(returned)e(will)i(b)s(e)390
-4283 y(used.)37 b(If)22 b(this)g(function)g(sets)h(the)g
+956 y(used.)37 b(If)22 b(this)g(function)g(sets)h(the)g
Fs(rl_attempted_completion)o(_ove)o(r)16 b Ft(v)-5 b(ariable)24
-b(to)f(a)f(non-zero)390 4393 y(v)-5 b(alue,)35 b(Readline)g(will)f(not)
+b(to)f(a)f(non-zero)390 1066 y(v)-5 b(alue,)35 b(Readline)g(will)f(not)
g(p)s(erform)f(its)h(default)g(completion)h(ev)m(en)g(if)f(this)g
-(function)f(returns)390 4502 y(no)d(matc)m(hes.)3371
-4682 y([V)-8 b(ariable])-3598 b Fh(rl_quote_func_t)57
-b(*)52 b(rl_filename_quoting_)q(func)q(tio)q(n)390 4792
+(function)f(returns)390 1176 y(no)d(matc)m(hes.)3371
+1351 y([V)-8 b(ariable])-3598 b Fh(rl_quote_func_t)57
+b(*)52 b(rl_filename_quoting_)q(func)q(tio)q(n)390 1461
y Ft(A)33 b(p)s(oin)m(ter)f(to)h(a)g(function)g(that)g(will)g(quote)g
(a)g(\014lename)f(in)h(an)f(application-sp)s(eci\014c)i(fashion.)390
-4902 y(This)k(is)i(called)g(if)f(\014lename)h(completion)g(is)f(b)s
+1570 y(This)k(is)i(called)g(if)f(\014lename)h(completion)g(is)f(b)s
(eing)g(attempted)i(and)d(one)i(of)f(the)g(c)m(haracters)390
-5011 y(in)33 b Fs(rl_filename_quote_charac)o(ter)o(s)27
+1680 y(in)33 b Fs(rl_filename_quote_charac)o(ter)o(s)27
b Ft(app)s(ears)33 b(in)g(a)g(completed)h(\014lename.)50
-b(The)32 b(function)390 5121 y(is)37 b(called)h(with)e
-Fj(text)p Ft(,)k Fj(matc)m(h)p 1438 5121 V 41 w(t)m(yp)s(e)p
-Ft(,)f(and)d Fj(quote)p 2119 5121 V 41 w(p)s(oin)m(ter)p
+b(The)32 b(function)390 1789 y(is)37 b(called)h(with)e
+Fj(text)p Ft(,)k Fj(matc)m(h)p 1438 1789 28 4 v 41 w(t)m(yp)s(e)p
+Ft(,)f(and)d Fj(quote)p 2119 1789 V 41 w(p)s(oin)m(ter)p
Ft(.)60 b(The)36 b Fj(text)k Ft(is)d(the)g(\014lename)g(to)h(b)s(e)390
-5230 y(quoted.)76 b(The)42 b Fj(matc)m(h)p 1210 5230
+1899 y(quoted.)76 b(The)42 b Fj(matc)m(h)p 1210 1899
V 41 w(t)m(yp)s(e)48 b Ft(is)42 b(either)h Fs(SINGLE_MATCH)p
Ft(,)f(if)g(there)g(is)h(only)f(one)h(completion)390
-5340 y(matc)m(h,)33 b(or)e Fs(MULT_MATCH)p Ft(.)41 b(Some)31
+2008 y(matc)m(h,)33 b(or)e Fs(MULT_MATCH)p Ft(.)41 b(Some)31
b(functions)g(use)g(this)h(to)g(decide)f(whether)g(or)h(not)f(to)h
-(insert)g(a)p eop end
-%%Page: 53 57
-TeXDict begin 53 56 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(53)390
-299 y(closing)22 b(quote)f(c)m(haracter.)40 b(The)20
-b Fj(quote)p 1751 299 28 4 v 41 w(p)s(oin)m(ter)27 b
-Ft(is)21 b(a)g(p)s(oin)m(ter)g(to)g(an)m(y)h(op)s(ening)e(quote)h(c)m
-(haracter)390 408 y(the)31 b(user)e(t)m(yp)s(ed.)41 b(Some)30
-b(functions)g(c)m(ho)s(ose)h(to)g(reset)g(this)g(c)m(haracter.)3371
-600 y([V)-8 b(ariable])-3598 b Fh(rl_dequote_func_t)57
-b(*)c(rl_filename_dequoting_)q(fun)q(cti)q(on)390 710
+(insert)g(a)390 2118 y(closing)22 b(quote)f(c)m(haracter.)40
+b(The)20 b Fj(quote)p 1751 2118 V 41 w(p)s(oin)m(ter)27
+b Ft(is)21 b(a)g(p)s(oin)m(ter)g(to)g(an)m(y)h(op)s(ening)e(quote)h(c)m
+(haracter)390 2228 y(the)31 b(user)e(t)m(yp)s(ed.)41
+b(Some)30 b(functions)g(c)m(ho)s(ose)h(to)g(reset)g(this)g(c)m
+(haracter.)3371 2403 y([V)-8 b(ariable])-3598 b Fh(rl_dequote_func_t)57
+b(*)c(rl_filename_dequoting_)q(fun)q(cti)q(on)390 2513
y Ft(A)30 b(p)s(oin)m(ter)f(to)i(a)f(function)f(that)h(will)g(remo)m(v)
m(e)h(application-sp)s(eci\014c)g(quoting)f(c)m(haracters)h(from)390
-819 y(a)i(\014lename)g(b)s(efore)f(completion)h(is)g(attempted,)h(so)f
+2622 y(a)i(\014lename)g(b)s(efore)f(completion)h(is)g(attempted,)h(so)f
(those)g(c)m(haracters)h(do)e(not)h(in)m(terfere)g(with)390
-929 y(matc)m(hing)39 b(the)f(text)i(against)f(names)f(in)g(the)g
+2732 y(matc)m(hing)39 b(the)f(text)i(against)f(names)f(in)g(the)g
(\014lesystem.)64 b(It)38 b(is)g(called)i(with)d Fj(text)p
-Ft(,)42 b(the)c(text)390 1038 y(of)k(the)h(w)m(ord)f(to)g(b)s(e)g
-(dequoted,)j(and)d Fj(quote)p 2014 1038 V 41 w(c)m(har)p
+Ft(,)42 b(the)c(text)390 2841 y(of)k(the)h(w)m(ord)f(to)g(b)s(e)g
+(dequoted,)j(and)d Fj(quote)p 2014 2841 V 41 w(c)m(har)p
Ft(,)j(whic)m(h)d(is)h(the)f(quoting)h(c)m(haracter)g(that)390
-1148 y(delimits)33 b(the)f(\014lename)g(\(usually)h(`)p
+2951 y(delimits)33 b(the)f(\014lename)g(\(usually)h(`)p
Fs(')p Ft(')f(or)g(`)p Fs(")p Ft('\).)46 b(If)32 b Fj(quote)p
-2368 1148 V 41 w(c)m(har)39 b Ft(is)32 b(zero,)i(the)e(\014lename)g(w)m
-(as)h(not)390 1258 y(in)d(an)g(em)m(b)s(edded)g(string.)3371
-1449 y([V)-8 b(ariable])-3598 b Fh(rl_linebuf_func_t)57
-b(*)c(rl_char_is_quoted_p)390 1559 y Ft(A)37 b(p)s(oin)m(ter)g(to)g(a)g
+2368 2951 V 41 w(c)m(har)39 b Ft(is)32 b(zero,)i(the)e(\014lename)g(w)m
+(as)h(not)390 3061 y(in)d(an)g(em)m(b)s(edded)g(string.)3371
+3236 y([V)-8 b(ariable])-3598 b Fh(rl_linebuf_func_t)57
+b(*)c(rl_char_is_quoted_p)390 3345 y Ft(A)37 b(p)s(oin)m(ter)g(to)g(a)g
(function)g(to)g(call)h(that)g(determines)f(whether)f(or)h(not)g(a)g
-(sp)s(eci\014c)f(c)m(haracter)390 1668 y(in)e(the)h(line)f(bu\013er)g
+(sp)s(eci\014c)f(c)m(haracter)390 3455 y(in)e(the)h(line)f(bu\013er)g
(is)g(quoted,)i(according)g(to)f(whatev)m(er)g(quoting)g(mec)m(hanism)g
-(the)f(program)390 1778 y(calling)26 b(Readline)g(uses.)38
+(the)f(program)390 3565 y(calling)26 b(Readline)g(uses.)38
b(The)24 b(function)h(is)g(called)h(with)e(t)m(w)m(o)i(argumen)m(ts:)39
-b Fj(text)p Ft(,)27 b(the)e(text)h(of)f(the)390 1887
+b Fj(text)p Ft(,)27 b(the)e(text)h(of)f(the)390 3674
y(line,)31 b(and)g Fj(index)p Ft(,)f(the)h(index)f(of)h(the)g(c)m
(haracter)i(in)d(the)h(line.)42 b(It)31 b(is)g(used)f(to)h(decide)g
-(whether)g(a)390 1997 y(c)m(haracter)h(found)d(in)g Fs
+(whether)g(a)390 3784 y(c)m(haracter)h(found)d(in)g Fs
(rl_completer_word_break_ch)o(ara)o(cter)o(s)24 b Ft(should)29
-b(b)s(e)h(used)f(to)i(break)390 2107 y(w)m(ords)f(for)g(the)h
-(completer.)3371 2298 y([V)-8 b(ariable])-3598 b Fh
+b(b)s(e)h(used)f(to)i(break)390 3893 y(w)m(ords)f(for)g(the)h
+(completer.)3371 4069 y([V)-8 b(ariable])-3598 b Fh
(rl_compignore_func_t)58 b(*)53 b(rl_ignore_some_complet)q(ion)q(s_fu)q
-(nct)q(ion)390 2408 y Ft(This)37 b(function,)i(if)f(de\014ned,)g(is)g
+(nct)q(ion)390 4178 y Ft(This)37 b(function,)i(if)f(de\014ned,)g(is)g
(called)h(b)m(y)e(the)h(completer)h(when)e(real)h(\014lename)g
-(completion)390 2517 y(is)c(done,)h(after)f(all)h(the)g(matc)m(hing)g
+(completion)390 4288 y(is)c(done,)h(after)f(all)h(the)g(matc)m(hing)g
(names)e(ha)m(v)m(e)j(b)s(een)d(generated.)53 b(It)34
-b(is)g(passed)f(a)i Fs(NULL)d Ft(ter-)390 2627 y(minated)f(arra)m(y)g
+b(is)g(passed)f(a)i Fs(NULL)d Ft(ter-)390 4398 y(minated)f(arra)m(y)g
(of)g(matc)m(hes.)43 b(The)31 b(\014rst)f(elemen)m(t)i(\()p
Fs(matches[0])p Ft(\))d(is)h(the)h(maximal)h(substring)390
-2737 y(common)d(to)g(all)h(matc)m(hes.)41 b(This)28 b(function)h(can)g
+4507 y(common)d(to)g(all)h(matc)m(hes.)41 b(This)28 b(function)h(can)g
(re-arrange)g(the)g(list)h(of)f(matc)m(hes)g(as)g(required,)390
-2846 y(but)h(eac)m(h)h(elemen)m(t)h(deleted)f(from)f(the)h(arra)m(y)g
-(m)m(ust)f(b)s(e)g(freed.)3371 3038 y([V)-8 b(ariable])-3598
+4617 y(but)h(eac)m(h)h(elemen)m(t)h(deleted)f(from)f(the)h(arra)m(y)g
+(m)m(ust)f(b)s(e)g(freed.)3371 4792 y([V)-8 b(ariable])-3598
b Fh(rl_icppfunc_t)56 b(*)d(rl_directory_completio)q(n_ho)q(ok)390
-3147 y Ft(This)44 b(function,)49 b(if)d(de\014ned,)i(is)d(allo)m(w)m
+4902 y Ft(This)44 b(function,)49 b(if)d(de\014ned,)i(is)d(allo)m(w)m
(ed)i(to)f(mo)s(dify)e(the)i(directory)g(p)s(ortion)e(of)i(\014lenames)
-390 3257 y(Readline)35 b(completes.)56 b(It)35 b(could)g(b)s(e)f(used)g
+390 5011 y(Readline)35 b(completes.)56 b(It)35 b(could)g(b)s(e)f(used)g
(to)i(expand)e(sym)m(b)s(olic)h(links)g(or)g(shell)g(v)-5
-b(ariables)35 b(in)390 3366 y(pathnames.)70 b(It)41 b(is)f(called)h
+b(ariables)35 b(in)390 5121 y(pathnames.)70 b(It)41 b(is)f(called)h
(with)f(the)h(address)e(of)i(a)g(string)f(\(the)h(curren)m(t)f
-(directory)h(name\))390 3476 y(as)d(an)f(argumen)m(t,)j(and)d(ma)m(y)i
+(directory)h(name\))390 5230 y(as)d(an)f(argumen)m(t,)j(and)d(ma)m(y)i
(mo)s(dify)d(that)j(string.)62 b(If)37 b(the)h(string)f(is)h(replaced)g
-(with)f(a)h(new)390 3586 y(string,)j(the)d(old)h(v)-5
+(with)f(a)h(new)390 5340 y(string,)j(the)d(old)h(v)-5
b(alue)39 b(should)e(b)s(e)h(freed.)64 b(An)m(y)39 b(mo)s(di\014ed)e
-(directory)i(name)f(should)g(ha)m(v)m(e)i(a)390 3695
-y(trailing)c(slash.)54 b(The)35 b(mo)s(di\014ed)e(v)-5
+(directory)i(name)f(should)g(ha)m(v)m(e)i(a)p eop end
+%%Page: 55 59
+TeXDict begin 55 58 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(55)390
+299 y(trailing)36 b(slash.)54 b(The)35 b(mo)s(di\014ed)e(v)-5
b(alue)36 b(will)f(b)s(e)f(used)g(as)i(part)e(of)h(the)h(completion,)h
-(replacing)390 3805 y(the)32 b(directory)g(p)s(ortion)f(of)h(the)g
+(replacing)390 408 y(the)32 b(directory)g(p)s(ortion)f(of)h(the)g
(pathname)f(the)h(user)f(t)m(yp)s(ed.)44 b(A)m(t)33 b(the)f(least,)h
-(ev)m(en)g(if)e(no)h(other)390 3914 y(expansion)j(is)h(p)s(erformed,)f
+(ev)m(en)g(if)e(no)h(other)390 518 y(expansion)j(is)h(p)s(erformed,)f
(this)h(function)f(should)g(remo)m(v)m(e)i(an)m(y)f(quote)g(c)m
-(haracters)h(from)e(the)390 4024 y(directory)c(name,)g(b)s(ecause)f
-(its)h(result)f(will)h(b)s(e)e(passed)h(directly)h(to)g
-Fs(opendir\(\))p Ft(.)390 4162 y(The)25 b(directory)i(completion)g(ho)s
-(ok)e(returns)g(an)h(in)m(teger)h(that)f(should)f(b)s(e)g(non-zero)i
-(if)e(the)i(func-)390 4272 y(tion)35 b(mo)s(di\014es)e(its)i(directory)
-f(argumen)m(t.)53 b(The)33 b(function)h(should)f(not)i(mo)s(dify)e(the)
-h(directory)390 4381 y(argumen)m(t)d(if)f(it)h(returns)e(0.)3371
-4573 y([V)-8 b(ariable])-3598 b Fh(rl_icppfunc_t)56 b(*)d
-(rl_directory_rewrite_h)q(ook;)390 4682 y Ft(If)24 b(non-zero,)i(this)e
+(haracters)h(from)e(the)390 628 y(directory)c(name,)g(b)s(ecause)f(its)
+h(result)f(will)h(b)s(e)e(passed)h(directly)h(to)g Fs(opendir\(\))p
+Ft(.)390 768 y(The)25 b(directory)i(completion)g(ho)s(ok)e(returns)g
+(an)h(in)m(teger)h(that)f(should)f(b)s(e)g(non-zero)i(if)e(the)i(func-)
+390 878 y(tion)35 b(mo)s(di\014es)e(its)i(directory)f(argumen)m(t.)53
+b(The)33 b(function)h(should)f(not)i(mo)s(dify)e(the)h(directory)390
+987 y(argumen)m(t)d(if)f(it)h(returns)e(0.)3371 1183
+y([V)-8 b(ariable])-3598 b Fh(rl_icppfunc_t)56 b(*)d
+(rl_directory_rewrite_h)q(ook;)390 1293 y Ft(If)24 b(non-zero,)i(this)e
(is)h(the)f(address)g(of)g(a)h(function)f(to)h(call)g(when)f
-(completing)h(a)g(directory)g(name.)390 4792 y(This)h(function)g(tak)m
+(completing)h(a)g(directory)g(name.)390 1402 y(This)h(function)g(tak)m
(es)i(the)f(address)f(of)h(the)f(directory)h(name)g(to)g(b)s(e)f(mo)s
-(di\014ed)g(as)h(an)f(argumen)m(t.)390 4902 y(Unlik)m(e)40
+(di\014ed)g(as)h(an)f(argumen)m(t.)390 1512 y(Unlik)m(e)40
b Fs(rl_directory_completion_h)o(ook)p Ft(,)35 b(it)40
b(only)f(mo)s(di\014es)f(the)i(directory)f(name)h(used)390
-5011 y(in)35 b Fs(opendir)p Ft(,)g(not)g(what)h(is)f(displa)m(y)m(ed)h
+1622 y(in)35 b Fs(opendir)p Ft(,)g(not)g(what)h(is)f(displa)m(y)m(ed)h
(when)e(the)i(p)s(ossible)f(completions)h(are)g(prin)m(ted)f(or)g(in-)
-390 5121 y(serted.)k(It)27 b(is)f(called)h(b)s(efore)f(rl)p
-1463 5121 V 40 w(directory)p 1859 5121 V 41 w(completion)p
-2333 5121 V 41 w(ho)s(ok.)39 b(A)m(t)27 b(the)g(least,)h(ev)m(en)f(if)g
-(no)f(other)390 5230 y(expansion)35 b(is)h(p)s(erformed,)f(this)h
+390 1731 y(serted.)k(It)27 b(is)f(called)h(b)s(efore)f(rl)p
+1463 1731 28 4 v 40 w(directory)p 1859 1731 V 41 w(completion)p
+2333 1731 V 41 w(ho)s(ok.)39 b(A)m(t)27 b(the)g(least,)h(ev)m(en)f(if)g
+(no)f(other)390 1841 y(expansion)35 b(is)h(p)s(erformed,)f(this)h
(function)f(should)g(remo)m(v)m(e)i(an)m(y)f(quote)g(c)m(haracters)h
-(from)e(the)390 5340 y(directory)c(name,)g(b)s(ecause)f(its)h(result)f
+(from)e(the)390 1950 y(directory)c(name,)g(b)s(ecause)f(its)h(result)f
(will)h(b)s(e)e(passed)h(directly)h(to)g Fs(opendir\(\))p
-Ft(.)p eop end
-%%Page: 54 58
-TeXDict begin 54 57 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(54)390
-299 y(The)37 b(directory)i(rewrite)f(ho)s(ok)f(returns)g(an)h(in)m
-(teger)h(that)f(should)f(b)s(e)g(non-zero)i(if)e(the)i(func-)390
-408 y(tion)e(mo)s(d\014es)e(its)h(directory)h(argumen)m(t.)58
-b(The)36 b(function)f(should)h(not)g(mo)s(dify)f(the)h(directory)390
-518 y(argumen)m(t)31 b(if)f(it)h(returns)e(0.)3371 731
+Ft(.)390 2091 y(The)37 b(directory)i(rewrite)f(ho)s(ok)f(returns)g(an)h
+(in)m(teger)h(that)f(should)f(b)s(e)g(non-zero)i(if)e(the)i(func-)390
+2200 y(tion)c(mo)s(di\014es)e(its)i(directory)f(argumen)m(t.)53
+b(The)33 b(function)h(should)f(not)i(mo)s(dify)e(the)h(directory)390
+2310 y(argumen)m(t)d(if)f(it)h(returns)e(0.)3371 2506
y([V)-8 b(ariable])-3598 b Fh(rl_icppfunc_t)56 b(*)d
-(rl_filename_stat_hook)390 840 y Ft(If)30 b(non-zero,)h(this)f(is)g
+(rl_filename_stat_hook)390 2616 y Ft(If)30 b(non-zero,)h(this)f(is)g
(the)g(address)f(of)h(a)h(function)f(for)f(the)i(completer)g(to)g(call)
-g(b)s(efore)f(deciding)390 950 y(whic)m(h)g(c)m(haracter)i(to)e(app)s
+g(b)s(efore)f(deciding)390 2725 y(whic)m(h)g(c)m(haracter)i(to)e(app)s
(end)f(to)i(a)f(completed)h(name.)41 b(This)29 b(function)h(mo)s
-(di\014es)f(its)i(\014lename)390 1059 y(name)36 b(argumen)m(t,)h(and)e
+(di\014es)f(its)i(\014lename)390 2835 y(name)36 b(argumen)m(t,)h(and)e
(the)h(mo)s(di\014ed)e(v)-5 b(alue)36 b(is)g(passed)f(to)h
Fs(stat\(\))e Ft(to)i(determine)g(the)g(\014le's)390
-1169 y(t)m(yp)s(e)41 b(and)f(c)m(haracteristics.)73 b(This)40
+2944 y(t)m(yp)s(e)41 b(and)f(c)m(haracteristics.)73 b(This)40
b(function)g(do)s(es)g(not)h(need)f(to)h(remo)m(v)m(e)h(quote)f(c)m
-(haracters)390 1279 y(from)30 b(the)g(\014lename.)390
-1427 y(The)i(stat)h(ho)s(ok)f(returns)f(an)h(in)m(teger)i(that)e
-(should)g(b)s(e)f(non-zero)i(if)f(the)g(function)g(mo)s(d\014es)g(its)
-390 1537 y(directory)42 b(argumen)m(t.)73 b(The)40 b(function)h(should)
-f(not)h(mo)s(dify)f(the)h(directory)h(argumen)m(t)f(if)g(it)390
-1647 y(returns)29 b(0.)3371 1859 y([V)-8 b(ariable])-3598
+(haracters)390 3054 y(from)30 b(the)g(\014lename.)390
+3194 y(The)40 b(stat)h(ho)s(ok)f(returns)f(an)h(in)m(teger)h(that)g
+(should)e(b)s(e)h(non-zero)g(if)h(the)f(function)g(mo)s(di\014es)390
+3304 y(its)32 b(directory)f(argumen)m(t.)44 b(The)31
+b(function)f(should)h(not)g(mo)s(dify)g(the)g(directory)h(argumen)m(t)f
+(if)g(it)390 3414 y(returns)e(0.)3371 3610 y([V)-8 b(ariable])-3598
b Fh(rl_dequote_func_t)57 b(*)c(rl_filename_rewrite_ho)q(ok)390
-1969 y Ft(If)39 b(non-zero,)k(this)d(is)f(the)h(address)f(of)h(a)g
+3719 y Ft(If)39 b(non-zero,)k(this)d(is)f(the)h(address)f(of)h(a)g
(function)g(called)g(when)f(reading)h(directory)g(en)m(tries)390
-2078 y(from)f(the)h(\014lesystem)g(for)g(completion)h(and)e(comparing)i
+3829 y(from)f(the)h(\014lesystem)g(for)g(completion)h(and)e(comparing)i
(them)e(to)i(the)f(partial)h(w)m(ord)e(to)i(b)s(e)390
-2188 y(completed.)g(The)26 b(function)h(should)f(p)s(erform)f(an)m(y)j
+3938 y(completed.)g(The)26 b(function)h(should)f(p)s(erform)f(an)m(y)j
(necessary)f(application)i(or)e(system-sp)s(eci\014c)390
-2298 y(con)m(v)m(ersion)35 b(on)g(the)f(\014lename,)i(suc)m(h)d(as)i
+4048 y(con)m(v)m(ersion)35 b(on)g(the)f(\014lename,)i(suc)m(h)d(as)i
(con)m(v)m(erting)h(b)s(et)m(w)m(een)f(c)m(haracter)g(sets)g(or)f(con)m
-(v)m(erting)390 2407 y(from)f(a)g(\014lesystem)h(format)g(to)g(a)f(c)m
+(v)m(erting)390 4158 y(from)f(a)g(\014lesystem)h(format)g(to)g(a)f(c)m
(haracter)i(input)e(format.)50 b(The)32 b(function)h(tak)m(es)i(t)m(w)m
-(o)g(argu-)390 2517 y(men)m(ts:)49 b Fj(fname)p Ft(,)36
+(o)g(argu-)390 4267 y(men)m(ts:)49 b Fj(fname)p Ft(,)36
b(the)e(\014lename)h(to)g(b)s(e)f(con)m(v)m(erted,)j(and)d
Fj(fnlen)p Ft(,)h(its)g(length)g(in)f(b)m(ytes.)53 b(It)35
-b(m)m(ust)390 2626 y(either)24 b(return)e(its)h(\014rst)g(argumen)m(t)g
+b(m)m(ust)390 4377 y(either)24 b(return)e(its)h(\014rst)g(argumen)m(t)g
(\(if)h(no)f(con)m(v)m(ersion)h(tak)m(es)h(place\))g(or)e(the)g(con)m
-(v)m(erted)i(\014lename)390 2736 y(in)j(newly-allo)s(cated)i(memory)-8
+(v)m(erted)i(\014lename)390 4486 y(in)j(newly-allo)s(cated)i(memory)-8
b(.)41 b(The)27 b(con)m(v)m(erted)j(form)e(is)g(used)g(to)h(compare)f
-(against)i(the)e(w)m(ord)390 2845 y(to)g(b)s(e)e(completed,)j(and,)f
+(against)i(the)e(w)m(ord)390 4596 y(to)g(b)s(e)e(completed,)j(and,)f
(if)f(it)h(matc)m(hes,)h(is)e(added)f(to)i(the)g(list)f(of)h(matc)m
-(hes.)41 b(Readline)27 b(will)h(free)390 2955 y(the)j(allo)s(cated)h
-(string.)3371 3168 y([V)-8 b(ariable])-3598 b Fh(rl_compdisp_func_t)58
+(hes.)41 b(Readline)27 b(will)h(free)390 4706 y(the)j(allo)s(cated)h
+(string.)3371 4902 y([V)-8 b(ariable])-3598 b Fh(rl_compdisp_func_t)58
b(*)52 b(rl_completion_display)q(_ma)q(tch)q(es_h)q(ook)390
-3277 y Ft(If)22 b(non-zero,)i(then)e(this)g(is)g(the)g(address)f(of)h
+5011 y Ft(If)22 b(non-zero,)i(then)e(this)g(is)g(the)g(address)f(of)h
(a)g(function)g(to)h(call)g(when)e(completing)i(a)g(w)m(ord)e(w)m(ould)
-390 3387 y(normally)h(displa)m(y)h(the)f(list)h(of)f(p)s(ossible)g
+390 5121 y(normally)h(displa)m(y)h(the)f(list)h(of)f(p)s(ossible)g
(matc)m(hes.)39 b(This)21 b(function)h(is)g(called)i(in)e(lieu)g(of)g
-(Readline)390 3497 y(displa)m(ying)37 b(the)h(list.)61
+(Readline)390 5230 y(displa)m(ying)37 b(the)h(list.)61
b(It)37 b(tak)m(es)i(three)e(argumen)m(ts:)54 b(\()p
Fs(char)30 b(**)p Fj(matc)m(hes)p Ft(,)39 b Fs(int)d
-Fj(n)m(um)p 3370 3497 28 4 v 40 w(matc)m(hes)p Ft(,)390
-3606 y Fs(int)26 b Fj(max)p 735 3606 V 40 w(length)p
-Ft(\))h(where)f Fj(matc)m(hes)31 b Ft(is)c(the)f(arra)m(y)h(of)g(matc)m
-(hing)g(strings,)h Fj(n)m(um)p 3152 3606 V 39 w(matc)m(hes)j
-Ft(is)c(the)390 3716 y(n)m(um)m(b)s(er)35 b(of)i(strings)f(in)g(that)h
-(arra)m(y)-8 b(,)39 b(and)d Fj(max)p 2073 3716 V 40 w(length)h
+Fj(n)m(um)p 3370 5230 V 40 w(matc)m(hes)p Ft(,)390 5340
+y Fs(int)26 b Fj(max)p 735 5340 V 40 w(length)p Ft(\))h(where)f
+Fj(matc)m(hes)31 b Ft(is)c(the)f(arra)m(y)h(of)g(matc)m(hing)g
+(strings,)h Fj(n)m(um)p 3152 5340 V 39 w(matc)m(hes)j
+Ft(is)c(the)p eop end
+%%Page: 56 60
+TeXDict begin 56 59 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(56)390
+299 y(n)m(um)m(b)s(er)35 b(of)i(strings)f(in)g(that)h(arra)m(y)-8
+b(,)39 b(and)d Fj(max)p 2073 299 28 4 v 40 w(length)h
Ft(is)g(the)f(length)h(of)g(the)f(longest)i(string)390
-3825 y(in)f(that)i(arra)m(y)-8 b(.)63 b(Readline)39 b(pro)m(vides)e(a)h
+408 y(in)f(that)i(arra)m(y)-8 b(.)63 b(Readline)39 b(pro)m(vides)e(a)h
(con)m(v)m(enience)i(function,)f Fs(rl_display_match_list)p
-Ft(,)390 3935 y(that)33 b(tak)m(es)g(care)g(of)f(doing)g(the)g(displa)m
+Ft(,)390 518 y(that)33 b(tak)m(es)g(care)g(of)f(doing)g(the)g(displa)m
(y)g(to)h(Readline's)g(output)e(stream.)46 b(Y)-8 b(ou)33
-b(ma)m(y)f(call)h(that)390 4044 y(function)d(from)g(this)g(ho)s(ok.)
-3371 4257 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
-(rl_basic_word_break_ch)q(ara)q(cter)q(s)390 4367 y Ft(The)44
+b(ma)m(y)f(call)h(that)390 628 y(function)d(from)g(this)g(ho)s(ok.)3371
+810 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_basic_word_break_ch)q(ara)q(cter)q(s)390 920 y Ft(The)44
b(basic)g(list)h(of)f(c)m(haracters)i(that)f(signal)g(a)f(break)g(b)s
(et)m(w)m(een)h(w)m(ords)f(for)g(the)g(completer)390
-4476 y(routine.)61 b(The)37 b(default)g(v)-5 b(alue)37
+1029 y(routine.)61 b(The)37 b(default)g(v)-5 b(alue)37
b(of)h(this)f(v)-5 b(ariable)38 b(is)f(the)g(c)m(haracters)i(whic)m(h)e
-(break)g(w)m(ords)f(for)390 4586 y(completion)c(in)e(Bash:)41
-b Fs(")30 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p Ft(.)3371 4799
+(break)g(w)m(ords)f(for)390 1139 y(completion)c(in)e(Bash:)41
+b Fs(")30 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p Ft(.)3371 1322
y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
-(rl_basic_quote_charact)q(ers)390 4908 y Ft(A)30 b(list)i(of)e(quote)h
+(rl_basic_quote_charact)q(ers)390 1431 y Ft(A)30 b(list)i(of)e(quote)h
(c)m(haracters)h(whic)m(h)e(can)h(cause)g(a)f(w)m(ord)g(break.)3371
-5121 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
-(rl_completer_word_brea)q(k_c)q(hara)q(cte)q(rs)390 5230
+1614 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_completer_word_brea)q(k_c)q(hara)q(cte)q(rs)390 1724
y Ft(The)64 b(list)i(of)f(c)m(haracters)h(that)g(signal)g(a)f(break)g
(b)s(et)m(w)m(een)g(w)m(ords)g(for)f Fs(rl_complete_)390
-5340 y(internal\(\))p Ft(.)38 b(The)30 b(default)g(list)h(is)g(the)f(v)
+1833 y(internal\(\))p Ft(.)38 b(The)30 b(default)g(list)h(is)g(the)f(v)
-5 b(alue)31 b(of)g Fs(rl_basic_word_break_cha)o(ract)o(ers)p
-Ft(.)p eop end
-%%Page: 55 59
-TeXDict begin 55 58 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(55)3371
-299 y([V)-8 b(ariable])-3598 b Fh(rl_cpvfunc_t)56 b(*)d
-(rl_completion_word_brea)q(k_ho)q(ok)390 408 y Ft(If)31
-b(non-zero,)i(this)e(is)h(the)f(address)g(of)g(a)h(function)g(to)g
-(call)h(when)d(Readline)i(is)g(deciding)f(where)390 518
-y(to)k(separate)g(w)m(ords)f(for)g(w)m(ord)g(completion.)54
+Ft(.)3371 2016 y([V)-8 b(ariable])-3598 b Fh(rl_cpvfunc_t)56
+b(*)d(rl_completion_word_brea)q(k_ho)q(ok)390 2125 y
+Ft(If)31 b(non-zero,)i(this)e(is)h(the)f(address)g(of)g(a)h(function)g
+(to)g(call)h(when)d(Readline)i(is)g(deciding)f(where)390
+2235 y(to)k(separate)g(w)m(ords)f(for)g(w)m(ord)g(completion.)54
b(It)34 b(should)f(return)g(a)i(c)m(haracter)h(string)e(lik)m(e)i
-Fs(rl_)390 628 y(completer_word_break_cha)o(ract)o(ers)26
+Fs(rl_)390 2345 y(completer_word_break_cha)o(ract)o(ers)26
b Ft(to)34 b(b)s(e)e(used)g(to)i(p)s(erform)e(the)h(curren)m(t)f
-(completion.)390 737 y(The)24 b(function)h(ma)m(y)g(c)m(ho)s(ose)h(to)f
-(set)g Fs(rl_completer_word_break_ch)o(arac)o(ter)o(s)19
-b Ft(itself.)39 b(If)25 b(the)390 847 y(function)30 b(returns)f
-Fs(NULL)p Ft(,)h Fs(rl_completer_word_break)o(_cha)o(rac)o(ters)24
-b Ft(is)30 b(used.)3371 1011 y([V)-8 b(ariable])-3598
+(completion.)390 2454 y(The)24 b(function)h(ma)m(y)g(c)m(ho)s(ose)h(to)
+f(set)g Fs(rl_completer_word_break_ch)o(arac)o(ter)o(s)19
+b Ft(itself.)39 b(If)25 b(the)390 2564 y(function)30
+b(returns)f Fs(NULL)p Ft(,)h Fs(rl_completer_word_break)o(_cha)o(rac)o
+(ters)24 b Ft(is)30 b(used.)3371 2746 y([V)-8 b(ariable])-3598
b Fh(const)54 b(char)f(*)g(rl_completer_quote_cha)q(rac)q(ters)390
-1121 y Ft(A)34 b(list)g(of)g(c)m(haracters)h(whic)m(h)e(can)h(b)s(e)g
+2856 y Ft(A)34 b(list)g(of)g(c)m(haracters)h(whic)m(h)e(can)h(b)s(e)g
(used)e(to)j(quote)f(a)g(substring)f(of)h(the)f(line.)51
-b(Completion)390 1230 y(o)s(ccurs)26 b(on)g(the)g(en)m(tire)i
+b(Completion)390 2966 y(o)s(ccurs)26 b(on)g(the)g(en)m(tire)i
(substring,)e(and)f(within)h(the)g(substring)g Fs
-(rl_completer_word_break)o(_)390 1340 y(characters)32
+(rl_completer_word_break)o(_)390 3075 y(characters)32
b Ft(are)k(treated)g(as)f(an)m(y)h(other)f(c)m(haracter,)j(unless)d
-(they)g(also)h(app)s(ear)e(within)h(this)390 1450 y(list.)3371
-1614 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
-(rl_filename_quote_char)q(act)q(ers)390 1724 y Ft(A)34
+(they)g(also)h(app)s(ear)e(within)h(this)390 3185 y(list.)3371
+3367 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_filename_quote_char)q(act)q(ers)390 3477 y Ft(A)34
b(list)g(of)g(c)m(haracters)h(that)f(cause)h(a)f(\014lename)g(to)g(b)s
(e)f(quoted)h(b)m(y)f(the)h(completer)h(when)e(they)390
-1833 y(app)s(ear)d(in)g(a)h(completed)g(\014lename.)41
+3587 y(app)s(ear)d(in)g(a)h(completed)g(\014lename.)41
b(The)30 b(default)g(is)h(the)f(n)m(ull)h(string.)3371
-1998 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
-(rl_special_prefixes)390 2107 y Ft(The)27 b(list)i(of)e(c)m(haracters)j
+3769 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_special_prefixes)390 3879 y Ft(The)27 b(list)i(of)e(c)m(haracters)j
(that)e(are)g(w)m(ord)f(break)h(c)m(haracters,)i(but)d(should)f(b)s(e)h
-(left)i(in)e Fj(text)k Ft(when)390 2217 y(it)25 b(is)g(passed)f(to)h
+(left)i(in)e Fj(text)k Ft(when)390 3988 y(it)25 b(is)g(passed)f(to)h
(the)g(completion)h(function.)38 b(Programs)25 b(can)g(use)f(this)h(to)
-g(help)f(determine)h(what)390 2326 y(kind)i(of)h(completing)h(to)f(do.)
+g(help)f(determine)h(what)390 4098 y(kind)i(of)h(completing)h(to)f(do.)
40 b(F)-8 b(or)29 b(instance,)g(Bash)f(sets)g(this)g(v)-5
b(ariable)28 b(to)h Fs(")p Ft($@)p Fs(")e Ft(so)h(that)g(it)h(can)390
-2436 y(complete)j(shell)e(v)-5 b(ariables)31 b(and)f(hostnames.)3371
-2600 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_query_i)q
-(tems)390 2710 y Ft(Up)36 b(to)h(this)f(man)m(y)g(items)h(will)f(b)s(e)
+4208 y(complete)j(shell)e(v)-5 b(ariables)31 b(and)f(hostnames.)3371
+4390 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_query_i)q
+(tems)390 4500 y Ft(Up)36 b(to)h(this)f(man)m(y)g(items)h(will)f(b)s(e)
g(displa)m(y)m(ed)h(in)e(resp)s(onse)h(to)h(a)f(p)s
-(ossible-completions)h(call.)390 2819 y(After)28 b(that,)h(readline)f
+(ossible-completions)h(call.)390 4609 y(After)28 b(that,)h(readline)f
(asks)g(the)g(user)f(if)h(she)f(is)h(sure)f(she)h(w)m(an)m(ts)g(to)h
-(see)f(them)g(all.)40 b(The)28 b(default)390 2929 y(v)-5
+(see)f(them)g(all.)40 b(The)28 b(default)390 4719 y(v)-5
b(alue)31 b(is)f(100.)42 b(A)31 b(negativ)m(e)h(v)-5
b(alue)31 b(indicates)g(that)g(Readline)g(should)f(nev)m(er)h(ask)f
-(the)h(user.)3371 3093 y([V)-8 b(ariable])-3598 b Fh(int)53
-b(rl_completion_append_)q(char)q(act)q(er)390 3203 y
+(the)h(user.)3371 4902 y([V)-8 b(ariable])-3598 b Fh(int)53
+b(rl_completion_append_)q(char)q(act)q(er)390 5011 y
Ft(When)33 b(a)h(single)f(completion)i(alternativ)m(e)h(matc)m(hes)e
(at)g(the)f(end)g(of)g(the)h(command)f(line,)h(this)390
-3313 y(c)m(haracter)23 b(is)e(app)s(ended)f(to)i(the)g(inserted)f
+5121 y(c)m(haracter)23 b(is)e(app)s(ended)f(to)i(the)g(inserted)f
(completion)i(text.)39 b(The)20 b(default)i(is)g(a)f(space)h(c)m
-(haracter)390 3422 y(\(`)31 b('\).)40 b(Setting)27 b(this)g(to)g(the)g
+(haracter)390 5230 y(\(`)31 b('\).)40 b(Setting)27 b(this)g(to)g(the)g
(n)m(ull)f(c)m(haracter)j(\(`)p Fs(\\0)p Ft('\))e(prev)m(en)m(ts)g(an)m
-(ything)g(b)s(eing)f(app)s(ended)f(auto-)390 3532 y(matically)-8
+(ything)g(b)s(eing)f(app)s(ended)f(auto-)390 5340 y(matically)-8
b(.)41 b(This)22 b(can)i(b)s(e)f(c)m(hanged)h(in)f(application-sp)s
-(eci\014c)h(completion)h(functions)e(to)h(pro)m(vide)390
-3641 y(the)d(\\most)i(sensible)e(w)m(ord)g(separator)h(c)m(haracter")h
-(according)f(to)g(an)f(application-sp)s(eci\014c)i(com-)390
-3751 y(mand)28 b(line)i(syn)m(tax)f(sp)s(eci\014cation.)42
+(eci\014c)h(completion)h(functions)e(to)h(pro)m(vide)p
+eop end
+%%Page: 57 61
+TeXDict begin 57 60 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(57)390
+299 y(the)21 b(\\most)i(sensible)e(w)m(ord)g(separator)h(c)m(haracter")
+h(according)f(to)g(an)f(application-sp)s(eci\014c)i(com-)390
+408 y(mand)28 b(line)i(syn)m(tax)f(sp)s(eci\014cation.)42
b(It)29 b(is)g(set)h(to)g(the)f(default)g(b)s(efore)g(an)m(y)g
-(application-sp)s(eci\014c)390 3861 y(completion)j(function)e(is)g
+(application-sp)s(eci\014c)390 518 y(completion)j(function)e(is)g
+(called,)i(and)e(ma)m(y)h(only)f(b)s(e)g(c)m(hanged)h(within)f(suc)m(h)
+g(a)h(function.)3371 682 y([V)-8 b(ariable])-3598 b Fh(int)53
+b(rl_completion_suppres)q(s_ap)q(pen)q(d)390 792 y Ft(If)33
+b(non-zero,)i Fj(rl)p 949 792 28 4 v 39 w(completion)p
+1421 792 V 42 w(app)s(end)p 1755 792 V 38 w(c)m(haracter)42
+b Ft(is)33 b(not)g(app)s(ended)f(to)i(matc)m(hes)g(at)g(the)g(end)390
+902 y(of)28 b(the)f(command)h(line,)h(as)e(describ)s(ed)g(ab)s(o)m(v)m
+(e.)41 b(It)27 b(is)h(set)g(to)g(0)g(b)s(efore)g(an)m(y)f
+(application-sp)s(eci\014c)390 1011 y(completion)32 b(function)e(is)g
(called,)i(and)e(ma)m(y)h(only)f(b)s(e)g(c)m(hanged)h(within)f(suc)m(h)
-g(a)h(function.)3371 4025 y([V)-8 b(ariable])-3598 b
-Fh(int)53 b(rl_completion_suppres)q(s_ap)q(pen)q(d)390
-4134 y Ft(If)33 b(non-zero,)i Fj(rl)p 949 4134 28 4 v
-39 w(completion)p 1421 4134 V 42 w(app)s(end)p 1755 4134
-V 38 w(c)m(haracter)42 b Ft(is)33 b(not)g(app)s(ended)f(to)i(matc)m
-(hes)g(at)g(the)g(end)390 4244 y(of)28 b(the)f(command)h(line,)h(as)e
-(describ)s(ed)g(ab)s(o)m(v)m(e.)41 b(It)27 b(is)h(set)g(to)g(0)g(b)s
-(efore)g(an)m(y)f(application-sp)s(eci\014c)390 4354
-y(completion)32 b(function)e(is)g(called,)i(and)e(ma)m(y)h(only)f(b)s
-(e)g(c)m(hanged)h(within)f(suc)m(h)g(a)h(function.)3371
-4518 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_quote_c)q
-(hara)q(cte)q(r)390 4628 y Ft(When)36 b(Readline)h(is)f(completing)h
-(quoted)g(text,)h(as)f(delimited)g(b)m(y)f(one)g(of)g(the)h(c)m
-(haracters)g(in)390 4737 y Fj(rl)p 457 4737 V 40 w(completer)p
-885 4737 V 41 w(quote)p 1145 4737 V 41 w(c)m(haracters)p
-Ft(,)43 b(it)c(sets)g(this)g(v)-5 b(ariable)40 b(to)g(the)f(quoting)g
-(c)m(haracter)i(found.)390 4847 y(This)30 b(is)g(set)h(b)s(efore)f(an)m
-(y)h(application-sp)s(eci\014c)g(completion)h(function)e(is)h(called.)
-3371 5011 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_suppres)
-q(s_qu)q(ote)390 5121 y Ft(If)32 b(non-zero,)h(Readline)g(do)s(es)f
-(not)h(app)s(end)d(a)j(matc)m(hing)g(quote)g(c)m(haracter)h(when)d(p)s
-(erforming)390 5230 y(completion)25 b(on)e(a)h(quoted)g(string.)38
+g(a)h(function.)3371 1176 y([V)-8 b(ariable])-3598 b
+Fh(int)53 b(rl_completion_quote_c)q(hara)q(cte)q(r)390
+1285 y Ft(When)36 b(Readline)h(is)f(completing)h(quoted)g(text,)h(as)f
+(delimited)g(b)m(y)f(one)g(of)g(the)h(c)m(haracters)g(in)390
+1395 y Fj(rl)p 457 1395 V 40 w(completer)p 885 1395 V
+41 w(quote)p 1145 1395 V 41 w(c)m(haracters)p Ft(,)43
+b(it)c(sets)g(this)g(v)-5 b(ariable)40 b(to)g(the)f(quoting)g(c)m
+(haracter)i(found.)390 1504 y(This)30 b(is)g(set)h(b)s(efore)f(an)m(y)h
+(application-sp)s(eci\014c)g(completion)h(function)e(is)h(called.)3371
+1669 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_suppres)q
+(s_qu)q(ote)390 1778 y Ft(If)32 b(non-zero,)h(Readline)g(do)s(es)f(not)
+h(app)s(end)d(a)j(matc)m(hing)g(quote)g(c)m(haracter)h(when)d(p)s
+(erforming)390 1888 y(completion)25 b(on)e(a)h(quoted)g(string.)38
b(It)24 b(is)f(set)h(to)h(0)f(b)s(efore)f(an)m(y)h(application-sp)s
-(eci\014c)h(completion)390 5340 y(function)30 b(is)g(called,)i(and)e
+(eci\014c)h(completion)390 1998 y(function)30 b(is)g(called,)i(and)e
(ma)m(y)h(only)g(b)s(e)e(c)m(hanged)i(within)f(suc)m(h)g(a)h(function.)
-p eop end
-%%Page: 56 60
-TeXDict begin 56 59 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(56)3371
-299 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_found_q)q
-(uote)390 408 y Ft(When)31 b(Readline)i(is)e(completing)i(quoted)f
+3371 2162 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_found_q)
+q(uote)390 2271 y Ft(When)31 b(Readline)i(is)e(completing)i(quoted)f
(text,)h(it)f(sets)g(this)g(v)-5 b(ariable)32 b(to)h(a)f(non-zero)g(v)
--5 b(alue)32 b(if)390 518 y(the)21 b(w)m(ord)g(b)s(eing)g(completed)h
+-5 b(alue)32 b(if)390 2381 y(the)21 b(w)m(ord)g(b)s(eing)g(completed)h
(con)m(tains)g(or)f(is)g(delimited)h(b)m(y)f(an)m(y)g(quoting)h(c)m
-(haracters,)i(including)390 628 y(bac)m(kslashes.)42
+(haracters,)i(including)390 2491 y(bac)m(kslashes.)42
b(This)29 b(is)i(set)g(b)s(efore)f(an)m(y)g(application-sp)s(eci\014c)i
-(completion)g(function)e(is)g(called.)3371 816 y([V)-8
+(completion)g(function)e(is)g(called.)3371 2655 y([V)-8
b(ariable])-3598 b Fh(int)53 b(rl_completion_mark_sy)q(mlin)q(k_d)q
-(irs)390 925 y Ft(If)31 b(non-zero,)i(a)f(slash)g(will)g(b)s(e)f(app)s
+(irs)390 2765 y Ft(If)31 b(non-zero,)i(a)f(slash)g(will)g(b)s(e)f(app)s
(ended)f(to)j(completed)g(\014lenames)e(that)i(are)f(sym)m(b)s(olic)g
-(links)390 1035 y(to)25 b(directory)g(names,)g(sub)5
+(links)390 2874 y(to)25 b(directory)g(names,)g(sub)5
b(ject)24 b(to)h(the)f(v)-5 b(alue)25 b(of)f(the)h(user-settable)g
-Fj(mark-directories)k Ft(v)-5 b(ariable.)390 1144 y(This)27
+Fj(mark-directories)k Ft(v)-5 b(ariable.)390 2984 y(This)27
b(v)-5 b(ariable)28 b(exists)g(so)f(that)h(application-sp)s(eci\014c)h
(completion)g(functions)e(can)g(o)m(v)m(erride)i(the)390
-1254 y(user's)42 b(global)h(preference)g(\(set)g(via)g(the)f
+3093 y(user's)42 b(global)h(preference)g(\(set)g(via)g(the)f
Fj(mark-symlink)m(ed-directories)48 b Ft(Readline)43
-b(v)-5 b(ariable\))390 1363 y(if)38 b(appropriate.)62
+b(v)-5 b(ariable\))390 3203 y(if)38 b(appropriate.)62
b(This)37 b(v)-5 b(ariable)38 b(is)g(set)g(to)g(the)g(user's)f
-(preference)g(b)s(efore)g(an)m(y)h(application-)390 1473
+(preference)g(b)s(efore)g(an)m(y)h(application-)390 3313
y(sp)s(eci\014c)31 b(completion)i(function)f(is)f(called,)j(so)e
(unless)f(that)h(function)f(mo)s(di\014es)g(the)h(v)-5
-b(alue,)33 b(the)390 1583 y(user's)d(preferences)g(are)h(honored.)3371
-1771 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_ignore_completion_)q
-(dupl)q(ica)q(tes)390 1880 y Ft(If)30 b(non-zero,)h(then)f(duplicates)h
+b(alue,)33 b(the)390 3422 y(user's)d(preferences)g(are)h(honored.)3371
+3587 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_ignore_completion_)q
+(dupl)q(ica)q(tes)390 3696 y Ft(If)30 b(non-zero,)h(then)f(duplicates)h
(in)f(the)h(matc)m(hes)g(are)g(remo)m(v)m(ed.)42 b(The)29
-b(default)i(is)f(1.)3371 2068 y([V)-8 b(ariable])-3598
+b(default)i(is)f(1.)3371 3861 y([V)-8 b(ariable])-3598
b Fh(int)53 b(rl_filename_completio)q(n_de)q(sir)q(ed)390
-2178 y Ft(Non-zero)33 b(means)f(that)g(the)g(results)f(of)h(the)g(matc)
+3970 y Ft(Non-zero)33 b(means)f(that)g(the)g(results)f(of)h(the)g(matc)
m(hes)h(are)f(to)h(b)s(e)e(treated)i(as)f(\014lenames.)45
-b(This)390 2287 y(is)40 b Fk(always)49 b Ft(zero)41 b(when)e
+b(This)390 4080 y(is)40 b Fk(always)49 b Ft(zero)41 b(when)e
(completion)i(is)f(attempted,)j(and)d(can)g(only)g(b)s(e)f(c)m(hanged)i
-(within)e(an)390 2397 y(application-sp)s(eci\014c)i(completion)g
+(within)e(an)390 4189 y(application-sp)s(eci\014c)i(completion)g
(function.)67 b(If)39 b(it)h(is)f(set)h(to)h(a)e(non-zero)h(v)-5
-b(alue)40 b(b)m(y)f(suc)m(h)h(a)390 2506 y(function,)24
+b(alue)40 b(b)m(y)f(suc)m(h)h(a)390 4299 y(function,)24
b(directory)f(names)f(ha)m(v)m(e)h(a)g(slash)f(app)s(ended)e(and)i
-(Readline)h(attempts)g(to)g(quote)g(com-)390 2616 y(pleted)35
+(Readline)h(attempts)g(to)g(quote)g(com-)390 4408 y(pleted)35
b(\014lenames)g(if)g(they)h(con)m(tain)g(an)m(y)f(c)m(haracters)i(in)e
-Fs(rl_filename_quote_chara)o(cter)o(s)390 2725 y Ft(and)30
+Fs(rl_filename_quote_chara)o(cter)o(s)390 4518 y Ft(and)30
b Fs(rl_filename_quoting_des)o(ired)24 b Ft(is)30 b(set)h(to)g(a)g
-(non-zero)g(v)-5 b(alue.)3371 2913 y([V)d(ariable])-3598
-b Fh(int)53 b(rl_filename_quoting_d)q(esir)q(ed)390 3023
+(non-zero)g(v)-5 b(alue.)3371 4682 y([V)d(ariable])-3598
+b Fh(int)53 b(rl_filename_quoting_d)q(esir)q(ed)390 4792
y Ft(Non-zero)29 b(means)f(that)h(the)f(results)g(of)g(the)g(matc)m
(hes)i(are)e(to)h(b)s(e)e(quoted)h(using)g(double)f(quotes)390
-3133 y(\(or)43 b(an)f(application-sp)s(eci\014c)i(quoting)f(mec)m
+4902 y(\(or)43 b(an)f(application-sp)s(eci\014c)i(quoting)f(mec)m
(hanism\))g(if)f(the)h(completed)g(\014lename)g(con)m(tains)390
-3242 y(an)m(y)28 b(c)m(haracters)h(in)e Fs(rl_filename_quote_chars)p
+5011 y(an)m(y)28 b(c)m(haracters)h(in)e Fs(rl_filename_quote_chars)p
Ft(.)34 b(This)27 b(is)g Fk(always)37 b Ft(non-zero)28
-b(when)f(comple-)390 3352 y(tion)h(is)g(attempted,)h(and)e(can)h(only)g
+b(when)f(comple-)390 5121 y(tion)h(is)g(attempted,)h(and)e(can)h(only)g
(b)s(e)f(c)m(hanged)h(within)f(an)h(application-sp)s(eci\014c)h
-(completion)390 3461 y(function.)37 b(The)21 b(quoting)g(is)g
+(completion)390 5230 y(function.)37 b(The)21 b(quoting)g(is)g
(e\013ected)i(via)e(a)h(call)g(to)g(the)f(function)g(p)s(oin)m(ted)g
-(to)g(b)m(y)g Fs(rl_filename_)390 3571 y(quoting_function)p
-Ft(.)3371 3759 y([V)-8 b(ariable])-3598 b Fh(int)53 b
-(rl_attempted_completi)q(on_o)q(ver)390 3868 y Ft(If)93
-b(an)h(application-sp)s(eci\014c)i(completion)f(function)f(assigned)g
-(to)h Fs(rl_attempted_)390 3978 y(completion_function)48
-b Ft(sets)53 b(this)g(v)-5 b(ariable)54 b(to)g(a)f(non-zero)h(v)-5
-b(alue,)60 b(Readline)53 b(will)h(not)390 4088 y(p)s(erform)28
-b(its)i(default)g(\014lename)g(completion)h(ev)m(en)f(if)g(the)f
-(application's)i(completion)g(function)390 4197 y(returns)e(no)h(matc)m
-(hes.)42 b(It)31 b(should)e(b)s(e)h(set)h(only)f(b)m(y)h(an)f
-(application's)i(completion)f(function.)3371 4385 y([V)-8
-b(ariable])-3598 b Fh(int)53 b(rl_sort_completion_ma)q(tche)q(s)390
-4495 y Ft(If)29 b(an)h(application)h(sets)f(this)g(v)-5
-b(ariable)31 b(to)f(0,)h(Readline)f(will)g(not)g(sort)g(the)g(list)h
-(of)f(completions)390 4604 y(\(whic)m(h)25 b(implies)f(that)i(it)f
-(cannot)g(remo)m(v)m(e)h(an)m(y)f(duplicate)g(completions\).)40
-b(The)24 b(default)h(v)-5 b(alue)25 b(is)390 4714 y(1,)32
+(to)g(b)m(y)g Fs(rl_filename_)390 5340 y(quoting_function)p
+Ft(.)p eop end
+%%Page: 58 62
+TeXDict begin 58 61 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(58)3371
+299 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_attempted_completi)q
+(on_o)q(ver)390 408 y Ft(If)93 b(an)h(application-sp)s(eci\014c)i
+(completion)f(function)f(assigned)g(to)h Fs(rl_attempted_)390
+518 y(completion_function)48 b Ft(sets)53 b(this)g(v)-5
+b(ariable)54 b(to)g(a)f(non-zero)h(v)-5 b(alue,)60 b(Readline)53
+b(will)h(not)390 628 y(p)s(erform)28 b(its)i(default)g(\014lename)g
+(completion)h(ev)m(en)f(if)g(the)f(application's)i(completion)g
+(function)390 737 y(returns)e(no)h(matc)m(hes.)42 b(It)31
+b(should)e(b)s(e)h(set)h(only)f(b)m(y)h(an)f(application's)i
+(completion)f(function.)3371 922 y([V)-8 b(ariable])-3598
+b Fh(int)53 b(rl_sort_completion_ma)q(tche)q(s)390 1031
+y Ft(If)29 b(an)h(application)h(sets)f(this)g(v)-5 b(ariable)31
+b(to)f(0,)h(Readline)f(will)g(not)g(sort)g(the)g(list)h(of)f
+(completions)390 1141 y(\(whic)m(h)25 b(implies)f(that)i(it)f(cannot)g
+(remo)m(v)m(e)h(an)m(y)f(duplicate)g(completions\).)40
+b(The)24 b(default)h(v)-5 b(alue)25 b(is)390 1250 y(1,)32
b(whic)m(h)f(means)g(that)h(Readline)g(will)f(sort)h(the)f(completions)
-h(and,)f(dep)s(ending)f(on)h(the)g(v)-5 b(alue)390 4823
+h(and,)f(dep)s(ending)f(on)h(the)g(v)-5 b(alue)390 1360
y(of)31 b Fs(rl_ignore_completion_du)o(pli)o(cate)o(s)p
Ft(,)25 b(will)30 b(attempt)i(to)f(remo)m(v)m(e)h(duplicate)f(matc)m
-(hes.)3371 5011 y([V)-8 b(ariable])-3598 b Fh(int)53
-b(rl_completion_type)390 5121 y Ft(Set)35 b(to)h(a)f(c)m(haracter)i
+(hes.)3371 1544 y([V)-8 b(ariable])-3598 b Fh(int)53
+b(rl_completion_type)390 1654 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 5230 y(ing;)f(see)f(the)g(description)f
+(curren)m(tly)h(attempt-)390 1763 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 5340 y(F)-8 b(unctions],)39 b(page)f(51\))f(for)g(the)
+([Completion)390 1873 y(F)-8 b(unctions],)39 b(page)f(52\))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)p eop end
-%%Page: 57 61
-TeXDict begin 57 60 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(57)390
-299 y(b)s(efore)31 b(an)m(y)h(application-sp)s(eci\014c)h(completion)g
-(function)f(is)f(called,)j(allo)m(wing)f(suc)m(h)e(functions)390
-408 y(to)g(presen)m(t)g(the)f(same)h(in)m(terface)h(as)e
-Fs(rl_complete\(\))p Ft(.)3371 593 y([V)-8 b(ariable])-3598
-b Fh(int)53 b(rl_completion_invokin)q(g_ke)q(y)390 702
-y Ft(Set)41 b(to)g(the)g(\014nal)g(c)m(haracter)h(in)e(the)h(k)m(ey)g
-(sequence)h(that)f(in)m(v)m(ok)m(ed)h(one)f(of)g(the)g(completion)390
-812 y(functions)c(that)h(call)h Fs(rl_complete_internal\(\))p
-Ft(.)56 b(This)37 b(is)g(set)h(to)g(the)g(appropriate)f(v)-5
-b(alue)390 922 y(b)s(efore)30 b(an)m(y)h(application-sp)s(eci\014c)h
-(completion)f(function)f(is)h(called.)3371 1106 y([V)-8
-b(ariable])-3598 b Fh(int)53 b(rl_inhibit_completion)390
-1215 y Ft(If)28 b(this)g(v)-5 b(ariable)29 b(is)f(non-zero,)i
+(appropriate)f(v)-5 b(alue)390 1983 y(b)s(efore)31 b(an)m(y)h
+(application-sp)s(eci\014c)h(completion)g(function)f(is)f(called,)j
+(allo)m(wing)f(suc)m(h)e(functions)390 2092 y(to)g(presen)m(t)g(the)f
+(same)h(in)m(terface)h(as)e Fs(rl_complete\(\))p Ft(.)3371
+2276 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_invokin)q
+(g_ke)q(y)390 2386 y Ft(Set)41 b(to)g(the)g(\014nal)g(c)m(haracter)h
+(in)e(the)h(k)m(ey)g(sequence)h(that)f(in)m(v)m(ok)m(ed)h(one)f(of)g
+(the)g(completion)390 2496 y(functions)c(that)h(call)h
+Fs(rl_complete_internal\(\))p Ft(.)56 b(This)37 b(is)g(set)h(to)g(the)g
+(appropriate)f(v)-5 b(alue)390 2605 y(b)s(efore)30 b(an)m(y)h
+(application-sp)s(eci\014c)h(completion)f(function)f(is)h(called.)3371
+2790 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_inhibit_completion)390
+2899 y Ft(If)28 b(this)g(v)-5 b(ariable)29 b(is)f(non-zero,)i
(completion)f(is)f(inhibited.)40 b(The)28 b(completion)h(c)m(haracter)h
-(will)f(b)s(e)390 1325 y(inserted)h(as)h(an)m(y)g(other)f(b)s(ound)e
-(to)k Fs(self-insert)p Ft(.)150 1524 y Fi(2.6.4)63 b(A)40
-b(Short)i(Completion)g(Example)150 1671 y Ft(Here)30
+(will)f(b)s(e)390 3009 y(inserted)h(as)h(an)m(y)g(other)f(b)s(ound)e
+(to)k Fs(self-insert)p Ft(.)150 3208 y Fi(2.6.4)63 b(A)40
+b(Short)i(Completion)g(Example)150 3355 y Ft(Here)30
b(is)f(a)g(small)h(application)g(demonstrating)f(the)h(use)e(of)i(the)f
(GNU)h(Readline)f(library)-8 b(.)40 b(It)30 b(is)f(called)150
-1781 y Fs(fileman)p Ft(,)40 b(and)f(the)h(source)g(co)s(de)g(resides)f
+3465 y Fs(fileman)p Ft(,)40 b(and)f(the)h(source)g(co)s(de)g(resides)f
(in)g Fs(examples/fileman.c)p Ft(.)64 b(This)39 b(sample)h(application)
-150 1890 y(pro)m(vides)26 b(completion)i(of)e(command)g(names,)h(line)f
+150 3574 y(pro)m(vides)26 b(completion)i(of)e(command)g(names,)h(line)f
(editing)h(features,)h(and)d(access)j(to)f(the)f(history)g(list.)p
eop end
-%%Page: 58 62
-TeXDict begin 58 61 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(58)390
+%%Page: 59 63
+TeXDict begin 59 62 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(59)390
299 y Fe(/*)40 b(fileman.c)h(--)f(A)f(tiny)h(application)i(which)e
(demonstrates)i(how)e(to)g(use)g(the)508 386 y(GNU)g(Readline)h
(library.)80 b(This)40 b(application)i(interactively)g(allows)f(users)
@@ -10841,9 +10912,9 @@ y(int)e(com_cd)g(PARAMS\(\(char)i(*\)\);)390 4483 y(int)e(com_quit)h
(call)i(to)e(do)h(the)g(job.)g(*/)468 5181 y(char)h(*doc;)f(/*)g
(Documentation)i(for)e(this)g(function.)80 b(*/)390 5268
y(})39 b(COMMAND;)p eop end
-%%Page: 59 63
-TeXDict begin 59 62 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(59)390
+%%Page: 60 64
+TeXDict begin 60 63 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(60)390
386 y Fe(COMMAND)41 b(commands[])g(=)f({)468 473 y({)g("cd",)g(com_cd,)
h("Change)g(to)f(directory)h(DIR")f(},)468 560 y({)g("delete",)h
(com_delete,)h("Delete)f(FILE")f(},)468 648 y({)g("help",)h(com_help,)g
@@ -10879,9 +10950,9 @@ y(break;)625 5093 y(/*)g(Remove)h(leading)f(and)g(trailing)h
(whitespace)h(from)e(the)g(line.)743 5181 y(Then,)g(if)g(there)g(is)g
(anything)h(left,)g(add)e(it)h(to)g(the)g(history)h(list)743
5268 y(and)f(execute)h(it.)f(*/)p eop end
-%%Page: 60 64
-TeXDict begin 60 63 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(60)625
+%%Page: 61 65
+TeXDict begin 61 64 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(61)625
299 y Fe(s)40 b(=)f(stripwhite)j(\(line\);)625 473 y(if)e(\(*s\))704
560 y({)782 648 y(add_history)i(\(s\);)782 735 y(execute_line)g(\(s\);)
704 822 y(})625 996 y(free)e(\(line\);)547 1083 y(})468
@@ -10908,9 +10979,9 @@ y(if)e(\(!command\))547 3524 y({)625 3611 y(fprintf)h(\(stderr,)g
b(Return)41 b(a)e(NULL)h(pointer)h(if)f(NAME)g(isn't)g(a)g(command)g
(name.)h(*/)390 5006 y(COMMAND)g(*)390 5093 y(find_command)h(\(name\))
586 5181 y(char)e(*name;)390 5268 y({)p eop end
-%%Page: 61 65
-TeXDict begin 61 64 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(61)468
+%%Page: 62 66
+TeXDict begin 62 65 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(62)468
299 y Fe(register)41 b(int)f(i;)468 473 y(for)g(\(i)g(=)f(0;)h
(commands[i].name;)j(i++\))547 560 y(if)d(\(strcmp)g(\(name,)h
(commands[i].name\))i(==)d(0\))625 648 y(return)h(\(&commands[i]\);)468
@@ -10951,9 +11022,9 @@ b(We)40 b(can)g(use)f(the)h(entire)h(contents)g(of)f(rl_line_buffer)508
b(Return)40 b(the)g(array)h(of)e(matches,)508 5181 y(or)g(NULL)h(if)g
(there)h(aren't)f(any.)g(*/)390 5268 y(char)g(**)p eop
end
-%%Page: 62 66
-TeXDict begin 62 65 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(62)390
+%%Page: 63 67
+TeXDict begin 63 66 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(63)390
299 y Fe(fileman_completion)43 b(\(text,)e(start,)g(end\))586
386 y(const)f(char)h(*text;)586 473 y(int)f(start,)h(end;)390
560 y({)468 648 y(char)g(**matches;)468 822 y(matches)g(=)f(\(char)g
@@ -10992,9 +11063,9 @@ b(*/)390 4832 y(/*)903 b(FileMan)41 b(Commands)1060 b(*/)390
b(*/)390 5181 y(/*)40 b(String)g(to)g(pass)g(to)g(system)g(\(\).)80
b(This)40 b(is)f(for)h(the)g(LIST,)h(VIEW)f(and)g(RENAME)508
5268 y(commands.)h(*/)p eop end
-%%Page: 63 67
-TeXDict begin 63 66 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(63)390
+%%Page: 64 68
+TeXDict begin 64 67 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(64)390
299 y Fe(static)41 b(char)f(syscom[1024];)390 473 y(/*)g(List)g(the)g
(file\(s\))h(named)f(in)g(arg.)g(*/)390 560 y(com_list)h(\(arg\))586
648 y(char)f(*arg;)390 735 y({)468 822 y(if)g(\(!arg\))547
@@ -11022,9 +11093,9 @@ j(==)d(1\))f(?)h("")f(:)h("s",)782 5093 y(finfo.st_size,)782
5181 y(\(finfo.st_size)j(==)c(1\))h(?)g("")f(:)h("s"\);)468
5268 y(printf)h(\("Inode)g(Last)f(Change)h(at:)f(\045s",)g(ctime)g
(\(&finfo.st_ctime\)\);)p eop end
-%%Page: 64 68
-TeXDict begin 64 67 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(64)468
+%%Page: 65 69
+TeXDict begin 65 68 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(65)468
299 y Fe(printf)41 b(\(")236 b(Last)40 b(access)h(at:)f(\045s",)g
(ctime)g(\(&finfo.st_atime\)\);)468 386 y(printf)h(\(")157
b(Last)41 b(modified)g(at:)f(\045s",)g(ctime)g(\(&finfo.st_mtime\)\);)
@@ -11042,7 +11113,7 @@ y(printf)i(\("\045s\\t\\t\045s.\\n",)i(commands[i].name,)g
(commands[i].doc\);)782 2478 y(printed++;)704 2565 y(})547
2653 y(})468 2827 y(if)d(\(!printed\))547 2914 y({)625
3001 y(printf)h(\("No)f(commands)h(match)g(`\045s'.)79
-b(Possibilties)42 b(are:\\n",)f(arg\);)625 3176 y(for)f(\(i)g(=)f(0;)h
+b(Possibilities)42 b(are:\\n",)f(arg\);)625 3176 y(for)f(\(i)g(=)f(0;)h
(commands[i].name;)j(i++\))704 3263 y({)782 3350 y(/*)d(Print)g(in)g
(six)g(columns.)h(*/)782 3437 y(if)f(\(printed)h(==)f(6\))861
3524 y({)939 3611 y(printed)h(=)e(0;)939 3699 y(printf)i(\("\\n"\);)861
@@ -11053,9 +11124,9 @@ b(Possibilties)42 b(are:\\n",)f(arg\);)625 3176 y(for)f(\(i)g(=)f(0;)h
4919 y(com_cd)h(\(arg\))586 5006 y(char)f(*arg;)390 5093
y({)468 5181 y(if)g(\(chdir)h(\(arg\))f(==)g(-1\))547
5268 y({)p eop end
-%%Page: 65 69
-TeXDict begin 65 68 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(65)625
+%%Page: 66 70
+TeXDict begin 66 69 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(66)625
299 y Fe(perror)41 b(\(arg\);)625 386 y(return)g(1;)547
473 y(})468 648 y(com_pwd)g(\(""\);)468 735 y(return)g(\(0\);)390
822 y(})390 996 y(/*)f(Print)g(out)g(the)g(current)h(working)g
@@ -11084,8 +11155,8 @@ y({)625 4658 y(fprintf)h(\(stderr,)g("\045s:)f(Argument)h
(required.\\n",)i(caller\);)625 4745 y(return)e(\(0\);)547
4832 y(})468 5006 y(return)g(\(1\);)390 5093 y(})p eop
end
-%%Page: 66 70
-TeXDict begin 66 69 bop 3659 -116 a Ft(66)150 299 y Fp(App)t(endix)52
+%%Page: 67 71
+TeXDict begin 67 70 bop 3659 -116 a Ft(67)150 299 y Fp(App)t(endix)52
b(A)81 b(GNU)54 b(F)-13 b(ree)53 b(Do)t(cumen)l(tation)e(License)1359
502 y Ft(V)-8 b(ersion)31 b(1.3,)g(3)g(No)m(v)m(em)m(b)s(er)h(2008)390
635 y(Cop)m(yrigh)m(t)842 632 y(c)817 635 y Fq(\015)e
@@ -11166,10 +11237,10 @@ b(\\In)m(v)-5 b(arian)m(t)27 b(Sections")g(are)f(certain)g(Secondary)g
5340 y(b)s(eing)e(those)h(of)g(In)m(v)-5 b(arian)m(t)27
b(Sections,)i(in)d(the)h(notice)h(that)f(sa)m(ys)g(that)g(the)g(Do)s
(cumen)m(t)g(is)g(released)p eop end
-%%Page: 67 71
-TeXDict begin 67 70 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 68 72
+TeXDict begin 68 71 bop 150 -116 a Ft(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(67)330 299 y(under)26 b(this)i(License.)40 b(If)27
+b(68)330 299 y(under)26 b(this)i(License.)40 b(If)27
b(a)h(section)h(do)s(es)f(not)f(\014t)h(the)g(ab)s(o)m(v)m(e)h
(de\014nition)e(of)h(Secondary)f(then)h(it)g(is)330 408
y(not)k(allo)m(w)m(ed)i(to)e(b)s(e)g(designated)g(as)g(In)m(v)-5
@@ -11260,10 +11331,10 @@ b(Disclaimers)f(are)g(considered)e(to)330 4970 y(b)s(e)k(included)g(b)m
b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g(and)f(has)h(no)330
5189 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h(this)f(License.)199
5340 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)p eop end
-%%Page: 68 72
-TeXDict begin 68 71 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 69 73
+TeXDict begin 69 72 bop 150 -116 a Ft(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(68)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
+b(69)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
(the)g(Do)s(cumen)m(t)h(in)f(an)m(y)g(medium,)h(either)g(commercially)h
(or)330 408 y(noncommercially)-8 b(,)48 b(pro)m(vided)42
b(that)h(this)f(License,)47 b(the)42 b(cop)m(yrigh)m(t)i(notices,)j
@@ -11353,10 +11424,10 @@ b(in)f(the)h(Title)h(P)m(age)g(\(and)f(on)f(the)h(co)m(v)m(ers,)i(if)e
5340 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f(previous)f(v)m
(ersions)h(\(whic)m(h)g(should,)g(if)g(there)g(w)m(ere)g(an)m(y)-8
b(,)p eop end
-%%Page: 69 73
-TeXDict begin 69 72 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 70 74
+TeXDict begin 70 73 bop 150 -116 a Ft(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(69)510 299 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g
+b(70)510 299 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g
(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 b(ma)m(y)g(use)f(the)g(same)
h(title)h(as)510 408 y(a)e(previous)f(v)m(ersion)g(if)h(the)f(original)
i(publisher)d(of)h(that)h(v)m(ersion)g(giv)m(es)h(p)s(ermission.)360
@@ -11435,10 +11506,10 @@ b(arran)m(t)m(y)32 b(Disclaimers.)330 5121 y(If)h(the)g(Mo)s(di\014ed)g
(designate)h(some)e(or)h(all)g(of)f(these)h(sections)h(as)e(in)m(v)-5
b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)p
eop end
-%%Page: 70 74
-TeXDict begin 70 73 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 71 75
+TeXDict begin 71 74 bop 150 -116 a Ft(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(70)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
+b(71)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
b(arian)m(t)36 b(Sections)g(in)f(the)h(Mo)s(di\014ed)f(V)-8
b(ersion's)36 b(license)g(notice.)57 b(These)330 408
y(titles)32 b(m)m(ust)e(b)s(e)g(distinct)h(from)e(an)m(y)i(other)g
@@ -11523,10 +11594,10 @@ b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h
5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g
(other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330
5340 y(that)d(do)s(cumen)m(t.)p eop end
-%%Page: 71 75
-TeXDict begin 71 74 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 72 76
+TeXDict begin 72 75 bop 150 -116 a Ft(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(71)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h
+b(72)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h
(W)m(ORKS)330 441 y(A)d(compilation)i(of)e(the)g(Do)s(cumen)m(t)h(or)f
(its)g(deriv)-5 b(ativ)m(es)30 b(with)d(other)i(separate)g(and)e(indep)
s(enden)m(t)330 551 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h
@@ -11611,10 +11682,10 @@ b(ha)m(v)m(e)h(receiv)m(ed)h(copies)e(or)h(righ)m(ts)f(from)g(y)m(ou)g
(reinstated,)i(receipt)f(of)f(a)g(cop)m(y)h(of)f(some)h(or)f(all)h(of)f
(the)330 5340 y(same)31 b(material)h(do)s(es)e(not)g(giv)m(e)i(y)m(ou)f
(an)m(y)g(righ)m(ts)f(to)i(use)e(it.)p eop end
-%%Page: 72 76
-TeXDict begin 72 75 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 73 77
+TeXDict begin 73 76 bop 150 -116 a Ft(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(72)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)330
+b(73)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)330
433 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8
b(oundation)43 b(ma)m(y)f(publish)e(new,)k(revised)d(v)m(ersions)h(of)g
(the)g(GNU)g(F)-8 b(ree)330 543 y(Do)s(cumen)m(tation)34
@@ -11678,10 +11749,10 @@ f(of)g(that)330 2944 y(license)31 b(published)e(b)m(y)h(that)h(same)g
g(under)330 3895 y(CC-BY-SA)30 b(on)g(the)h(same)f(site)h(at)g(an)m(y)g
(time)g(b)s(efore)e(August)h(1,)h(2009,)h(pro)m(vided)e(the)g(MMC)h(is)
330 4005 y(eligible)h(for)e(relicensing.)p eop end
-%%Page: 73 77
-TeXDict begin 73 76 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 74 78
+TeXDict begin 74 77 bop 150 -116 a Ft(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(73)150 299 y Fr(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f
+b(74)150 299 y Fr(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f
(for)g(y)l(our)g(do)t(cumen)l(ts)150 458 y Ft(T)-8 b(o)35
b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m(t)g(y)m(ou)f(ha)m(v)m(e)
i(written,)g(include)f(a)f(cop)m(y)i(of)f(the)f(License)h(in)g(the)150
@@ -11716,11 +11787,11 @@ y(If)23 b(y)m(our)h(do)s(cumen)m(t)f(con)m(tains)i(non)m(trivial)g
b(as)g(the)g(GNU)150 2331 y(General)31 b(Public)f(License,)i(to)f(p)s
(ermit)e(their)i(use)f(in)g(free)g(soft)m(w)m(are.)p
eop end
-%%Page: 74 78
-TeXDict begin 74 77 bop 150 -116 a Ft(Concept)31 b(Index)2927
-b(74)150 100 y Fp(Concept)52 b(Index)146 434 y Fr(A)150
+%%Page: 75 79
+TeXDict begin 75 78 bop 150 -116 a Ft(Concept)31 b(Index)2927
+b(75)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(50)146 796 y
+Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(51)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
@@ -11744,118 +11815,120 @@ g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
32 b Fb(1)2021 970 y Fr(R)2025 1102 y Fb(readline,)26
b(function)18 b Fa(:)c(:)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(:)33
-b Fb(24)2021 1507 y Fr(V)2025 1639 y Fb(v)l(ariables,)27
+b Fb(25)2021 1507 y Fr(V)2025 1639 y Fb(v)l(ariables,)27
b(readline)11 b Fa(:)j(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
26 b Fb(4)2021 2043 y Fr(Y)2025 2176 y Fb(y)n(anking)f(text)17
b Fa(:)12 b(:)h(:)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(:)g(:)g(:)h(:)
f(:)g(:)32 b Fb(2)p eop end
-%%Page: 75 79
-TeXDict begin 75 78 bop 3659 -116 a Ft(75)150 299 y Fp(F)-13
+%%Page: 76 80
+TeXDict begin 76 79 bop 3659 -116 a Ft(76)150 299 y Fp(F)-13
b(unction)52 b(and)h(V)-13 b(ariable)53 b(Index)p 156
-740 41 6 v 150 864 a Fe(_rl_digit_p)10 b Fa(:)16 b(:)d(:)g(:)g(:)h(:)f
+740 41 6 v 150 862 a Fe(_rl_digit_p)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(41)150
-953 y Fe(_rl_digit_value)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(42)150
+951 y Fe(_rl_digit_value)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)32 b Fb(42)150 1043 y Fe(_rl_lowercase_p)17
+(:)g(:)g(:)32 b Fb(43)150 1041 y Fe(_rl_lowercase_p)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 1132 y Fe(_rl_to_lower)8 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)
+b Fb(42)150 1130 y Fe(_rl_to_lower)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(42)150
-1222 y Fe(_rl_to_upper)8 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(43)150
+1219 y Fe(_rl_to_upper)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(41)150 1309 y Fe(_rl_uppercase_p)17
+(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(42)150 1306 y Fe(_rl_uppercase_p)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)146 1605 y Fr(A)150 1728 y Fe(abort)27 b(\(C-g\))17
+b Fb(42)146 1593 y Fr(A)150 1715 y Fe(abort)27 b(\(C-g\))17
b Fa(:)d(:)f(:)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(:)h
-(:)31 b Fb(22)150 1815 y Fe(accept-line)d(\(Newline)g(or)e(Return\))14
+(:)31 b Fb(22)150 1802 y Fe(accept-line)d(\(Newline)g(or)e(Return\))14
b Fa(:)g(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28
-b Fb(17)146 2111 y Fr(B)150 2234 y Fe(backward-char)h(\(C-b\))14
+b Fb(17)146 2088 y Fr(B)150 2211 y Fe(backward-char)h(\(C-b\))14
b Fa(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)28 b Fb(16)150 2324
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)28 b Fb(16)150 2300
y Fe(backward-delete-char)i(\(Rubout\))24 b Fa(:)14 b(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(18)150 2413
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(19)150 2389
y Fe(backward-kill-line)30 b(\(C-x)c(Rubout\))7 b Fa(:)15
b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)21 b
-Fb(20)150 2503 y Fe(backward-kill-word)30 b(\(M-DEL\))13
+Fb(20)150 2478 y Fe(backward-kill-word)30 b(\(M-DEL\))13
b Fa(:)h(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)27 b Fb(20)150 2593 y Fe(backward-word)i(\(M-b\))14
+h(:)27 b Fb(20)150 2567 y Fe(backward-word)i(\(M-b\))14
b Fa(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)28 b Fb(16)150 2682
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)28 b Fb(16)150 2656
y Fe(beginning-of-history)i(\(M-<\))13 b Fa(:)h(:)g(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(17)150
-2772 y Fe(beginning-of-line)i(\(C-a\))22 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)
+2746 y Fe(beginning-of-line)i(\(C-a\))22 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35
-b Fb(16)150 2861 y(b)r(ell-st)n(yle)9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g
+b Fb(16)150 2835 y(b)r(ell-st)n(yle)9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)24
-b Fb(5)150 2951 y(bind-tt)n(y-sp)r(ecial-c)n(hars)c Fa(:)13
+b Fb(5)150 2924 y(bind-tt)n(y-sp)r(ecial-c)n(hars)c 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(:)g(:)g(:)g(:)36 b Fb(5)150 3041
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(5)150 3013
y(blink-matc)n(hing-paren)6 b Fa(:)12 b(:)i(:)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(:)21 b Fb(5)150 3128 y Fe(bracketed-paste-begin)30
+g(:)21 b Fb(5)150 3100 y Fe(bracketed-paste-begin)30
b(\(\))18 b Fa(:)c(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)33 b Fb(19)146 3423 y Fr(C)150
-3547 y Fe(call-last-kbd-macro)d(\(C-x)c(e\))17 b Fa(:)d(:)f(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)33 b Fb(19)146 3387 y Fr(C)150
+3509 y Fe(call-last-kbd-macro)d(\(C-x)c(e\))17 b Fa(:)d(:)f(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(22)150
-3636 y Fe(capitalize-word)d(\(M-c\))9 b Fa(:)14 b(:)f(:)g(:)g(:)h(:)f
+3598 y Fe(capitalize-word)d(\(M-c\))9 b Fa(:)14 b(:)f(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-23 b Fb(19)150 3726 y Fe(character-search)29 b(\(C-]\))6
+23 b Fb(19)150 3687 y Fe(character-search)29 b(\(C-]\))6
b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(22)150 3815 y Fe
+(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(23)150 3777 y Fe
(character-search-backward)31 b(\(M-C-]\))12 b Fa(:)j(:)e(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)27 b Fb(22)150 3905 y Fe(clear-screen)h(\(C-l\))16
-b Fa(:)f(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)31 b Fb(16)150
-3995 y(colored-completion-pre\014x)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(:)24
-b Fb(5)150 4084 y(colored-stats)17 b Fa(:)d(:)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(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)31 b Fb(5)150
-4174 y(commen)n(t-b)r(egin)6 b Fa(:)14 b(:)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(:)21 b Fb(5)150 4263 y Fe(complete)27
-b(\(TAB\))10 b Fa(:)k(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)27 b Fb(23)150 3866 y Fe(clear-display)i(\(M-C-l\))9
+b Fa(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23 b Fb(16)150 3955 y
+Fe(clear-screen)28 b(\(C-l\))16 b Fa(:)f(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)31 b Fb(17)150 4044 y(colored-completion-pre\014x)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(:)24 b Fb(5)150 4133 y(colored-stats)17
+b Fa(:)d(:)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(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)31 b Fb(5)150 4222 y(commen)n(t-b)r(egin)6 b Fa(:)14
+b(:)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(:)21
+b Fb(5)150 4312 y Fe(complete)27 b(\(TAB\))10 b Fa(:)k(:)f(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)24 b Fb(21)150 4353 y(completion-displa)n(y-width)10
-b Fa(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)25 b Fb(5)150 4443 y
-(completion-ignore-case)c 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(:)34
-b Fb(5)150 4532 y(completion-map-case)15 b Fa(:)f(:)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(:)30 b Fb(5)150 4622 y(completion-pre\014x-displa)n
-(y-length)14 b Fa(:)e(:)h(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)28 b Fb(5)150 4712 y(completion-query-items)6
-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(:)g(:)g(:)g(:)21 b Fb(6)150
-4801 y(con)n(v)n(ert-meta)9 b Fa(:)k(:)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(:)24 b Fb(6)150 4891
-y Fe(copy-backward-word)30 b(\(\))9 b Fa(:)k(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23
-b Fb(20)150 4980 y Fe(copy-forward-word)29 b(\(\))11
-b Fa(:)j(:)f(:)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(20)150 5068 y
-Fe(copy-region-as-kill)k(\(\))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(:)g(:)21
-b Fb(20)2021 817 y Fr(D)2025 935 y Fe(delete-char)28
-b(\(C-d\))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(18)2025 1023 y Fe(delete-char-or-list)c(\(\))6 b
-Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)21 b Fb(21)2025 1111 y Fe
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(21)150 4401
+y(completion-displa)n(y-width)10 b Fa(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)25
+b Fb(5)150 4490 y(completion-ignore-case)c 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(:)34 b Fb(5)150 4579 y(completion-map-case)15
+b Fa(:)f(:)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(:)30 b Fb(5)150
+4668 y(completion-pre\014x-displa)n(y-length)14 b Fa(:)e(:)h(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)28 b
+Fb(5)150 4758 y(completion-query-items)6 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(:)g
+(:)g(:)g(:)21 b Fb(6)150 4847 y(con)n(v)n(ert-meta)9
+b Fa(:)k(:)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(:)24 b Fb(6)150 4936 y Fe(copy-backward-word)30
+b(\(\))9 b Fa(:)k(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23 b Fb(21)150
+5025 y Fe(copy-forward-word)29 b(\(\))11 b Fa(:)j(:)f(:)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(21)150 5112 y Fe(copy-region-as-kill)k(\(\))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(:)g(:)21 b Fb(21)2021 817 y Fr(D)2025
+935 y Fe(delete-char)28 b(\(C-d\))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(18)2025 1023 y Fe(delete-char-or-list)c(\(\))6
+b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)21 b Fb(22)2025 1111 y Fe
(delete-horizontal-space)31 b(\(\))13 b Fa(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)28 b Fb(20)2025
1200 y Fe(digit-argument)h(\()p Fc(M-0)p Fe(,)d Fc(M-1)p
Fe(,)h(...)f Fc(M--)p Fe(\))13 b Fa(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)28 b Fb(20)2025 1288 y(disable-completion)20 b Fa(:)13
+(:)28 b Fb(21)2025 1288 y(disable-completion)20 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(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(6)2025
1376 y Fe(do-lowercase-version)c(\(M-A,)d(M-B,)f(M-)p
@@ -11867,7 +11940,7 @@ 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(23)2025
1640 y Fe(dump-macros)28 b(\(\))10 b Fa(:)j(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)24 b Fb(23)2025 1727 y Fe(dump-variables)29
+g(:)g(:)h(:)f(:)g(:)g(:)24 b Fb(24)2025 1727 y Fe(dump-variables)29
b(\(\))19 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(23)2021 1989 y Fr(E)2025 2108 y Fb(ec)n(ho-con)n(trol-c)n
@@ -11878,7 +11951,7 @@ b Fb(6)2025 2196 y(editing-mo)r(de)10 b Fa(:)j(:)g(:)g(:)g(:)g(:)g(:)h
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)25 b Fb(6)2025
2284 y Fe(emacs-editing-mode)k(\(C-e\))18 b Fa(:)d(:)e(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)33
-b Fb(23)2025 2372 y(emacs-mo)r(de-string)18 b Fa(:)c(:)f(:)g(:)g(:)g(:)
+b Fb(24)2025 2372 y(emacs-mo)r(de-string)18 b Fa(:)c(:)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(:)g(:)33 b Fb(6)2025 2460 y(enable-brac)n(k)n
(eted-paste)18 b Fa(:)12 b(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
@@ -11897,12 +11970,12 @@ b(\(M->\))11 b Fa(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)34 b Fb(16)2025 2988 y Fe(exchange-point-and-mark)d(\(C-x)
26 b(C-x\))20 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34
-b Fb(22)2025 3076 y(expand-tilde)19 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
+b Fb(23)2025 3076 y(expand-tilde)19 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(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)35 b Fb(7)2021
3336 y Fr(F)2025 3455 y Fe(forward-backward-delete-char)d(\(\))17
b Fa(:)d(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)32
-b Fb(18)2025 3543 y Fe(forward-char)c(\(C-f\))16 b Fa(:)f(:)e(:)g(:)g
+b Fb(19)2025 3543 y Fe(forward-char)c(\(C-f\))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(16)2025 3631 y Fe(forward-search-history)f
(\(C-s\))8 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
@@ -11922,7 +11995,7 @@ b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
g(:)37 b Fb(7)2025 4441 y Fe(history-substring-search-backw)q(ard)32
b(\(\))22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)36 b Fb(18)2025
4529 y Fe(history-substring-search-forwa)q(rd)c(\(\))7
-b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)22 b Fb(17)2025
+b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)22 b Fb(18)2025
4616 y(horizon)n(tal-scroll-mo)r(de)10 b Fa(:)15 b(:)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(:)25 b Fb(7)2021 4867 y Fr(I)2025 4986 y Fb(input-meta)9
@@ -11937,81 +12010,83 @@ b Fb(21)2025 5249 y(isearc)n(h-terminators)9 b Fa(:)14
b(:)f(:)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(:)24 b Fb(7)p
eop end
-%%Page: 76 80
-TeXDict begin 76 79 bop 150 -116 a Ft(F)-8 b(unction)31
-b(and)f(V)-8 b(ariable)32 b(Index)2370 b(76)146 294 y
-Fr(K)150 424 y Fb(k)n(eymap)14 b Fa(:)e(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+%%Page: 77 81
+TeXDict begin 77 80 bop 150 -116 a Ft(F)-8 b(unction)31
+b(and)f(V)-8 b(ariable)32 b(Index)2370 b(77)146 294 y
+Fr(K)150 423 y Fb(k)n(eymap)14 b Fa(:)e(:)h(:)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(:)g(:)g(:)g(:)g(:)29
-b Fb(8)150 516 y Fe(kill-line)f(\(C-k\))7 b Fa(:)14 b(:)f(:)g(:)g(:)g
+b Fb(8)150 514 y Fe(kill-line)f(\(C-k\))7 b Fa(:)14 b(:)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(:)21 b Fb(19)150 607 y
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(20)150 605 y
Fe(kill-region)28 b(\(\))10 b Fa(:)j(:)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(:)24 b Fb(20)150 699 y Fe(kill-whole-line)29
+(:)f(:)g(:)g(:)g(:)24 b Fb(21)150 697 y Fe(kill-whole-line)29
b(\(\))16 b Fa(:)e(:)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(:)31
-b Fb(20)150 786 y Fe(kill-word)d(\(M-d\))7 b Fa(:)14
+b Fb(20)150 784 y Fe(kill-word)d(\(M-d\))7 b Fa(:)14
b(:)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(:)21
-b Fb(20)146 1116 y Fr(M)150 1246 y Fb(mark-mo)r(di\014ed-lines)c
+b Fb(20)146 1106 y Fr(M)150 1235 y Fb(mark-mo)r(di\014ed-lines)c
Fa(:)c(:)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(:)32 b Fb(8)150
-1338 y(mark-symlink)n(ed-directories)14 b Fa(:)f(:)g(:)h(:)f(:)g(:)g(:)
+1326 y(mark-symlink)n(ed-directories)14 b Fa(:)f(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29
-b Fb(8)150 1430 y(matc)n(h-hidden-\014les)7 b Fa(:)12
+b Fb(8)150 1417 y(matc)n(h-hidden-\014les)7 b Fa(:)12
b(:)h(:)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(:)22
-b Fb(8)150 1521 y Fe(menu-complete)29 b(\(\))22 b Fa(:)13
+b Fb(8)150 1509 y Fe(menu-complete)29 b(\(\))22 b Fa(:)13
b(:)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(:)36 b Fb(21)150
-1613 y Fe(menu-complete-backward)31 b(\(\))16 b Fa(:)d(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(22)150
+1600 y Fe(menu-complete-backward)31 b(\(\))16 b Fa(:)d(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)30
-b Fb(21)150 1705 y(men)n(u-complete-displa)n(y-pre\014x)10
+b Fb(22)150 1692 y(men)n(u-complete-displa)n(y-pre\014x)10
b Fa(:)h(:)j(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)25 b Fb(8)150 1792 y(meta-\015ag)d Fa(:)13
+h(:)f(:)g(:)25 b Fb(8)150 1779 y(meta-\015ag)d Fa(:)13
b(:)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(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)36 b Fb(7)146 2130 y Fr(N)150 2260 y Fe(next-history)28
+h(:)f(:)g(:)36 b Fb(7)146 2109 y Fr(N)150 2238 y Fe(next-history)28
b(\(C-n\))16 b Fa(:)f(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)31
-b Fb(17)150 2352 y Fe(next-screen-line)e(\(\))14 b Fa(:)g(:)f(:)g(:)g
+b Fb(17)150 2329 y Fe(next-screen-line)e(\(\))14 b Fa(:)g(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)28 b Fb(16)150 2424 y Fe(non-incremental-forward-)227
-2512 y(search-history)h(\(M-n\))7 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f
+g(:)h(:)f(:)g(:)28 b Fb(16)150 2401 y Fe(non-incremental-forward-)227
+2488 y(search-history)h(\(M-n\))7 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21
-b Fb(17)150 2599 y Fe(non-incremental-reverse-)227 2686
+b Fb(17)150 2576 y Fe(non-incremental-reverse-)227 2663
y(search-history)29 b(\(M-p\))7 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21
-b Fb(17)146 3035 y Fr(O)150 3165 y Fb(output-meta)d 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(:)h(:)f(:)g(:)g(:)
-34 b Fb(8)150 3252 y Fe(overwrite-mode)29 b(\(\))19 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(:)33 b Fb(19)146
-3582 y Fr(P)150 3712 y Fb(page-completions)8 b Fa(:)15
+b Fb(17)146 3004 y Fr(O)150 3133 y Fe(operate-and-get-next)30
+b(\(C-o\))13 b Fa(:)h(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)27 b Fb(18)150 3224 y(output-meta)18
+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(:)h(:)f(:)
+g(:)g(:)34 b Fb(8)150 3311 y Fe(overwrite-mode)29 b(\(\))19
+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(:)33 b Fb(20)146
+3633 y Fr(P)150 3762 y Fb(page-completions)8 b Fa(:)15
b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23
-b Fb(9)150 3804 y Fe(possible-completions)30 b(\(M-?\))13
+b Fb(9)150 3853 y Fe(possible-completions)30 b(\(M-?\))13
b Fa(:)h(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)27 b Fb(21)150 3896 y Fe(prefix-meta)h(\(ESC\))20
+h(:)27 b Fb(21)150 3945 y Fe(prefix-meta)h(\(ESC\))20
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(:)33 b Fb(22)150
-3987 y Fe(previous-history)c(\(C-p\))6 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g
+4036 y Fe(previous-history)c(\(C-p\))6 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(17)150 4079 y Fe(previous-screen-line)30 b(\(\))21
+b Fb(17)150 4128 y Fe(previous-screen-line)30 b(\(\))21
b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)35 b Fb(16)150 4166 y Fe(print-last-kbd-macro)30
+(:)h(:)f(:)g(:)g(:)35 b Fb(16)150 4215 y Fe(print-last-kbd-macro)30
b(\(\))21 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fb(22)146 4506 y
-Fr(Q)150 4632 y Fe(quoted-insert)29 b(\(C-q)d(or)g(C-v\))10
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fb(22)146 4547 y
+Fr(Q)150 4672 y Fe(quoted-insert)29 b(\(C-q)d(or)g(C-v\))10
b Fa(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)24 b Fb(18)2021 294 y Fr(R)2025 410 y Fe(re-read-init-file)29
+g(:)g(:)24 b Fb(19)2021 294 y Fr(R)2025 410 y Fe(re-read-init-file)29
b(\(C-x)e(C-r\))17 b Fa(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)32 b Fb(22)2025 498 y Fe(readline)18
b Fa(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)33 b Fb(24)2025 585 y Fe(redraw-current-line)d(\(\))6
+(:)g(:)g(:)g(:)33 b Fb(25)2025 585 y Fe(redraw-current-line)d(\(\))6
b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)21 b Fb(17)2025 672 y Fe
(reverse-search-history)30 b(\(C-r\))8 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g
@@ -12020,363 +12095,373 @@ b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)26 b Fb(9)2025 847 y Fe(revert-line)i(\(M-r\))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(22)2025
-935 y Fe(rl_add_defun)8 b Fa(:)15 b(:)f(:)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(:)22 b Fb(32)2025 1022 y Fe(rl_add_funmap_entry)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
-1109 y Fe(rl_add_undo)10 b Fa(:)16 b(:)d(:)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(:)g(:)g(:)g(:)25 b Fb(37)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(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(37)2025
-1371 y Fe(rl_bind_key)10 b Fa(:)16 b(:)d(:)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(:)g(:)g(:)g(:)25 b Fb(34)2025 1459 y
-Fe(rl_bind_key_if_unbound)16 b Fa(:)i(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)31
-b Fb(34)2025 1546 y Fe(rl_bind_key_if_unbound_in_map)16
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(23)2025
+935 y Fe(rl_activate_mark)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(44)2025 1022 y Fe(rl_add_defun)8 b Fa(:)15
+b(:)f(:)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(:)22
+b Fb(33)2025 1109 y Fe(rl_add_funmap_entry)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(37)2025 1197 y
+Fe(rl_add_undo)10 b Fa(:)16 b(:)d(:)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(:)g(:)g(:)g(:)25 b Fb(38)2025 1284 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(42)2025 1371 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(38)2025 1459 y
+Fe(rl_bind_key)10 b Fa(:)16 b(:)d(:)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(:)g(:)g(:)g(:)25 b Fb(35)2025 1546 y Fe
+(rl_bind_key_if_unbound)16 b Fa(:)i(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)31
+b Fb(35)2025 1633 y Fe(rl_bind_key_if_unbound_in_map)16
b Fa(:)j(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)30
-b Fb(34)2025 1633 y Fe(rl_bind_key_in_map)10 b Fa(:)17
+b Fb(35)2025 1721 y Fe(rl_bind_key_in_map)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(34)2025 1721
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(35)2025 1808
y Fe(rl_bind_keyseq)f Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)34 b Fb(35)2025 1808 y Fe(rl_bind_keyseq_if_unbound)9
+h(:)f(:)34 b Fb(36)2025 1896 y Fe(rl_bind_keyseq_if_unbound)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(35)2025 1896 y Fe(rl_bind_keyseq_if_unbound_in_m)q
+(:)g(:)h(:)23 b Fb(36)2025 1983 y Fe(rl_bind_keyseq_if_unbound_in_m)q
(ap)8 b Fa(:)19 b(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)23
-b Fb(35)2025 1983 y Fe(rl_bind_keyseq_in_map)h Fa(:)13
+b Fb(36)2025 2070 y Fe(rl_bind_keyseq_in_map)h Fa(:)13
b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)34 b Fb(35)2025 2070 y Fe
+(:)g(:)g(:)g(:)g(:)34 b Fb(36)2025 2158 y Fe
(rl_callback_handler_install)27 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(43)2025 2158 y
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(44)2025 2245 y
Fe(rl_callback_handler_remove)6 b Fa(:)19 b(:)13 b(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21 b Fb(43)2025
-2245 y Fe(rl_callback_read_char)j Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21 b Fb(45)2025
+2332 y Fe(rl_callback_read_char)j Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34
-b Fb(43)2025 2332 y Fe(rl_callback_sigcleanup)16 b Fa(:)i(:)13
+b Fb(44)2025 2420 y Fe(rl_callback_sigcleanup)16 b Fa(:)i(:)13
b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)31 b Fb(43)2025 2420 y Fe(rl_check_signals)15
+(:)g(:)g(:)31 b Fb(44)2025 2507 y Fe(rl_check_signals)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(49)2025 2507 y Fe(rl_cleanup_after_signal)14 b Fa(:)k(:)13
+Fb(50)2025 2595 y Fe(rl_cleanup_after_signal)14 b Fa(:)k(:)13
b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)28 b Fb(49)2025 2595 y Fe(rl_clear_history)15
+(:)h(:)28 b Fb(50)2025 2682 y Fe(rl_clear_history)15
b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)29 b
-Fb(42)2025 2682 y Fe(rl_clear_message)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g
+Fb(43)2025 2769 y Fe(rl_clear_message)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(38)2025 2769 y Fe(rl_clear_pending_input)16
+g(:)g(:)g(:)h(:)f(:)29 b Fb(39)2025 2857 y Fe(rl_clear_pending_input)16
b Fa(:)i(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)31 b Fb(40)2025 2857 y Fe(rl_clear_signals)15
+(:)g(:)h(:)f(:)g(:)g(:)31 b Fb(41)2025 2944 y Fe(rl_clear_signals)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(50)2025 2944 y Fe(rl_clear_visible_line)24 b Fa(:)13
+Fb(51)2025 3031 y Fe(rl_clear_visible_line)24 b Fa(:)13
b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)34 b Fb(38)2025 3031 y Fe(rl_complete)10
-b Fa(:)16 b(:)d(:)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(:)g(:)g(:)
-g(:)25 b Fb(51)2025 3119 y Fe(rl_complete_internal)h
-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(51)2025 3206 y
-Fe(rl_completion_matches)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34
-b Fb(52)2025 3293 y Fe(rl_completion_mode)10 b Fa(:)17
-b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(51)2025 3381
-y Fe(rl_copy_keymap)f Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)34 b Fb(33)2025 3468 y Fe(rl_copy_text)8 b Fa(:)15
-b(:)f(:)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(:)22
-b Fb(39)2025 3556 y Fe(rl_crlf)g 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(38)2025 3643 y Fe(rl_delete_text)23 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 b Fb(39)2025 3730 y
-Fe(rl_deprep_terminal)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+(:)g(:)g(:)g(:)g(:)34 b Fb(39)2025 3119 y Fe(rl_complete)17
+b Fa(:)e(:)e(:)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(:)31
+b Fb(52,)c(53)2025 3206 y Fe(rl_complete_internal)f 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(52)2025 3293 y Fe(rl_completion_matches)
+24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(53)2025 3381 y
+Fe(rl_completion_mode)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24
-b Fb(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(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
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34
-b Fb(41)2025 4080 y Fe(rl_do_undo)13 b Fa(:)i(:)e(:)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(:)g(:)g(:)h(:)27 b Fb(37)2025
-4167 y Fe(rl_echo_signal_char)7 b Fa(:)17 b(:)c(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(53)2025 3468 y Fe(rl_copy_keymap)f Fa(:)13 b(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 b Fb(34)2025 3556 y Fe(rl_copy_text)8
+b Fa(:)15 b(:)f(:)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(:)
+22 b Fb(40)2025 3643 y Fe(rl_crlf)g 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(39)2025 3730 y Fe(rl_deactivate_mark)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(44)2025 3818
+y Fe(rl_delete_text)f Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-22 b Fb(49)2025 4255 y Fe(rl_empty_keymap)17 b Fa(:)g(:)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(:)g(:)g(:)g(:)32 b Fb(33)2025 4342 y Fe
-(rl_end_undo_group)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(37)2025 4429 y Fe(rl_execute_next)17 b Fa(:)g(:)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(:)g(:)g(:)g(:)32 b Fb(40)2025 4517 y Fe(rl_expand_prompt)
-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(38)2025 4604 y Fe(rl_extend_line_buffer)24 b Fa(:)13
+h(:)f(:)34 b Fb(40)2025 3905 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(41)2025
+3992 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(42)2025
+4080 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(34)2025 4167 y Fe(rl_display_match_list)d
+Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(42)2025 4255 y Fe(rl_do_undo)13
+b Fa(:)i(:)e(:)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(:)g(:)g
+(:)h(:)27 b Fb(38)2025 4342 y Fe(rl_echo_signal_char)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(51)2025
+4429 y Fe(rl_empty_keymap)17 b Fa(:)g(:)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(:)
+g(:)g(:)g(:)32 b Fb(34)2025 4517 y Fe(rl_end_undo_group)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(38)2025
+4604 y Fe(rl_execute_next)17 b Fa(:)g(:)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(:)
+g(:)g(:)g(:)32 b Fb(41)2025 4691 y Fe(rl_expand_prompt)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(39)2025 4779 y Fe(rl_extend_line_buffer)24 b Fa(:)13
b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)34 b Fb(41)2025 4691 y Fe
+(:)g(:)g(:)g(:)g(:)34 b Fb(42)2025 4866 y Fe
(rl_filename_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
-4779 y Fe(rl_forced_update_display)11 b Fa(:)19 b(:)13
+b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)25 b Fb(53)2025
+4954 y Fe(rl_forced_update_display)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(37)2025 4866 y Fe(rl_free)c Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)
+(:)26 b Fb(38)2025 5041 y Fe(rl_free)c 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(41)2025 4954 y Fe(rl_free_keymap)23 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)
+b Fb(42)2025 5128 y Fe(rl_free_keymap)23 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 b Fb(33)2025 5041 y
-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(49)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(37)p eop
-end
-%%Page: 77 81
-TeXDict begin 77 80 bop 150 -116 a Ft(F)-8 b(unction)31
-b(and)f(V)-8 b(ariable)32 b(Index)2370 b(77)150 260 y
-Fe(rl_function_dumper)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 b Fb(34)p eop end
+%%Page: 78 82
+TeXDict begin 78 81 bop 150 -116 a Ft(F)-8 b(unction)31
+b(and)f(V)-8 b(ariable)32 b(Index)2370 b(78)150 260 y
+Fe(rl_free_line_state)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(36)150 434 y Fe(rl_function_of_keyseq_len)9
-b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)23 b Fb(36)150 522 y Fe(rl_funmap_names)17
+b Fb(50)150 347 y Fe(rl_free_undo_list)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 434 y 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(37)150
+521 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(37)150 609 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(37)150 696 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(37)150 783 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(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 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 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 871 y Fe(rl_get_keymap_name)10
-b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(33)150
-958 y Fe(rl_get_screen_size)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)24 b Fb(50)150 1045 y Fe(rl_get_termcap)f Fa(:)13
-b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34
-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 1219 y Fe(rl_initialize)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
+b Fb(36)150 870 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(41)150 1307 y
-Fe(rl_insert_completions)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(34)150 957 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(51)150 1394 y Fe(rl_insert_text)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f
+b Fb(34)150 1045 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(34)150 1132
+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(51)150 1219 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(39)150 1481 y Fe
-(rl_invoking_keyseqs)7 b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21
-b Fb(36)150 1568 y Fe(rl_invoking_keyseqs_in_map)7 b
-Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)21 b Fb(36)150 1656 y Fe(rl_kill_text)8 b Fa(:)16
-b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
-b Fb(39)150 1743 y Fe(rl_list_funmap_names)k Fa(:)13
-b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(36)150 1830 y Fe(rl_macro_bind)25
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(43)150 1306 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(40)150 1393 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(42)150 1917 y Fe(rl_macro_dumper)17 b Fa(:)g(:)c(:)g(:)g(:)g(:)g
+b Fb(42)150 1481 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(53)150 1568 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(40)150 1655 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(37)150 1742 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(37)150
+1829 y Fe(rl_keep_mark_active)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(:)
-g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(42)150 2005 y Fe(rl_make_bare_keymap)7
-b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(33)150
-2092 y Fe(rl_make_keymap)i Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)34 b Fb(33)150 2179 y Fe(rl_message)13
-b Fa(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)27 b Fb(38)150 2266 y Fe(rl_modifying)8 b Fa(:)16
-b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
-b Fb(37)150 2354 y Fe(rl_named_function)12 b Fa(:)17
-b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(36)150
-2441 y Fe(rl_on_new_line)d Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+21 b Fb(44)150 1917 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(40)150
+2004 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(37)150 2091 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(43)150 2178 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(43)150 2265 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(34)150
+2353 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(37)150 2528 y Fe(rl_on_new_line_with_prompt)7
-b Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)21 b Fb(38)150 2615 y Fe(rl_parse_and_bind)12
-b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150
-2703 y Fe(rl_pending_signal)12 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)26 b Fb(49)150 2790 y Fe(rl_possible_completions)14
-b Fa(:)k(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)28 b Fb(51)150 2877 y Fe(rl_prep_terminal)15
+(:)f(:)g(:)g(:)34 b Fb(34)150 2440 y Fe(rl_mark_active_p)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 2964 y Fe(rl_push_macro_input)7 b Fa(:)17 b(:)d(:)f(:)g(:)g
+Fb(44)150 2527 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(39)150
+2614 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(38)150 2701 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(37)150 2789 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(38)150 2876 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(39)150
+2963 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(:)f(:)21 b Fb(39)150 3052 y Fe(rl_read_init_file)12
+g(:)h(:)26 b Fb(36)150 3050 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(35)150
-3139 y Fe(rl_read_key)10 b Fa(:)16 b(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(39)150 3226 y
-Fe(rl_redisplay)8 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)22 b Fb(37)150 3313 y Fe(rl_replace_line)17
-b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
-b Fb(41)150 3400 y Fe(rl_reset_after_signal)24 b Fa(:)13
-b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)33 b Fb(49)150 3488 y Fe(rl_reset_line_state)7
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(50)150
+3137 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(53)150 3225 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(41)150 3312 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(38)150
-3575 y Fe(rl_reset_screen_size)26 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36
-b Fb(50)150 3662 y Fe(rl_reset_terminal)12 b Fa(:)17
-b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(40)150
-3749 y Fe(rl_resize_terminal)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(40)150
+3399 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(36)150 3486 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(40)150 3573 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(38)150
+3661 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(42)150 3748 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(50)150 3835 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(39)150 3922 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(51)150 4009 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(41)150
+4097 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 3837 y Fe(rl_restore_prompt)12 b Fa(:)17
+g(:)24 b Fb(51)150 4184 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
-3924 y Fe(rl_restore_state)15 b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(39)150
+4271 y Fe(rl_restore_state)15 b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)29 b Fb(41)150 4011 y Fe(rl_save_prompt)23 b
+g(:)g(:)29 b Fb(42)150 4358 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 4098 y Fe(rl_save_state)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
+b Fb(39)150 4445 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 4186 y
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(41)150 4533 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 4273 y Fe
+g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(36)150 4620 y Fe
(rl_set_keyboard_input_timeout)17 b Fa(:)h(:)c(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(40)150 4360 y Fe(rl_set_keymap)25
+(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(41)150 4707 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 4447 y Fe(rl_set_keymap_name)10 b Fa(:)17
+b Fb(34)150 4794 y Fe(rl_set_keymap_name)10 b Fa(:)17
b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(33)150 4535
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(34)150 4881
y Fe(rl_set_paren_blink_timeout)7 b Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(42)150
-4622 y Fe(rl_set_prompt)k Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(43)150
+4969 y Fe(rl_set_prompt)k Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)37 b Fb(39)150 4709 y Fe(rl_set_screen_size)10
+g(:)g(:)g(:)g(:)37 b Fb(40)150 5056 y Fe(rl_set_screen_size)10
b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(49)150
-4796 y Fe(rl_set_signals)f Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(51)150
+5143 y Fe(rl_set_signals)f Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)34 b Fb(50)150 4884 y Fe(rl_show_char)8
-b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-22 b Fb(38)2025 260 y Fe(rl_stuff_char)j Fa(:)13 b(:)g(:)g(:)h(:)f(:)g
+(:)f(:)g(:)g(:)34 b Fb(51)2025 260 y Fe(rl_show_char)8
+b Fa(:)15 b(:)f(:)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(:)
+22 b Fb(39)2025 348 y Fe(rl_stuff_char)j Fa(:)13 b(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(39)2025 347 y
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(40)2025 436 y
Fe(rl_tty_set_default_bindings)27 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(40)2025 435
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(41)2025 524
y Fe(rl_tty_set_echoing)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-24 b Fb(40)2025 523 y Fe(rl_tty_unset_default_bindings)16
+24 b Fb(41)2025 613 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 610 y Fe(rl_unbind_command_in_map)11 b Fa(:)19
+b Fb(41)2025 701 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(35)2025 698 y Fe(rl_unbind_function_in_map)9
+g(:)g(:)26 b Fb(36)2025 789 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 786 y Fe(rl_unbind_key)i Fa(:)13
+(:)g(:)h(:)23 b Fb(35)2025 877 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 873 y Fe(rl_unbind_key_in_map)26 b Fa(:)13
+b Fb(35)2025 965 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 961 y Fe
+(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(35)2025 1053 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
-1048 y Fe(rl_variable_bind)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)25 b Fb(53)2025
+1142 y Fe(rl_variable_bind)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)29 b Fb(42)2025 1136 y Fe(rl_variable_dumper)10
+h(:)f(:)29 b Fb(43)2025 1230 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
-1223 y Fe(rl_variable_value)12 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)h(:)f(:)g
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(43)2025
+1317 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 1467 y Fr(S)2025 1585 y Fe(self-insert)h(\(a,)e
+g(:)g(:)27 b Fb(43)2021 1573 y Fr(S)2025 1692 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 1672 y Fe(set-mark)e(\(C-@\))10
+(:)g(:)g(:)h(:)f(:)29 b Fb(19)2025 1780 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 1760 y(sho)n(w-all-if-am)n(biguous)e Fa(:)13
-b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fb(9)2025 1847
-y(sho)n(w-all-if-unmo)r(di\014ed)11 b Fa(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)27 b Fb(9)2025 1935 y(sho)n(w-mo)r(de-in-prompt)15
+b Fb(23)2025 1868 y Fe(shell-transpose-words)30 b(\(M-C-t\))24
+b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)37
+b Fb(20)2025 1957 y(sho)n(w-all-if-am)n(biguous)22 b
+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
+2045 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 2133 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
-2023 y(skip-completed-text)17 b Fa(:)11 b(:)j(:)f(:)g(:)g(:)g(:)g(:)g
+2221 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 2110 y Fe(skip-csi-sequence)d(\(\))11
+g(:)g(:)g(:)32 b Fb(9)2025 2309 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 2197
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(23)2025 2397
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 2441 y Fr(T)2025 2558 y Fe(tab-insert)j(\(M-TAB\))16
+b Fb(22)2021 2652 y Fr(T)2025 2771 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
-2645 y Fe(tilde-expand)d(\(M-~\))16 b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)
+2859 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 2733 y Fe(transpose-chars)e(\(C-t\))9
+(:)g(:)31 b Fb(23)2025 2947 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 2820 y
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23 b Fb(19)2025 3034 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 3074 y Fr(U)2025 3191 y Fe(undo)j(\(C-_)h(or)f(C-x)g
+b Fb(19)2021 3300 y Fr(U)2025 3419 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
-3279 y Fe(universal-argument)i(\(\))9 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(23)2025
+3507 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 3366 y Fe(unix-filename-rubout)30 b(\(\))21
+23 b Fb(21)2025 3595 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 3454 y Fe(unix-line-discard)29
+(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3683 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 3541
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(20)2025 3771
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 3629 y Fe(upcase-word)28 b(\(M-u\))20 b
+b Fb(20)2025 3859 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
-3882 y Fr(V)2025 3999 y Fb(vi-cmd-mo)r(de-string)18 b
+4124 y Fr(V)2025 4243 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
-4087 y Fe(vi-editing-mode)c(\(M-C-j\))22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)
+4331 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 4175 y(vi-ins-mo)r(de-string)8 b Fa(:)13
+b Fb(24)2025 4419 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
-4262 y(visible-stats)11 b Fa(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+4506 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 4504 y
-Fr(Y)2025 4621 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 4760 y
+Fr(Y)2025 4879 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 4709 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))10
+Fb(21)2025 4968 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 4796 y Fe(yank-nth-arg)k(\(M-C-y\))11
+f(:)g(:)24 b Fb(18)2025 5056 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 4884
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(18)2025 5143
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
+h(:)f(:)g(:)g(:)24 b Fb(21)p eop end
%%Trailer
userdict /end-hook known{end-hook}if
diff --git a/doc/readline_3.ps b/doc/readline_3.ps
index c7b925e..0870adc 100644
--- a/doc/readline_3.ps
+++ b/doc/readline_3.ps
@@ -1,11 +1,11 @@
%!PS-Adobe-3.0
-%%Creator: groff version 1.22.3
-%%CreationDate: Mon May 21 10:32:52 2018
+%%Creator: groff version 1.22.4
+%%CreationDate: Fri Oct 30 10:07:47 2020
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%+ font Courier
-%%DocumentSuppliedResources: procset grops 1.22 3
+%%DocumentSuppliedResources: procset grops 1.22 4
%%Pages: 17
%%PageOrder: Ascend
%%DocumentMedia: Default 612 792 0 () ()
@@ -15,7 +15,7 @@
%%PageMedia: Default
%%EndDefaults
%%BeginProlog
-%%BeginResource: procset grops 1.22 3
+%%BeginResource: procset grops 1.22 4
%!PS-Adobe-3.0 Resource-ProcSet
/setpacking where{
pop
@@ -247,13 +247,13 @@ BP
-.15(ch)108 165.6 S(ar *).15 E F2 -.18(re)108 177.6 S(adline).18 E F0
(\()2.5 E F3(const c)A(har *pr)-.15 E(ompt)-.45 E F0(\);)A F1(COPYRIGHT)
72 194.4 Q F0(Readline is Cop)108 206.4 Q
-(yright \251 1989\2552014 Free Softw)-.1 E(are F)-.1 E(oundation, Inc.)
+(yright \251 1989\2552020 Free Softw)-.1 E(are F)-.1 E(oundation, Inc.)
-.15 E F1(DESCRIPTION)72 223.2 Q F2 -.18(re)108 235.2 S(adline).18 E F0
.088(will read a line from the terminal and return it, using)2.588 F F2
(pr)2.587 E(ompt)-.18 E F0 .087(as a prompt.)2.587 F(If)5.087 E F2(pr)
-2.587 E(ompt)-.18 E F0(is)2.587 E F2(NULL)2.587 E F0(or)2.587 E .42
-(the empty string, no prompt is issued.)108 247.2 R .421
-(The line returned is allocated with)5.42 F F3(malloc)2.921 E F0 .421
+2.587 E(ompt)-.18 E F0(is)2.587 E F2(NULL)2.587 E F0(or)2.587 E .399
+(the empty string, no prompt is issued.)108 247.2 R .399
+(The line returned is allocated with)5.399 F F3(malloc)3.28 E F0 .4
(\(3\); the caller must free it).31 F(when \214nished.)108 259.2 Q
(The line returned has the \214nal ne)5 E(wline remo)-.25 E -.15(ve)-.15
G(d, so only the te).15 E(xt of the line remains.)-.15 E F2 -.18(re)108
@@ -294,10 +294,10 @@ F0 .48(means ESC\255Control\255)2.98 F F3(x)A F0 2.98(,o)C 2.98(rp)-2.98
G .48(ress the Escape k)-2.98 F .78 -.15(ey t)-.1 H .48
(hen hold the Control k).15 F .78 -.15(ey w)-.1 H(hile).15 E
(pressing the)108 446.4 Q F3(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G
-(\)).65 E .62(Readline commands may be gi)108 463.2 R -.15(ve)-.25 G
-3.119(nn).15 G(umeric)-3.119 E F3(ar)3.119 E(guments)-.37 E F0 3.119(,w)
-.27 G .619(hich normally act as a repeat count.)-3.119 F(Sometimes,)
-5.619 E(ho)108 475.2 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H
+(\)).65 E .596(Readline commands may be gi)108 463.2 R -.15(ve)-.25 G
+3.096(nn).15 G(umeric)-3.096 E F3(ar)3.426 E(guments)-.37 E F0 3.096(,w)
+.27 G .596(hich normally act as a repeat count.)-3.096 F(Sometimes,)
+5.595 E(ho)108 475.2 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H
3.118(ti).4 G 3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619
(gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne)
.15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619
@@ -320,15 +320,15 @@ G .48(ress the Escape k)-2.98 F .78 -.15(ey t)-.1 H .48
108 552 Q F1(INITIALIZA)72 568.8 Q(TION FILE)-1.04 E F0 .091(Readline i\
s customized by putting commands in an initialization \214le \(the)108
580.8 R F3(inputr)2.591 E(c)-.37 E F0 2.591(\214le\). The)2.591 F .091
-(name of this \214le)2.591 F 1.442(is tak)108 592.8 R 1.443
-(en from the v)-.1 F 1.443(alue of the)-.25 F F2(INPUTRC)3.943 E F0(en)
-3.943 E 1.443(vironment v)-.4 F 3.943(ariable. If)-.25 F 1.443(that v)
-3.943 F 1.443(ariable is unset, the def)-.25 F 1.443(ault is)-.1 F F3
-(~/.inputr)108 604.8 Q(c)-.37 E F0 5.058(.I).31 G 2.558(ft)-5.058 G .058
-(hat \214le)-2.558 F .058(does not e)5.058 F .058
-(xist or cannot be read, the ultimate def)-.15 F .058(ault is)-.1 F F3
-(/etc/inputr)2.557 E(c)-.37 E F0 5.057(.W).31 G .057(hen a program)
--5.057 F 1.158(which uses the readline library starts up, the init \214\
+(name of this \214le)2.591 F .156(is tak)108 592.8 R .156(en from the v)
+-.1 F .156(alue of the)-.25 F F2(INPUTRC)2.656 E F0(en)2.656 E .156
+(vironment v)-.4 F 2.656(ariable. If)-.25 F .156(that v)2.656 F .156
+(ariable is unset, the def)-.25 F .157(ault is)-.1 F F3(~/.in-)2.157 E
+(putr)108 604.8 Q(c)-.37 E F0 5.905(.I).31 G 3.405(ft)-5.905 G .905
+(hat \214le)-3.405 F .905(does not e)5.905 F .904
+(xist or cannot be read, the ultimate def)-.15 F .904(ault is)-.1 F F3
+(/etc/inputr)4.554 E(c)-.37 E F0 5.904(.W).31 G .904(hen a program)
+-5.904 F 1.158(which uses the readline library starts up, the init \214\
le is read, and the k)108 616.8 R 1.459 -.15(ey b)-.1 H 1.159
(indings and v).15 F 1.159(ariables are set.)-.25 F .029
(There are only a fe)108 628.8 R 2.529(wb)-.25 G .029
@@ -344,8 +344,8 @@ le is read, and the k)108 616.8 R 1.459 -.15(ey b)-.1 H 1.159
(re).15 G(xample, placing)-2.65 E(M\255Control\255u: uni)144 698.4 Q
-.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(or)108 710.4 Q
(C\255Meta\255u: uni)144 722.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)
--.18 E(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(1)190.955 E
-0 Cg EP
+-.18 E(GNU Readline 8.1)72 768 Q(2020 October 29)125.685 E(1)195.395 E 0
+Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
@@ -354,15 +354,15 @@ BP
(Functions Manual)2.5 E(READLINE\(3\))119.855 E(into the)108 84 Q/F1 10
/Times-Italic@0 SF(inputr)2.51 E(c)-.37 E F0 -.1(wo)2.81 G(uld mak).1 E
2.5(eM)-.1 G(\255C\255u e)-2.5 E -.15(xe)-.15 G
-(cute the readline command).15 E F1(univer)2.5 E(sal\255ar)-.1 E(gument)
--.37 E F0(.).68 E 2.795(The follo)108 100.8 R 2.795
+(cute the readline command).15 E F1(univer)2.58 E(sal\255ar)-.1 E
+(gument)-.37 E F0(.).68 E 1.153(The follo)108 100.8 R 1.154
(wing symbolic character names are recognized while processing k)-.25 F
-3.095 -.15(ey b)-.1 H(indings:).15 E F1(DEL)5.295 E F0(,).53 E F1(ESC)
-5.295 E F0(,).72 E F1(ESCAPE)108 112.8 Q F0(,).73 E F1(LFD)2.5 E F0(,)
-.28 E F1(NEWLINE)2.5 E F0(,).73 E F1(RET)2.5 E F0(,)1.27 E F1(RETURN)2.5
-E F0(,)1.1 E F1 -.4(RU)2.5 G(BOUT).4 E F0(,)1.27 E F1(SP)2.5 E -.3(AC)
--.9 G(E).3 E F0(,).73 E F1(SPC)2.5 E F0 2.5(,a).72 G(nd)-2.5 E F1 -.5
-(TA)2.5 G(B).5 E F0(.).27 E .209
+1.454 -.15(ey b)-.1 H(indings:).15 E F1(DEL)4.234 E F0(,).53 E F1(ESC)
+4.164 E F0(,).72 E F1(ES-)4.164 E(CAPE)108 112.8 Q F0(,).73 E F1(LFD)
+3.08 E F0(,).28 E F1(NEWLINE)3.2 E F0(,).73 E F1(RET)3.13 E F0(,)1.27 E
+F1(RETURN)3.13 E F0(,)1.1 E F1 -.4(RU)2.5 G(BOUT).4 E F0(,)1.27 E F1(SP)
+2.83 E -.3(AC)-.9 G(E).3 E F0(,).73 E F1(SPC)2.83 E F0 2.5(,a).72 G(nd)
+-2.5 E F1 -.5(TA)2.5 G(B).5 E F0(.).27 E .209
(In addition to command names, readline allo)108 129.6 R .209(ws k)-.25
F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
(ound to a string that is inserted when the k)-2.709 F .509 -.15(ey i)
@@ -373,14 +373,14 @@ F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
(\214le is simple.)3.176 F .366(All that is required is the name of the)
5.366 F .264(command or the te)108 182.4 R .264(xt of a macro and a k)
-.15 F .564 -.15(ey s)-.1 H .264(equence to which it should be bound.)
-.15 F .263(The name may be speci-)5.264 F .853(\214ed in one of tw)108
-194.4 R 3.353(ow)-.1 G .853(ays: as a symbolic k)-3.453 F 1.153 -.15
-(ey n)-.1 H .853(ame, possibly with).15 F F1(Meta\255)3.353 E F0(or)
-3.353 E F1(Contr)3.353 E(ol\255)-.45 E F0(pre\214x)3.353 E .853
-(es, or as a k)-.15 F -.15(ey)-.1 G 2.919(sequence. The)108 206.4 R .419
-(name and k)2.919 F .719 -.15(ey s)-.1 H .419
-(equence are separated by a colon.).15 F .419
-(There can be no whitespace between the)5.419 F(name and the colon.)108
+.15 F .263(The name may be speci-)5.264 F .138(\214ed in one of tw)108
+194.4 R 2.638(ow)-.1 G .138(ays: as a symbolic k)-2.738 F .438 -.15
+(ey n)-.1 H .138(ame, possibly with).15 F F1(Meta\255)2.638 E F0(or)
+2.638 E F1(Contr)2.638 E(ol\255)-.45 E F0(pre\214x)2.638 E .138
+(es, or as a k)-.15 F .439 -.15(ey s)-.1 H(e-).15 E 3.409(quence. The)
+108 206.4 R .909(name and k)3.409 F 1.209 -.15(ey s)-.1 H .909
+(equence are separated by a colon.).15 F .909
+(There can be no whitespace between the)5.909 F(name and the colon.)108
218.4 Q .361(When using the form)108 235.2 R F2 -.1(ke)2.861 G(yname).1
E F0(:)A F1(function-name).833 E F0(or)2.861 E F1(macr)2.861 E(o)-.45 E
F0(,)A F1 -.1(ke)2.861 G(yname)-.2 E F0 .362(is the name of a k)3.042 F
@@ -392,10 +392,10 @@ G(rsal\255ar).15 E(gument)-.18 E(Meta\255Rubout: backw)144 283.2 Q
2.488 E F0 .148(is bound to the function)2.898 F F2(uni)2.647 E -.1(ve)
-.1 G(rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M-DEL)3.327 E F0 .147
(is bound to the function)3.177 F F2(backward\255kill\255w)108 324 Q
-(ord)-.1 E F0 3.835(,a)C(nd)-3.835 E F1(C\255o)3.675 E F0 1.336
-(is bound to run the macro e)4.016 F 1.336
-(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108
-336 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
+(ord)-.1 E F0 3.005(,a)C(nd)-3.005 E F1(C\255o)2.845 E F0 .505
+(is bound to run the macro e)3.185 F .506
+(xpressed on the right hand side \(that is, to in-)-.15 F(sert the te)
+108 336 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
(into the line\).)2.5 E .056(In the second form,)108 352.8 R F2("k)2.556
E(eyseq")-.1 E F0(:)A F1(function\255name).833 E F0(or)2.556 E F1(macr)
2.556 E(o)-.45 E F0(,)A F2 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055
@@ -441,8 +441,7 @@ tes should be used to indicate a macro de\214nition.)-.15 F .089
(Unquoted te)108 720 R .089(xt is assumed to be a function name.)-.15 F
.09(In the macro body)5.089 F 2.59(,t)-.65 G .09
(he backslash escapes described abo)-2.59 F -.15(ve)-.15 G
-(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(2)190.955 E 0 Cg
-EP
+(GNU Readline 8.1)72 768 Q(2020 October 29)125.685 E(2)195.395 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
@@ -548,14 +547,13 @@ ced with an ellipsis when displaying possible completions.).25 E F1
.561(may be set to an)3.061 F 3.061(yi)-.15 G(nte)-3.061 E .561(ger v)
-.15 F .561(alue greater than or)-.25 F .783(equal to zero.)144 696 R
.783(If the number of possible completions is greater than or equal to \
-the v)5.783 F .782(alue of this)-.25 F -.25(va)144 708 S .237
-(riable, the user is ask).25 F .237(ed whether or not he wishes to vie)
--.1 F 2.737(wt)-.25 G .237(hem; otherwise the)-2.737 F 2.737(ya)-.15 G
-.237(re simply listed)-2.737 F(on the terminal.)144 720 Q 2.5(An)5 G
--2.25 -.15(eg a)-2.5 H(ti).15 E .3 -.15(ve v)-.25 H
+the v)5.783 F .782(alue of this)-.25 F -.25(va)144 708 S .367
+(riable, readline will ask whether or not the user wishes to vie).25 F
+2.868(wt)-.25 G .368(hem; otherwise the)-2.868 F 2.868(ya)-.15 G .368
+(re simply)-2.868 F(listed on the terminal.)144 720 Q 2.5(An)5 G -2.25
+-.15(eg a)-2.5 H(ti).15 E .3 -.15(ve v)-.25 H
(alue causes readline to ne)-.1 E -.15(ve)-.25 G 2.5(ra).15 G(sk.)-2.5 E
-(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(3)190.955 E 0 Cg
-EP
+(GNU Readline 8.1)72 768 Q(2020 October 29)125.685 E(3)195.395 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
@@ -598,7 +596,7 @@ R -.15(ve)-.25 G 5.622(.T).15 G .622(he v)-5.622 F .622(alue is e)-.25 F
(ailable. Use)-.05 F .298(the \\1 and \\2 escapes to be)2.798 F .298
(gin and end sequences of non-printing characters, which)-.15 F
(can be used to embed a terminal control sequence into the mode string.)
-144 312 Q F1(enable\255brack)108 324 Q(eted\255paste \(Off\))-.1 E F0
+144 312 Q F1(enable\255brack)108 324 Q(eted\255paste \(On\))-.1 E F0
1.222(When set to)144 336 R F1(On)3.721 E F0 3.721(,r)C 1.221
(eadline will con\214gure the terminal in a w)-3.721 F 1.221
(ay that will enable it to insert each)-.1 F .353
@@ -622,36 +620,38 @@ G(s.).15 E F1(enable\255meta\255k)108 420 Q(ey \(On\))-.1 E F0 .64
(expand\255tilde \(Off\))108 456 Q F0(If set to)144 468 Q F1(On)2.5 E F0
2.5(,t)C(ilde e)-2.5 E(xpansion is performed when readline attempts w)
-.15 E(ord completion.)-.1 E F1(history\255pr)108 480 Q(eser)-.18 E -.1
-(ve)-.1 G(\255point \(Off\)).1 E F0 1.338(If set to)144 492 R F1(On)
-3.838 E F0 3.838(,t)C 1.338(he history code attempts to place point at \
-the same location on each history line)-3.838 F(retrie)144 504 Q -.15
-(ve)-.25 G 2.5(dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G
-(ious-history).15 E F0(or)2.5 E F1(next-history)2.5 E F0(.)A F1
-(history\255size \(unset\))108 516 Q F0 .949
-(Set the maximum number of history entries sa)144 528 R -.15(ve)-.2 G
-3.448(di).15 G 3.448(nt)-3.448 G .948(he history list.)-3.448 F .948
-(If set to zero, an)5.948 F 3.448(ye)-.15 G(xisting)-3.598 E .482
-(history entries are deleted and no ne)144 540 R 2.982(we)-.25 G .483
-(ntries are sa)-2.982 F -.15(ve)-.2 G 2.983(d. If).15 F .483(set to a v)
-2.983 F .483(alue less than zero, the num-)-.25 F .356
+(ve)-.1 G(\255point \(Off\)).1 E F0 .552(If set to)144 492 R F1(On)3.052
+E F0 3.052(,t)C .552(he history code attempts to place point at the sam\
+e location on each history line re-)-3.052 F(trie)144 504 Q -.15(ve)-.25
+G 2.5(dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G(ious-history).15 E
+F0(or)2.5 E F1(next-history)2.5 E F0(.)A F1(history\255size \(unset\))
+108 516 Q F0 .949(Set the maximum number of history entries sa)144 528 R
+-.15(ve)-.2 G 3.448(di).15 G 3.448(nt)-3.448 G .948(he history list.)
+-3.448 F .948(If set to zero, an)5.948 F 3.448(ye)-.15 G(xisting)-3.598
+E .482(history entries are deleted and no ne)144 540 R 2.982(we)-.25 G
+.483(ntries are sa)-2.982 F -.15(ve)-.2 G 2.983(d. If).15 F .483
+(set to a v)2.983 F .483(alue less than zero, the num-)-.25 F .356
(ber of history entries is not limited.)144 552 R .356(By def)5.356 F
.355(ault, the number of history entries is not limited.)-.1 F .355
-(If an)5.355 F 1.97(attempt is made to set)144 564 R F2(history\255size)
-4.47 E F0 1.97(to a non-numeric v)4.47 F 1.97
-(alue, the maximum number of history)-.25 F(entries will be set to 500.)
-144 576 Q F1(horizontal\255scr)108 588 Q(oll\255mode \(Off\))-.18 E F0
-.449(When set to)144 600 R F1(On)2.949 E F0 2.949(,m)C(ak)-2.949 E .448
+(If an)5.355 F .82(attempt is made to set)144 564 R F2(history\255size)
+3.32 E F0 .821(to a non-numeric v)3.321 F .821
+(alue, the maximum number of history en-)-.25 F
+(tries will be set to 500.)144 576 Q F1(horizontal\255scr)108 588 Q
+(oll\255mode \(Off\))-.18 E F0 .449(When set to)144 600 R F1(On)2.949 E
+F0 2.949(,m)C(ak)-2.949 E .448
(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .448
(crolling the input horizontally on a)-2.948 F 1.194(single screen line\
when it becomes longer than the screen width rather than wrapping to a\
- ne)144 612 R(w)-.25 E(line.)144 624 Q F1(input\255meta \(Off\))108 636
-Q F0 .367(If set to)144 648 R F1(On)2.867 E F0 2.867(,r)C .367(eadline \
-will enable eight-bit input \(that is, it will not clear the eighth bit\
- in the char)-2.867 F(-)-.2 E .956(acters it reads\), re)144 660 R -.05
-(ga)-.15 G .956(rdless of what the terminal claims it can support.).05 F
-.957(The name)5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F
-(synon)144 672 Q .77(ym for this v)-.15 F 3.27(ariable. The)-.25 F(def)
-3.27 E .77(ault is)-.1 F F2(Of)3.27 E(f)-.18 E F0 3.27(,b)C .77
+ ne)144 612 R(w)-.25 E 2.5(line. This)144 624 R
+(setting is automatically enabled for terminals of height 1.)2.5 E F1
+(input\255meta \(Off\))108 636 Q F0 .367(If set to)144 648 R F1(On)2.867
+E F0 2.867(,r)C .367(eadline will enable eight-bit input \(that is, it \
+will not clear the eighth bit in the char)-2.867 F(-)-.2 E .956
+(acters it reads\), re)144 660 R -.05(ga)-.15 G .956
+(rdless of what the terminal claims it can support.).05 F .957(The name)
+5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F(synon)144 672 Q
+.77(ym for this v)-.15 F 3.27(ariable. The)-.25 F(def)3.27 E .77
+(ault is)-.1 F F2(Of)3.27 E(f)-.18 E F0 3.27(,b)C .77
(ut readline will set it to)-3.47 F F2(On)3.27 E F0 .77
(if the locale contains)3.27 F(eight-bit characters.)144 684 Q F1(isear)
108 696 Q(ch\255terminators \(`)-.18 E(`C\255[ C\255J')-.63 E('\))-.63 E
@@ -659,8 +659,8 @@ F0 .439(The string of characters that should terminate an incremental s\
earch without subsequently e)144 708 R -.15(xe)-.15 G(cut-).15 E .935
(ing the character as a command.)144 720 R .935(If this v)5.935 F .935
(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.434(nav).15 G .934
-(alue, the characters)-3.684 F F2(ESC)3.434 E F0(GNU Readline 7.0)72 768
-Q(2017 December 28)121.245 E(4)190.955 E 0 Cg EP
+(alue, the characters)-3.684 F F2(ESC)3.434 E F0(GNU Readline 8.1)72 768
+Q(2020 October 29)125.685 E(4)195.395 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
@@ -672,31 +672,32 @@ BP
(ke)108 96 S(ymap \(emacs\)).1 E F0 2.323(Set the current readline k)144
108 R -.15(ey)-.1 G 4.823(map. The).15 F 2.323(set of le)4.823 F -.05
(ga)-.15 G 4.823(lk).05 G -.15(ey)-4.923 G 2.323(map names is).15 F F1
-2.324(emacs, emacs-standar)4.823 F(d,)-.37 E .809
-(emacs-meta, emacs-ctlx, vi, vi-mo)144 120 R(ve)-.1 E 3.308(,v)-.1 G
-(i-command)-3.308 E F0 3.308(,a)C(nd)-3.308 E F1(vi-insert)3.308 E F0(.)
-.68 E F1(vi)5.808 E F0 .808(is equi)3.308 F -.25(va)-.25 G .808(lent to)
-.25 F F1(vi-command)3.308 E F0(;)A F1(emacs)144 132 Q F0 .697(is equi)
-3.196 F -.25(va)-.25 G .697(lent to).25 F F1(emacs-standar)3.197 E(d)
--.37 E F0 5.697(.T)C .697(he def)-5.697 F .697(ault v)-.1 F .697
-(alue is)-.25 F F1(emacs)3.197 E F0 5.697(.T).27 G .697(he v)-5.697 F
-.697(alue of)-.25 F F2(editing\255mode)3.197 E F0(also af)144 144 Q
+2.324(emacs, emacs-standar)4.823 F(d,)-.37 E .782
+(emacs-meta, emacs-ctlx, vi, vi-mo)144 120 R(ve)-.1 E 3.282(,v)-.1 G
+(i-command)-3.282 E F0 3.282(,a)C(nd)-3.282 E F1(vi-insert)3.572 E F0(.)
+.68 E F1(vi)5.782 E F0 .782(is equi)3.282 F -.25(va)-.25 G .781(lent to)
+.25 F F1(vi-command)3.281 E F0(;)A F1(emacs)144 132 Q F0 .682(is equi)
+3.182 F -.25(va)-.25 G .682(lent to).25 F F1(emacs-standar)3.182 E(d)
+-.37 E F0 5.682(.T)C .682(he def)-5.682 F .682(ault v)-.1 F .682
+(alue is)-.25 F F1(emacs)3.372 E F0 5.683(.T).27 G .683(he v)-5.683 F
+.683(alue of)-.25 F F2(editing\255mode)3.183 E F0(also af)144 144 Q
(fects the def)-.25 E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F2 -.1(ke)
108 156 S(yseq\255timeout \(500\)).1 E F0 .368(Speci\214es the duration)
144 168 R F1 -.37(re)2.867 G(adline).37 E F0 .367(will w)2.867 F .367
(ait for a character when reading an ambiguous k)-.1 F .667 -.15(ey s)
--.1 H(equence).15 E 1.356(\(one that can form a complete k)144 180 R
-1.656 -.15(ey s)-.1 H 1.356(equence using the input read so f).15 F(ar)
--.1 E 3.856(,o)-.4 G 3.856(rc)-3.856 G 1.356(an tak)-3.856 F 3.856(ea)
--.1 G(dditional)-3.856 E .32(input to complete a longer k)144 192 R .62
--.15(ey s)-.1 H 2.82(equence\). If).15 F .32(no input is recei)2.82 F
--.15(ve)-.25 G 2.82(dw).15 G .32(ithin the timeout,)-2.82 F F1 -.37(re)
-2.82 G(adline).37 E F0(will)2.82 E .906(use the shorter b)144 204 R .907
-(ut complete k)-.2 F 1.207 -.15(ey s)-.1 H 3.407(equence. The).15 F -.25
-(va)3.407 G .907(lue is speci\214ed in milliseconds, so a v).25 F .907
-(alue of)-.25 F .05(1000 means that)144 216 R F1 -.37(re)2.55 G(adline)
-.37 E F0 .05(will w)2.55 F .05(ait one second for additional input.)-.1
-F .05(If this v)5.05 F .05(ariable is set to a v)-.25 F(alue)-.25 E .051
+-.1 H(equence).15 E .524(\(one that can form a complete k)144 180 R .824
+-.15(ey s)-.1 H .524(equence using the input read so f).15 F(ar)-.1 E
+3.025(,o)-.4 G 3.025(rc)-3.025 G .525(an tak)-3.025 F 3.025(ea)-.1 G
+.525(dditional in-)-3.025 F .807(put to complete a longer k)144 192 R
+1.106 -.15(ey s)-.1 H 3.306(equence\). If).15 F .806(no input is recei)
+3.306 F -.15(ve)-.25 G 3.306(dw).15 G .806(ithin the timeout,)-3.306 F
+F1 -.37(re)3.306 G(adline).37 E F0(will)3.306 E .906(use the shorter b)
+144 204 R .907(ut complete k)-.2 F 1.207 -.15(ey s)-.1 H 3.407
+(equence. The).15 F -.25(va)3.407 G .907
+(lue is speci\214ed in milliseconds, so a v).25 F .907(alue of)-.25 F
+.05(1000 means that)144 216 R F1 -.37(re)2.55 G(adline).37 E F0 .05
+(will w)2.55 F .05(ait one second for additional input.)-.1 F .05
+(If this v)5.05 F .05(ariable is set to a v)-.25 F(alue)-.25 E .051
(less than or equal to zero, or to a non-numeric v)144 228 R(alue,)-.25
E F1 -.37(re)2.551 G(adline).37 E F0 .051(will w)2.551 F .051
(ait until another k)-.1 F .352 -.15(ey i)-.1 H 2.552(sp).15 G(ressed)
@@ -737,12 +738,13 @@ ta-)-3.007 F(pre\214x)144 444 Q .884(ed escape sequence.)-.15 F .884
3.308 E(e)-.37 E F0(-lik)A 3.308(ep)-.1 G .808
(ager to display a screenful of possible comple-)-3.308 F
(tions at a time.)144 492 Q F2
-(print\255completions\255horizontally \(Off\))108 504 Q F0 1.318
-(If set to)144 516 R F2(On)3.818 E F0 3.818(,r)C 1.319(eadline will dis\
-play completions with matches sorted horizontally in alphabetical)-3.818
-F(order)144 528 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
-E F2 -2.29 -.18(re v)108 540 T(ert\255all\255at\255newline \(Off\)).08 E
-F0 .699(If set to)144 552 R F2(On)3.199 E F0 3.199(,r)C .699
+(print\255completions\255horizontally \(Off\))108 504 Q F0 .227
+(If set to)144 516 R F2(On)2.727 E F0 2.727(,r)C .227(eadline will disp\
+lay completions with matches sorted horizontally in alphabetical or)
+-2.727 F(-)-.2 E(der)144 528 Q 2.5(,r)-.4 G(ather than do)-2.5 E
+(wn the screen.)-.25 E F2 -2.29 -.18(re v)108 540 T
+(ert\255all\255at\255newline \(Off\)).08 E F0 .699(If set to)144 552 R
+F2(On)3.199 E F0 3.199(,r)C .699
(eadline will undo all changes to history lines before returning when)
-3.199 F F2(accept\255line)3.198 E F0(is)3.198 E -.15(exe)144 564 S
2.686(cuted. By).15 F(def)2.686 E .186
@@ -771,8 +773,7 @@ es to be listed immediately instead of ringing the bell.)144 684 Q F2
(ginning of the prompt indicating the editing mode: emacs, vi)-.15 F
(command, or vi insertion.)144 720 Q(The mode strings are user)5 E
(-settable \(e.g.,)-.2 E F1(emacs\255mode\255string)2.5 E F0(\).)A
-(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(5)190.955 E 0 Cg
-EP
+(GNU Readline 8.1)72 768 Q(2020 October 29)125.685 E(5)195.395 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
@@ -795,30 +796,30 @@ E F0 -.25(va)3.017 G .518
(riable is enabled, this string is displayed immediately before the).25
F .475(last line of the primary prompt when vi editing mode is acti)144
168 R .775 -.15(ve a)-.25 H .475(nd in command mode.).15 F .475(The v)
-5.475 F(alue)-.25 E 1.235(is e)144 180 R 1.235(xpanded lik)-.15 F 3.735
-(eak)-.1 G 1.535 -.15(ey b)-3.835 H 1.236
-(inding, so the standard set of meta- and control pre\214x).15 F 1.236
-(es and backslash)-.15 F .315(escape sequences is a)144 192 R -.25(va)
--.2 G 2.815(ilable. Use).25 F .314(the \\1 and \\2 escapes to be)2.815 F
-.314(gin and end sequences of non-print-)-.15 F(ing characters, which c\
-an be used to embed a terminal control sequence into the mode string.)
-144 204 Q F1(vi\255ins\255mode\255string \(\(ins\)\))108 216 Q F0 .517
+5.475 F(alue)-.25 E .33(is e)144 180 R .33(xpanded lik)-.15 F 2.83(eak)
+-.1 G .63 -.15(ey b)-2.93 H .33
+(inding, so the standard set of meta- and control pre\214x).15 F .33
+(es and backslash es-)-.15 F .245(cape sequences is a)144 192 R -.25(va)
+-.2 G 2.745(ilable. Use).25 F .244(the \\1 and \\2 escapes to be)2.745 F
+.244(gin and end sequences of non-printing)-.15 F(characters, which can\
+ be used to embed a terminal control sequence into the mode string.)144
+204 Q F1(vi\255ins\255mode\255string \(\(ins\)\))108 216 Q F0 .517
(If the)144 228 R F2(show\255mode\255in\255pr)3.017 E(ompt)-.45 E F0
-.25(va)3.017 G .518
(riable is enabled, this string is displayed immediately before the).25
F .186(last line of the primary prompt when vi editing mode is acti)144
240 R .486 -.15(ve a)-.25 H .186(nd in insertion mode.).15 F .186(The v)
-5.186 F .186(alue is)-.25 F -.15(ex)144 252 S 1.929(panded lik).15 F
-4.429(eak)-.1 G 2.229 -.15(ey b)-4.529 H 1.929
-(inding, so the standard set of meta- and control pre\214x).15 F 1.93
-(es and backslash)-.15 F .315(escape sequences is a)144 264 R -.25(va)
--.2 G 2.815(ilable. Use).25 F .314(the \\1 and \\2 escapes to be)2.815 F
-.314(gin and end sequences of non-print-)-.15 F(ing characters, which c\
-an be used to embed a terminal control sequence into the mode string.)
-144 276 Q F1(visible\255stats \(Off\))108 288 Q F0 .846(If set to)144
-300 R F1(On)3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')
--3.346 F 3.346(st)-.55 G .846(ype as reported by)-3.346 F F2(stat)3.346
-E F0 .846(\(2\) is appended to the \214lename)B
+5.186 F .186(alue is)-.25 F -.15(ex)144 252 S .923(panded lik).15 F
+3.423(eak)-.1 G 1.223 -.15(ey b)-3.523 H .924
+(inding, so the standard set of meta- and control pre\214x).15 F .924
+(es and backslash es-)-.15 F .245(cape sequences is a)144 264 R -.25(va)
+-.2 G 2.745(ilable. Use).25 F .244(the \\1 and \\2 escapes to be)2.745 F
+.244(gin and end sequences of non-printing)-.15 F(characters, which can\
+ be used to embed a terminal control sequence into the mode string.)144
+276 Q F1(visible\255stats \(Off\))108 288 Q F0 .846(If set to)144 300 R
+F1(On)3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F
+3.346(st)-.55 G .846(ype as reported by)-3.346 F F2(stat)3.346 E F0 .846
+(\(2\) is appended to the \214lename)B
(when listing possible completions.)144 312 Q F1(Conditional Constructs)
87 328.8 Q F0 .05(Readline implements a f)108 340.8 R .05(acility simil\
ar in spirit to the conditional compilation features of the C preproces\
@@ -851,29 +852,29 @@ Q F1(term)144 475.2 Q F0(The)180 475.2 Q F1(term=)3.196 E F0 .696
E F0 .503(is tested ag)3.003 F .504(ainst the full name of the terminal\
and the portion of the terminal name)-.05 F(before the \214rst)180
511.2 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.84 E F0
-(to match both)2.74 E F2(sun)2.84 E F0(and)2.74 E F2(sun\255cmd)2.5 E F0
-2.5(,f).77 G(or instance.)-2.5 E F1 -.1(ve)144 528 S(rsion).1 E F0(The)
-180 540 Q F1 -.1(ve)3.109 G(rsion).1 E F0 .608
+(to match both)2.74 E F2(sun)2.84 E F0(and)2.74 E F2(sun\255cmd)2.84 E
+F0 2.5(,f).77 G(or instance.)-2.5 E F1 -.1(ve)144 528 S(rsion).1 E F0
+(The)180 540 Q F1 -.1(ve)3.109 G(rsion).1 E F0 .608
(test may be used to perform comparisons ag)3.109 F .608
(ainst speci\214c readline v)-.05 F(ersions.)-.15 E(The)180 552 Q F1 -.1
-(ve)3.928 G(rsion).1 E F0 -.15(ex)3.928 G 1.428
-(pands to the current readline v).15 F 3.928(ersion. The)-.15 F 1.429
-(set of comparison operators)3.929 F(includes)180 564 Q F1(=)2.606 E F0
-2.606(,\()C(and)-2.606 E F1(==)2.606 E F0(\),)A F1(!=)2.606 E F0(,)A F1
-(<=)2.606 E F0(,)A F1(>=)2.606 E F0(,)A F1(<)2.606 E F0 2.606(,a)C(nd)
--2.606 E F1(>)2.606 E F0 5.106(.T)C .106(he v)-5.106 F .106
-(ersion number supplied on the right side)-.15 F 1.471
-(of the operator consists of a major v)180 576 R 1.471(ersion number)
--.15 F 3.972(,a)-.4 G 3.972(no)-3.972 G 1.472
-(ptional decimal point, and an)-3.972 F .767(optional minor v)180 588 R
-.767(ersion \(e.g.,)-.15 F F1(7.1)3.267 E F0 .766(\). If the minor v)B
-.766(ersion is omitted, it is assumed to be)-.15 F F1(0)3.266 E F0(.)A
-1.755(The operator may be separated from the string)180 600 R F1 -.1(ve)
-4.255 G(rsion).1 E F0 1.756(and from the v)4.256 F 1.756(ersion number)
--.15 F(ar)180 612 Q(gument by whitespace.)-.18 E F1(application)144
-628.8 Q F0(The)180 640.8 Q F1(application)3.003 E F0 .503
-(construct is used to include application-speci\214c settings.)3.003 F
-.503(Each program)5.503 F .114(using the readline library sets the)180
+(ve)2.771 G(rsion).1 E F0 -.15(ex)2.771 G .271
+(pands to the current readline v).15 F 2.772(ersion. The)-.15 F .272
+(set of comparison operators in-)2.772 F(cludes)180 564 Q F1(=)3.064 E
+F0 3.064(,\()C(and)-3.064 E F1(==)3.064 E F0(\),)A F1(!=)3.064 E F0(,)A
+F1(<=)3.064 E F0(,)A F1(>=)3.064 E F0(,)A F1(<)3.064 E F0 3.064(,a)C(nd)
+-3.064 E F1(>)3.064 E F0 5.563(.T)C .563(he v)-5.563 F .563
+(ersion number supplied on the right side)-.15 F .318
+(of the operator consists of a major v)180 576 R .318(ersion number)-.15
+F 2.818(,a)-.4 G 2.818(no)-2.818 G .318
+(ptional decimal point, and an op-)-2.818 F .101(tional minor v)180 588
+R .101(ersion \(e.g.,)-.15 F F1(7.1)2.601 E F0 .101(\). If the minor v)B
+.1(ersion is omitted, it is assumed to be)-.15 F F1(0)2.6 E F0 5.1(.T)C
+(he)-5.1 E .06(operator may be separated from the string)180 600 R F1
+-.1(ve)2.56 G(rsion).1 E F0 .06(and from the v)2.56 F .06
+(ersion number ar)-.15 F(gument)-.18 E(by whitespace.)180 612 Q F1
+(application)144 628.8 Q F0(The)180 640.8 Q F1(application)3.003 E F0
+.503(construct is used to include application-speci\214c settings.)3.003
+F .503(Each program)5.503 F .114(using the readline library sets the)180
652.8 R F2 .114(application name)2.614 F F0 2.614(,a)C .114
(nd an initialization \214le can test for a)-2.614 F .501(particular v)
180 664.8 R 3.001(alue. This)-.25 F .501(could be used to bind k)3.001 F
@@ -883,8 +884,8 @@ E F0 .503(is tested ag)3.003 F .504(ainst the full name of the terminal\
(ey s)-.1 H .397(equence that quotes the).15 F(current or pre)180 688.8
Q(vious w)-.25 E(ord in)-.1 E F1(bash)2.5 E F0(:)A F1($if)180 712.8 Q F0
(Bash)2.5 E 2.5(#Q)180 724.8 S(uote the current or pre)-2.5 E(vious w)
--.25 E(ord)-.1 E(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(6)
-190.955 E 0 Cg EP
+-.25 E(ord)-.1 E(GNU Readline 8.1)72 768 Q(2020 October 29)125.685 E(6)
+195.395 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
@@ -919,7 +920,7 @@ F .13(Both string and boolean v)5.129 F .13(ariables may be)-.25 F
1.003(vides commands for searching through the command history for line\
s containing a speci\214ed)-.15 F 2.5(string. There)108 312 R(are tw)2.5
E 2.5(os)-.1 G(earch modes:)-2.5 E F2(incr)2.51 E(emental)-.37 E F0(and)
-3.01 E F2(non-incr)2.5 E(emental)-.37 E F0(.).51 E .698
+3.01 E F2(non-incr)2.86 E(emental)-.37 E F0(.).51 E .698
(Incremental searches be)108 328.8 R .698
(gin before the user has \214nished typing the search string.)-.15 F
.697(As each character of the)5.697 F .112
@@ -945,20 +946,21 @@ g the search string becomes the current line.)108 412.8 Q 2.406 -.8
(To \214)108 429.6 T .806
(nd other matching entries in the history list, type).8 F F1(C\255s)
3.306 E F0(or)3.306 E F1(C\255r)3.306 E F0 .806(as appropriate.)3.306 F
-.807(This will search back-)5.806 F -.1(wa)108 441.6 S 1.309(rd or forw)
-.1 F 1.309(ard in the history for the ne)-.1 F 1.309
-(xt line matching the search string typed so f)-.15 F(ar)-.1 E 6.309(.A)
--.55 G 1.609 -.15(ny o)-6.309 H 1.308(ther k).15 F -.15(ey)-.1 G .317
-(sequence bound to a readline command will terminate the search and e)
-108 453.6 R -.15(xe)-.15 G .318(cute that command.).15 F -.15(Fo)5.318 G
-2.818(ri).15 G(nstance,)-2.818 E 3.481(an)108 465.6 S -.25(ew)-3.481 G
-.981(line will terminate the search and accept the line, thereby e).25 F
--.15(xe)-.15 G .98(cuting the command from the history).15 F 3.061
-(list. A)108 477.6 R(mo)3.061 E -.15(ve)-.15 G .562
-(ment command will terminate the search, mak).15 F 3.062(et)-.1 G .562
-(he last line found the current line, and be)-3.062 F(gin)-.15 E
-(editing.)108 489.6 Q .567(Non-incremental searches read the entire sea\
-rch string before starting to search for matching history lines.)108
+.807(This will search back-)5.806 F -.1(wa)108 441.6 S .536(rd or forw)
+.1 F .536(ard in the history for the ne)-.1 F .535
+(xt line matching the search string typed so f)-.15 F(ar)-.1 E 5.535(.A)
+-.55 G .835 -.15(ny o)-5.535 H .535(ther k).15 F .835 -.15(ey s)-.1 H
+(e-).15 E .384
+(quence bound to a readline command will terminate the search and e)108
+453.6 R -.15(xe)-.15 G .385(cute that command.).15 F -.15(Fo)5.385 G
+2.885(ri).15 G .385(nstance, a)-2.885 F(ne)108 465.6 Q .338
+(wline will terminate the search and accept the line, thereby e)-.25 F
+-.15(xe)-.15 G .337(cuting the command from the history list.).15 F
+2.997(Am)108 477.6 S -.15(ove)-2.997 G .497
+(ment command will terminate the search, mak).15 F 2.997(et)-.1 G .497
+(he last line found the current line, and be)-2.997 F .498(gin edit-)
+-.15 F(ing.)108 489.6 Q .567(Non-incremental searches read the entire s\
+earch string before starting to search for matching history lines.)108
506.4 R(The search string may be typed by the user or be part of the co\
ntents of the current line.)108 518.4 Q F3(EDITING COMMANDS)72 535.2 Q
F0 1.391(The follo)108 547.2 R 1.391
@@ -981,8 +983,8 @@ E(beginning\255of\255line \(C\255a\))108 616.8 Q F0(Mo)144 628.8 Q .3
664.8 S(rward\255char \(C\255f\)).25 E F0(Mo)144 676.8 Q .3 -.15(ve f)
-.15 H(orw).15 E(ard a character)-.1 E(.)-.55 E F1
(backward\255char \(C\255b\))108 688.8 Q F0(Mo)144 700.8 Q .3 -.15(ve b)
--.15 H(ack a character).15 E(.)-.55 E(GNU Readline 7.0)72 768 Q
-(2017 December 28)121.245 E(7)190.955 E 0 Cg EP
+-.15 H(ack a character).15 E(.)-.55 E(GNU Readline 8.1)72 768 Q
+(2020 October 29)125.685 E(7)195.395 E 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
@@ -1015,673 +1017,688 @@ th.)-.05 E F1(next\255scr)108 204 Q(een\255line)-.18 E F0 .637
2.509(pm)-2.509 G .008(ore than one ph)-2.509 F(ysical)-.05 E .772(line\
or if the length of the current Readline line is not greater than the \
length of the prompt plus)144 240 R(the screen width.)144 252 Q F1
-(clear\255scr)108 264 Q(een \(C\255l\))-.18 E F0 .993
-(Clear the screen lea)144 276 R .993
-(ving the current line at the top of the screen.)-.2 F -.4(Wi)5.993 G
-.993(th an ar).4 F .993(gument, refresh the)-.18 F
-(current line without clearing the screen.)144 288 Q F1 -.18(re)108 300
-S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144
-312 Q F1(Commands f)87 328.8 Q(or Manipulating the History)-.25 E
-(accept\255line \(Newline, Retur)108 340.8 Q(n\))-.15 E F0 .364
-(Accept the line re)144 352.8 R -.05(ga)-.15 G .364
-(rdless of where the cursor is.).05 F .364(If this line is non-empty)
-5.364 F 2.864(,i)-.65 G 2.864(tm)-2.864 G .365(ay be added to the)-2.864
-F .741(history list for future recall with)144 364.8 R F1
-(add_history\(\))3.241 E F0 5.741(.I)C 3.241(ft)-5.741 G .74
+(clear\255display \(M\255C\255l\))108 264 Q F0 1.499
+(Clear the screen and, if possible, the terminal')144 276 R 3.999(ss)
+-.55 G 1.498(crollback b)-3.999 F(uf)-.2 E(fer)-.25 E 3.998(,t)-.4 G
+1.498(hen redra)-3.998 F 3.998(wt)-.15 G 1.498(he current line,)-3.998 F
+(lea)144 288 Q(ving the current line at the top of the screen.)-.2 E F1
+(clear\255scr)108 300 Q(een \(C\255l\))-.18 E F0 1.36
+(Clear the screen, then redra)144 312 R 3.86(wt)-.15 G 1.36
+(he current line, lea)-3.86 F 1.36
+(ving the current line at the top of the screen.)-.2 F -.4(Wi)144 324 S
+(th an ar).4 E
+(gument, refresh the current line without clearing the screen.)-.18 E F1
+-.18(re)108 336 S(draw\255curr).18 E(ent\255line)-.18 E F0
+(Refresh the current line.)144 348 Q F1(Commands f)87 364.8 Q
+(or Manipulating the History)-.25 E(accept\255line \(Newline, Retur)108
+376.8 Q(n\))-.15 E F0 .365(Accept the line re)144 388.8 R -.05(ga)-.15 G
+.364(rdless of where the cursor is.).05 F .364
+(If this line is non-empty)5.364 F 2.864(,i)-.65 G 2.864(tm)-2.864 G
+.364(ay be added to the)-2.864 F .74
+(history list for future recall with)144 400.8 R F1(add_history\(\))3.24
+E F0 5.741(.I)C 3.241(ft)-5.741 G .741
(he line is a modi\214ed history line, the history)-3.241 F
-(line is restored to its original state.)144 376.8 Q F1(pr)108 388.8 Q
+(line is restored to its original state.)144 412.8 Q F1(pr)108 424.8 Q
-.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0(Fetch the pre)144
-400.8 Q(vious command from the history list, mo)-.25 E
-(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 412.8 Q
-F0(Fetch the ne)144 424.8 Q(xt command from the history list, mo)-.15 E
+436.8 Q(vious command from the history list, mo)-.25 E
+(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 448.8 Q
+F0(Fetch the ne)144 460.8 Q(xt command from the history list, mo)-.15 E
(ving forw)-.15 E(ard in the list.)-.1 E F1
-(beginning\255of\255history \(M\255<\))108 436.8 Q F0(Mo)144 448.8 Q .3
+(beginning\255of\255history \(M\255<\))108 472.8 Q F0(Mo)144 484.8 Q .3
-.15(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.)
--.65 E F1(end\255of\255history \(M\255>\))108 460.8 Q F0(Mo)144 472.8 Q
+-.65 E F1(end\255of\255history \(M\255>\))108 496.8 Q F0(Mo)144 508.8 Q
.3 -.15(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5
(,i)-.65 G(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18
-(re v)108 484.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0
-1.47(Search backw)144 496.8 R 1.471
-(ard starting at the current line and mo)-.1 F 1.471
+(re v)108 520.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0
+1.471(Search backw)144 532.8 R 1.471
+(ard starting at the current line and mo)-.1 F 1.47
(ving `up' through the history as necessary)-.15 F(.)-.65 E
-(This is an incremental search.)144 508.8 Q F1 -.25(fo)108 520.8 S
-(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.132
-(Search forw)144 532.8 R 1.132(ard starting at the current line and mo)
--.1 F 1.131(ving `do)-.15 F 1.131(wn' through the history as necessary)
--.25 F(.)-.65 E(This is an incremental search.)144 544.8 Q F1
-(non\255incr)108 556.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H
-(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .164(Search backw)
-144 568.8 R .164(ard through the history starting at the current line u\
-sing a non-incremental search for)-.1 F 2.5(as)144 580.8 S
-(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 592.8 Q
+(This is an incremental search.)144 544.8 Q F1 -.25(fo)108 556.8 S
+(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131
+(Search forw)144 568.8 R 1.131(ard starting at the current line and mo)
+-.1 F 1.132(ving `do)-.15 F 1.132(wn' through the history as necessary)
+-.25 F(.)-.65 E(This is an incremental search.)144 580.8 Q F1
+(non\255incr)108 592.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H
+(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .165(Search backw)
+144 604.8 R .164(ard through the history starting at the current line u\
+sing a non-incremental search for)-.1 F 2.5(as)144 616.8 S
+(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 628.8 Q
(emental\255f)-.18 E(orward\255sear)-.25 E(ch\255history \(M\255n\))-.18
-E F0 1.354(Search forw)144 604.8 R 1.354(ard through the history using \
+E F0 1.353(Search forw)144 640.8 R 1.354(ard through the history using \
a non-incremental search for a string supplied by the)-.1 F(user)144
-616.8 Q(.)-.55 E F1(history\255sear)108 628.8 Q(ch\255backward)-.18 E F0
-.95(Search backw)144 640.8 R .951(ard through the history for the strin\
-g of characters between the start of the current)-.1 F .12
-(line and the current cursor position \(the)144 652.8 R/F2 10
+652.8 Q(.)-.55 E F1(history\255sear)108 664.8 Q(ch\255backward)-.18 E F0
+.951(Search backw)144 676.8 R .951(ard through the history for the stri\
+ng of characters between the start of the current)-.1 F .12
+(line and the current cursor position \(the)144 688.8 R/F2 10
/Times-Italic@0 SF(point)2.62 E F0 2.62(\). The)B .12
(search string must match at the be)2.62 F .12(ginning of a)-.15 F
-(history line.)144 664.8 Q(This is a non-incremental search.)5 E F1
-(history\255sear)108 676.8 Q(ch\255f)-.18 E(orward)-.25 E F0 .248
-(Search forw)144 688.8 R .249(ard through the history for the string of\
- characters between the start of the current line)-.1 F .036
-(and the point.)144 700.8 R .036(The search string must match at the be)
-5.036 F .035(ginning of a history line.)-.15 F .035
-(This is a non-incre-)5.035 F(mental search.)144 712.8 Q
-(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(8)190.955 E 0 Cg
-EP
+(history line.)144 700.8 Q(This is a non-incremental search.)5 E
+(GNU Readline 8.1)72 768 Q(2020 October 29)125.685 E(8)195.395 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
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/F1 10/Times-Bold@0 SF
-(history\255substring\255sear)108 84 Q(ch\255backward)-.18 E F0 .95
-(Search backw)144 96 R .951(ard through the history for the string of c\
-haracters between the start of the current)-.1 F .007
-(line and the current cursor position \(the)144 108 R/F2 10
+(history\255sear)108 84 Q(ch\255f)-.18 E(orward)-.25 E F0 .249
+(Search forw)144 96 R .249(ard through the history for the string of ch\
+aracters between the start of the current line)-.1 F .035
+(and the point.)144 108 R .035(The search string must match at the be)
+5.035 F .036(ginning of a history line.)-.15 F .036
+(This is a non-incre-)5.036 F(mental search.)144 120 Q F1
+(history\255substring\255sear)108 132 Q(ch\255backward)-.18 E F0 .951
+(Search backw)144 144 R .951(ard through the history for the string of \
+characters between the start of the current)-.1 F .007
+(line and the current cursor position \(the)144 156 R/F2 10
/Times-Italic@0 SF(point)2.507 E F0 2.507(\). The)B .007
-(search string may match an)2.507 F .006(ywhere in a history)-.15 F 2.5
-(line. This)144 120 R(is a non-incremental search.)2.5 E F1
-(history\255substring\255sear)108 132 Q(ch\255f)-.18 E(orward)-.25 E F0
-.248(Search forw)144 144 R .249(ard through the history for the string \
-of characters between the start of the current line)-.1 F .319
-(and the point.)144 156 R .319(The search string may match an)5.319 F
-.319(ywhere in a history line.)-.15 F .318(This is a non-incremental)
-5.318 F(search.)144 168 Q F1(yank\255nth\255ar)108 180 Q 2.5(g\()-.1 G
-<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144 192 R .622
+(search string may match an)2.507 F .007(ywhere in a history)-.15 F 2.5
+(line. This)144 168 R(is a non-incremental search.)2.5 E F1
+(history\255substring\255sear)108 180 Q(ch\255f)-.18 E(orward)-.25 E F0
+.249(Search forw)144 192 R .249(ard through the history for the string \
+of characters between the start of the current line)-.1 F .318
+(and the point.)144 204 R .319(The search string may match an)5.318 F
+.319(ywhere in a history line.)-.15 F .319(This is a non-incremental)
+5.319 F(search.)144 216 Q F1(yank\255nth\255ar)108 228 Q 2.5(g\()-.1 G
+<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144 240 R .622
(gument to the pre)-.18 F .622(vious command \(usually the second w)-.25
-F .622(ord on the pre)-.1 F .622(vious line\))-.25 F .795(at point.)144
-204 R -.4(Wi)5.795 G .794(th an ar).4 F(gument)-.18 E F2(n)3.294 E F0
-3.294(,i).24 G .794(nsert the)-3.294 F F2(n)3.294 E F0 .794(th w)B .794
-(ord from the pre)-.1 F .794(vious command \(the w)-.25 F .794
-(ords in the)-.1 F(pre)144 216 Q .291(vious command be)-.25 F .291
+F .622(ord on the pre)-.1 F .622(vious line\))-.25 F .772(at point.)144
+252 R -.4(Wi)5.773 G .773(th an ar).4 F(gument)-.18 E F2(n)3.633 E F0
+3.273(,i).24 G .773(nsert the)-3.273 F F2(n)3.273 E F0 .773(th w)B .773
+(ord from the pre)-.1 F .773(vious command \(the w)-.25 F .773
+(ords in the)-.1 F(pre)144 264 Q .292(vious command be)-.25 F .292
(gin with w)-.15 F .291(ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)
-2.791 H(ti).15 E .591 -.15(ve a)-.25 H -.18(rg).15 G .291
-(ument inserts the).18 F F2(n)2.791 E F0 .291(th w)B .292
-(ord from the end of)-.1 F .282(the pre)144 228 R .282(vious command.)
--.25 F .282(Once the ar)5.282 F(gument)-.18 E F2(n)2.781 E F0 .281
-(is computed, the ar)2.781 F .281(gument is e)-.18 F .281
-(xtracted as if the "!)-.15 F F2(n)A F0(")A(history e)144 240 Q
-(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 252 Q
-2.5(g\()-.1 G -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.307
-(Insert the last ar)144 264 R 1.307(gument to the pre)-.18 F 1.307
-(vious command \(the last w)-.25 F 1.308(ord of the pre)-.1 F 1.308
-(vious history entry\).)-.25 F -.4(Wi)144 276 S .204(th a numeric ar).4
-F .204(gument, beha)-.18 F .504 -.15(ve ex)-.2 H .204(actly lik).15 F(e)
--.1 E F1(yank\255nth\255ar)2.704 E(g)-.1 E F0 5.203(.S)C(uccessi)-5.203
-E .503 -.15(ve c)-.25 H .203(alls to).15 F F1(yank\255last\255ar)2.703 E
-(g)-.1 E F0(mo)144 288 Q .806 -.15(ve b)-.15 H .507
+(ument inserts the).18 F F2(n)2.791 E F0 .291(th w)B .291
+(ord from the end of)-.1 F .281(the pre)144 276 R .281(vious command.)
+-.25 F .281(Once the ar)5.281 F(gument)-.18 E F2(n)2.781 E F0 .281
+(is computed, the ar)2.781 F .281(gument is e)-.18 F .282
+(xtracted as if the "!)-.15 F F2(n)A F0(")A(history e)144 288 Q
+(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 300 Q
+2.5(g\()-.1 G -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.308
+(Insert the last ar)144 312 R 1.308(gument to the pre)-.18 F 1.307
+(vious command \(the last w)-.25 F 1.307(ord of the pre)-.1 F 1.307
+(vious history entry\).)-.25 F -.4(Wi)144 324 S .203(th a numeric ar).4
+F .203(gument, beha)-.18 F .504 -.15(ve ex)-.2 H .204(actly lik).15 F(e)
+-.1 E F1(yank\255nth\255ar)2.704 E(g)-.1 E F0 5.204(.S)C(uccessi)-5.204
+E .504 -.15(ve c)-.25 H .204(alls to).15 F F1(yank\255last\255ar)2.704 E
+(g)-.1 E F0(mo)144 336 Q .807 -.15(ve b)-.15 H .507
(ack through the history list, inserting the last w).15 F .507
(ord \(or the w)-.1 F .507(ord speci\214ed by the ar)-.1 F(gument)-.18 E
-1.397(to the \214rst call\) of each line in turn.)144 300 R(An)6.396 E
-3.896(yn)-.15 G 1.396(umeric ar)-3.896 F 1.396
-(gument supplied to these successi)-.18 F 1.696 -.15(ve c)-.25 H(alls)
-.15 E .491(determines the direction to mo)144 312 R .791 -.15(ve t)-.15
-H .491(hrough the history).15 F 5.492(.A)-.65 G(ne)-2.5 E -.05(ga)-.15 G
-(ti).05 E .792 -.15(ve a)-.25 H -.18(rg).15 G .492
+.416(to the \214rst call\) of each line in turn.)144 348 R(An)5.416 E
+2.916(yn)-.15 G .416(umeric ar)-2.916 F .416
+(gument supplied to these successi)-.18 F .716 -.15(ve c)-.25 H .416
+(alls de-).15 F 1.218(termines the direction to mo)144 360 R 1.518 -.15
+(ve t)-.15 H 1.218(hrough the history).15 F 6.218(.A)-.65 G(ne)-2.5 E
+-.05(ga)-.15 G(ti).05 E 1.517 -.15(ve a)-.25 H -.18(rg).15 G 1.217
(ument switches the direction).18 F .494
-(through the history \(back or forw)144 324 R 2.994(ard\). The)-.1 F
+(through the history \(back or forw)144 372 R 2.994(ard\). The)-.1 F
.494(history e)2.994 F .494(xpansion f)-.15 F .494
-(acilities are used to e)-.1 F .494(xtract the last)-.15 F(ar)144 336 Q
+(acilities are used to e)-.1 F .494(xtract the last)-.15 F(ar)144 384 Q
(gument, as if the "!$" history e)-.18 E(xpansion had been speci\214ed.)
--.15 E F1(Commands f)87 352.8 Q(or Changing T)-.25 E(ext)-.92 E F2
-(end\255of\255\214le)108 364.8 Q F1(\(usually C\255d\))2.5 E F0 .798
-(The character indicating end-of-\214le as set, for e)144 376.8 R .799
-(xample, by)-.15 F/F3 10/Courier@0 SF(stty)3.299 E F0 5.799(.I)C 3.299
-(ft)-5.799 G .799(his character is read when)-3.299 F .592
-(there are no characters on the line, and point is at the be)144 388.8 R
-.592(ginning of the line, Readline interprets it)-.15 F
-(as the end of input and returns)144 400.8 Q/F4 9/Times-Bold@0 SF(EOF)
-2.5 E/F5 9/Times-Roman@0 SF(.)A F1(delete\255char \(C\255d\))108 412.8 Q
-F0 .441(Delete the character at point.)144 424.8 R .442
-(If this function is bound to the same character as the tty)5.441 F F1
-(EOF)2.942 E F0(char)2.942 E(-)-.2 E(acter)144 436.8 Q 2.5(,a)-.4 G(s)
+-.15 E F1(operate\255and\255get\255next \(C\255o\))108 396 Q F0 .733(Ac\
+cept the current line for return to the calling application as if a ne)
+144 408 R .733(wline had been entered, and)-.25 F .367(fetch the ne)144
+420 R .367(xt line relati)-.15 F .667 -.15(ve t)-.25 H 2.867(ot).15 G
+.367(he current line from the history for editing.)-2.867 F 2.867(An)
+5.367 G .367(umeric ar)-2.867 F .368(gument, if)-.18 F(supplied, speci\
+\214es the history entry to use instead of the current line.)144 432 Q
+F1(Commands f)87 448.8 Q(or Changing T)-.25 E(ext)-.92 E F2
+(end\255of\255\214le)108 460.8 Q F1(\(usually C\255d\))2.5 E F0 .799
+(The character indicating end-of-\214le as set, for e)144 472.8 R .799
+(xample, by)-.15 F/F3 10/Courier@0 SF(stty)3.299 E F0 5.799(.I)C 3.298
+(ft)-5.799 G .798(his character is read when)-3.298 F .592
+(there are no characters on the line, and point is at the be)144 484.8 R
+.593(ginning of the line, Readline interprets it)-.15 F
+(as the end of input and returns)144 496.8 Q/F4 9/Times-Bold@0 SF(EOF)
+2.5 E/F5 9/Times-Roman@0 SF(.)A F1(delete\255char \(C\255d\))108 508.8 Q
+F0 .442(Delete the character at point.)144 520.8 R .442
+(If this function is bound to the same character as the tty)5.442 F F1
+(EOF)2.941 E F0(char)2.941 E(-)-.2 E(acter)144 532.8 Q 2.5(,a)-.4 G(s)
-2.5 E F1(C\255d)2.5 E F0(commonly is, see abo)2.5 E .3 -.15(ve f)-.15 H
(or the ef).15 E(fects.)-.25 E F1(backward\255delete\255char \(Rubout\))
-108 448.8 Q F0 .553(Delete the character behind the cursor)144 460.8 R
+108 544.8 Q F0 .552(Delete the character behind the cursor)144 556.8 R
5.553(.W)-.55 G .553(hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553
-(umeric ar)-3.053 F .552(gument, sa)-.18 F .852 -.15(ve t)-.2 H .552
-(he deleted te).15 F .552(xt on)-.15 F(the kill ring.)144 472.8 Q F1
--.25(fo)108 484.8 S(rward\255backward\255delete\255char).25 E F0 .473
-(Delete the character under the cursor)144 496.8 R 2.973(,u)-.4 G .474
-(nless the cursor is at the end of the line, in which case the)-2.973 F
-(character behind the cursor is deleted.)144 508.8 Q F1
-(quoted\255insert \(C\255q, C\255v\))108 520.8 Q F0 1.229(Add the ne)144
-532.8 R 1.228(xt character that you type to the line v)-.15 F 3.728
-(erbatim. This)-.15 F 1.228(is ho)3.728 F 3.728(wt)-.25 G 3.728(oi)
--3.728 G 1.228(nsert characters lik)-3.728 F(e)-.1 E F1(C\255q)144 544.8
+(umeric ar)-3.053 F .553(gument, sa)-.18 F .853 -.15(ve t)-.2 H .553
+(he deleted te).15 F .553(xt on)-.15 F(the kill ring.)144 568.8 Q F1
+-.25(fo)108 580.8 S(rward\255backward\255delete\255char).25 E F0 .474
+(Delete the character under the cursor)144 592.8 R 2.974(,u)-.4 G .474
+(nless the cursor is at the end of the line, in which case the)-2.974 F
+(character behind the cursor is deleted.)144 604.8 Q F1
+(quoted\255insert \(C\255q, C\255v\))108 616.8 Q F0 1.228(Add the ne)144
+628.8 R 1.228(xt character that you type to the line v)-.15 F 3.728
+(erbatim. This)-.15 F 1.228(is ho)3.728 F 3.729(wt)-.25 G 3.729(oi)
+-3.729 G 1.229(nsert characters lik)-3.729 F(e)-.1 E F1(C\255q)144 640.8
Q F0 2.5(,f)C(or e)-2.5 E(xample.)-.15 E F1(tab\255insert \(M-T)108
-556.8 Q(AB\))-.9 E F0(Insert a tab character)144 568.8 Q(.)-.55 E F1
-(self\255insert \(a, b, A, 1, !, ...\))108 580.8 Q F0
-(Insert the character typed.)144 592.8 Q F1
-(transpose\255chars \(C\255t\))108 604.8 Q F0 .321
-(Drag the character before point forw)144 616.8 R .321(ard o)-.1 F -.15
-(ve)-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .322
-(ving point forw)-.15 F .322(ard as well.)-.1 F 1.182
+652.8 Q(AB\))-.9 E F0(Insert a tab character)144 664.8 Q(.)-.55 E F1
+(self\255insert \(a, b, A, 1, !, ...\))108 676.8 Q F0
+(Insert the character typed.)144 688.8 Q F1
+(transpose\255chars \(C\255t\))108 700.8 Q F0 .322
+(Drag the character before point forw)144 712.8 R .321(ard o)-.1 F -.15
+(ve)-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .321
+(ving point forw)-.15 F .321(ard as well.)-.1 F 1.182
(If point is at the end of the line, then this transposes the tw)144
-628.8 R 3.682(oc)-.1 G 1.182(haracters before point.)-3.682 F(Ne)6.182 E
--.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 640.8 Q(guments ha)-.18 E
-.3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1
-(transpose\255w)108 652.8 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144
-664.8 R .023(ord before point past the w)-.1 F .023(ord after point, mo)
--.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.524(rt).15 G .024(hat w)
--2.524 F .024(ord as well.)-.1 F .024(If point)5.024 F
-(is at the end of the line, this transposes the last tw)144 676.8 Q 2.5
-(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 688.8 Q
-(ord \(M\255u\))-.1 E F0 1.699(Uppercase the current \(or follo)144
-700.8 R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F
--.05(ga)-.15 G(ti).05 E 1.998 -.15(ve a)-.25 H -.18(rg).15 G 1.698
-(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 712.8 S(rd, b).1
-E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E(GNU Readline 7.0)72
-768 Q(2017 December 28)121.245 E(9)190.955 E 0 Cg EP
+724.8 R 3.683(oc)-.1 G 1.183(haracters before point.)-3.683 F(Ne)6.183 E
+-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(GNU Readline 8.1)72 768 Q
+(2020 October 29)125.685 E(9)195.395 E 0 Cg EP
%%Page: 10 10
%%BeginPageSetup
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/F1 10/Times-Bold@0 SF
-(do)108 84 Q(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 96 Q 1.647
-(wercase the current \(or follo)-.25 F 1.647(wing\) w)-.25 F 4.147
-(ord. W)-.1 F 1.648(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.948 -.15
-(ve a)-.25 H -.18(rg).15 G 1.648(ument, lo).18 F 1.648(wercase the pre)
--.25 F(vious)-.25 E -.1(wo)144 108 S(rd, b).1 E(ut do not mo)-.2 E .3
--.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 120 Q
-(ord \(M\255c\))-.1 E F0 1.975(Capitalize the current \(or follo)144 132
+(Functions Manual)2.5 E(READLINE\(3\))119.855 E(ar)144 84 Q(guments ha)
+-.18 E .3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E/F1 10
+/Times-Bold@0 SF(transpose\255w)108 96 Q(ords \(M\255t\))-.1 E F0 .024
+(Drag the w)144 108 R .024(ord before point past the w)-.1 F .023
+(ord after point, mo)-.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.523
+(rt).15 G .023(hat w)-2.523 F .023(ord as well.)-.1 F .023(If point)
+5.023 F(is at the end of the line, this transposes the last tw)144 120 Q
+2.5(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 132 Q
+(ord \(M\255u\))-.1 E F0 1.698(Uppercase the current \(or follo)144 144
+R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F -.05(ga)
+-.15 G(ti).05 E 1.999 -.15(ve a)-.25 H -.18(rg).15 G 1.699
+(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 156 S(rd, b).1 E
+(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 168 Q
+(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 180 Q 1.648
+(wercase the current \(or follo)-.25 F 1.648(wing\) w)-.25 F 4.148
+(ord. W)-.1 F 1.647(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.947 -.15
+(ve a)-.25 H -.18(rg).15 G 1.647(ument, lo).18 F 1.647(wercase the pre)
+-.25 F(vious)-.25 E -.1(wo)144 192 S(rd, b).1 E(ut do not mo)-.2 E .3
+-.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 204 Q
+(ord \(M\255c\))-.1 E F0 1.974(Capitalize the current \(or follo)144 216
R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F -.05(ga)
--.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.974
-(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 144 S(rd, b).1
-E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 156
-S(rwrite\255mode).1 E F0 -.8(To)144 168 S .437(ggle o).8 F -.15(ve)-.15
-G .437(rwrite mode.).15 F -.4(Wi)5.437 G .437(th an e).4 F .437
-(xplicit positi)-.15 F .738 -.15(ve n)-.25 H .438(umeric ar).15 F .438
-(gument, switches to o)-.18 F -.15(ve)-.15 G .438(rwrite mode.).15 F -.4
-(Wi)144 180 S .781(th an e).4 F .781(xplicit non-positi)-.15 F 1.081
--.15(ve n)-.25 H .781(umeric ar).15 F .781
-(gument, switches to insert mode.)-.18 F .78(This command af)5.781 F
-(fects)-.25 E(only)144 192 Q F1(emacs)4.394 E F0(mode;)4.394 E F1(vi)
-4.394 E F0 1.894(mode does o)4.394 F -.15(ve)-.15 G 1.894(rwrite dif).15
-F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F/F2 10
-/Times-Italic@0 SF -.37(re)4.395 G(adline\(\)).37 E F0 1.895
-(starts in insert)4.395 F 3.969(mode. In)144 204 R -.15(ove)3.969 G
-1.469(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E
-F0 1.468(replace the te)3.969 F 1.468(xt at point rather than)-.15 F
-.957(pushing the te)144 216 R .957(xt to the right.)-.15 F .958
-(Characters bound to)5.957 F F1(backward\255delete\255char)3.458 E F0
-.958(replace the character)3.458 F(before point with a space.)144 228 Q
-(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87
-244.8 Q(anking)-.85 E(kill\255line \(C\255k\))108 256.8 Q F0
-(Kill the te)144 268.8 Q(xt from point to the end of the line.)-.15 E F1
-(backward\255kill\255line \(C\255x Rubout\))108 280.8 Q F0(Kill backw)
-144 292.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
-(unix\255line\255discard \(C\255u\))108 304.8 Q F0(Kill backw)144 316.8
+-.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.975
+(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 228 S(rd, b).1
+E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 240
+S(rwrite\255mode).1 E F0 -.8(To)144 252 S .438(ggle o).8 F -.15(ve)-.15
+G .438(rwrite mode.).15 F -.4(Wi)5.438 G .438(th an e).4 F .438
+(xplicit positi)-.15 F .737 -.15(ve n)-.25 H .437(umeric ar).15 F .437
+(gument, switches to o)-.18 F -.15(ve)-.15 G .437(rwrite mode.).15 F -.4
+(Wi)144 264 S .78(th an e).4 F .781(xplicit non-positi)-.15 F 1.081 -.15
+(ve n)-.25 H .781(umeric ar).15 F .781(gument, switches to insert mode.)
+-.18 F .781(This command af)5.781 F(fects)-.25 E(only)144 276 Q F1
+(emacs)4.395 E F0(mode;)4.395 E F1(vi)4.395 E F0 1.894(mode does o)4.395
+F -.15(ve)-.15 G 1.894(rwrite dif).15 F(ferently)-.25 E 6.894(.E)-.65 G
+1.894(ach call to)-6.894 F/F2 10/Times-Italic@0 SF -.37(re)4.394 G
+(adline\(\)).37 E F0 1.894(starts in insert)4.394 F 3.968(mode. In)144
+288 R -.15(ove)3.968 G 1.468(rwrite mode, characters bound to).15 F F1
+(self\255insert)3.969 E F0 1.469(replace the te)3.969 F 1.469
+(xt at point rather than)-.15 F .958(pushing the te)144 300 R .958
+(xt to the right.)-.15 F .957(Characters bound to)5.958 F F1
+(backward\255delete\255char)3.457 E F0 .957(replace the character)3.457
+F(before point with a space.)144 312 Q(By def)5 E
+(ault, this command is unbound.)-.1 E F1(Killing and Y)87 328.8 Q
+(anking)-.85 E(kill\255line \(C\255k\))108 340.8 Q F0(Kill the te)144
+352.8 Q(xt from point to the end of the line.)-.15 E F1
+(backward\255kill\255line \(C\255x Rubout\))108 364.8 Q F0(Kill backw)
+144 376.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
+(unix\255line\255discard \(C\255u\))108 388.8 Q F0(Kill backw)144 400.8
Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E
(The killed te)5 E(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)
--2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 328.8 Q F0
+-2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 412.8 Q F0
(Kill all characters on the current line, no matter where point is.)144
-340.8 Q F1(kill\255w)108 352.8 Q(ord \(M\255d\))-.1 E F0 1.308
-(Kill from point the end of the current w)144 364.8 R 1.308
-(ord, or if between w)-.1 F 1.308(ords, to the end of the ne)-.1 F 1.307
-(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 376.8 S
+424.8 Q F1(kill\255w)108 436.8 Q(ord \(M\255d\))-.1 E F0 1.308
+(Kill from point the end of the current w)144 448.8 R 1.308
+(ord, or if between w)-.1 F 1.308(ords, to the end of the ne)-.1 F 1.308
+(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 460.8 S
(rd boundaries are the same as those used by).8 E F1 -.25(fo)2.5 G
-(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 388.8 Q
-(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 400.8 Q(ord behind point.)
+(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 472.8 Q
+(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 484.8 Q(ord behind point.)
-.1 E -.8(Wo)5 G(rd boundaries are the same as those used by).8 E F1
-(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(unix\255w)108 412.8 Q
-(ord\255rubout \(C\255w\))-.1 E F0 .364(Kill the w)144 424.8 R .364
-(ord behind point, using white space as a w)-.1 F .365(ord boundary)-.1
-F 5.365(.T)-.65 G .365(he killed te)-5.365 F .365(xt is sa)-.15 F -.15
-(ve)-.2 G 2.865(do).15 G 2.865(nt)-2.865 G(he)-2.865 E(kill-ring.)144
-436.8 Q F1(unix\255\214lename\255rubout)108 448.8 Q F0 .167(Kill the w)
-144 460.8 R .166
+(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(unix\255w)108 496.8 Q
+(ord\255rubout \(C\255w\))-.1 E F0 .365(Kill the w)144 508.8 R .365
+(ord behind point, using white space as a w)-.1 F .364(ord boundary)-.1
+F 5.364(.T)-.65 G .364(he killed te)-5.364 F .364(xt is sa)-.15 F -.15
+(ve)-.2 G 2.864(do).15 G 2.864(nt)-2.864 G(he)-2.864 E(kill-ring.)144
+520.8 Q F1(unix\255\214lename\255rubout)108 532.8 Q F0 .166(Kill the w)
+144 544.8 R .166
(ord behind point, using white space and the slash character as the w)
--.1 F .166(ord boundaries.)-.1 F(The)5.166 E(killed te)144 472.8 Q
+-.1 F .167(ord boundaries.)-.1 F(The)5.167 E(killed te)144 556.8 Q
(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)-2.5 G(he kill-ring.)
--2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 484.8 Q F0
-(Delete all spaces and tabs around point.)144 496.8 Q F1(kill\255r)108
-508.8 Q(egion)-.18 E F0 1.13(Kill the te)144 520.8 R 1.13
-(xt between the point and)-.15 F F2(mark)3.63 E F0(\(sa)3.63 E -.15(ve)
--.2 G 3.63(dc).15 G 1.13(ursor position\).)-3.63 F 1.13(This te)6.13 F
-1.13(xt is referred to as the)-.15 F F2 -.37(re)144 532.8 S(gion)-.03 E
-F0(.)A F1(copy\255r)108 544.8 Q(egion\255as\255kill)-.18 E F0(Cop)144
-556.8 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
+-2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 568.8 Q F0
+(Delete all spaces and tabs around point.)144 580.8 Q F1(kill\255r)108
+592.8 Q(egion)-.18 E F0 .302(Kill the te)144 604.8 R .301
+(xt between the point and)-.15 F F2(mark)2.801 E F0(\(sa)2.801 E -.15
+(ve)-.2 G 2.801(dc).15 G .301(ursor position\).)-2.801 F .301(This te)
+5.301 F .301(xt is referred to as the)-.15 F F2 -.37(re)2.801 G(-).37 E
+(gion)144 616.8 Q F0(.)A F1(copy\255r)108 628.8 Q(egion\255as\255kill)
+-.18 E F0(Cop)144 640.8 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
(gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E F1
-(copy\255backward\255w)108 568.8 Q(ord)-.1 E F0(Cop)144 580.8 Q 4.801
-(yt)-.1 G 2.301(he w)-4.801 F 2.301(ord before point to the kill b)-.1 F
-(uf)-.2 E(fer)-.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.3
-(ord boundaries are the same as)-.1 F F1(back-)4.8 E(ward\255w)144 592.8
-Q(ord)-.1 E F0(.)A F1(copy\255f)108 604.8 Q(orward\255w)-.25 E(ord)-.1 E
-F0(Cop)144 616.8 Q 4.507(yt)-.1 G 2.007(he w)-4.507 F 2.007(ord follo)
--.1 F 2.007(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.008
-(.T)-.55 G 2.008(he w)-7.008 F 2.008(ord boundaries are the same as)-.1
-F F1 -.25(fo)4.508 G -.37(r-).25 G(ward\255w)144 628.8 Q(ord)-.1 E F0(.)
-A F1(yank \(C\255y\))108 640.8 Q F0 -1(Ya)144 652.8 S
-(nk the top of the kill ring into the b)1 E(uf)-.2 E(fer at point.)-.25
-E F1(yank\255pop \(M\255y\))108 664.8 Q F0
-(Rotate the kill ring, and yank the ne)144 676.8 Q 2.5(wt)-.25 G 2.5
-(op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E
-F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 693.6 Q
-(guments)-.1 E(digit\255ar)108 705.6 Q
-(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .367
-(Add this digit to the ar)144 717.6 R .367
-(gument already accumulating, or start a ne)-.18 F 2.867(wa)-.25 G -.18
-(rg)-2.867 G 2.867(ument. M\255\255).18 F .366(starts a ne)2.867 F -.05
-(ga)-.15 G(-).05 E(ti)144 729.6 Q .3 -.15(ve a)-.25 H -.18(rg).15 G
-(ument.).18 E(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(10)
-185.955 E 0 Cg EP
+(copy\255backward\255w)108 652.8 Q(ord)-.1 E F0(Cop)144 664.8 Q 4.8(yt)
+-.1 G 2.3(he w)-4.8 F 2.3(ord before point to the kill b)-.1 F(uf)-.2 E
+(fer)-.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.301
+(ord boundaries are the same as)-.1 F F1(back-)4.801 E(ward\255w)144
+676.8 Q(ord)-.1 E F0(.)A F1(copy\255f)108 688.8 Q(orward\255w)-.25 E
+(ord)-.1 E F0(Cop)144 700.8 Q 4.508(yt)-.1 G 2.008(he w)-4.508 F 2.008
+(ord follo)-.1 F 2.008(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25
+E 7.007(.T)-.55 G 2.007(he w)-7.007 F 2.007
+(ord boundaries are the same as)-.1 F F1 -.25(fo)4.507 G -.37(r-).25 G
+(ward\255w)144 712.8 Q(ord)-.1 E F0(.)A(GNU Readline 8.1)72 768 Q
+(2020 October 29)125.685 E(10)190.395 E 0 Cg EP
%%Page: 11 11
%%BeginPageSetup
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/F1 10/Times-Bold@0 SF
-(uni)108 84 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .778
-(This is another w)144 96 R .779(ay to specify an ar)-.1 F 3.279
-(gument. If)-.18 F .779(this command is follo)3.279 F .779
+(yank \(C\255y\))108 84 Q F0 -1(Ya)144 96 S
+(nk the top of the kill ring into the b)1 E(uf)-.2 E(fer at point.)-.25
+E F1(yank\255pop \(M\255y\))108 108 Q F0
+(Rotate the kill ring, and yank the ne)144 120 Q 2.5(wt)-.25 G 2.5
+(op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E
+F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 136.8 Q
+(guments)-.1 E(digit\255ar)108 148.8 Q
+(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .367
+(Add this digit to the ar)144 160.8 R .367
+(gument already accumulating, or start a ne)-.18 F 2.867(wa)-.25 G -.18
+(rg)-2.867 G 2.867(ument. M\255\255).18 F .367(starts a ne)2.867 F -.05
+(ga)-.15 G(-).05 E(ti)144 172.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G
+(ument.).18 E F1(uni)108 184.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1
+E F0 .779(This is another w)144 196.8 R .779(ay to specify an ar)-.1 F
+3.279(gument. If)-.18 F .779(this command is follo)3.279 F .778
(wed by one or more digits,)-.25 F 1.376
(optionally with a leading minus sign, those digits de\214ne the ar)144
-108 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
-120 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
+208.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
+220.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
3.67 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(ag)3.67 E 1.17
(ain ends the numeric ar)-.05 F 1.17(gument, b)-.18 F 1.17(ut is other)
--.2 F(-)-.2 E .899(wise ignored.)144 132 R .898
-(As a special case, if this command is immediately follo)5.899 F .898
+-.2 F(-)-.2 E .898(wise ignored.)144 232.8 R .898
+(As a special case, if this command is immediately follo)5.898 F .898
(wed by a character that is)-.25 F .243
-(neither a digit or minus sign, the ar)144 144 R .243
+(neither a digit or minus sign, the ar)144 244.8 R .243
(gument count for the ne)-.18 F .243(xt command is multiplied by four)
--.15 F 5.243(.T)-.55 G(he)-5.243 E(ar)144 156 Q .378
+-.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 256.8 Q .378
(gument count is initially one, so e)-.18 F -.15(xe)-.15 G .378
(cuting this function the \214rst time mak).15 F .378(es the ar)-.1 F
-.378(gument count)-.18 F(four)144 168 Q 2.5(,as)-.4 G(econd time mak)
+.378(gument count)-.18 F(four)144 268.8 Q 2.5(,as)-.4 G(econd time mak)
-2.5 E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1
-(Completing)87 184.8 Q(complete \(T)108 196.8 Q(AB\))-.9 E F0 1.908
-(Attempt to perform completion on the te)144 208.8 R 1.908
-(xt before point.)-.15 F 1.909(The actual completion performed is)6.909
-F(application-speci\214c.)144 220.8 Q F1(Bash)5.518 E F0 3.018(,f)C .518
-(or instance, attempts completion treating the te)-3.018 F .517
-(xt as a v)-.15 F .517(ariable \(if the)-.25 F(te)144 232.8 Q .656
-(xt be)-.15 F .656(gins with)-.15 F F1($)3.156 E F0 .656
+(Completing)87 285.6 Q(complete \(T)108 297.6 Q(AB\))-.9 E F0 .682
+(Attempt to perform completion on the te)144 309.6 R .681
+(xt before point.)-.15 F .681(The actual completion performed is ap-)
+5.681 F(plication-speci\214c.)144 321.6 Q F1(Bash)6.243 E F0 3.743(,f)C
+1.244(or instance, attempts completion treating the te)-3.743 F 1.244
+(xt as a v)-.15 F 1.244(ariable \(if the)-.25 F(te)144 333.6 Q .657
+(xt be)-.15 F .657(gins with)-.15 F F1($)3.156 E F0 .656
(\), username \(if the te)B .656(xt be)-.15 F .656(gins with)-.15 F F1
(~)3.156 E F0 .656(\), hostname \(if the te)B .656(xt be)-.15 F .656
-(gins with)-.15 F F1(@)3.157 E F0 .657(\), or)B .93
-(command \(including aliases and functions\) in turn.)144 244.8 R .929
-(If none of these produces a match, \214lename)5.929 F 1.273
-(completion is attempted.)144 256.8 R F1(Gdb)6.273 E F0 3.773(,o)C 3.773
+(gins with)-.15 F F1(@)3.156 E F0 .656(\), or)B .929
+(command \(including aliases and functions\) in turn.)144 345.6 R .93
+(If none of these produces a match, \214lename)5.929 F 1.274
+(completion is attempted.)144 357.6 R F1(Gdb)6.273 E F0 3.773(,o)C 3.773
(nt)-3.773 G 1.273(he other hand, allo)-3.773 F 1.273
-(ws completion of program functions and)-.25 F -.25(va)144 268.8 S(riab\
+(ws completion of program functions and)-.25 F -.25(va)144 369.6 S(riab\
les, and only attempts \214lename completion under certain circumstance\
-s.).25 E F1(possible\255completions \(M\255?\))108 280.8 Q F0 .262
-(List the possible completions of the te)144 292.8 R .262
-(xt before point.)-.15 F .261
-(When displaying completions, readline sets)5.261 F 1.002
-(the number of columns used for display to the v)144 304.8 R 1.002
-(alue of)-.25 F F1(completion-display-width)3.502 E F0 3.502(,t)C 1.003
-(he v)-3.502 F 1.003(alue of)-.25 F(the en)144 316.8 Q(vironment v)-.4 E
+s.).25 E F1(possible\255completions \(M\255?\))108 381.6 Q F0 .261
+(List the possible completions of the te)144 393.6 R .262
+(xt before point.)-.15 F .262
+(When displaying completions, readline sets)5.262 F 1.002
+(the number of columns used for display to the v)144 405.6 R 1.002
+(alue of)-.25 F F1(completion-display-width)3.502 E F0 3.502(,t)C 1.002
+(he v)-3.502 F 1.002(alue of)-.25 F(the en)144 417.6 Q(vironment v)-.4 E
(ariable)-.25 E/F2 9/Times-Bold@0 SF(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF
(,)A F0(or the screen width, in that order)2.25 E(.)-.55 E F1
-(insert\255completions \(M\255*\))108 328.8 Q F0 .783
-(Insert all completions of the te)144 340.8 R .783
+(insert\255completions \(M\255*\))108 429.6 Q F0 .783
+(Insert all completions of the te)144 441.6 R .783
(xt before point that w)-.15 F .783(ould ha)-.1 F 1.083 -.15(ve b)-.2 H
-.783(een generated by).15 F F1(possible\255com-)3.282 E(pletions)144
-352.8 Q F0(.)A F1(menu\255complete)108 364.8 Q F0 .928(Similar to)144
-376.8 R F1(complete)3.428 E F0 3.428(,b)C .929(ut replaces the w)-3.628
+.783(een generated by).15 F F1(possible\255com-)3.283 E(pletions)144
+453.6 Q F0(.)A F1(menu\255complete)108 465.6 Q F0 .929(Similar to)144
+477.6 R F1(complete)3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629
F .929(ord to be completed with a single match from the list of)-.1 F
-1.194(possible completions.)144 388.8 R 1.194(Repeated e)6.194 F -.15
-(xe)-.15 G 1.194(cution of).15 F F1(menu\255complete)3.694 E F0 1.193
-(steps through the list of possible)3.694 F .828
-(completions, inserting each match in turn.)144 400.8 R .828
+1.193(possible completions.)144 489.6 R 1.193(Repeated e)6.193 F -.15
+(xe)-.15 G 1.193(cution of).15 F F1(menu\255complete)3.694 E F0 1.194
+(steps through the list of possible)3.694 F .829
+(completions, inserting each match in turn.)144 501.6 R .828
(At the end of the list of completions, the bell is rung)5.828 F .727
-(\(subject to the setting of)144 412.8 R F1(bell\255style)3.227 E F0
+(\(subject to the setting of)144 513.6 R F1(bell\255style)3.227 E F0
3.227(\)a)C .727(nd the original te)-3.227 F .727(xt is restored.)-.15 F
.727(An ar)5.727 F .727(gument of)-.18 F/F4 10/Times-Italic@0 SF(n)3.227
-E F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F4(n)3.227 E F0 1.73
-(positions forw)144 424.8 R 1.73(ard in the list of matches; a ne)-.1 F
+E F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F4(n)3.228 E F0 1.73
+(positions forw)144 525.6 R 1.73(ard in the list of matches; a ne)-.1 F
-.05(ga)-.15 G(ti).05 E 2.03 -.15(ve a)-.25 H -.18(rg).15 G 1.73
(ument may be used to mo).18 F 2.03 -.15(ve b)-.15 H(ackw).15 E(ard)-.1
-E(through the list.)144 436.8 Q(This command is intended to be bound to)
+E(through the list.)144 537.6 Q(This command is intended to be bound to)
5 E F1 -.9(TA)2.5 G(B).9 E F0 2.5(,b)C(ut is unbound by def)-2.7 E
-(ault.)-.1 E F1(menu\255complete\255backward)108 448.8 Q F0 .82
-(Identical to)144 460.8 R F1(menu\255complete)3.32 E F0 3.32(,b)C .82
+(ault.)-.1 E F1(menu\255complete\255backward)108 549.6 Q F0 .82
+(Identical to)144 561.6 R F1(menu\255complete)3.32 E F0 3.32(,b)C .82
(ut mo)-3.52 F -.15(ve)-.15 G 3.32(sb).15 G(ackw)-3.32 E .82
(ard through the list of possible completions, as if)-.1 F F1
-(menu\255complete)144 472.8 Q F0(had been gi)2.5 E -.15(ve)-.25 G 2.5
+(menu\255complete)144 573.6 Q F0(had been gi)2.5 E -.15(ve)-.25 G 2.5
(nan).15 G -2.25 -.15(eg a)-2.5 H(ti).15 E .3 -.15(ve a)-.25 H -.18(rg)
.15 G 2.5(ument. This).18 F(command is unbound by def)2.5 E(ault.)-.1 E
-F1(delete\255char\255or\255list)108 484.8 Q F0 .373
-(Deletes the character under the cursor if not at the be)144 496.8 R
-.374(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete-char)
-2.874 E F0(\).)A(If at the end of the line, beha)144 508.8 Q -.15(ve)-.2
+F1(delete\255char\255or\255list)108 585.6 Q F0 .374
+(Deletes the character under the cursor if not at the be)144 597.6 R
+.373(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete-char)
+2.873 E F0(\).)A(If at the end of the line, beha)144 609.6 Q -.15(ve)-.2
G 2.5(si).15 G(dentically to)-2.5 E F1(possible-completions)2.5 E F0(.)A
-F1 -.25(Ke)87 525.6 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr)
-108 537.6 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)).833 E F0(Be)144 549.6 Q
+F1 -.25(Ke)87 626.4 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr)
+108 638.4 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)).833 E F0(Be)144 650.4 Q
(gin sa)-.15 E(ving the characters typed into the current k)-.2 E -.15
-(ey)-.1 G(board macro.).15 E F1(end\255kbd\255macr)108 561.6 Q 2.5(o\()
--.18 G(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 573.6 Q
+(ey)-.1 G(board macro.).15 E F1(end\255kbd\255macr)108 662.4 Q 2.5(o\()
+-.18 G(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 674.4 Q
(ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
(board macro and store the de\214nition.).15 E F1
-(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(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
+(call\255last\255kbd\255macr)108 686.4 Q 2.5(o\()-.18 G(C\255x e\))-2.5
+E F0(Re-e)144 698.4 Q -.15(xe)-.15 G .999(cute the last k).15 F -.15(ey)
+-.1 G .999(board macro de\214ned, by making the characters in the macro\
+ appear as if).15 F(typed at the k)144 710.4 Q -.15(ey)-.1 G(board.).15
+E(GNU Readline 8.1)72 768 Q(2020 October 29)125.685 E(11)190.395 E 0 Cg
+EP
%%Page: 12 12
%%BeginPageSetup
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/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.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
-(Metafy the ne)144 132 Q(xt character typed.)-.15 E/F3 9/Times-Bold@0 SF
-(ESC)5 E F1(f)2.25 E F0(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1
-(Meta\255f)2.5 E F0(.)A F1(undo \(C\255_, C\255x C\255u\))108 144 Q F0
-(Incremental undo, separately remembered for each line.)144 156 Q F1
--2.29 -.18(re v)108 168 T(ert\255line \(M\255r\)).08 E F0 1.095
-(Undo all changes made to this line.)144 180 R 1.095(This is lik)6.095 F
-3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E
-F0 1.095(command enough times to)3.595 F
-(return the line to its initial state.)144 192 Q F1
-(tilde\255expand \(M\255&\))108 204 Q F0(Perform tilde e)144 216 Q
+(print\255last\255kbd\255macr)108 84 Q 2.5(o\()-.18 G(\))-2.5 E F0
+(Print the last k)144 96 Q -.15(ey)-.1 G
+(board macro de\214ned in a format suitable for the).15 E/F2 10
+/Times-Italic@0 SF(inputr)2.5 E(c)-.37 E F0(\214le.)2.5 E F1
+(Miscellaneous)87 112.8 Q -.18(re)108 124.8 S<ad72>.18 E
+(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777
+(Read in the contents of the)144 136.8 R F2(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
+148.8 Q F1(abort \(C\255g\))108 160.8 Q F0 3.248
+(Abort the current editing command and ring the terminal')144 172.8 R
+5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1
+(bell\255style)144 184.8 Q F0(\).)A F1(do\255lo)108 196.8 Q(wer)-.1 E
+(case\255v)-.18 E(ersion \(M\255A, M\255B, M\255)-.1 E F2(x)A F1 2.5(,.)
+C(..\))-2.5 E F0 1.739(If the meta\214ed character)144 208.8 R F2(x)
+4.239 E F0 1.739
+(is uppercase, run the command that is bound to the corresponding)4.239
+F(meta\214ed lo)144 220.8 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 232.8 Q(e\214x\255meta \(ESC\))-.18 E F0
+(Metafy the ne)144 244.8 Q(xt character typed.)-.15 E/F3 9/Times-Bold@0
+SF(ESC)5 E F1(f)2.25 E F0(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1
+(Meta\255f)2.5 E F0(.)A F1(undo \(C\255_, C\255x C\255u\))108 256.8 Q F0
+(Incremental undo, separately remembered for each line.)144 268.8 Q F1
+-2.29 -.18(re v)108 280.8 T(ert\255line \(M\255r\)).08 E F0 .23
+(Undo all changes made to this line.)144 292.8 R .231(This is lik)5.23 F
+2.731(ee)-.1 G -.15(xe)-2.881 G .231(cuting the).15 F F1(undo)2.731 E F0
+.231(command enough times to re-)2.731 F
+(turn the line to its initial state.)144 304.8 Q F1
+(tilde\255expand \(M\255&\))108 316.8 Q F0(Perform tilde e)144 328.8 Q
(xpansion on the current w)-.15 E(ord.)-.1 E F1
-(set\255mark \(C\255@, M\255<space>\))108 228 Q F0
-(Set the mark to the point.)144 240 Q(If a numeric ar)5 E
+(set\255mark \(C\255@, M\255<space>\))108 340.8 Q F0
+(Set the mark to the point.)144 352.8 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 .282(ap the point with the mark.)-.1 F .283
+(exchange\255point\255and\255mark \(C\255x C\255x\))108 364.8 Q F0(Sw)
+144 376.8 Q .283(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.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.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.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.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
+2.782(dp).15 G .282(osition, and the old)-2.782 F(cursor position is sa)
+144 388.8 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 400.8 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144
+412.8 S .535(haracter is read and point is mo)-3.035 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)
+144 424.8 Q(vious occurrences.)-.25 E F1(character\255sear)108 436.8 Q
+(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 448.8 S 1.044
+(haracter is read and point is mo)-3.544 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.044(.A)-.55 G(ne)-2.5 E
+(vious occurrence of that character)-.25 F 6.043(.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.827
-(Read enough characters to consume a multi-k)144 372 R 2.126 -.15(ey s)
--.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
+(count searches for subsequent occurrences.)144 460.8 Q F1
+(skip\255csi\255sequence)108 472.8 Q F0 1.826
+(Read enough characters to consume a multi-k)144 484.8 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 496.8 R
+.791(Such sequences be)5.791 F .791
(gin with a Control Sequence Indicator \(CSI\), usually ESC\255[.)-.15 F
-.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
+.331(If this sequence is bound to "\\[", k)144 508.8 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-)-.15 E .026(itly bound to a readline command, instead of insert\
+ing stray characters into the editing b)144 520.8 R(uf)-.2 E(fer)-.25 E
+5.026(.T)-.55 G(his)-5.026 E(is unbound by def)144 532.8 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 .481(thout a numeric ar).4 F .481
+544.8 Q F0 -.4(Wi)144 556.8 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 .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
+(comment\255begin)2.981 E F0 -.25(va)2.981 G .481
+(riable is inserted at the).25 F(be)144 568.8 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
+(the characters at the be)144 580.8 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.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.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 .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
+(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 592.8 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
+(In either case, the line is accepted as if a ne)144 604.8 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 616.8 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
+(character to be remo)144 628.8 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
+640.8 Q F0 .626(Print all of the functions and their k)144 652.8 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
+(ment is supplied, the output is formatted in such a w)144 664.8 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
-(Print all of the settable v)144 576 R .283(ariables and their v)-.25 F
-.283(alues to the readline output stream.)-.25 F .283(If a numeric ar)
+(\214le.)2.5 E F1(dump\255v)108 676.8 Q(ariables)-.1 E F0 .283
+(Print all of the settable v)144 688.8 R .283(ariables and their v)-.25
+F .283(alues to the readline output stream.)-.25 F .283(If a numeric ar)
5.283 F(gu-)-.18 E
-(ment is supplied, the output is formatted in such a w)144 588 Q
+(ment is supplied, the output is formatted in such a w)144 700.8 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 .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.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 .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
-768 Q(2017 December 28)121.245 E(12)185.955 E 0 Cg EP
+(\214le.)2.5 E(GNU Readline 8.1)72 768 Q(2020 October 29)125.685 E(12)
+190.395 E 0 Cg EP
%%Page: 13 13
%%BeginPageSetup
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.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.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.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 .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 .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.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
-220.8 R(ard-char)-.1 E 2.5("C-D" delete-char)151.2 232.8 R 2.5
-("C-E" end-of-line)151.2 244.8 R 2.5("C-F" forw)151.2 256.8 R(ard-char)
--.1 E 2.5("C-G" abort)151.2 268.8 R 2.5("C-H" backw)151.2 280.8 R
-(ard-delete-char)-.1 E 2.5("C-I" complete)151.2 292.8 R 2.5
-("C-J" accept-line)151.2 304.8 R 2.5("C-K" kill-line)151.2 316.8 R 2.5
-("C-L" clear)151.2 328.8 R(-screen)-.2 E 2.5("C-M" accept-line)151.2
-340.8 R 2.5("C-N" ne)151.2 352.8 R(xt-history)-.15 E 2.5("C-P" pre)151.2
-364.8 R(vious-history)-.25 E 2.5("C-Q" quoted-insert)151.2 376.8 R 2.5
-("C-R" re)151.2 388.8 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
-("C-S" forw)151.2 400.8 R(ard-search-history)-.1 E 2.5
-("C-T" transpose-chars)151.2 412.8 R 2.5("C-U" unix-line-discard)151.2
-424.8 R 2.5("C-V" quoted-insert)151.2 436.8 R 2.5("C-W" unix-w)151.2
-448.8 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 460.8 R 2.5
-("C-]" character)151.2 472.8 R(-search)-.2 E 2.5("C-_" undo)151.2 484.8
-R 3.333("")151.2 496.8 S(to "/")-.833 E(self-insert)5 E 2.5("0" to)151.2
-508.8 R 2.5("9" self-insert)2.5 F 2.5(":" to)151.2 520.8 R 2.5
-("~" self-insert)2.5 F 2.5("C-?" backw)151.2 532.8 R(ard-delete-char)-.1
-E(Emacs Meta bindings)151.2 549.6 Q 2.5("M-C-G" abort)151.2 573.6 R 2.5
-("M-C-H" backw)151.2 585.6 R(ard-kill-w)-.1 E(ord)-.1 E 2.5
-("M-C-I" tab-insert)151.2 597.6 R 2.5("M-C-J" vi-editing-mode)151.2
-609.6 R 2.5("M-C-M" vi-editing-mode)151.2 621.6 R 2.5("M-C-R" re)151.2
-633.6 R -.15(ve)-.25 G(rt-line).15 E 2.5("M-C-Y" yank-nth-ar)151.2 645.6
-R(g)-.18 E 2.5("M-C-[" complete)151.2 657.6 R 2.5("M-C-]" character)
-151.2 669.6 R(-search-backw)-.2 E(ard)-.1 E 2.5("M-space" set-mark)151.2
-681.6 R 2.5("M-#" insert-comment)151.2 693.6 R 2.5("M-&" tilde-e)151.2
-705.6 R(xpand)-.15 E 2.5("M-*" insert-completions)151.2 717.6 R 2.5
-("M--" digit-ar)151.2 729.6 R(gument)-.18 E(GNU Readline 7.0)72 768 Q
-(2017 December 28)121.245 E(13)185.955 E 0 Cg EP
+(Functions Manual)2.5 E(READLINE\(3\))119.855 E/F1 10/Times-Bold@0 SF
+(dump\255macr)108 84 Q(os)-.18 E F0 .592(Print all of the readline k)144
+96 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 108 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 10/Times-Italic@0 SF(inputr)
+3.027 E(c)-.37 E F0(\214le.)144 120 Q F1
+(emacs\255editing\255mode \(C\255e\))108 132 Q F0(When in)144 144 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 156
+Q F0(When in)144 168 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/F3 10.95/Times-Bold@0 SF(DEF)72 184.8 Q -.548(AU)
+-.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .064(The follo)
+108 196.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
+(M\255<character>, and are referred to as)108 208.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 1.115
+(in the list of emacs standard bindings are bound to the)108 220.8 R F1
+(self\255insert)3.615 E F0 1.116(function, which just inserts the gi)
+3.615 F -.15(ve)-.25 G(n).15 E .945(character into the input line.)108
+232.8 R .945(In vi insertion mode, all characters not speci\214cally me\
+ntioned are bound to)5.945 F F1(self\255insert)108 244.8 Q F0 5.337(.C)C
+.337(haracters assigned to signal generation by)-5.337 F F2(stty)3.177 E
+F0 .338(\(1\) or the terminal dri).32 F -.15(ve)-.25 G 1.138 -.4(r, s)
+.15 H .338(uch as C-Z or C-C,).4 F .188(retain that function.)108 256.8
+R .188(Upper and lo)5.188 F .188(wer case meta\214ed characters are bou\
+nd to the same function in the emacs)-.25 F .304(mode meta k)108 268.8 R
+-.15(ey)-.1 G 2.804(map. The).15 F .305(remaining characters are unboun\
+d, which causes readline to ring the bell \(subject)2.804 F
+(to the setting of the)108 280.8 Q F1(bell\255style)2.5 E F0 -.25(va)2.5
+G(riable\).).25 E F1(Emacs Mode)87 297.6 Q F0(Emacs Standard bindings)
+151.2 309.6 Q 2.5("C-@" set-mark)151.2 333.6 R 2.5("C-A" be)151.2 345.6
+R(ginning-of-line)-.15 E 2.5("C-B" backw)151.2 357.6 R(ard-char)-.1 E
+2.5("C-D" delete-char)151.2 369.6 R 2.5("C-E" end-of-line)151.2 381.6 R
+2.5("C-F" forw)151.2 393.6 R(ard-char)-.1 E 2.5("C-G" abort)151.2 405.6
+R 2.5("C-H" backw)151.2 417.6 R(ard-delete-char)-.1 E 2.5
+("C-I" complete)151.2 429.6 R 2.5("C-J" accept-line)151.2 441.6 R 2.5
+("C-K" kill-line)151.2 453.6 R 2.5("C-L" clear)151.2 465.6 R(-screen)-.2
+E 2.5("C-M" accept-line)151.2 477.6 R 2.5("C-N" ne)151.2 489.6 R
+(xt-history)-.15 E 2.5("C-P" pre)151.2 501.6 R(vious-history)-.25 E 2.5
+("C-Q" quoted-insert)151.2 513.6 R 2.5("C-R" re)151.2 525.6 R -.15(ve)
+-.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 537.6 R
+(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 549.6 R 2.5
+("C-U" unix-line-discard)151.2 561.6 R 2.5("C-V" quoted-insert)151.2
+573.6 R 2.5("C-W" unix-w)151.2 585.6 R(ord-rubout)-.1 E 2.5("C-Y" yank)
+151.2 597.6 R 2.5("C-]" character)151.2 609.6 R(-search)-.2 E 2.5
+("C-_" undo)151.2 621.6 R 3.333("")151.2 633.6 S(to "/")-.833 E
+(self-insert)5 E 2.5("0" to)151.2 645.6 R 2.5("9" self-insert)2.5 F 2.5
+(":" to)151.2 657.6 R 2.5("~" self-insert)2.5 F 2.5("C-?" backw)151.2
+669.6 R(ard-delete-char)-.1 E(Emacs Meta bindings)151.2 686.4 Q 2.5
+("M-C-G" abort)151.2 710.4 R 2.5("M-C-H" backw)151.2 722.4 R(ard-kill-w)
+-.1 E(ord)-.1 E(GNU Readline 8.1)72 768 Q(2020 October 29)125.685 E(13)
+190.395 E 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
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 2.5("M-." yank-last-ar)
-151.2 84 R(g)-.18 E 2.5("M-0" digit-ar)151.2 96 R(gument)-.18 E 2.5
-("M-1" digit-ar)151.2 108 R(gument)-.18 E 2.5("M-2" digit-ar)151.2 120 R
-(gument)-.18 E 2.5("M-3" digit-ar)151.2 132 R(gument)-.18 E 2.5
-("M-4" digit-ar)151.2 144 R(gument)-.18 E 2.5("M-5" digit-ar)151.2 156 R
-(gument)-.18 E 2.5("M-6" digit-ar)151.2 168 R(gument)-.18 E 2.5
-("M-7" digit-ar)151.2 180 R(gument)-.18 E 2.5("M-8" digit-ar)151.2 192 R
-(gument)-.18 E 2.5("M-9" digit-ar)151.2 204 R(gument)-.18 E 2.5
-("M-<" be)151.2 216 R(ginning-of-history)-.15 E 2.5
-("M-=" possible-completions)151.2 228 R 2.5("M->" end-of-history)151.2
-240 R 2.5("M-?" possible-completions)151.2 252 R 2.5("M-B" backw)151.2
-264 R(ard-w)-.1 E(ord)-.1 E 2.5("M-C" capitalize-w)151.2 276 R(ord)-.1 E
-2.5("M-D" kill-w)151.2 288 R(ord)-.1 E 2.5("M-F" forw)151.2 300 R(ard-w)
--.1 E(ord)-.1 E 2.5("M-L" do)151.2 312 R(wncase-w)-.25 E(ord)-.1 E 2.5
-("M-N" non-incremental-forw)151.2 324 R(ard-search-history)-.1 E 2.5
-("M-P" non-incremental-re)151.2 336 R -.15(ve)-.25 G(rse-search-history)
-.15 E 2.5("M-R" re)151.2 348 R -.15(ve)-.25 G(rt-line).15 E 2.5
-("M-T" transpose-w)151.2 360 R(ords)-.1 E 2.5("M-U" upcase-w)151.2 372 R
-(ord)-.1 E 2.5("M-Y" yank-pop)151.2 384 R 2.5
-("M-\\" delete-horizontal-space)151.2 396 R 2.5("M-~" tilde-e)151.2 408
-R(xpand)-.15 E 2.5("M-C-?" backw)151.2 420 R(ard-kill-w)-.1 E(ord)-.1 E
-2.5("M-_" yank-last-ar)151.2 432 R(g)-.18 E(Emacs Control-X bindings)
-151.2 448.8 Q 2.5("C-XC-G" abort)151.2 472.8 R 2.5
-("C-XC-R" re-read-init-\214le)151.2 484.8 R 2.5("C-XC-U" undo)151.2
-496.8 R 2.5("C-XC-X" e)151.2 508.8 R(xchange-point-and-mark)-.15 E 2.5
-("C-X\(" start-kbd-macro)151.2 520.8 R 2.5("C-X\)" end-kbd-macro)151.2
-532.8 R 2.5("C-XE" call-last-kbd-macro)151.2 544.8 R 2.5("C-XC-?" backw)
-151.2 556.8 R(ard-kill-line)-.1 E/F1 10/Times-Bold@0 SF
-(VI Mode bindings)87 585.6 Q F0(VI Insert Mode functions)151.2 597.6 Q
-2.5("C-D" vi-eof-maybe)151.2 621.6 R 2.5("C-H" backw)151.2 633.6 R
-(ard-delete-char)-.1 E 2.5("C-I" complete)151.2 645.6 R 2.5
-("C-J" accept-line)151.2 657.6 R 2.5("C-M" accept-line)151.2 669.6 R 2.5
-("C-R" re)151.2 681.6 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
-("C-S" forw)151.2 693.6 R(ard-search-history)-.1 E 2.5
-("C-T" transpose-chars)151.2 705.6 R 2.5("C-U" unix-line-discard)151.2
-717.6 R 2.5("C-V" quoted-insert)151.2 729.6 R(GNU Readline 7.0)72 768 Q
-(2017 December 28)121.245 E(14)185.955 E 0 Cg EP
+(Functions Manual)2.5 E(READLINE\(3\))119.855 E 2.5("M-C-I" tab-insert)
+151.2 84 R 2.5("M-C-J" vi-editing-mode)151.2 96 R 2.5("M-C-L" clear)
+151.2 108 R(-display)-.2 E 2.5("M-C-M" vi-editing-mode)151.2 120 R 2.5
+("M-C-R" re)151.2 132 R -.15(ve)-.25 G(rt-line).15 E 2.5
+("M-C-Y" yank-nth-ar)151.2 144 R(g)-.18 E 2.5("M-C-[" complete)151.2 156
+R 2.5("M-C-]" character)151.2 168 R(-search-backw)-.2 E(ard)-.1 E 2.5
+("M-space" set-mark)151.2 180 R 2.5("M-#" insert-comment)151.2 192 R 2.5
+("M-&" tilde-e)151.2 204 R(xpand)-.15 E 2.5("M-*" insert-completions)
+151.2 216 R 2.5("M--" digit-ar)151.2 228 R(gument)-.18 E 2.5
+("M-." yank-last-ar)151.2 240 R(g)-.18 E 2.5("M-0" digit-ar)151.2 252 R
+(gument)-.18 E 2.5("M-1" digit-ar)151.2 264 R(gument)-.18 E 2.5
+("M-2" digit-ar)151.2 276 R(gument)-.18 E 2.5("M-3" digit-ar)151.2 288 R
+(gument)-.18 E 2.5("M-4" digit-ar)151.2 300 R(gument)-.18 E 2.5
+("M-5" digit-ar)151.2 312 R(gument)-.18 E 2.5("M-6" digit-ar)151.2 324 R
+(gument)-.18 E 2.5("M-7" digit-ar)151.2 336 R(gument)-.18 E 2.5
+("M-8" digit-ar)151.2 348 R(gument)-.18 E 2.5("M-9" digit-ar)151.2 360 R
+(gument)-.18 E 2.5("M-<" be)151.2 372 R(ginning-of-history)-.15 E 2.5
+("M-=" possible-completions)151.2 384 R 2.5("M->" end-of-history)151.2
+396 R 2.5("M-?" possible-completions)151.2 408 R 2.5("M-B" backw)151.2
+420 R(ard-w)-.1 E(ord)-.1 E 2.5("M-C" capitalize-w)151.2 432 R(ord)-.1 E
+2.5("M-D" kill-w)151.2 444 R(ord)-.1 E 2.5("M-F" forw)151.2 456 R(ard-w)
+-.1 E(ord)-.1 E 2.5("M-L" do)151.2 468 R(wncase-w)-.25 E(ord)-.1 E 2.5
+("M-N" non-incremental-forw)151.2 480 R(ard-search-history)-.1 E 2.5
+("M-P" non-incremental-re)151.2 492 R -.15(ve)-.25 G(rse-search-history)
+.15 E 2.5("M-R" re)151.2 504 R -.15(ve)-.25 G(rt-line).15 E 2.5
+("M-T" transpose-w)151.2 516 R(ords)-.1 E 2.5("M-U" upcase-w)151.2 528 R
+(ord)-.1 E 2.5("M-Y" yank-pop)151.2 540 R 2.5
+("M-\\" delete-horizontal-space)151.2 552 R 2.5("M-~" tilde-e)151.2 564
+R(xpand)-.15 E 2.5("M-C-?" backw)151.2 576 R(ard-kill-w)-.1 E(ord)-.1 E
+2.5("M-_" yank-last-ar)151.2 588 R(g)-.18 E(Emacs Control-X bindings)
+151.2 604.8 Q 2.5("C-XC-G" abort)151.2 628.8 R 2.5
+("C-XC-R" re-read-init-\214le)151.2 640.8 R 2.5("C-XC-U" undo)151.2
+652.8 R 2.5("C-XC-X" e)151.2 664.8 R(xchange-point-and-mark)-.15 E 2.5
+("C-X\(" start-kbd-macro)151.2 676.8 R 2.5("C-X\)" end-kbd-macro)151.2
+688.8 R 2.5("C-XE" call-last-kbd-macro)151.2 700.8 R 2.5("C-XC-?" backw)
+151.2 712.8 R(ard-kill-line)-.1 E(GNU Readline 8.1)72 768 Q
+(2020 October 29)125.685 E(14)190.395 E 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
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 2.5("C-W" unix-w)151.2
-84 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 96 R 2.5("C-[" vi-mo)151.2
-108 R -.15(ve)-.15 G(ment-mode).15 E 2.5("C-_" undo)151.2 120 R 3.333
-("")151.2 132 S(to "~")-.833 E(self-insert)5 E 2.5("C-?" backw)151.2 144
-R(ard-delete-char)-.1 E(VI Command Mode functions)151.2 160.8 Q 2.5
-("C-D" vi-eof-maybe)151.2 184.8 R 2.5("C-E" emacs-editing-mode)151.2
-196.8 R 2.5("C-G" abort)151.2 208.8 R 2.5("C-H" backw)151.2 220.8 R
-(ard-char)-.1 E 2.5("C-J" accept-line)151.2 232.8 R 2.5("C-K" kill-line)
-151.2 244.8 R 2.5("C-L" clear)151.2 256.8 R(-screen)-.2 E 2.5
-("C-M" accept-line)151.2 268.8 R 2.5("C-N" ne)151.2 280.8 R(xt-history)
--.15 E 2.5("C-P" pre)151.2 292.8 R(vious-history)-.25 E 2.5
-("C-Q" quoted-insert)151.2 304.8 R 2.5("C-R" re)151.2 316.8 R -.15(ve)
--.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 328.8 R
-(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 340.8 R 2.5
-("C-U" unix-line-discard)151.2 352.8 R 2.5("C-V" quoted-insert)151.2
-364.8 R 2.5("C-W" unix-w)151.2 376.8 R(ord-rubout)-.1 E 2.5("C-Y" yank)
-151.2 388.8 R 2.5("C-_" vi-undo)151.2 400.8 R -4.166 3.333("" f)151.2
-412.8 T(orw)-3.333 E(ard-char)-.1 E 2.5("#" insert-comment)151.2 424.8 R
-2.5("$" end-of-line)151.2 436.8 R 2.5("%" vi-match)151.2 448.8 R 2.5
-("&" vi-tilde-e)151.2 460.8 R(xpand)-.15 E 2.5("*" vi-complete)151.2
-472.8 R 2.5("+" ne)151.2 484.8 R(xt-history)-.15 E 2.5("," vi-char)151.2
-496.8 R(-search)-.2 E 2.5("-" pre)151.2 508.8 R(vious-history)-.25 E 2.5
-("." vi-redo)151.2 520.8 R 2.5("/" vi-search)151.2 532.8 R 2.5("0" be)
-151.2 544.8 R(ginning-of-line)-.15 E("1" to "9")151.2 556.8 Q(vi-ar)5 E
-(g-digit)-.18 E 2.5(";" vi-char)151.2 568.8 R(-search)-.2 E 2.5
-("=" vi-complete)151.2 580.8 R 2.5("?" vi-search)151.2 592.8 R 2.5
-("A" vi-append-eol)151.2 604.8 R 2.5("B" vi-pre)151.2 616.8 R(v-w)-.25 E
-(ord)-.1 E 2.5("C" vi-change-to)151.2 628.8 R 2.5("D" vi-delete-to)151.2
-640.8 R 2.5("E" vi-end-w)151.2 652.8 R(ord)-.1 E 2.5("F" vi-char)151.2
-664.8 R(-search)-.2 E 2.5("G" vi-fetch-history)151.2 676.8 R 2.5
-("I" vi-insert-be)151.2 688.8 R(g)-.15 E 2.5("N" vi-search-ag)151.2
-700.8 R(ain)-.05 E 2.5("P" vi-put)151.2 712.8 R 2.5("R" vi-replace)151.2
-724.8 R(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(15)185.955
-E 0 Cg EP
+(Functions Manual)2.5 E(READLINE\(3\))119.855 E/F1 10/Times-Bold@0 SF
+(VI Mode bindings)87 84 Q F0(VI Insert Mode functions)151.2 96 Q 2.5
+("C-D" vi-eof-maybe)151.2 120 R 2.5("C-H" backw)151.2 132 R
+(ard-delete-char)-.1 E 2.5("C-I" complete)151.2 144 R 2.5
+("C-J" accept-line)151.2 156 R 2.5("C-M" accept-line)151.2 168 R 2.5
+("C-R" re)151.2 180 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
+("C-S" forw)151.2 192 R(ard-search-history)-.1 E 2.5
+("C-T" transpose-chars)151.2 204 R 2.5("C-U" unix-line-discard)151.2 216
+R 2.5("C-V" quoted-insert)151.2 228 R 2.5("C-W" unix-w)151.2 240 R
+(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 252 R 2.5("C-[" vi-mo)151.2 264 R
+-.15(ve)-.15 G(ment-mode).15 E 2.5("C-_" undo)151.2 276 R 3.333("")151.2
+288 S(to "~")-.833 E(self-insert)5 E 2.5("C-?" backw)151.2 300 R
+(ard-delete-char)-.1 E(VI Command Mode functions)151.2 316.8 Q 2.5
+("C-D" vi-eof-maybe)151.2 340.8 R 2.5("C-E" emacs-editing-mode)151.2
+352.8 R 2.5("C-G" abort)151.2 364.8 R 2.5("C-H" backw)151.2 376.8 R
+(ard-char)-.1 E 2.5("C-J" accept-line)151.2 388.8 R 2.5("C-K" kill-line)
+151.2 400.8 R 2.5("C-L" clear)151.2 412.8 R(-screen)-.2 E 2.5
+("C-M" accept-line)151.2 424.8 R 2.5("C-N" ne)151.2 436.8 R(xt-history)
+-.15 E 2.5("C-P" pre)151.2 448.8 R(vious-history)-.25 E 2.5
+("C-Q" quoted-insert)151.2 460.8 R 2.5("C-R" re)151.2 472.8 R -.15(ve)
+-.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 484.8 R
+(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 496.8 R 2.5
+("C-U" unix-line-discard)151.2 508.8 R 2.5("C-V" quoted-insert)151.2
+520.8 R 2.5("C-W" unix-w)151.2 532.8 R(ord-rubout)-.1 E 2.5("C-Y" yank)
+151.2 544.8 R 2.5("C-_" vi-undo)151.2 556.8 R -4.166 3.333("" f)151.2
+568.8 T(orw)-3.333 E(ard-char)-.1 E 2.5("#" insert-comment)151.2 580.8 R
+2.5("$" end-of-line)151.2 592.8 R 2.5("%" vi-match)151.2 604.8 R 2.5
+("&" vi-tilde-e)151.2 616.8 R(xpand)-.15 E 2.5("*" vi-complete)151.2
+628.8 R 2.5("+" ne)151.2 640.8 R(xt-history)-.15 E 2.5("," vi-char)151.2
+652.8 R(-search)-.2 E 2.5("-" pre)151.2 664.8 R(vious-history)-.25 E 2.5
+("." vi-redo)151.2 676.8 R 2.5("/" vi-search)151.2 688.8 R 2.5("0" be)
+151.2 700.8 R(ginning-of-line)-.15 E("1" to "9")151.2 712.8 Q(vi-ar)5 E
+(g-digit)-.18 E 2.5(";" vi-char)151.2 724.8 R(-search)-.2 E
+(GNU Readline 8.1)72 768 Q(2020 October 29)125.685 E(15)190.395 E 0 Cg
+EP
%%Page: 16 16
%%BeginPageSetup
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 2.5("S" vi-subst)151.2
-84 R 2.5("T" vi-char)151.2 96 R(-search)-.2 E 2.5("U" re)151.2 108 R
--.15(ve)-.25 G(rt-line).15 E 2.5("W" vi-ne)151.2 120 R(xt-w)-.15 E(ord)
--.1 E 2.5("X" backw)151.2 132 R(ard-delete-char)-.1 E 2.5
-("Y" vi-yank-to)151.2 144 R 2.5("\\" vi-complete)151.2 156 R 2.5
-("^" vi-\214rst-print)151.2 168 R 2.5("_" vi-yank-ar)151.2 180 R(g)-.18
-E 2.5("`" vi-goto-mark)151.2 192 R 2.5("a" vi-append-mode)151.2 204 R
-2.5("b" vi-pre)151.2 216 R(v-w)-.25 E(ord)-.1 E 2.5("c" vi-change-to)
-151.2 228 R 2.5("d" vi-delete-to)151.2 240 R 2.5("e" vi-end-w)151.2 252
-R(ord)-.1 E 2.5("f" vi-char)151.2 264 R(-search)-.2 E 2.5("h" backw)
-151.2 276 R(ard-char)-.1 E 2.5("i" vi-insertion-mode)151.2 288 R 2.5
-("j" ne)151.2 300 R(xt-history)-.15 E 2.5("k" pre)151.2 312 R(v-history)
--.25 E 2.5("l" forw)151.2 324 R(ard-char)-.1 E 2.5("m" vi-set-mark)151.2
-336 R 2.5("n" vi-search-ag)151.2 348 R(ain)-.05 E 2.5("p" vi-put)151.2
-360 R 2.5("r" vi-change-char)151.2 372 R 2.5("s" vi-subst)151.2 384 R
-2.5("t" vi-char)151.2 396 R(-search)-.2 E 2.5("u" vi-undo)151.2 408 R
-2.5("w" vi-ne)151.2 420 R(xt-w)-.15 E(ord)-.1 E 2.5("x" vi-delete)151.2
-432 R 2.5("y" vi-yank-to)151.2 444 R 2.5("|" vi-column)151.2 456 R 2.5
-("~" vi-change-case)151.2 468 R/F1 10.95/Times-Bold@0 SF(SEE ALSO)72
-484.8 Q/F2 10/Times-Italic@0 SF(The Gnu Readline Libr)108 496.8 Q(ary)
+(Functions Manual)2.5 E(READLINE\(3\))119.855 E 2.5("=" vi-complete)
+151.2 84 R 2.5("?" vi-search)151.2 96 R 2.5("A" vi-append-eol)151.2 108
+R 2.5("B" vi-pre)151.2 120 R(v-w)-.25 E(ord)-.1 E 2.5("C" vi-change-to)
+151.2 132 R 2.5("D" vi-delete-to)151.2 144 R 2.5("E" vi-end-w)151.2 156
+R(ord)-.1 E 2.5("F" vi-char)151.2 168 R(-search)-.2 E 2.5
+("G" vi-fetch-history)151.2 180 R 2.5("I" vi-insert-be)151.2 192 R(g)
+-.15 E 2.5("N" vi-search-ag)151.2 204 R(ain)-.05 E 2.5("P" vi-put)151.2
+216 R 2.5("R" vi-replace)151.2 228 R 2.5("S" vi-subst)151.2 240 R 2.5
+("T" vi-char)151.2 252 R(-search)-.2 E 2.5("U" re)151.2 264 R -.15(ve)
+-.25 G(rt-line).15 E 2.5("W" vi-ne)151.2 276 R(xt-w)-.15 E(ord)-.1 E 2.5
+("X" backw)151.2 288 R(ard-delete-char)-.1 E 2.5("Y" vi-yank-to)151.2
+300 R 2.5("\\" vi-complete)151.2 312 R 2.5("^" vi-\214rst-print)151.2
+324 R 2.5("_" vi-yank-ar)151.2 336 R(g)-.18 E 2.5("`" vi-goto-mark)151.2
+348 R 2.5("a" vi-append-mode)151.2 360 R 2.5("b" vi-pre)151.2 372 R(v-w)
+-.25 E(ord)-.1 E 2.5("c" vi-change-to)151.2 384 R 2.5("d" vi-delete-to)
+151.2 396 R 2.5("e" vi-end-w)151.2 408 R(ord)-.1 E 2.5("f" vi-char)151.2
+420 R(-search)-.2 E 2.5("h" backw)151.2 432 R(ard-char)-.1 E 2.5
+("i" vi-insertion-mode)151.2 444 R 2.5("j" ne)151.2 456 R(xt-history)
+-.15 E 2.5("k" pre)151.2 468 R(v-history)-.25 E 2.5("l" forw)151.2 480 R
+(ard-char)-.1 E 2.5("m" vi-set-mark)151.2 492 R 2.5("n" vi-search-ag)
+151.2 504 R(ain)-.05 E 2.5("p" vi-put)151.2 516 R 2.5
+("r" vi-change-char)151.2 528 R 2.5("s" vi-subst)151.2 540 R 2.5
+("t" vi-char)151.2 552 R(-search)-.2 E 2.5("u" vi-undo)151.2 564 R 2.5
+("w" vi-ne)151.2 576 R(xt-w)-.15 E(ord)-.1 E 2.5("x" vi-delete)151.2 588
+R 2.5("y" vi-yank-to)151.2 600 R 2.5("|" vi-column)151.2 612 R 2.5
+("~" vi-change-case)151.2 624 R/F1 10.95/Times-Bold@0 SF(SEE ALSO)72
+640.8 Q/F2 10/Times-Italic@0 SF(The Gnu Readline Libr)108 652.8 Q(ary)
-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2
-(The Gnu History Libr)108 508.8 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
-(ox and Chet Rame)-.15 E(y)-.15 E F2(bash)108 520.8 Q F0(\(1\))A F1
-(FILES)72 537.6 Q F2(~/.inputr)109.666 549.6 Q(c)-.37 E F0(Indi)144
-561.6 Q(vidual)-.25 E/F3 10/Times-Bold@0 SF -.18(re)2.5 G(adline).18 E
-F0(initialization \214le)2.5 E F1 -.548(AU)72 578.4 S(THORS).548 E F0
-(Brian F)108 590.4 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E
-(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 .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 .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 .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
-(ug reports concerning this manual page should be directed to)-.2 E F2
--.15(ch)2.5 G(et.r).15 E(ame)-.15 E(y@case)-.3 E(.edu)-.15 E F0(.).25 E
-(GNU Readline 7.0)72 768 Q(2017 December 28)121.245 E(16)185.955 E 0 Cg
-EP
+(The Gnu History Libr)108 664.8 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
+(ox and Chet Rame)-.15 E(y)-.15 E F2(bash)108 676.8 Q F0(\(1\))A F1
+(FILES)72 693.6 Q F2(~/.inputr)109.666 705.6 Q(c)-.37 E F0(Indi)144
+717.6 Q(vidual)-.25 E/F3 10/Times-Bold@0 SF -.18(re)2.5 G(adline).18 E
+F0(initialization \214le)2.5 E(GNU Readline 8.1)72 768 Q
+(2020 October 29)125.685 E(16)190.395 E 0 Cg EP
%%Page: 17 17
%%BeginPageSetup
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/F1 10.95/Times-Bold@0 SF
--.11(BU)72 84 S(GS).11 E F0(It')108 96 Q 2.5(st)-.55 G
-(oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 7.0)72 768 Q
-(2017 December 28)121.245 E(17)185.955 E 0 Cg EP
+-.548(AU)72 84 S(THORS).548 E F0(Brian F)108 96 Q(ox, Free Softw)-.15 E
+(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108 108 Q(g)-.18 E(Chet Rame)
+108 124.8 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 136.8 Q
+(y@case.edu)-.15 E F1 -.11(BU)72 153.6 S 2.738(GR).11 G(EPOR)-2.738 E
+(TS)-.438 E F0 .691(If you \214nd a b)108 165.6 R .691(ug in)-.2 F/F2 10
+/Times-Bold@0 SF -.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
+(and that it appears in the latest v)108 177.6 Q(ersion of the)-.15 E F2
+-.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 194.4 R 1.004 -.15(ve d)-.2 H .704
+(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/F3 10/Times-Italic@0 SF -.2(bu)3.205 G
+(g\255r).2 E(eadline)-.37 E F0(@)A F3(gnu.or)A(g)-.37 E F0 5.705(.I)C
+3.205(fy)-5.705 G(ou)-3.205 E(ha)108 206.4 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
+(mailed to)108 218.4 Q F3 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F3
+(gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F2
+(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 235.2 Q
+(ug reports concerning this manual page should be directed to)-.2 E F3
+-.15(ch)2.5 G(et.r).15 E(ame)-.15 E(y@case)-.3 E(.edu)-.15 E F0(.).25 E
+F1 -.11(BU)72 252 S(GS).11 E F0(It')108 264 Q 2.5(st)-.55 G
+(oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 8.1)72 768 Q
+(2020 October 29)125.685 E(17)190.395 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/rlman.texi b/doc/rlman.texi
index 737f971..ec7487b 100644
--- a/doc/rlman.texi
+++ b/doc/rlman.texi
@@ -13,7 +13,7 @@ This manual describes the GNU Readline Library
consistency of user interface across discrete programs which provide
a command line interface.
-Copyright @copyright{} 1988--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1988--2020 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/rltech.texi b/doc/rltech.texi
index 28a02d9..bbf57c2 100644
--- a/doc/rltech.texi
+++ b/doc/rltech.texi
@@ -7,7 +7,7 @@ This document describes the GNU Readline Library, a utility for aiding
in the consistency of user interface across discrete programs that need
to provide a command line interface.
-Copyright (C) 1988--2016 Free Software Foundation, Inc.
+Copyright (C) 1988--2020 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -1342,6 +1342,29 @@ This differs from @code{clear_history} because it frees private data
Readline saves in the history list.
@end deftypefun
+@deftypefun {void} rl_activate_mark (void)
+Enable an @emph{active} mark.
+When this is enabled, the text between point and mark (the @var{region}) is
+displayed in the terminal's standout mode (a @var{face}).
+This is called by various readline functions that set the mark and insert
+text, and is available for applications to call.
+@end deftypefun
+
+@deftypefun {void} rl_deactivate_mark (void)
+Turn off the active mark.
+@end deftypefun
+
+@deftypefun {void} rl_keep_mark_active (void)
+Indicate that the mark should remain active when the current readline function
+completes and after redisplay occurs.
+In most cases, the mark remains active for only the duration of a single
+bindable readline function.
+@end deftypefun
+
+@deftypefun {int} rl_mark_active_p (void)
+Return a non-zero value if the mark is currently active; zero otherwise.
+@end deftypefun
+
@node Alternate Interface
@subsection Alternate Interface
@@ -1733,8 +1756,8 @@ to determine whether or not there are any pending signals.
If an application does not wish Readline to catch @code{SIGWINCH}, it may
call @code{rl_resize_terminal()} or @code{rl_set_screen_size()} to force
-Readline to update its idea of the terminal size when a @code{SIGWINCH}
-is received.
+Readline to update its idea of the terminal size when it receives
+a @code{SIGWINCH}.
@deftypefun void rl_echo_signal_char (int sig)
If an application wishes to install its own signal handlers, but still
@@ -1751,11 +1774,14 @@ Update Readline's internal screen size by reading values from the kernel.
Set Readline's idea of the terminal size to @var{rows} rows and
@var{cols} columns. If either @var{rows} or @var{columns} is less than
or equal to 0, Readline's idea of that terminal dimension is unchanged.
+This is intended to tell Readline the physical dimensions of the terminal,
+and is used internally to calculate the maximum number of characters that
+may appear on a single line and on the screen.
@end deftypefun
If an application does not want to install a @code{SIGWINCH} handler, but
-is still interested in the screen dimensions, Readline's idea of the screen
-size may be queried.
+is still interested in the screen dimensions, it may query Readline's idea
+of the screen size.
@deftypefun void rl_get_screen_size (int *rows, int *cols)
Return Readline's idea of the terminal's size in the
@@ -2039,7 +2065,7 @@ remove any quote characters from the directory name, because its result will
be passed directly to @code{opendir()}.
The directory rewrite hook returns an integer that should be non-zero if
-the function modfies its directory argument.
+the function modifies its directory argument.
The function should not modify the directory argument if it returns 0.
@end deftypevar
@@ -2051,7 +2077,7 @@ is passed to @code{stat()} to determine the file's type and characteristics.
This function does not need to remove quote characters from the filename.
The stat hook returns an integer that should be non-zero if
-the function modfies its directory argument.
+the function modifies its directory argument.
The function should not modify the directory argument if it returns 0.
@end deftypevar
@@ -2645,7 +2671,7 @@ com_help (arg)
if (!printed)
@{
- printf ("No commands match `%s'. Possibilties are:\n", arg);
+ printf ("No commands match `%s'. Possibilities are:\n", arg);
for (i = 0; commands[i].name; i++)
@{
diff --git a/doc/rluser.texi b/doc/rluser.texi
index a59bd14..26b0ff0 100644
--- a/doc/rluser.texi
+++ b/doc/rluser.texi
@@ -9,7 +9,7 @@ use these features. There is a document entitled "readline.texinfo"
which contains both end-user and programmer documentation for the
GNU Readline Library.
-Copyright (C) 1988--2016 Free Software Foundation, Inc.
+Copyright (C) 1988--2020 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
@@ -350,6 +350,11 @@ file is taken from the value of the environment variable @env{INPUTRC}. If
that variable is unset, the default is @file{~/.inputrc}. If that
file does not exist or cannot be read, the ultimate default is
@file{/etc/inputrc}.
+@ifset BashFeatures
+The @w{@code{bind}} builtin command can also be used to set Readline
+keybindings and variables.
+@xref{Bash Builtins}.
+@end ifset
When a program which uses the Readline library starts up, the
init file is read, and the key bindings are set.
@@ -488,9 +493,9 @@ replaced with an ellipsis when displaying possible completions.
@vindex completion-query-items
The number of possible completions that determines when the user is
asked whether the list of possibilities should be displayed.
-If the number of possible completions is greater than this value,
-Readline will ask the user whether or not he wishes to view
-them; otherwise, they are simply listed.
+If the number of possible completions is greater than or equal to this value,
+Readline will ask whether or not the user wishes to view them;
+otherwise, they are simply listed.
This variable must be set to an integer value greater than or equal to 0.
A negative value means Readline should never ask.
The default limit is @code{100}.
@@ -541,7 +546,7 @@ When set to @samp{On}, Readline will configure the terminal in a way
that will enable it to insert each paste into the editing buffer as a
single string of characters, instead of treating each character as if
it had been read from the keyboard. This can prevent pasted characters
-from being interpreted as editing commands. The default is @samp{off}.
+from being interpreted as editing commands. The default is @samp{On}.
@item enable-keypad
@vindex enable-keypad
@@ -583,8 +588,9 @@ the maximum number of history entries will be set to 500.
This variable can be set to either @samp{on} or @samp{off}. Setting it
to @samp{on} means that the text of the lines being edited will scroll
horizontally on a single screen line when they are longer than the width
-of the screen, instead of wrapping onto a new screen line. By default,
-this variable is set to @samp{off}.
+of the screen, instead of wrapping onto a new screen line.
+This variable is automatically set to @samp{on} for terminals of height 1.
+By default, this variable is set to @samp{off}.
@item input-meta
@vindex input-meta
@@ -1109,8 +1115,8 @@ set convert-meta off
# rather than as meta-prefixed characters
set output-meta on
-# if there are more than 150 possible completions for
-# a word, ask the user if he wants to see all of them
+# if there are 150 or more possible completions for a word,
+# ask whether or not the user wants to see all of them
set completion-query-items 150
# For FTP
@@ -1173,11 +1179,11 @@ Move back to the start of the current or previous word.
Words are composed of letters and digits.
@ifset BashFeatures
-@item shell-forward-word ()
+@item shell-forward-word (M-C-f)
Move forward to the end of the next word.
Words are delimited by non-quoted shell metacharacters.
-@item shell-backward-word ()
+@item shell-backward-word (M-C-b)
Move back to the start of the current or previous word.
Words are delimited by non-quoted shell metacharacters.
@end ifset
@@ -1195,8 +1201,14 @@ Readline line does not take up more than one physical line or if the length
of the current Readline line is not greater than the length of the prompt
plus the screen width.
+@item clear-display (M-C-l)
+Clear the screen and, if possible, the terminal's scrollback buffer,
+then redraw the current line,
+leaving the current line at the top of the screen.
+
@item clear-screen (C-l)
-Clear the screen and redraw the current line,
+Clear the screen,
+then redraw the current line,
leaving the current line at the top of the screen.
@item redraw-current-line ()
@@ -1242,10 +1254,12 @@ being entered.
@item reverse-search-history (C-r)
Search backward starting at the current line and moving `up' through
the history as necessary. This is an incremental search.
+This command sets the region to the matched text and activates the mark.
@item forward-search-history (C-s)
Search forward starting at the current line and moving `down' through
the history as necessary. This is an incremental search.
+This command sets the region to the matched text and activates the mark.
@item non-incremental-reverse-search-history (M-p)
Search backward starting at the current line and moving `up'
@@ -1310,6 +1324,14 @@ the direction through the history (back or forward).
The history expansion facilities are used to extract the last argument,
as if the @samp{!$} history expansion had been specified.
+@item operate-and-get-next (C-o)
+Accept the current line for return to the calling application as if a
+newline had been entered,
+and fetch the next line relative to the current line from the history
+for editing.
+A numeric argument, if supplied, specifies the history entry to use instead
+of the current line.
+
@end ftable
@node Commands For Text
@@ -1357,6 +1379,11 @@ 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
executing any editing commands.
+Bracketed paste sets the region (the characters between point and the mark)
+to the inserted text. It uses the concept of an @emph{active mark}: when the
+mark is active, Readline redisplay uses the terminal's standout mode to
+denote the region.
+
@item transpose-chars (C-t)
Drag the character before the cursor forward over
the character at the cursor, moving the
@@ -1406,9 +1433,13 @@ By default, this command is unbound.
@item kill-line (C-k)
Kill the text from point to the end of the line.
+With a negative numeric argument, kill backward from the cursor to the
+beginning of the current line.
@item backward-kill-line (C-x Rubout)
Kill backward from the cursor to the beginning of the current line.
+With a negative numeric argument, kill forward from the cursor to the
+end of the current line.
@item unix-line-discard (C-u)
Kill backward from the cursor to the beginning of the current line.
@@ -1427,7 +1458,7 @@ Kill the word behind point.
Word boundaries are the same as @code{backward-word}.
@ifset BashFeatures
-@item shell-kill-word ()
+@item shell-kill-word (M-C-d)
Kill from point to the end of the current word, or if between
words, to the end of the next word.
Word boundaries are the same as @code{shell-forward-word}.
@@ -1437,6 +1468,14 @@ Kill the word behind point.
Word boundaries are the same as @code{shell-backward-word}.
@end ifset
+@item shell-transpose-words (M-C-t)
+Drag the word before point past the word after point,
+moving point past that word as well.
+If the insertion point is at the end of the line, this transposes
+the last two words on the line.
+Word boundaries are the same as @code{shell-forward-word} and
+@code{shell-backward-word}.
+
@item unix-word-rubout (C-w)
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
@@ -1774,12 +1813,6 @@ Perform history and alias expansion on the current line.
@item insert-last-argument (M-. or M-_)
A synonym for @code{yank-last-arg}.
-@item operate-and-get-next (C-o)
-Accept the current line for execution and fetch the next line
-relative to the current line from the history for editing.
-A numeric argument, if supplied, specifies the history entry to use instead
-of the current line.
-
@item edit-and-execute-command (C-x C-e)
Invoke an editor on the current command line, and execute the result as shell
commands.
@@ -2044,7 +2077,7 @@ The @option{-E} option indicates that other supplied options and actions should
apply to ``empty'' command completion; that is, completion attempted on a
blank line.
The @option{-I} option indicates that other supplied options and actions should
-apply to completion on the inital non-assignment word on the line, or after a
+apply to completion on the initial non-assignment word on the line, or after a
command delimiter such as @samp{;} or @samp{|}, which is usually command
name completion.
If multiple options are supplied, the @option{-D} option takes precedence
@@ -2255,7 +2288,7 @@ The @option{-E} option indicates that other supplied options should
apply to ``empty'' command completion; that is, completion attempted on a
blank line.
The @option{-I} option indicates that other supplied options should
-apply to completion on the inital non-assignment word on the line, or after a
+apply to completion on the initial non-assignment word on the line, or after a
command delimiter such as @samp{;} or @samp{|}, which is usually command
name completion.
@@ -2370,7 +2403,7 @@ character to the directory name, in case we want to append to it.
The @option{-o bashdefault} option brings in the rest of the "Bash default"
completions -- possible completion that Bash adds to the default Readline
set. These include things like command name completion, variable completion
-for words beginning with @samp{@{}, completions containing pathname
+for words beginning with @samp{$} or @samp{$@{}, completions containing pathname
expansion patterns (@pxref{Filename Expansion}), and so on.
Once installed using @code{complete}, @code{_comp_cd} will be called every
@@ -2380,7 +2413,7 @@ Many more examples -- an extensive collection of completions for most of
the common GNU, Unix, and Linux commands -- are available as part of the
bash_completion project. This is installed by default on many GNU/Linux
distributions. Originally written by Ian Macdonald, the project now lives
-at @url{http://bash-completion.alioth.debian.org/}. There are ports for
+at @url{https://github.com/scop/bash-completion/}. There are ports for
other systems such as Solaris and Mac OS X.
An older version of the bash_completion package is distributed with bash
diff --git a/doc/rluserman.dvi b/doc/rluserman.dvi
index a985ac1..4c0b142 100644
--- a/doc/rluserman.dvi
+++ b/doc/rluserman.dvi
Binary files differ
diff --git a/doc/rluserman.html b/doc/rluserman.html
index 8600cb9..ab522ac 100644
--- a/doc/rluserman.html
+++ b/doc/rluserman.html
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on December, 18 2018 by texi2html 1.64 -->
+<!-- Created on October, 30 2020 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -662,9 +662,9 @@ replaced with an ellipsis when displaying possible completions.
<DD><A NAME="IDX15"></A>
The number of possible completions that determines when the user is
asked whether the list of possibilities should be displayed.
-If the number of possible completions is greater than this value,
-Readline will ask the user whether or not he wishes to view
-them; otherwise, they are simply listed.
+If the number of possible completions is greater than or equal to this value,
+Readline will ask whether or not the user wishes to view them;
+otherwise, they are simply listed.
This variable must be set to an integer value greater than or equal to 0.
A negative value means Readline should never ask.
The default limit is <CODE>100</CODE>.
@@ -721,7 +721,7 @@ When set to <SAMP>`On'</SAMP>, Readline will configure the terminal in a way
that will enable it to insert each paste into the editing buffer as a
single string of characters, instead of treating each character as if
it had been read from the keyboard. This can prevent pasted characters
-from being interpreted as editing commands. The default is <SAMP>`off'</SAMP>.
+from being interpreted as editing commands. The default is <SAMP>`On'</SAMP>.
<P>
<DT><CODE>enable-keypad</CODE>
@@ -769,8 +769,9 @@ the maximum number of history entries will be set to 500.
This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>. Setting it
to <SAMP>`on'</SAMP> means that the text of the lines being edited will scroll
horizontally on a single screen line when they are longer than the width
-of the screen, instead of wrapping onto a new screen line. By default,
-this variable is set to <SAMP>`off'</SAMP>.
+of the screen, instead of wrapping onto a new screen line.
+This variable is automatically set to <SAMP>`on'</SAMP> for terminals of height 1.
+By default, this variable is set to <SAMP>`off'</SAMP>.
<P>
<DT><CODE>input-meta</CODE>
@@ -1352,8 +1353,8 @@ set convert-meta off
# rather than as meta-prefixed characters
set output-meta on
-# if there are more than 150 possible completions for
-# a word, ask the user if he wants to see all of them
+# if there are 150 or more possible completions for a word,
+# ask whether or not the user wants to see all of them
set completion-query-items 150
# For FTP
@@ -1480,15 +1481,24 @@ plus the screen width.
<P>
<A NAME="IDX61"></A>
-<DT><CODE>clear-screen (C-l)</CODE>
+<DT><CODE>clear-display (M-C-l)</CODE>
<DD><A NAME="IDX62"></A>
-Clear the screen and redraw the current line,
+Clear the screen and, if possible, the terminal's scrollback buffer,
+then redraw the current line,
leaving the current line at the top of the screen.
<P>
<A NAME="IDX63"></A>
-<DT><CODE>redraw-current-line ()</CODE>
+<DT><CODE>clear-screen (C-l)</CODE>
<DD><A NAME="IDX64"></A>
+Clear the screen,
+then redraw the current line,
+leaving the current line at the top of the screen.
+<P>
+
+<A NAME="IDX65"></A>
+<DT><CODE>redraw-current-line ()</CODE>
+<DD><A NAME="IDX66"></A>
Refresh the current line. By default, this is unbound.
<P>
@@ -1514,9 +1524,9 @@ Refresh the current line. By default, this is unbound.
<P>
<DL COMPACT>
-<A NAME="IDX65"></A>
+<A NAME="IDX67"></A>
<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX66"></A>
+<DD><A NAME="IDX68"></A>
Accept the line regardless of where the cursor is.
If this line is
non-empty, it may be added to the history list for future recall with
@@ -1525,66 +1535,68 @@ If this line is a modified history line, the history line is restored
to its original state.
<P>
-<A NAME="IDX67"></A>
+<A NAME="IDX69"></A>
<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX68"></A>
+<DD><A NAME="IDX70"></A>
Move `back' through the history list, fetching the previous command.
<P>
-<A NAME="IDX69"></A>
+<A NAME="IDX71"></A>
<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX70"></A>
+<DD><A NAME="IDX72"></A>
Move `forward' through the history list, fetching the next command.
<P>
-<A NAME="IDX71"></A>
+<A NAME="IDX73"></A>
<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX72"></A>
+<DD><A NAME="IDX74"></A>
Move to the first line in the history.
<P>
-<A NAME="IDX73"></A>
+<A NAME="IDX75"></A>
<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX74"></A>
+<DD><A NAME="IDX76"></A>
Move to the end of the input history, i.e., the line currently
being entered.
<P>
-<A NAME="IDX75"></A>
+<A NAME="IDX77"></A>
<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX76"></A>
+<DD><A NAME="IDX78"></A>
Search backward starting at the current line and moving `up' through
the history as necessary. This is an incremental search.
+This command sets the region to the matched text and activates the mark.
<P>
-<A NAME="IDX77"></A>
+<A NAME="IDX79"></A>
<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX78"></A>
+<DD><A NAME="IDX80"></A>
Search forward starting at the current line and moving `down' through
the history as necessary. This is an incremental search.
+This command sets the region to the matched text and activates the mark.
<P>
-<A NAME="IDX79"></A>
+<A NAME="IDX81"></A>
<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX80"></A>
+<DD><A NAME="IDX82"></A>
Search backward starting at the current line and moving `up'
through the history as necessary using a non-incremental search
for a string supplied by the user.
The search string may match anywhere in a history line.
<P>
-<A NAME="IDX81"></A>
+<A NAME="IDX83"></A>
<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX82"></A>
+<DD><A NAME="IDX84"></A>
Search forward starting at the current line and moving `down'
through the history as necessary using a non-incremental search
for a string supplied by the user.
The search string may match anywhere in a history line.
<P>
-<A NAME="IDX83"></A>
+<A NAME="IDX85"></A>
<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX84"></A>
+<DD><A NAME="IDX86"></A>
Search forward through the history for the string of characters
between the start of the current line and the point.
The search string must match at the beginning of a history line.
@@ -1592,9 +1604,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX85"></A>
+<A NAME="IDX87"></A>
<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX86"></A>
+<DD><A NAME="IDX88"></A>
Search backward through the history for the string of characters
between the start of the current line and the point.
The search string must match at the beginning of a history line.
@@ -1602,9 +1614,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX87"></A>
+<A NAME="IDX89"></A>
<DT><CODE>history-substring-search-forward ()</CODE>
-<DD><A NAME="IDX88"></A>
+<DD><A NAME="IDX90"></A>
Search forward through the history for the string of characters
between the start of the current line and the point.
The search string may match anywhere in a history line.
@@ -1612,9 +1624,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX89"></A>
+<A NAME="IDX91"></A>
<DT><CODE>history-substring-search-backward ()</CODE>
-<DD><A NAME="IDX90"></A>
+<DD><A NAME="IDX92"></A>
Search backward through the history for the string of characters
between the start of the current line and the point.
The search string may match anywhere in a history line.
@@ -1622,9 +1634,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX91"></A>
+<A NAME="IDX93"></A>
<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX92"></A>
+<DD><A NAME="IDX94"></A>
Insert the first argument to the previous command (usually
the second word on the previous line) at point.
With an argument <VAR>n</VAR>,
@@ -1635,9 +1647,9 @@ Once the argument <VAR>n</VAR> is computed, the argument is extracted
as if the <SAMP>`!<VAR>n</VAR>'</SAMP> history expansion had been specified.
<P>
-<A NAME="IDX93"></A>
+<A NAME="IDX95"></A>
<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX94"></A>
+<DD><A NAME="IDX96"></A>
Insert last argument to the previous command (the last word of the
previous history entry).
With a numeric argument, behave exactly like <CODE>yank-nth-arg</CODE>.
@@ -1651,6 +1663,17 @@ The history expansion facilities are used to extract the last argument,
as if the <SAMP>`!$'</SAMP> history expansion had been specified.
<P>
+<A NAME="IDX97"></A>
+<DT><CODE>operate-and-get-next (C-o)</CODE>
+<DD><A NAME="IDX98"></A>
+Accept the current line for return to the calling application as if a
+newline had been entered,
+and fetch the next line relative to the current line from the history
+for editing.
+A numeric argument, if supplied, specifies the history entry to use instead
+of the current line.
+<P>
+
</DL>
<P>
@@ -1674,60 +1697,60 @@ as if the <SAMP>`!$'</SAMP> history expansion had been specified.
<DL COMPACT>
-<A NAME="IDX95"></A>
+<A NAME="IDX99"></A>
<DT><CODE><I>end-of-file</I> (usually C-d)</CODE>
-<DD><A NAME="IDX96"></A>
+<DD><A NAME="IDX100"></A>
The character indicating end-of-file as set, for example, by
<CODE>stty</CODE>. If this character is read when there are no characters
on the line, and point is at the beginning of the line, Readline
interprets it as the end of input and returns EOF.
<P>
-<A NAME="IDX97"></A>
+<A NAME="IDX101"></A>
<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX98"></A>
+<DD><A NAME="IDX102"></A>
Delete the character at point. If this function is bound to the
same character as the tty EOF character, as <KBD>C-d</KBD>
commonly is, see above for the effects.
<P>
-<A NAME="IDX99"></A>
+<A NAME="IDX103"></A>
<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX100"></A>
+<DD><A NAME="IDX104"></A>
Delete the character behind the cursor. A numeric argument means
to kill the characters instead of deleting them.
<P>
-<A NAME="IDX101"></A>
+<A NAME="IDX105"></A>
<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX102"></A>
+<DD><A NAME="IDX106"></A>
Delete the character under the cursor, unless the cursor is at the
end of the line, in which case the character behind the cursor is
deleted. By default, this is not bound to a key.
<P>
-<A NAME="IDX103"></A>
+<A NAME="IDX107"></A>
<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX104"></A>
+<DD><A NAME="IDX108"></A>
Add the next character typed to the line verbatim. This is
how to insert key sequences like <KBD>C-q</KBD>, for example.
<P>
-<A NAME="IDX105"></A>
+<A NAME="IDX109"></A>
<DT><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX106"></A>
+<DD><A NAME="IDX110"></A>
Insert a tab character.
<P>
-<A NAME="IDX107"></A>
+<A NAME="IDX111"></A>
<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX108"></A>
+<DD><A NAME="IDX112"></A>
Insert yourself.
<P>
-<A NAME="IDX109"></A>
+<A NAME="IDX113"></A>
<DT><CODE>bracketed-paste-begin ()</CODE>
-<DD><A NAME="IDX110"></A>
+<DD><A NAME="IDX114"></A>
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
@@ -1736,9 +1759,15 @@ are inserted as if each one was bound to <CODE>self-insert</CODE> instead of
executing any editing commands.
<P>
-<A NAME="IDX111"></A>
+Bracketed paste sets the region (the characters between point and the mark)
+to the inserted text. It uses the concept of an <EM>active mark</EM>: when the
+mark is active, Readline redisplay uses the terminal's standout mode to
+denote the region.
+</P><P>
+
+<A NAME="IDX115"></A>
<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX112"></A>
+<DD><A NAME="IDX116"></A>
Drag the character before the cursor forward over
the character at the cursor, moving the
cursor forward as well. If the insertion point
@@ -1747,39 +1776,39 @@ transposes the last two characters of the line.
Negative arguments have no effect.
<P>
-<A NAME="IDX113"></A>
+<A NAME="IDX117"></A>
<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX114"></A>
+<DD><A NAME="IDX118"></A>
Drag the word before point past the word after point,
moving point past that word as well.
If the insertion point is at the end of the line, this transposes
the last two words on the line.
<P>
-<A NAME="IDX115"></A>
+<A NAME="IDX119"></A>
<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX116"></A>
+<DD><A NAME="IDX120"></A>
Uppercase the current (or following) word. With a negative argument,
uppercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX117"></A>
+<A NAME="IDX121"></A>
<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX118"></A>
+<DD><A NAME="IDX122"></A>
Lowercase the current (or following) word. With a negative argument,
lowercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX119"></A>
+<A NAME="IDX123"></A>
<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX120"></A>
+<DD><A NAME="IDX124"></A>
Capitalize the current (or following) word. With a negative argument,
capitalize the previous word, but do not move the cursor.
<P>
-<A NAME="IDX121"></A>
+<A NAME="IDX125"></A>
<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX122"></A>
+<DD><A NAME="IDX126"></A>
Toggle overwrite mode. With an explicit positive numeric argument,
switches to overwrite mode. With an explicit non-positive numeric
argument, switches to insert mode. This command affects only
@@ -1819,106 +1848,121 @@ By default, this command is unbound.
<DL COMPACT>
-<A NAME="IDX123"></A>
+<A NAME="IDX127"></A>
<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX124"></A>
+<DD><A NAME="IDX128"></A>
Kill the text from point to the end of the line.
+With a negative numeric argument, kill backward from the cursor to the
+beginning of the current line.
<P>
-<A NAME="IDX125"></A>
+<A NAME="IDX129"></A>
<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX126"></A>
+<DD><A NAME="IDX130"></A>
Kill backward from the cursor to the beginning of the current line.
+With a negative numeric argument, kill forward from the cursor to the
+end of the current line.
<P>
-<A NAME="IDX127"></A>
+<A NAME="IDX131"></A>
<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX128"></A>
+<DD><A NAME="IDX132"></A>
Kill backward from the cursor to the beginning of the current line.
<P>
-<A NAME="IDX129"></A>
+<A NAME="IDX133"></A>
<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX130"></A>
+<DD><A NAME="IDX134"></A>
Kill all characters on the current line, no matter where point is.
By default, this is unbound.
<P>
-<A NAME="IDX131"></A>
+<A NAME="IDX135"></A>
<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX132"></A>
+<DD><A NAME="IDX136"></A>
Kill from point to the end of the current word, or if between
words, to the end of the next word.
Word boundaries are the same as <CODE>forward-word</CODE>.
<P>
-<A NAME="IDX133"></A>
+<A NAME="IDX137"></A>
<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX134"></A>
+<DD><A NAME="IDX138"></A>
Kill the word behind point.
Word boundaries are the same as <CODE>backward-word</CODE>.
<P>
-<A NAME="IDX135"></A>
+<A NAME="IDX139"></A>
+<DT><CODE>shell-transpose-words (M-C-t)</CODE>
+<DD><A NAME="IDX140"></A>
+Drag the word before point past the word after point,
+moving point past that word as well.
+If the insertion point is at the end of the line, this transposes
+the last two words on the line.
+Word boundaries are the same as <CODE>shell-forward-word</CODE> and
+<CODE>shell-backward-word</CODE>.
+<P>
+
+<A NAME="IDX141"></A>
<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX136"></A>
+<DD><A NAME="IDX142"></A>
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
<P>
-<A NAME="IDX137"></A>
+<A NAME="IDX143"></A>
<DT><CODE>unix-filename-rubout ()</CODE>
-<DD><A NAME="IDX138"></A>
+<DD><A NAME="IDX144"></A>
Kill the word behind point, using white space and the slash character
as the word boundaries.
The killed text is saved on the kill-ring.
<P>
-<A NAME="IDX139"></A>
+<A NAME="IDX145"></A>
<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX140"></A>
+<DD><A NAME="IDX146"></A>
Delete all spaces and tabs around point. By default, this is unbound.
<P>
-<A NAME="IDX141"></A>
+<A NAME="IDX147"></A>
<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX142"></A>
+<DD><A NAME="IDX148"></A>
Kill the text in the current region.
By default, this command is unbound.
<P>
-<A NAME="IDX143"></A>
+<A NAME="IDX149"></A>
<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX144"></A>
+<DD><A NAME="IDX150"></A>
Copy the text in the region to the kill buffer, so it can be yanked
right away. By default, this command is unbound.
<P>
-<A NAME="IDX145"></A>
+<A NAME="IDX151"></A>
<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX146"></A>
+<DD><A NAME="IDX152"></A>
Copy the word before point to the kill buffer.
The word boundaries are the same as <CODE>backward-word</CODE>.
By default, this command is unbound.
<P>
-<A NAME="IDX147"></A>
+<A NAME="IDX153"></A>
<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX148"></A>
+<DD><A NAME="IDX154"></A>
Copy the word following point to the kill buffer.
The word boundaries are the same as <CODE>forward-word</CODE>.
By default, this command is unbound.
<P>
-<A NAME="IDX149"></A>
+<A NAME="IDX155"></A>
<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX150"></A>
+<DD><A NAME="IDX156"></A>
Yank the top of the kill ring into the buffer at point.
<P>
-<A NAME="IDX151"></A>
+<A NAME="IDX157"></A>
<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX152"></A>
+<DD><A NAME="IDX158"></A>
Rotate the kill-ring, and yank the new top. You can only do this if
the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
</DL>
@@ -1942,16 +1986,16 @@ the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
<!--docid::SEC18::-->
<DL COMPACT>
-<A NAME="IDX153"></A>
+<A NAME="IDX159"></A>
<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX154"></A>
+<DD><A NAME="IDX160"></A>
Add this digit to the argument already accumulating, or start a new
argument. <KBD>M--</KBD> starts a negative argument.
<P>
-<A NAME="IDX155"></A>
+<A NAME="IDX161"></A>
<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX156"></A>
+<DD><A NAME="IDX162"></A>
This is another way to specify an argument.
If this command is followed by one or more digits, optionally with a
leading minus sign, those digits define the argument.
@@ -1986,33 +2030,33 @@ By default, this is not bound to a key.
<P>
<DL COMPACT>
-<A NAME="IDX157"></A>
+<A NAME="IDX163"></A>
<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX158"></A>
+<DD><A NAME="IDX164"></A>
Attempt to perform completion on the text before point.
The actual completion performed is application-specific.
The default is filename completion.
<P>
-<A NAME="IDX159"></A>
+<A NAME="IDX165"></A>
<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX160"></A>
+<DD><A NAME="IDX166"></A>
List the possible completions of the text before point.
When displaying completions, Readline sets the number of columns used
for display to the value of <CODE>completion-display-width</CODE>, the value of
the environment variable <CODE>COLUMNS</CODE>, or the screen width, in that order.
<P>
-<A NAME="IDX161"></A>
+<A NAME="IDX167"></A>
<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX162"></A>
+<DD><A NAME="IDX168"></A>
Insert all completions of the text before point that would have
been generated by <CODE>possible-completions</CODE>.
<P>
-<A NAME="IDX163"></A>
+<A NAME="IDX169"></A>
<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX164"></A>
+<DD><A NAME="IDX170"></A>
Similar to <CODE>complete</CODE>, but replaces the word to be completed
with a single match from the list of possible completions.
Repeated execution of <CODE>menu-complete</CODE> steps through the list
@@ -2027,17 +2071,17 @@ This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
by default.
<P>
-<A NAME="IDX165"></A>
+<A NAME="IDX171"></A>
<DT><CODE>menu-complete-backward ()</CODE>
-<DD><A NAME="IDX166"></A>
+<DD><A NAME="IDX172"></A>
Identical to <CODE>menu-complete</CODE>, but moves backward through the list
of possible completions, as if <CODE>menu-complete</CODE> had been given a
negative argument.
<P>
-<A NAME="IDX167"></A>
+<A NAME="IDX173"></A>
<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX168"></A>
+<DD><A NAME="IDX174"></A>
Deletes the character under the cursor if not at the beginning or
end of the line (like <CODE>delete-char</CODE>).
If at the end of the line, behaves identically to
@@ -2066,29 +2110,29 @@ This command is unbound by default.
<!--docid::SEC20::-->
<DL COMPACT>
-<A NAME="IDX169"></A>
+<A NAME="IDX175"></A>
<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX170"></A>
+<DD><A NAME="IDX176"></A>
Begin saving the characters typed into the current keyboard macro.
<P>
-<A NAME="IDX171"></A>
+<A NAME="IDX177"></A>
<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX172"></A>
+<DD><A NAME="IDX178"></A>
Stop saving the characters typed into the current keyboard macro
and save the definition.
<P>
-<A NAME="IDX173"></A>
+<A NAME="IDX179"></A>
<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX174"></A>
+<DD><A NAME="IDX180"></A>
Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
<P>
-<A NAME="IDX175"></A>
+<A NAME="IDX181"></A>
<DT><CODE>print-last-kbd-macro ()</CODE>
-<DD><A NAME="IDX176"></A>
+<DD><A NAME="IDX182"></A>
Print the last keboard macro defined in a format suitable for the
<VAR>inputrc</VAR> file.
<P>
@@ -2114,88 +2158,88 @@ Print the last keboard macro defined in a format suitable for the
<!--docid::SEC21::-->
<DL COMPACT>
-<A NAME="IDX177"></A>
+<A NAME="IDX183"></A>
<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX178"></A>
+<DD><A NAME="IDX184"></A>
Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
any bindings or variable assignments found there.
<P>
-<A NAME="IDX179"></A>
+<A NAME="IDX185"></A>
<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX180"></A>
+<DD><A NAME="IDX186"></A>
Abort the current editing command and
ring the terminal's bell (subject to the setting of
<CODE>bell-style</CODE>).
<P>
-<A NAME="IDX181"></A>
+<A NAME="IDX187"></A>
<DT><CODE>do-lowercase-version (M-A, M-B, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX182"></A>
+<DD><A NAME="IDX188"></A>
If the metafied character <VAR>x</VAR> is upper case, run the command
that is bound to the corresponding metafied lower case character.
The behavior is undefined if <VAR>x</VAR> is already lower case.
<P>
-<A NAME="IDX183"></A>
+<A NAME="IDX189"></A>
<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX184"></A>
+<DD><A NAME="IDX190"></A>
Metafy the next character typed. This is for keyboards
without a meta key. Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
<KBD>M-f</KBD>.
<P>
-<A NAME="IDX185"></A>
+<A NAME="IDX191"></A>
<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX186"></A>
+<DD><A NAME="IDX192"></A>
Incremental undo, separately remembered for each line.
<P>
-<A NAME="IDX187"></A>
+<A NAME="IDX193"></A>
<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX188"></A>
+<DD><A NAME="IDX194"></A>
Undo all changes made to this line. This is like executing the <CODE>undo</CODE>
command enough times to get back to the beginning.
<P>
-<A NAME="IDX189"></A>
+<A NAME="IDX195"></A>
<DT><CODE>tilde-expand (M-~)</CODE>
-<DD><A NAME="IDX190"></A>
+<DD><A NAME="IDX196"></A>
Perform tilde expansion on the current word.
<P>
-<A NAME="IDX191"></A>
+<A NAME="IDX197"></A>
<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX192"></A>
+<DD><A NAME="IDX198"></A>
Set the mark to the point. If a
numeric argument is supplied, the mark is set to that position.
<P>
-<A NAME="IDX193"></A>
+<A NAME="IDX199"></A>
<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX194"></A>
+<DD><A NAME="IDX200"></A>
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.
<P>
-<A NAME="IDX195"></A>
+<A NAME="IDX201"></A>
<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX196"></A>
+<DD><A NAME="IDX202"></A>
A character is read and point is moved to the next occurrence of that
character. A negative count searches for previous occurrences.
<P>
-<A NAME="IDX197"></A>
+<A NAME="IDX203"></A>
<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX198"></A>
+<DD><A NAME="IDX204"></A>
A character is read and point is moved to the previous occurrence
of that character. A negative count searches for subsequent
occurrences.
<P>
-<A NAME="IDX199"></A>
+<A NAME="IDX205"></A>
<DT><CODE>skip-csi-sequence ()</CODE>
-<DD><A NAME="IDX200"></A>
+<DD><A NAME="IDX206"></A>
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
@@ -2205,9 +2249,9 @@ stray characters into the editing buffer. This is unbound by default,
but usually bound to ESC-[.
<P>
-<A NAME="IDX201"></A>
+<A NAME="IDX207"></A>
<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX202"></A>
+<DD><A NAME="IDX208"></A>
Without a numeric argument, the value of the <CODE>comment-begin</CODE>
variable is inserted at the beginning of the current line.
If a numeric argument is supplied, this command acts as a toggle: if
@@ -2218,43 +2262,43 @@ the line.
In either case, the line is accepted as if a newline had been typed.
<P>
-<A NAME="IDX203"></A>
+<A NAME="IDX209"></A>
<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX204"></A>
+<DD><A NAME="IDX210"></A>
Print all of the functions and their key bindings 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 <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX205"></A>
+<A NAME="IDX211"></A>
<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX206"></A>
+<DD><A NAME="IDX212"></A>
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 <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX207"></A>
+<A NAME="IDX213"></A>
<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX208"></A>
+<DD><A NAME="IDX214"></A>
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 <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX209"></A>
+<A NAME="IDX215"></A>
<DT><CODE>emacs-editing-mode (C-e)</CODE>
-<DD><A NAME="IDX210"></A>
+<DD><A NAME="IDX216"></A>
When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
editing mode.
<P>
-<A NAME="IDX211"></A>
+<A NAME="IDX217"></A>
<DT><CODE>vi-editing-mode (M-C-j)</CODE>
-<DD><A NAME="IDX212"></A>
+<DD><A NAME="IDX218"></A>
When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
editing mode.
<P>
@@ -2981,7 +3025,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>chet</I> on <I>December, 18 2018</I>
+This document was generated by <I>Chet Ramey</I> on <I>October, 30 2020</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -3143,7 +3187,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>chet</I> on <I>December, 18 2018</I>
+by <I>Chet Ramey</I> on <I>October, 30 2020</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
diff --git a/doc/rluserman.info b/doc/rluserman.info
index 78ccfa8..1604928 100644
--- a/doc/rluserman.info
+++ b/doc/rluserman.info
@@ -1,12 +1,12 @@
-This is rluserman.info, produced by makeinfo version 6.5 from
+This is rluserman.info, produced by makeinfo version 6.7 from
rluserman.texi.
This manual describes the end user interface of the GNU Readline Library
-(version 8.0, 30 November 2018), a library which aids in the consistency
+(version 8.1, 29 October 2020), a library which aids in the consistency
of user interface across discrete programs which provide a command line
interface.
- Copyright (C) 1988-2016 Free Software Foundation, Inc.
+ Copyright (C) 1988-2020 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -425,11 +425,11 @@ Variable Settings
The number of possible completions that determines when the
user is asked whether the list of possibilities should be
displayed. If the number of possible completions is greater
- than this value, Readline will ask the user whether or not he
- wishes to view them; otherwise, they are simply listed. This
- variable must be set to an integer value greater than or equal
- to 0. A negative value means Readline should never ask. The
- default limit is '100'.
+ than or equal to this value, Readline will ask whether or not
+ the user wishes to view them; otherwise, they are simply
+ listed. This variable must be set to an integer value greater
+ than or equal to 0. A negative value means Readline should
+ never ask. The default limit is '100'.
'convert-meta'
If set to 'on', Readline will convert characters with the
@@ -471,7 +471,7 @@ Variable Settings
buffer as a single string of characters, instead of treating
each character as if it had been read from the keyboard. This
can prevent pasted characters from being interpreted as
- editing commands. The default is 'off'.
+ editing commands. The default is 'On'.
'enable-keypad'
When set to 'on', Readline will try to enable the application
@@ -508,7 +508,9 @@ Variable Settings
to 'on' means that the text of the lines being edited will
scroll horizontally on a single screen line when they are
longer than the width of the screen, instead of wrapping onto
- a new screen line. By default, this variable is set to 'off'.
+ a new screen line. This variable is automatically set to 'on'
+ for terminals of height 1. By default, this variable is set
+ to 'off'.
'input-meta'
If set to 'on', Readline will enable eight-bit input (it will
@@ -950,8 +952,8 @@ variable assignment, and conditional syntax.
# rather than as meta-prefixed characters
set output-meta on
- # if there are more than 150 possible completions for
- # a word, ask the user if he wants to see all of them
+ # if there are 150 or more possible completions for a word,
+ # ask whether or not the user wants to see all of them
set completion-query-items 150
# For FTP
@@ -1027,8 +1029,13 @@ File: rluserman.info, Node: Commands For Moving, Next: Commands For History,
physical line or if the length of the current Readline line is not
greater than the length of the prompt plus the screen width.
+'clear-display (M-C-l)'
+ Clear the screen and, if possible, the terminal's scrollback
+ buffer, then redraw the current line, leaving the current line at
+ the top of the screen.
+
'clear-screen (C-l)'
- Clear the screen and redraw the current line, leaving the current
+ Clear the screen, then redraw the current line, leaving the current
line at the top of the screen.
'redraw-current-line ()'
@@ -1063,10 +1070,14 @@ File: rluserman.info, Node: Commands For History, Next: Commands For Text, Pr
'reverse-search-history (C-r)'
Search backward starting at the current line and moving 'up'
through the history as necessary. This is an incremental search.
+ This command sets the region to the matched text and activates the
+ mark.
'forward-search-history (C-s)'
Search forward starting at the current line and moving 'down'
through the history as necessary. This is an incremental search.
+ This command sets the region to the matched text and activates the
+ mark.
'non-incremental-reverse-search-history (M-p)'
Search backward starting at the current line and moving 'up'
@@ -1125,6 +1136,13 @@ File: rluserman.info, Node: Commands For History, Next: Commands For Text, Pr
history expansion facilities are used to extract the last argument,
as if the '!$' history expansion had been specified.
+'operate-and-get-next (C-o)'
+ Accept the current line for return to the calling application as if
+ a newline had been entered, and fetch the next line relative to the
+ current line from the history for editing. A numeric argument, if
+ supplied, specifies the history entry to use instead of the current
+ line.
+

File: rluserman.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
@@ -1170,6 +1188,11 @@ File: rluserman.info, Node: Commands For Text, Next: Commands For Killing, Pr
was bound to 'self-insert' instead of executing any editing
commands.
+ Bracketed paste sets the region (the characters between point and
+ the mark) to the inserted text. It uses the concept of an _active
+ mark_: when the mark is active, Readline redisplay uses the
+ terminal's standout mode to denote the region.
+
'transpose-chars (C-t)'
Drag the character before the cursor forward over the character at
the cursor, moving the cursor forward as well. If the insertion
@@ -1214,10 +1237,14 @@ File: rluserman.info, Node: Commands For Killing, Next: Numeric Arguments, Pr
-------------------------
'kill-line (C-k)'
- Kill the text from point to the end of the line.
+ Kill the text from point to the end of the line. With a negative
+ numeric argument, kill backward from the cursor to the beginning of
+ the current line.
'backward-kill-line (C-x Rubout)'
Kill backward from the cursor to the beginning of the current line.
+ With a negative numeric argument, kill forward from the cursor to
+ the end of the current line.
'unix-line-discard (C-u)'
Kill backward from the cursor to the beginning of the current line.
@@ -1235,6 +1262,13 @@ File: rluserman.info, Node: Commands For Killing, Next: Numeric Arguments, Pr
Kill the word behind point. Word boundaries are the same as
'backward-word'.
+'shell-transpose-words (M-C-t)'
+ Drag the word before point past the word after point, moving point
+ past that word as well. If the insertion point is at the end of
+ the line, this transposes the last two words on the line. Word
+ boundaries are the same as 'shell-forward-word' and
+ 'shell-backward-word'.
+
'unix-word-rubout (C-w)'
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
@@ -1964,29 +1998,34 @@ their use in free software.

Tag Table:
-Node: Top908
-Node: Command Line Editing1430
-Node: Introduction and Notation2084
-Node: Readline Interaction3709
-Node: Readline Bare Essentials4902
-Node: Readline Movement Commands6687
-Node: Readline Killing Commands7649
-Node: Readline Arguments9569
-Node: Searching10615
-Node: Readline Init File12769
-Node: Readline Init File Syntax13924
-Node: Conditional Init Constructs34084
-Node: Sample Init File38282
-Node: Bindable Readline Commands41401
-Node: Commands For Moving42457
-Node: Commands For History44025
-Node: Commands For Text48291
-Node: Commands For Killing51734
-Node: Numeric Arguments53902
-Node: Commands For Completion55043
-Node: Keyboard Macros57013
-Node: Miscellaneous Commands57702
-Node: Readline vi Mode61625
-Node: GNU Free Documentation License62539
+Node: Top907
+Node: Command Line Editing1429
+Node: Introduction and Notation2083
+Node: Readline Interaction3708
+Node: Readline Bare Essentials4901
+Node: Readline Movement Commands6686
+Node: Readline Killing Commands7648
+Node: Readline Arguments9568
+Node: Searching10614
+Node: Readline Init File12768
+Node: Readline Init File Syntax13923
+Node: Conditional Init Constructs34182
+Node: Sample Init File38380
+Node: Bindable Readline Commands41506
+Node: Commands For Moving42562
+Node: Commands For History44322
+Node: Commands For Text49086
+Node: Commands For Killing52790
+Node: Numeric Arguments55505
+Node: Commands For Completion56646
+Node: Keyboard Macros58616
+Node: Miscellaneous Commands59305
+Node: Readline vi Mode63228
+Node: GNU Free Documentation License64142

End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git a/doc/rluserman.pdf b/doc/rluserman.pdf
index 25443eb..a7db1e9 100644
--- a/doc/rluserman.pdf
+++ b/doc/rluserman.pdf
Binary files differ
diff --git a/doc/rluserman.ps b/doc/rluserman.ps
index 81f6db3..9bae0d0 100644
--- a/doc/rluserman.ps
+++ b/doc/rluserman.ps
@@ -1,8 +1,8 @@
%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.998 Copyright 2018 Radical Eye Software
+%%Creator: dvips(k) 5.999 Copyright 2019 Radical Eye Software
%%Title: rluserman.dvi
-%%CreationDate: Tue Dec 18 16:44:19 2018
-%%Pages: 34
+%%CreationDate: Fri Oct 30 14:07:47 2020
+%%Pages: 35
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSY10 CMMI12 CMMI10 CMCSC10
@@ -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.12.18:1144
+%DVIPSSource: TeX output 2020.10.30:1007
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -3068,12 +3068,18 @@ end readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
+dup 97 /a put
+dup 99 /c put
+dup 101 /e put
dup 103 /g put
dup 105 /i put
+dup 107 /k put
+dup 109 /m put
dup 110 /n put
dup 114 /r put
dup 115 /s put
dup 116 /t put
+dup 118 /v put
readonly def
currentdict end
currentfile eexec
@@ -3271,66 +3277,104 @@ B33D5B50ED7BF3F41289F48E394BDC963EB1AFD6F14F0C146E0F13B03E76B389
FC9CD5D5F36E28DADB469201F41E9F39098B65E43FD1227A26F6FF812CE452F8
B5476C28FC1B1B3E5FEF3A3B94CD552E29288AB0A3ABCEAAEACBD2D5E9001579
738029B0E7F635C6C4962340187558084D9CD408EF7FDCE23F465AFCAA8EAAC4
-8855BF64EC9BC75371A98095CB51BE7FF107E4C6C2107D887716F94563768073
-B8C4238F51C1E63C279B23DE3DF51F656B90880333880515945253BE08582F17
-8888FF4AB1EA0051CC41CDCF6C2D4B2F19C17FDF8A8664754A884EB6A4311C08
-074B3CFC4E20FF71191E3C1648D2C38260315702E80A6425361E89CAE7108A3F
-C7FB9AD79D51427F8FAE45D1B02FA9083F76469C3378D3510246D81F10F3F48F
-9CF6D65D2F32BA1B012BAD2FDD43CE879EBFE2E5DC3BEC2EF496DD2C3848D655
-AAE8EB7970EF9F9A5AC6BF1C30B61659B7E8075DC32A70F10CBCAE6122894309
-5A0250411E81644F995A049EEEB89045B21B7741FE92A75A72C8B0A406275099
-8D134C8CB0CDFFE48353CE37202D9686FD7AF16500245B88C1C5B88E3DBC3B43
-BFDA072390A1D964E90FEA605DC6AEC44AA1D700017FB1F41C13A2C37B83FB64
-E63E895CE647A545FD5CA85463960331495B05929F57DC349736AF84A5687549
-CD60A676FD984F0C50AFC2F783594DE38ADF685F5E2937C95B50D07C6316ABC0
-8495EF319D914D65E08722DCE6A5762EDB87EA4AD820C359201059F56296F608
-395942723FB853CB67F553F689BBFDF60264E90AE6A7FBF7AEF443A3F760B490
-8C3513FCA7ECCA5A363D7F72C62DFB1773CF88D2D7E1F0FD606878C4F274F285
-5A3EF87C541495A067498702A89961BEFC26B229894408B4BAD353FE06295037
-9E55663FC427EAFBF65F616CE7A771421FCB22006B241CDB156035A428CFC241
-C3FB0343C9C040CA92ABC487113E09074631B554366DAD01C246F4E082C64B7A
-E9BE7C172B606786E702BA6D036D10682AD61CD0776567E40D095756D3D02704
-DA8492D994448DA3E66366CF2D712AC596DE587E976936D0B5B0E2F02724414B
-5AA83C1B3F8EFE2C0DB65600DA12E74A4E6D474A985BE62E8B0E6C0AA9E739B7
-D1A6359CB3AC713C743C7CDEE58649C4B6953E5671540BFB5FE80776FDA87A1C
-3B3B342B7AE56D96AA8F18DFD6A8DA83196B9F5DA844E622A6717CBCDB06B0A7
-70C750DE8AB3960E58BAA873F0C21D1157A2909231C41889BA6CFF45FC41F07E
-9F56466016A3C7BB340FD6B6321A5CB19788A886D0B5909DEF40ECE8923E7EC5
-CD3881FA4311C937C0572619DDEB4618EA621867B1B8556E73DB25F5E86C0D27
-913B40450E452906B5528E86B0F08246B595BC6487543AC0B789D555594ED997
-911B9D19F01232F69A42F99FFA56DC7DB66BD6B9158E32511F945E11724CF164
-DAF26FF59D8B728188A609D1D868C2536150F333BDD1DBE091283F1884D320EF
-908F80BBD8AA0C8BDFE625F34B41BDBB60DD9A6AB33298DBAF5224EB27D47B8F
-69588EA13F414A6E6EF3924EB12BD7DFA8F9628C4924BB5C065A6A581B31D314
-6AC33A670CAE923A46883115C5B26E3566D2811EB20634B14B53CF46E0C66F92
-4D5906B71A17C8E38C1EDC9A45C0E3472E4BD49FBC8F8D1226C8A020932DAA0E
-2FADA6A30D305693AB8E3E08897AF9EDCA74EA769AAA7D6824F01C3733E73214
-2D9AA6EF67203CC27E3E7510D09015533CC5CBDF4A4F43761B5019433B615A95
-F5D1FD30B1FF23619141C06772C69C0340C90443F192EFBC342D1ADEFCC125FC
-4BCD134167487DAC3A1C5D18CB454EB3BE7F3DFE59BC6F349395066C17BAD3A9
-94F54B393C29D53A3668370DC085A703FDC91930B0CD6F7FD4EC1F338D7DF701
-E96536126691975CF22A54EB33D276E0F67FCBE601DDBC41BDC763D9EC78D386
-51A7F72FF1338CB14A6F09670E67F472D6F57C6447F5C82305B56BFDEBC0B324
-EA6FD3853C831681645B10C42B9165789D5FB6EE1BCE6B3E908AFC374688E720
-5A3930D9918DB4189CCD63E6F4BD9ED18FC1F0F3E85D51E3615FBFA4F1E9A746
-96B0F85B468281C142E707271350C29703F947292B191990DDC3A13A60A981DD
-FA1F8B9151C8CB3738AEE8FF27E3390404F5C96874BE9290AE811A35E0C4727C
-C7425896985C8324159C8A3A4576BDBC6EE02323CF51ACA4AFEE28A4AFE6344F
-54C5064B9A124AD5E6B2B2CEE087768B97DA1468ABDE4FB32C632E1CC6BBF007
-B8C36E1D3F7696415EF51B3EA956FB3612B12FAF9B511F9D6B29DDD7C89FF065
-1752A6E7826C367ED149527468A9A8F3730DB8E6C7DA1EFD1BB1DD2693BB2421
-52733EE07D56146CD064222CA4D765AE3A1AC8366538BCF0101BD74F7DA3D330
-04575D95799244593ED3EA108FB8FCE3A8BC431416A6D60E27C9096444E8C225
-3B838FD5B8C78ADD9B7DF7EFBA6A6A466CD243EFFDAF90ABFE82CF2B9E06DCF3
-046758EFF0C168001B0AF208160B773913DEEAF4F167B0BCBA1EE3A51766C9B0
-D3440CE0A46DC741B417E21502354EB5DC09B91231A5B79FBE4F80028C01B505
-91866DE115685EA48FFF22ED898D8E64C7A9C9D8CB20451DEF0551610C6D1255
-7DEB229CD4AA2C8F0AA989EE31BB94D940835BA22BBD1607C8944C84226F1F59
-35248C1A4AA7F0AD631CB66B7A149AAC76044376FD050E367D993144111232DA
-DF4650BB5F45B791FB1221B54F88798E8619A3E82EA65C4A3DDD98A3E7D6B296
-EA6739A97A0771E6270528213FC6F372DF4F1FBB80A47FF62FFD5287C9AA4F91
-5064F8D3CE7B4C71156E4D21658D626B97E01711F123719E3DEA49CF8981DEDA
-CBDE3182826A
+8855BF64EC9BC75371A98095CB51BE7FF107E4C6C21079571957B2AC35ABF77E
+9DCBD599C549D3B40A36AB846859C7BD9F87A2FBC724621FC7B305F02742A66E
+F2BBB6B21671FF62D682982C4E8F6645EA4A7D875E03774474BD86F76AFD4053
+61E9AF3C9B374D730501BE61106AFFF8A463406722AD2C14D1A81C08C2A31E60
+42DBCDBFFE4056E6AEF59CA261835523196A8921D1BE0013F8B3D6F05793FD18
+3E767E98289DA6CA9DC9E2EF9E697998D2367E45AA87B3E75A57F64021FAB21A
+A480FE7095000C29AB92E6D299B2E5EA7AE1997A6B23E1F90549334F62417196
+89BF7E9F62484C2816CF5FC2ECB7DEFBB11E63D70CA13D96BF3DB3B95F39A41D
+2E0C84ABD2FFD86525323ACE4A85A8944601CEE9D157445312EE9EB81873DD63
+A1BF3256BD697289C32D8598046EF6F6646629A7C29D5B1C5855CDB95882C2D7
+73536D20BEEF480B4213C0F02826D89B76300F6BF3ECC9C1DF3AA2C91CBF7D8C
+2862CB42FE32A3715855D8B7B30FF83EAD80181F8034395A1ECCCE5BDE7A2C9A
+124900DD8F1732791A32ED4820F93BE8D15A5B5960F824BD17A8455F537A947B
+9726CDB5DBA4107593EDBBEFF3B140B7CF51BD51B099045DB94A946271DC6C00
+24F77C781DBE53479E423426F3FE3004F4282816CB898B570C171FF63B4FC904
+8D716F6B7F3BC9AABBFBF1DDF2779CDD19CBBB60DDA40D5DFC85ACDD2A0FD2D7
+6402B7768E5B1D7CAACE9241F5891F922CD586255D1D9DDAF0910E14F3A2F8A4
+631394010C96EB7EB6E3009591E12C0C80F511D1FF14AAF65FD0A74E56361BF7
+07826E5FDC23C1AC2A50347CA313AFA7CDFA9E42A077C9D301A351A89C4DBFAD
+5DC8757C93A6869B2EB9BD784B298CE59E14C1F64C508CBC1F0E3EF713F173CE
+E4139B6AB00D513BBA722CA46E21F6EE9B689E29A6CF80BB91656FDD6FECCAC4
+932E55395B6770AC6A86EAB50AC58FADC1408B43F0D45378E762A9FF61DA68BA
+315AEFC5A5C2B929919FFB3AFCAE5ED7D739567E868D77E76D4B70AED79F2AE7
+21CA3C966D95AA795904FBBDC8098C3DD628F503B3778D9D7583D25AD7DFA289
+204F6DC33211530ECC8E9D28B7F53F2AB48F21536F2FA00CC12DF01116D011E6
+F97FCCAFC752452AEF7E6D141205AC701FF1482E02C8021E7A50E515EB1531D5
+F0A3B72FB8B97F1EA6DDF4823AC8C1B492384AB5C4DA7035400A0A71C7FBD379
+410391CBEC1B137DEFAD3EF4F45F19A594C0E51FFBB619C7D111D213FBBB2693
+43CAE9833E9ACE422DBB6993DADDDE44DE3E990CD7ED0590FFCAD9DABEA857C7
+F5FE4C18C260F7428E4A71A65E9610CE16932F7405085CD9C5562CA83347414B
+EE167A0EEB80E43C1C9251882267B404676D5A4266C3F22C3CF38FB9E2414A43
+A82971C7A66DAE9474153572B8B92BA81F3253890A6CEB715B72E1E8C218422B
+5F12B8E5155A544FBF3A105DC23132C30030E335AAC5A5B1DF44F2EBFB93DF1C
+AD8A7D6E1DE1EFEE889DDD22BC30D51B5D0A6BD9743DEA811F718D243F589B41
+FD0E2DAEC6CA60E7DFF1B79F53C4E1A2D5D5903D85F35CBF76BC5BDD296B1BCA
+F3CDA8F0C8C61EDD7A5572763D566283D08BD014B18A1EEC712A0B8CDD4CB96E
+08E991E0E78223C434B338C6F78E2741DA608167AFBA9A05CFE5B6B4499D88CA
+99AF98FED3A5B1C10B71F74A5EBA7E4BFD7479D7C0C93217C7F1EB956F9A3EB1
+7AC6A9485D4EA93066EC87F135A82CFA6D2B4F252D4DE83621899D8C72270A9A
+BF5C17098895A7DC73DC69042D7D2F1E517A39996B75332DFB966FE556682E9F
+AA043C5C66837F618CFE04262B8EE2E34C047B2B8DC03171B4A485289C392DEB
+7CA7A789D1A58642B114D535141283C659EAA77970125248DE0994BE1BD57667
+520E755850D131351E0BD4C1BF71141843CE981E0506DB539A3A867D16D1FEE5
+F409C71D115BA2C90D27B2A8F5197EADD4FAB34D0EF448542EB07B9B2FE8EED6
+BAFF794AAC03C9AF50ADED1D99BD9859D0538229F1415CA971325DF855723A81
+C04DC9D5256E376A66835ED86671E18C539279615B0798D07798BD8C4F5A6FB9
+4F7322D74669AAFA796AE5B2B5F1F971E510C1A22A05576C98075DDA9EB886BE
+711211EA5F9C03986948964732849438ABDB47B88AC23E24CB4B82162533D0CB
+FE408BE676FF0BEAF32E558F0F8FA82AD625A8F7F18560E3601E815A6D94820D
+0CAE42EF0F650F7B954B1A52228F16683DF4E4F78B007011C8140FB87ACDA2FC
+664F1F24B9212D1D44D1172CA1F8E532DFA297E07DBB928C275C7929AF606617
+865E2F555664F953926C673CB8890F9E404259A729A2FF324FDBD9CCA92FA5C4
+93F926178D2CCCC3FAF83E2AC5F574A0938A700F72D89841CEA6AF46E31FD7A3
+D2CD51BA1730F7ACC3DC8C34B3734D4B710D0CCFC98DDCA3784AD038C2D689CE
+EDCF1A1F6314FCB5F59AA1C761CA9CC58666755674E7ED1E34CC5A7860C2168B
+2C2764E43812900E384962D7837C932CEFBAEDA1ACA75D19DADCDFF2522A4984
+6B40BDFA2C517B7E84E3F4EDAC1AA9DBF9C10E3B031BBBC917C75214C70C0DB4
+1BDDC12BCEB48930D10522CC153BE6C0E6B2DBAA48CD409E33EA5056108A38AB
+4228559D411FEAE1C0711190CFCBD66C4392BE1BC5F011E8ED31C83BC6EF1E70
+6E53A5037535DC8767B74025EF5F7A4BD3894071698C3A8D7181F60567E8B25E
+EEF20429380CF256671E87499DF2A14E73B4F79AC568F0A781C9A4ED22009B55
+C1D8302B7BCC76F2C14C6760C1711CEBA13A739DBEAD0F734E9320DEE0AAD306
+734080AA5AD5978D850C25FEC472047B7062487C2D0F955911C7609F535D48FA
+BA52F16DFE20A866221F463A5A22EEA0CA9247CAE708FD257BB51C5BF9075051
+2F5BB8D8E2BE94BF4BB9032C312CEFAD46DDAF74C68148F5F2CFC5C0BBD4E87B
+BF978A8192DE587539601EFBBB49D4CDF1FF4E229B299DBC3855D51571F5990C
+43DCCF357F4756774FC6AAC1707093B9B7926C36DC1F4814D3AAEA7A19F9FD22
+5DA49DB5BED96EF8C544F9BA29B0609134A3649AC6AB20476023DFD89D35B200
+A3ACC84A6F68C209A1B37F6B0620380CD2E4A23D08ADA7F66A3D129B702A2189
+9EDD36BEE9335386E4B742D56030C48DFDD1DA50CE4CACDE2827D4E1F7E2849D
+5CF13FE1BCD0DD6FCC9E7BA36CBA91A13E4B329E8E72F0316B2AC5DB80C4490C
+74C9440AE86D4FAEA76B628CF30E67609661299D1255EE6190A996EB0795BCCA
+B58CD015F1980D7951910B743EAF16374C4EC491CFEAA0F89731D14A0AF43428
+473CC721027C9222B5FE9287BAAA6D2D0485C65F46E5CE9B84DAAB44807458E3
+109DA0E1AB85D0608AFD7A9831250FB4A1E19AD26707E4C188591FA88798015F
+93E16EF116D128607F78D5662EB558E50459E00A2F7DBF72675EDF896D52F30F
+975C45C190025E6481C806A519EECBCAB88C8B9EB9646C5689D76BF8EEEF8ABB
+17ADE68C0B64521D69430B39849396ABDD904B25D620DE7503BCFCABA707B881
+935B5DE0AAFCE001EF33910442A82AA44DDC8AD235DEE928DC1706A1874348EF
+0A8ABA338D60DF49BC718627DC00EBDF887637C5E6C39C66B4488C5AF59E57D3
+35A70E00BC23193E0AFDB2D6C4E26C9DB95378C65FE35BA71D71B1C51190FE32
+873AB8EB64FA3AA7EFAC3BA3DF5D3AE4DCF5170CEB863D3077FF905F4AF13055
+F76C150A6DA1A7A80B798C4E21C6044F817F0408C1D3893381A08E11F9890A42
+62ACD1A61F9F640BD13D3282B432A711E5E624B0BCC771EA1B319843A7295172
+D661D1A062DB84408A21C82C781E02FDA05F68FF78C396C0C10C7CF0D3EA7537
+6667789370ED6CAC90369FF71A3E5C8BB7870C45DD0098C6EC30CD968E897D33
+C87971E6517FDCC32701809E27AD13C747AB20DF630C3480AB0F868FADA5EB45
+EEF2ABA20547B199F37C44AED38582FB94149BB53FDC70F12BFC4AE288A7F4B3
+DFC2626158715813F2E287513593D35A304D91687FF188861ACC64AA5F040969
+CB76B0877286DB69728CE7C2B0487452ABE3863DDB85202DF1773345B654FA37
+8A1CF611A24B493144EF62937F1F87B5B83ACD523DA63FABE1437AB535B99BDD
+8C2A3494911E4EF4324313C420F0FB8A5B2B5B5C0FA33E5DF0AA3102EB802B7B
+313475E5D27B0FDC37BF71136350056830B611B9DD6344616597806258120F65
+75BE0D46A6C5F8263F998EC717D42350A1873BA03EAD4C337BEAD1EE21FF6080
+97A298B6D92E9B8DA2AD5E688D99ECCF577CE1BDD15FFF28E125412C527EB327
+9723B500D3CED93AF7C930CA1B94FDF3A73F23553AA785E5D8525C605842EFC4
+DC427E47BC86A737B23FB2C9178FBF673E5403099A01F334F8E6926FFFF97685
+CA02478B0311E4F4F3519EA57B80
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -5097,34 +5141,34 @@ rf /Fd 134[65 65 1[65 68 48 48 50 1[68 61 68 102 34 65
66 48 51 35 36 36 48 51 45 51 76 25 48 1[25 51 45 28
40 51 40 51 45 9[93 1[68 66 51 67 1[62 71 68 1[57 71
1[33 68 1[59 62 69 66 64 68 19[30 33[53 11[{}45 90.9091
-/CMSL10 rf /Ff 139[30 37 38 3[51 4[28 1[42 90[51 12[{}7
-90.9091 /CMTI10 rf /Fg 134[48 48 48 48 48 1[48 48 48
-1[48 48 1[48 48 48 48 1[48 48 48 48 1[48 48 1[48 2[48
-14[48 48 1[48 1[48 2[48 48 48 17[48 48 2[48 5[48 39[{}33
-90.9091 /CMSLTT10 rf /Fh 135[56 2[56 1[42 2[51 58 56
-4[27 1[58 49 51 1[54 1[56 97[{}12 90.9091 /CMCSC10 rf
-/Fi 197[25 58[{}1 90.9091 /CMMI10 rf /Fj 197[33 58[{}1
-119.552 /CMMI12 rf /Fk 135[85 2[90 63 64 66 1[90 81 90
-134 45 2[45 1[81 49 74 90 72 90 78 11[124 112 5[126 1[97
-4[127 101 106 124 117 1[122 15[81 49[{}29 143.462 /CMBX12
-rf /Fl 242[91 13[{}1 90.9091 /CMSY10 rf /Fm 134[71 71
-97 71 75 52 53 55 1[75 67 75 112 37 2[37 75 67 41 61
-75 60 75 65 9[139 1[103 1[75 100 3[105 128 81 2[50 105
-106 85 88 103 97 96 102 6[37 4[67 67 67 67 67 2[37 1[37
-44[{}46 119.552 /CMBX12 rf /Fn 129[48 48 1[48 48 48 48
-48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
-48 48 48 48 48 1[48 1[48 48 48 1[48 3[48 48 48 48 48
-48 48 48 48 48 48 1[48 48 48 48 48 48 48 48 48 48 48
-48 48 48 1[48 1[48 48 1[48 2[48 48 48 48 48 48 48 1[48
-48 48 48 2[48 48 48 48 33[{}78 90.9091 /CMTT10 rf /Fo
-131[91 45 40 48 48 66 48 51 35 36 36 48 51 45 51 76 25
-48 28 25 51 45 28 40 51 40 51 45 25 2[25 45 25 56 68
-68 93 68 68 66 51 67 71 62 71 68 83 57 71 47 33 68 71
-59 62 69 66 64 68 5[25 25 45 45 45 45 45 45 45 45 45
-45 45 25 30 25 2[35 35 25 4[45 20[51 51 53 11[{}81 90.9091
-/CMR10 rf /Fp 134[102 4[75 76 79 3[108 1[54 2[54 2[59
-88 108 86 108 94 11[149 2[144 3[151 1[116 2[72 1[152
-71[{}19 172.154 /CMBX12 rf end
+/CMSL10 rf /Ff 137[42 1[30 37 38 3[51 74 1[42 1[28 1[42
+1[42 1[42 1[46 84[51 12[{}13 90.9091 /CMTI10 rf /Fg 134[48
+48 48 48 48 1[48 48 48 1[48 48 1[48 48 48 48 1[48 48
+48 48 1[48 48 1[48 2[48 14[48 48 1[48 1[48 2[48 48 48
+17[48 48 2[48 5[48 39[{}33 90.9091 /CMSLTT10 rf /Fh 135[56
+2[56 1[42 2[51 58 56 4[27 1[58 49 51 1[54 1[56 97[{}12
+90.9091 /CMCSC10 rf /Fi 197[25 58[{}1 90.9091 /CMMI10
+rf /Fj 197[33 58[{}1 119.552 /CMMI12 rf /Fk 135[85 2[90
+63 64 66 1[90 81 90 134 45 2[45 1[81 49 74 90 72 90 78
+11[124 112 5[126 1[97 4[127 101 106 124 117 1[122 15[81
+49[{}29 143.462 /CMBX12 rf /Fl 242[91 13[{}1 90.9091
+/CMSY10 rf /Fm 134[71 71 97 71 75 52 53 55 1[75 67 75
+112 37 2[37 75 67 41 61 75 60 75 65 9[139 1[103 1[75
+100 3[105 128 81 2[50 105 106 85 88 103 97 96 102 6[37
+4[67 67 67 67 67 2[37 1[37 44[{}46 119.552 /CMBX12 rf
+/Fn 129[48 48 1[48 48 48 48 48 48 48 48 48 48 48 48 48
+48 48 48 48 48 48 48 48 48 48 48 48 48 48 1[48 1[48 48
+48 1[48 3[48 48 48 48 48 48 48 48 48 48 48 1[48 48 48
+48 48 48 48 48 48 48 48 48 48 48 1[48 1[48 48 1[48 2[48
+48 48 48 48 48 48 1[48 48 48 48 2[48 48 48 48 33[{}78
+90.9091 /CMTT10 rf /Fo 131[91 45 40 48 48 66 48 51 35
+36 36 48 51 45 51 76 25 48 28 25 51 45 28 40 51 40 51
+45 25 2[25 45 25 56 68 68 93 68 68 66 51 67 71 62 71
+68 83 57 71 47 33 68 71 59 62 69 66 64 68 5[25 25 45
+45 45 45 45 45 45 45 45 45 45 25 30 25 2[35 35 25 4[45
+20[51 51 53 11[{}81 90.9091 /CMR10 rf /Fp 134[102 4[75
+76 79 3[108 1[54 2[54 2[59 88 108 86 108 94 11[149 2[144
+3[151 1[116 2[72 1[152 71[{}19 172.154 /CMBX12 rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
@@ -5140,30 +5184,30 @@ ifelse
%%Page: 1 1
TeXDict begin 1 0 bop 150 1318 a Fp(GNU)65 b(Readline)g(Library)g(User)
g(In)-5 b(terface)p 150 1418 3600 34 v 1873 1515 a Fo(Edition)30
-b(8.0,)i(for)e Fn(Readline)e(Library)h Fo(V)-8 b(ersion)31
-b(8.0.)3139 1623 y(No)m(v)m(em)m(b)s(er)g(2018)150 4927
-y Fm(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
-b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
-b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
-b(oundation)p 150 5141 3600 17 v eop end
+b(8.1,)i(for)e Fn(Readline)e(Library)h Fo(V)-8 b(ersion)31
+b(8.1.)3217 1623 y(Octob)s(er)f(2020)150 4927 y Fm(Chet)45
+b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l
+(ersit)l(y)150 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11
+b(ree)45 b(Soft)l(w)l(are)h(F)-11 b(oundation)p 150 5141
+3600 17 v eop end
%%Page: 2 2
-TeXDict begin 2 1 bop 150 4413 a Fo(This)29 b(man)m(ual)g(describ)s(es)
-g(the)h(end)e(user)h(in)m(terface)i(of)f(the)f(GNU)h(Readline)g
-(Library)f(\(v)m(ersion)h(8.0,)h(30)150 4523 y(No)m(v)m(em)m(b)s(er)39
-b(2018\),)j(a)c(library)g(whic)m(h)g(aids)g(in)f(the)h(consistency)h
-(of)f(user)f(in)m(terface)j(across)e(discrete)150 4633
-y(programs)30 b(whic)m(h)g(pro)m(vide)h(a)f(command)g(line)h(in)m
-(terface.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577
-4767 y Fl(\015)f Fo(1988{2016)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)
--8 b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21
-b(is)f(gran)m(ted)h(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s
-(dify)e(this)i(do)s(cumen)m(t)f(under)f(the)390 5011
-y(terms)25 b(of)h(the)f(GNU)h(F)-8 b(ree)27 b(Do)s(cumen)m(tation)g
-(License,)g(V)-8 b(ersion)26 b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)
-390 5121 y(published)43 b(b)m(y)h(the)h(F)-8 b(ree)46
-b(Soft)m(w)m(are)g(F)-8 b(oundation;)53 b(with)44 b(no)g(In)m(v)-5
-b(arian)m(t)46 b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)
-31 b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8
+TeXDict begin 2 1 bop 150 4413 a Fo(This)38 b(man)m(ual)h(describ)s(es)
+f(the)h(end)f(user)g(in)m(terface)i(of)f(the)g(GNU)g(Readline)g
+(Library)f(\(v)m(ersion)i(8.1,)150 4523 y(29)35 b(Octob)s(er)f(2020\),)
+k(a)d(library)f(whic)m(h)g(aids)g(in)g(the)h(consistency)g(of)g(user)e
+(in)m(terface)j(across)f(discrete)150 4633 y(programs)30
+b(whic)m(h)g(pro)m(vide)h(a)f(command)g(line)h(in)m(terface.)150
+4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767 y Fl(\015)f
+Fo(1988{2020)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h
+(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s
+(cumen)m(t)f(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
+b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
+b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43
+b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8
+b(oundation;)53 b(with)44 b(no)g(In)m(v)-5 b(arian)m(t)46
+b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)31
+b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8
b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390
5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8
b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end
@@ -5223,26 +5267,26 @@ h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)25
b Fo(18)399 2430 y(1.4.4)93 b(Killing)31 b(And)e(Y)-8
b(anking)13 b Fi(:)k(:)e(:)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
-(:)f(:)g(:)h(:)f(:)h(:)f(:)26 b Fo(19)399 2540 y(1.4.5)93
+(:)f(:)g(:)h(:)f(:)h(:)f(:)26 b Fo(20)399 2540 y(1.4.5)93
b(Sp)s(ecifying)30 b(Numeric)g(Argumen)m(ts)e Fi(:)15
b(:)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(:)41 b Fo(20)399 2649
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)41 b Fo(21)399 2649
y(1.4.6)93 b(Letting)31 b(Readline)g(T)m(yp)s(e)f(F)-8
b(or)31 b(Y)-8 b(ou)22 b Fi(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)35
b Fo(21)399 2759 y(1.4.7)93 b(Keyb)s(oard)29 b(Macros)11
b Fi(:)17 b(:)e(:)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(:)h(:)f(:)h(:)f(:)g(:)h(:)24 b Fo(21)399 2868 y(1.4.8)93
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)24 b Fo(22)399 2868 y(1.4.8)93
b(Some)30 b(Miscellaneous)j(Commands)16 b Fi(:)e(:)h(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)29 b Fo(22)275 2978 y(1.5)92 b(Readline)31
b(vi)f(Mo)s(de)10 b Fi(:)16 b(:)f(:)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(:)h(:)f(:)h(:)f(:)g(:)h(:)23
-b Fo(23)150 3229 y Fm(App)t(endix)44 b(A)119 b(GNU)39
+b Fo(24)150 3229 y Fm(App)t(endix)44 b(A)119 b(GNU)39
b(F)-11 b(ree)38 b(Do)t(cumen)l(tation)i(License)25 b
-Fj(:)20 b(:)32 b Fm(24)p eop end
+Fj(:)20 b(:)32 b Fm(25)p eop end
%%Page: 1 4
TeXDict begin 1 3 bop 3705 -116 a Fo(1)150 299 y Fk(1)80
b(Command)54 b(Line)f(Editing)150 527 y Fo(This)30 b(c)m(hapter)h
@@ -5634,27 +5678,28 @@ b(alue)26 b(greater)h(than)e(zero,)j(common)e(pre\014xes)e(longer)j
(ellipsis)h(when)e(displa)m(ying)i(p)s(ossible)f(completions.)630
565 y Fn(completion-query-items)1110 675 y Fo(The)c(n)m(um)m(b)s(er)f
(of)h(p)s(ossible)g(completions)h(that)g(determines)f(when)f(the)i
-(user)1110 784 y(is)i(ask)m(ed)h(whether)f(the)h(list)g(of)f(p)s
-(ossibilities)h(should)e(b)s(e)h(displa)m(y)m(ed.)41
-b(If)29 b(the)1110 894 y(n)m(um)m(b)s(er)d(of)h(p)s(ossible)f
-(completions)i(is)f(greater)h(than)e(this)h(v)-5 b(alue,)28
-b(Readline)1110 1003 y(will)f(ask)g(the)f(user)g(whether)g(or)g(not)h
-(he)f(wishes)g(to)i(view)e(them;)i(otherwise,)1110 1113
-y(they)d(are)f(simply)g(listed.)40 b(This)23 b(v)-5 b(ariable)25
-b(m)m(ust)g(b)s(e)e(set)i(to)g(an)g(in)m(teger)g(v)-5
-b(alue)1110 1223 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
-b(A)24 b(negativ)m(e)j(v)-5 b(alue)26 b(means)e(Readline)i(should)1110
-1332 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
-Fn(100)p Fo(.)630 1489 y Fn(convert-meta)1110 1598 y
-Fo(If)22 b(set)g(to)h(`)p Fn(on)p Fo(',)h(Readline)f(will)f(con)m(v)m
-(ert)i(c)m(haracters)f(with)f(the)g(eigh)m(th)h(bit)f(set)1110
-1708 y(to)33 b(an)e Fh(asci)r(i)h Fo(k)m(ey)h(sequence)f(b)m(y)g
-(stripping)f(the)h(eigh)m(th)h(bit)f(and)f(pre\014xing)1110
-1817 y(an)24 b Fn(ESC)g Fo(c)m(haracter,)j(con)m(v)m(erting)f(them)f
-(to)g(a)g(meta-pre\014xed)f(k)m(ey)h(sequence.)1110 1927
-y(The)i(default)h(v)-5 b(alue)28 b(is)f(`)p Fn(on)p Fo(',)i(but)d(will)
-i(b)s(e)f(set)h(to)g(`)p Fn(off)p Fo(')g(if)f(the)h(lo)s(cale)h(is)f
-(one)1110 2037 y(that)j(con)m(tains)h(eigh)m(t-bit)g(c)m(haracters.)630
+(user)1110 784 y(is)43 b(ask)m(ed)g(whether)f(the)g(list)h(of)g(p)s
+(ossibilities)g(should)f(b)s(e)g(displa)m(y)m(ed.)77
+b(If)1110 894 y(the)29 b(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g
+(completions)h(is)f(greater)h(than)f(or)g(equal)g(to)h(this)1110
+1003 y(v)-5 b(alue,)45 b(Readline)e(will)f(ask)g(whether)f(or)h(not)g
+(the)g(user)f(wishes)g(to)i(view)1110 1113 y(them;)33
+b(otherwise,)f(they)g(are)g(simply)g(listed.)45 b(This)31
+b(v)-5 b(ariable)33 b(m)m(ust)e(b)s(e)g(set)1110 1223
+y(to)39 b(an)f(in)m(teger)i(v)-5 b(alue)39 b(greater)g(than)f(or)h
+(equal)g(to)g(0.)65 b(A)38 b(negativ)m(e)i(v)-5 b(alue)1110
+1332 y(means)30 b(Readline)h(should)f(nev)m(er)g(ask.)41
+b(The)30 b(default)h(limit)g(is)f Fn(100)p Fo(.)630 1489
+y Fn(convert-meta)1110 1598 y Fo(If)22 b(set)g(to)h(`)p
+Fn(on)p Fo(',)h(Readline)f(will)f(con)m(v)m(ert)i(c)m(haracters)f(with)
+f(the)g(eigh)m(th)h(bit)f(set)1110 1708 y(to)33 b(an)e
+Fh(asci)r(i)h Fo(k)m(ey)h(sequence)f(b)m(y)g(stripping)f(the)h(eigh)m
+(th)h(bit)f(and)f(pre\014xing)1110 1817 y(an)24 b Fn(ESC)g
+Fo(c)m(haracter,)j(con)m(v)m(erting)f(them)f(to)g(a)g(meta-pre\014xed)f
+(k)m(ey)h(sequence.)1110 1927 y(The)i(default)h(v)-5
+b(alue)28 b(is)f(`)p Fn(on)p Fo(',)i(but)d(will)i(b)s(e)f(set)h(to)g(`)
+p Fn(off)p Fo(')g(if)f(the)h(lo)s(cale)h(is)f(one)1110
+2037 y(that)j(con)m(tains)h(eigh)m(t-bit)g(c)m(haracters.)630
2193 y Fn(disable-completion)1110 2303 y Fo(If)k(set)h(to)h(`)p
Fn(On)p Fo(',)g(Readline)f(will)g(inhibit)f(w)m(ord)h(completion.)60
b(Completion)1110 2412 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h
@@ -5697,7 +5742,7 @@ e(of)g(treating)h(eac)m(h)g(c)m(haracter)g(as)f(if)f(it)i(had)1110
5230 y(b)s(een)e(read)i(from)e(the)i(k)m(eyb)s(oard.)49
b(This)32 b(can)h(prev)m(en)m(t)h(pasted)f(c)m(haracters)1110
5340 y(from)d(b)s(eing)g(in)m(terpreted)h(as)f(editing)h(commands.)41
-b(The)29 b(default)i(is)f(`)p Fn(off)p Fo('.)p eop end
+b(The)29 b(default)i(is)f(`)p Fn(On)p Fo('.)p eop end
%%Page: 7 10
TeXDict begin 7 9 bop 150 -116 a Fo(Chapter)30 b(1:)41
b(Command)29 b(Line)i(Editing)2153 b(7)630 299 y Fn(enable-keypad)1110
@@ -5705,55 +5750,57 @@ b(Command)29 b(Line)i(Editing)2153 b(7)630 299 y Fn(enable-keypad)1110
(try)f(to)h(enable)g(the)f(application)i(k)m(eypad)1110
518 y(when)h(it)h(is)f(called.)41 b(Some)27 b(systems)f(need)h(this)f
(to)h(enable)g(the)g(arro)m(w)g(k)m(eys.)1110 628 y(The)j(default)g(is)
-h(`)p Fn(off)p Fo('.)630 800 y Fn(enable-meta-key)1110
-909 y Fo(When)40 b(set)g(to)g(`)p Fn(on)p Fo(',)j(Readline)d(will)g
+h(`)p Fn(off)p Fo('.)630 784 y Fn(enable-meta-key)1110
+894 y Fo(When)40 b(set)g(to)g(`)p Fn(on)p Fo(',)j(Readline)d(will)g
(try)g(to)g(enable)g(an)m(y)g(meta)h(mo)s(di\014er)1110
-1019 y(k)m(ey)i(the)e(terminal)i(claims)f(to)h(supp)s(ort)d(when)h(it)h
-(is)g(called.)76 b(On)41 b(man)m(y)1110 1129 y(terminals,)c(the)e(meta)
+1003 y(k)m(ey)i(the)e(terminal)i(claims)f(to)h(supp)s(ort)d(when)h(it)h
+(is)g(called.)76 b(On)41 b(man)m(y)1110 1113 y(terminals,)c(the)e(meta)
h(k)m(ey)g(is)f(used)g(to)h(send)e(eigh)m(t-bit)j(c)m(haracters.)56
-b(The)1110 1238 y(default)31 b(is)f(`)p Fn(on)p Fo('.)630
-1410 y Fn(expand-tilde)1110 1520 y Fo(If)d(set)h(to)h(`)p
+b(The)1110 1223 y(default)31 b(is)f(`)p Fn(on)p Fo('.)630
+1379 y Fn(expand-tilde)1110 1489 y Fo(If)d(set)h(to)h(`)p
Fn(on)p Fo(',)f(tilde)g(expansion)g(is)f(p)s(erformed)f(when)h
-(Readline)h(attempts)1110 1630 y(w)m(ord)i(completion.)42
-b(The)30 b(default)g(is)h(`)p Fn(off)p Fo('.)630 1802
-y Fn(history-preserve-point)1110 1911 y Fo(If)41 b(set)h(to)h(`)p
+(Readline)h(attempts)1110 1598 y(w)m(ord)i(completion.)42
+b(The)30 b(default)g(is)h(`)p Fn(off)p Fo('.)630 1755
+y Fn(history-preserve-point)1110 1864 y Fo(If)41 b(set)h(to)h(`)p
Fn(on)p Fo(',)i(the)c(history)h(co)s(de)g(attempts)h(to)f(place)h(the)f
-(p)s(oin)m(t)f(\(the)1110 2021 y(curren)m(t)35 b(cursor)g(p)s
+(p)s(oin)m(t)f(\(the)1110 1974 y(curren)m(t)35 b(cursor)g(p)s
(osition\))g(at)h(the)g(same)f(lo)s(cation)i(on)e(eac)m(h)h(history)g
-(line)1110 2131 y(retriev)m(ed)h(with)f Fn(previous-history)c
+(line)1110 2084 y(retriev)m(ed)h(with)f Fn(previous-history)c
Fo(or)37 b Fn(next-history)p Fo(.)55 b(The)36 b(default)1110
-2240 y(is)30 b(`)p Fn(off)p Fo('.)630 2412 y Fn(history-size)1110
-2522 y Fo(Set)39 b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g
-(en)m(tries)h(sa)m(v)m(ed)g(in)f(the)g(history)1110 2632
+2193 y(is)30 b(`)p Fn(off)p Fo('.)630 2350 y Fn(history-size)1110
+2459 y Fo(Set)39 b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g
+(en)m(tries)h(sa)m(v)m(ed)g(in)f(the)g(history)1110 2569
y(list.)51 b(If)34 b(set)g(to)h(zero,)g(an)m(y)f(existing)h(history)f
-(en)m(tries)g(are)g(deleted)h(and)e(no)1110 2741 y(new)e(en)m(tries)i
+(en)m(tries)g(are)g(deleted)h(and)e(no)1110 2679 y(new)e(en)m(tries)i
(are)f(sa)m(v)m(ed.)46 b(If)31 b(set)h(to)h(a)f(v)-5
b(alue)32 b(less)g(than)f(zero,)i(the)f(n)m(um)m(b)s(er)1110
-2851 y(of)f(history)f(en)m(tries)h(is)g(not)g(limited.)42
+2788 y(of)f(history)f(en)m(tries)h(is)g(not)g(limited.)42
b(By)30 b(default,)h(the)g(n)m(um)m(b)s(er)e(of)i(history)1110
-2960 y(en)m(tries)j(is)f(not)g(limited.)49 b(If)32 b(an)h(attempt)h(is)
-f(made)g(to)h(set)f Fe(history-size)39 b Fo(to)1110 3070
+2898 y(en)m(tries)j(is)f(not)g(limited.)49 b(If)32 b(an)h(attempt)h(is)
+f(made)g(to)h(set)f Fe(history-size)39 b Fo(to)1110 3007
y(a)34 b(non-n)m(umeric)f(v)-5 b(alue,)34 b(the)g(maxim)m(um)f(n)m(um)m
-(b)s(er)f(of)h(history)h(en)m(tries)g(will)1110 3180
-y(b)s(e)c(set)h(to)g(500.)630 3352 y Fn(horizontal-scroll-mode)1110
-3461 y Fo(This)k(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f
+(b)s(er)f(of)h(history)h(en)m(tries)g(will)1110 3117
+y(b)s(e)c(set)h(to)g(500.)630 3273 y Fn(horizontal-scroll-mode)1110
+3383 y Fo(This)k(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f
(`)p Fn(on)p Fo(')g(or)g(`)p Fn(off)p Fo('.)57 b(Setting)36
-b(it)g(to)h(`)p Fn(on)p Fo(')1110 3571 y(means)26 b(that)h(the)f(text)h
+b(it)g(to)h(`)p Fn(on)p Fo(')1110 3493 y(means)26 b(that)h(the)f(text)h
(of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m
-(tally)1110 3680 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
-(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 3790
-y(screen,)27 b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g
-(line.)39 b(By)27 b(default,)g(this)1110 3900 y(v)-5
-b(ariable)31 b(is)g(set)f(to)i(`)p Fn(off)p Fo('.)630
-4072 y Fn(input-meta)1110 4181 y Fo(If)f(set)g(to)h(`)p
+(tally)1110 3602 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
+(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 3712
+y(screen,)c(instead)g(of)f(wrapping)f(on)m(to)i(a)g(new)e(screen)i
+(line.)40 b(This)26 b(v)-5 b(ariable)28 b(is)1110 3821
+y(automatically)k(set)e(to)g(`)p Fn(on)p Fo(')f(for)g(terminals)g(of)h
+(heigh)m(t)g(1.)41 b(By)29 b(default,)h(this)1110 3931
+y(v)-5 b(ariable)31 b(is)g(set)f(to)i(`)p Fn(off)p Fo('.)630
+4088 y Fn(input-meta)1110 4197 y Fo(If)f(set)g(to)h(`)p
Fn(on)p Fo(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it)
-i(will)f(not)h(clear)1110 4291 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
+i(will)f(not)h(clear)1110 4307 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
(c)m(haracters)h(it)f(reads\),)j(regardless)c(of)h(what)g(the)1110
-4401 y(terminal)k(claims)h(it)f(can)g(supp)s(ort.)79
+4416 y(terminal)k(claims)h(it)f(can)g(supp)s(ort.)79
b(The)44 b(default)g(v)-5 b(alue)44 b(is)g(`)p Fn(off)p
-Fo(',)j(but)1110 4510 y(Readline)24 b(will)h(set)f(it)g(to)h(`)p
+Fo(',)j(but)1110 4526 y(Readline)24 b(will)h(set)f(it)g(to)h(`)p
Fn(on)p Fo(')e(if)h(the)g(lo)s(cale)i(con)m(tains)f(eigh)m(t-bit)g(c)m
-(haracters.)1110 4620 y(The)30 b(name)g Fn(meta-flag)e
+(haracters.)1110 4635 y(The)30 b(name)g Fn(meta-flag)e
Fo(is)j(a)f(synon)m(ym)g(for)g(this)h(v)-5 b(ariable.)630
4792 y Fn(isearch-terminators)1110 4902 y Fo(The)51 b(string)h(of)g(c)m
(haracters)h(that)f(should)e(terminate)j(an)f(incremen)m(tal)1110
@@ -6214,9 +6261,9 @@ y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h
(convert-meta)d(off)390 4573 y(#)j(display)f(characters)f(with)i(the)g
(eighth)f(bit)h(set)g(directly)390 4682 y(#)g(rather)g(than)f(as)h
(meta-prefixed)e(characters)390 4792 y(set)i(output-meta)e(on)390
-5011 y(#)i(if)h(there)e(are)h(more)g(than)f(150)h(possible)f
-(completions)e(for)390 5121 y(#)j(a)h(word,)e(ask)h(the)g(user)g(if)g
-(he)g(wants)f(to)i(see)f(all)f(of)i(them)390 5230 y(set)f
+5011 y(#)i(if)h(there)e(are)h(150)g(or)g(more)g(possible)e(completions)
+g(for)i(a)g(word,)390 5121 y(#)g(ask)g(whether)f(or)h(not)g(the)g(user)
+g(wants)f(to)h(see)g(all)g(of)g(them)390 5230 y(set)g
(completion-query-items)42 b(150)p eop end
%%Page: 16 19
TeXDict begin 16 18 bop 150 -116 a Fo(Chapter)30 b(1:)41
@@ -6265,482 +6312,519 @@ b(This)23 b(will)g(not)h(ha)m(v)m(e)h(the)e(desired)g(e\013ect)i(if)e
y(not)k(tak)m(e)i(up)e(more)g(than)g(one)g(ph)m(ysical)h(line)g(or)f
(if)g(the)h(length)f(of)h(the)f(curren)m(t)g(Readline)630
4960 y(line)k(is)f(not)h(greater)g(than)f(the)h(length)g(of)f(the)h
-(prompt)e(plus)h(the)g(screen)h(width.)150 5121 y Fn(clear-screen)c
-(\(C-l\))630 5230 y Fo(Clear)g(the)g(screen)f(and)h(redra)m(w)f(the)h
-(curren)m(t)f(line,)i(lea)m(ving)g(the)f(curren)m(t)g(line)g(at)g(the)g
-(top)630 5340 y(of)k(the)f(screen.)p eop end
+(prompt)e(plus)h(the)g(screen)h(width.)150 5121 y Fn(clear-display)c
+(\(M-C-l\))630 5230 y Fo(Clear)33 b(the)g(screen)g(and,)h(if)e(p)s
+(ossible,)i(the)f(terminal's)g(scrollbac)m(k)i(bu\013er,)e(then)f
+(redra)m(w)630 5340 y(the)f(curren)m(t)f(line,)h(lea)m(ving)h(the)e
+(curren)m(t)h(line)f(at)h(the)g(top)g(of)f(the)h(screen.)p
+eop end
%%Page: 17 20
TeXDict begin 17 19 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(17)150 299 y Fn
-(redraw-current-line)25 b(\(\))630 408 y Fo(Refresh)30
+b(Command)29 b(Line)i(Editing)2107 b(17)150 299 y Fn(clear-screen)27
+b(\(C-l\))630 408 y Fo(Clear)35 b(the)f(screen,)i(then)e(redra)m(w)g
+(the)h(curren)m(t)f(line,)i(lea)m(ving)g(the)f(curren)m(t)f(line)h(at)g
+(the)630 518 y(top)c(of)f(the)h(screen.)150 665 y Fn
+(redraw-current-line)25 b(\(\))630 775 y Fo(Refresh)30
b(the)g(curren)m(t)h(line.)41 b(By)30 b(default,)h(this)f(is)h(un)m(b)s
-(ound.)150 596 y Fd(1.4.2)63 b(Commands)42 b(F)-10 b(or)41
-b(Manipulating)h(The)f(History)150 761 y Fn(accept-line)27
-b(\(Newline)h(or)i(Return\))630 871 y Fo(Accept)36 b(the)g(line)f
+(ound.)150 962 y Fd(1.4.2)63 b(Commands)42 b(F)-10 b(or)41
+b(Manipulating)h(The)f(History)150 1128 y Fn(accept-line)27
+b(\(Newline)h(or)i(Return\))630 1237 y Fo(Accept)36 b(the)g(line)f
(regardless)h(of)f(where)g(the)g(cursor)g(is.)55 b(If)34
b(this)h(line)h(is)f(non-empt)m(y)-8 b(,)37 b(it)630
-981 y(ma)m(y)32 b(b)s(e)g(added)f(to)h(the)g(history)g(list)h(for)e
+1347 y(ma)m(y)32 b(b)s(e)g(added)f(to)h(the)g(history)g(list)h(for)e
(future)g(recall)j(with)d Fn(add_history\(\))p Fo(.)42
-b(If)31 b(this)630 1090 y(line)g(is)f(a)h(mo)s(di\014ed)e(history)h
+b(If)31 b(this)630 1457 y(line)g(is)f(a)h(mo)s(di\014ed)e(history)h
(line,)h(the)g(history)f(line)h(is)f(restored)h(to)g(its)g(original)g
-(state.)150 1237 y Fn(previous-history)26 b(\(C-p\))630
-1347 y Fo(Mo)m(v)m(e)32 b(`bac)m(k')g(through)e(the)g(history)h(list,)g
-(fetc)m(hing)g(the)g(previous)f(command.)150 1494 y Fn(next-history)d
-(\(C-n\))630 1604 y Fo(Mo)m(v)m(e)32 b(`forw)m(ard')f(through)e(the)i
+(state.)150 1604 y Fn(previous-history)26 b(\(C-p\))630
+1713 y Fo(Mo)m(v)m(e)32 b(`bac)m(k')g(through)e(the)g(history)h(list,)g
+(fetc)m(hing)g(the)g(previous)f(command.)150 1861 y Fn(next-history)d
+(\(C-n\))630 1970 y Fo(Mo)m(v)m(e)32 b(`forw)m(ard')f(through)e(the)i
(history)f(list,)i(fetc)m(hing)f(the)g(next)f(command.)150
-1751 y Fn(beginning-of-history)25 b(\(M-<\))630 1861
+2117 y Fn(beginning-of-history)25 b(\(M-<\))630 2227
y Fo(Mo)m(v)m(e)32 b(to)g(the)e(\014rst)g(line)g(in)h(the)f(history)-8
-b(.)150 2008 y Fn(end-of-history)26 b(\(M->\))630 2117
+b(.)150 2374 y Fn(end-of-history)26 b(\(M->\))630 2484
y Fo(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(input)e(history)-8
b(,)31 b(i.e.,)h(the)f(line)f(curren)m(tly)h(b)s(eing)f(en)m(tered.)150
-2265 y Fn(reverse-search-history)24 b(\(C-r\))630 2374
+2631 y Fn(reverse-search-history)24 b(\(C-r\))630 2741
y Fo(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g(the)f(curren)m(t)g
(line)g(and)g(mo)m(ving)h(`up')e(through)h(the)g(his-)630
-2484 y(tory)g(as)f(necessary)-8 b(.)42 b(This)29 b(is)i(an)f(incremen)m
-(tal)i(searc)m(h.)150 2631 y Fn(forward-search-history)24
-b(\(C-s\))630 2741 y Fo(Searc)m(h)44 b(forw)m(ard)f(starting)h(at)h
+2850 y(tory)26 b(as)h(necessary)-8 b(.)40 b(This)25 b(is)i(an)f
+(incremen)m(tal)h(searc)m(h.)40 b(This)25 b(command)h(sets)h(the)f
+(region)630 2960 y(to)31 b(the)g(matc)m(hed)g(text)g(and)f(activ)-5
+b(ates)33 b(the)d(mark.)150 3107 y Fn(forward-search-history)24
+b(\(C-s\))630 3217 y Fo(Searc)m(h)44 b(forw)m(ard)f(starting)h(at)h
(the)e(curren)m(t)h(line)g(and)f(mo)m(ving)h(`do)m(wn')g(through)f(the)
-630 2850 y(history)30 b(as)h(necessary)-8 b(.)41 b(This)30
-b(is)g(an)h(incremen)m(tal)g(searc)m(h.)150 2998 y Fn
-(non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24
-b(\(M-p\))630 3107 y Fo(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g
+630 3326 y(history)38 b(as)g(necessary)-8 b(.)65 b(This)38
+b(is)g(an)g(incremen)m(tal)h(searc)m(h.)65 b(This)37
+b(command)h(sets)h(the)630 3436 y(region)31 b(to)g(the)g(matc)m(hed)g
+(text)g(and)f(activ)-5 b(ates)33 b(the)d(mark.)150 3583
+y Fn(non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24
+b(\(M-p\))630 3693 y Fo(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g
(the)f(curren)m(t)g(line)g(and)g(mo)m(ving)h(`up')e(through)h(the)g
-(his-)630 3217 y(tory)36 b(as)g(necessary)h(using)e(a)i(non-incremen)m
+(his-)630 3802 y(tory)36 b(as)g(necessary)h(using)e(a)i(non-incremen)m
(tal)g(searc)m(h)f(for)g(a)g(string)g(supplied)f(b)m(y)h(the)630
-3326 y(user.)k(The)30 b(searc)m(h)h(string)f(ma)m(y)h(matc)m(h)g(an)m
-(ywhere)g(in)f(a)h(history)f(line.)150 3474 y Fn
+3912 y(user.)k(The)30 b(searc)m(h)h(string)f(ma)m(y)h(matc)m(h)g(an)m
+(ywhere)g(in)f(a)h(history)f(line.)150 4059 y Fn
(non-incremental-forward-)o(sear)o(ch-h)o(ist)o(ory)24
-b(\(M-n\))630 3583 y Fo(Searc)m(h)44 b(forw)m(ard)f(starting)h(at)h
+b(\(M-n\))630 4169 y Fo(Searc)m(h)44 b(forw)m(ard)f(starting)h(at)h
(the)e(curren)m(t)h(line)g(and)f(mo)m(ving)h(`do)m(wn')g(through)f(the)
-630 3693 y(history)27 b(as)f(necessary)i(using)e(a)h(non-incremen)m
+630 4278 y(history)27 b(as)f(necessary)i(using)e(a)h(non-incremen)m
(tal)g(searc)m(h)h(for)e(a)h(string)g(supplied)e(b)m(y)i(the)630
-3802 y(user.)40 b(The)30 b(searc)m(h)h(string)f(ma)m(y)h(matc)m(h)g(an)
-m(ywhere)g(in)f(a)h(history)f(line.)150 3950 y Fn
-(history-search-forward)24 b(\(\))630 4059 y Fo(Searc)m(h)42
+4388 y(user.)40 b(The)30 b(searc)m(h)h(string)f(ma)m(y)h(matc)m(h)g(an)
+m(ywhere)g(in)f(a)h(history)f(line.)150 4535 y Fn
+(history-search-forward)24 b(\(\))630 4645 y Fo(Searc)m(h)42
b(forw)m(ard)f(through)f(the)i(history)f(for)g(the)h(string)f(of)h(c)m
-(haracters)h(b)s(et)m(w)m(een)f(the)630 4169 y(start)36
+(haracters)h(b)s(et)m(w)m(een)f(the)630 4754 y(start)36
b(of)h(the)f(curren)m(t)f(line)i(and)e(the)h(p)s(oin)m(t.)58
b(The)35 b(searc)m(h)i(string)e(m)m(ust)h(matc)m(h)h(at)g(the)630
-4278 y(b)s(eginning)32 b(of)g(a)h(history)g(line.)47
-b(This)32 b(is)h(a)f(non-incremen)m(tal)i(searc)m(h.)48
-b(By)33 b(default,)g(this)630 4388 y(command)d(is)h(un)m(b)s(ound.)150
-4535 y Fn(history-search-backward)24 b(\(\))630 4645
-y Fo(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g
-(the)f(string)h(of)g(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630
-4754 y(start)g(of)h(the)f(curren)m(t)f(line)i(and)e(the)h(p)s(oin)m(t.)
-58 b(The)35 b(searc)m(h)i(string)e(m)m(ust)h(matc)m(h)h(at)g(the)630
4864 y(b)s(eginning)32 b(of)g(a)h(history)g(line.)47
b(This)32 b(is)h(a)f(non-incremen)m(tal)i(searc)m(h.)48
b(By)33 b(default,)g(this)630 4974 y(command)d(is)h(un)m(b)s(ound.)150
-5121 y Fn(history-substring-search)o(-for)o(ward)24 b(\(\))630
-5230 y Fo(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)f(for)g
-(the)h(string)f(of)h(c)m(haracters)h(b)s(et)m(w)m(een)f(the)630
-5340 y(start)29 b(of)g(the)g(curren)m(t)g(line)g(and)f(the)h(p)s(oin)m
-(t.)40 b(The)29 b(searc)m(h)g(string)g(ma)m(y)g(matc)m(h)h(an)m(ywhere)
-p eop end
+5121 y Fn(history-search-backward)24 b(\(\))630 5230
+y Fo(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g
+(the)f(string)h(of)g(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630
+5340 y(start)g(of)h(the)f(curren)m(t)f(line)i(and)e(the)h(p)s(oin)m(t.)
+58 b(The)35 b(searc)m(h)i(string)e(m)m(ust)h(matc)m(h)h(at)g(the)p
+eop end
%%Page: 18 21
TeXDict begin 18 20 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(18)630 299 y(in)32
-b(a)h(history)g(line.)47 b(This)32 b(is)g(a)h(non-incremen)m(tal)h
-(searc)m(h.)47 b(By)33 b(default,)h(this)e(command)630
-408 y(is)e(un)m(b)s(ound.)150 573 y Fn(history-substring-search)o(-bac)
-o(kwar)o(d)24 b(\(\))630 683 y Fo(Searc)m(h)35 b(bac)m(kw)m(ard)g
-(through)f(the)h(history)g(for)g(the)f(string)h(of)g(c)m(haracters)h(b)
-s(et)m(w)m(een)g(the)630 793 y(start)29 b(of)g(the)g(curren)m(t)g(line)
-g(and)f(the)h(p)s(oin)m(t.)40 b(The)29 b(searc)m(h)g(string)g(ma)m(y)g
-(matc)m(h)h(an)m(ywhere)630 902 y(in)i(a)h(history)g(line.)47
-b(This)32 b(is)g(a)h(non-incremen)m(tal)h(searc)m(h.)47
-b(By)33 b(default,)h(this)e(command)630 1012 y(is)e(un)m(b)s(ound.)150
-1177 y Fn(yank-nth-arg)d(\(M-C-y\))630 1286 y Fo(Insert)37
+b(Command)29 b(Line)i(Editing)2107 b(18)630 299 y(b)s(eginning)32
+b(of)g(a)h(history)g(line.)47 b(This)32 b(is)h(a)f(non-incremen)m(tal)i
+(searc)m(h.)48 b(By)33 b(default,)g(this)630 408 y(command)d(is)h(un)m
+(b)s(ound.)150 581 y Fn(history-substring-search)o(-for)o(ward)24
+b(\(\))630 690 y Fo(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i
+(history)f(for)g(the)h(string)f(of)h(c)m(haracters)h(b)s(et)m(w)m(een)f
+(the)630 800 y(start)29 b(of)g(the)g(curren)m(t)g(line)g(and)f(the)h(p)
+s(oin)m(t.)40 b(The)29 b(searc)m(h)g(string)g(ma)m(y)g(matc)m(h)h(an)m
+(ywhere)630 910 y(in)i(a)h(history)g(line.)47 b(This)32
+b(is)g(a)h(non-incremen)m(tal)h(searc)m(h.)47 b(By)33
+b(default,)h(this)e(command)630 1019 y(is)e(un)m(b)s(ound.)150
+1192 y Fn(history-substring-search)o(-bac)o(kwar)o(d)24
+b(\(\))630 1301 y Fo(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h
+(history)g(for)g(the)f(string)h(of)g(c)m(haracters)h(b)s(et)m(w)m(een)g
+(the)630 1411 y(start)29 b(of)g(the)g(curren)m(t)g(line)g(and)f(the)h
+(p)s(oin)m(t.)40 b(The)29 b(searc)m(h)g(string)g(ma)m(y)g(matc)m(h)h
+(an)m(ywhere)630 1520 y(in)i(a)h(history)g(line.)47 b(This)32
+b(is)g(a)h(non-incremen)m(tal)h(searc)m(h.)47 b(By)33
+b(default,)h(this)e(command)630 1630 y(is)e(un)m(b)s(ound.)150
+1802 y Fn(yank-nth-arg)d(\(M-C-y\))630 1912 y Fo(Insert)37
b(the)g(\014rst)f(argumen)m(t)i(to)f(the)h(previous)e(command)h
-(\(usually)g(the)g(second)g(w)m(ord)630 1396 y(on)32
+(\(usually)g(the)g(second)g(w)m(ord)630 2021 y(on)32
b(the)g(previous)f(line\))i(at)f(p)s(oin)m(t.)46 b(With)32
b(an)g(argumen)m(t)g Fe(n)p Fo(,)g(insert)g(the)g Fe(n)p
-Fo(th)f(w)m(ord)g(from)630 1506 y(the)k(previous)f(command)h(\(the)g(w)
+Fo(th)f(w)m(ord)g(from)630 2131 y(the)k(previous)f(command)h(\(the)g(w)
m(ords)g(in)f(the)h(previous)g(command)f(b)s(egin)h(with)f(w)m(ord)630
-1615 y(0\).)69 b(A)40 b(negativ)m(e)h(argumen)m(t)f(inserts)g(the)f
+2241 y(0\).)69 b(A)40 b(negativ)m(e)h(argumen)m(t)f(inserts)g(the)f
Fe(n)p Fo(th)g(w)m(ord)g(from)g(the)h(end)f(of)h(the)f(previous)630
-1725 y(command.)48 b(Once)33 b(the)g(argumen)m(t)h Fe(n)e
+2350 y(command.)48 b(Once)33 b(the)g(argumen)m(t)h Fe(n)e
Fo(is)h(computed,)h(the)f(argumen)m(t)g(is)g(extracted)i(as)e(if)630
-1834 y(the)e(`)p Fn(!)p Fg(n)p Fo(')f(history)g(expansion)g(had)g(b)s
-(een)g(sp)s(eci\014ed.)150 1999 y Fn(yank-last-arg)d(\(M-.)i(or)h
-(M-_\))630 2109 y Fo(Insert)k(last)i(argumen)m(t)g(to)g(the)f(previous)
+2460 y(the)e(`)p Fn(!)p Fg(n)p Fo(')f(history)g(expansion)g(had)g(b)s
+(een)g(sp)s(eci\014ed.)150 2632 y Fn(yank-last-arg)d(\(M-.)i(or)h
+(M-_\))630 2742 y Fo(Insert)k(last)i(argumen)m(t)g(to)g(the)f(previous)
f(command)h(\(the)h(last)f(w)m(ord)g(of)g(the)g(previous)630
-2218 y(history)e(en)m(try\).)51 b(With)34 b(a)g(n)m(umeric)g(argumen)m
+2851 y(history)e(en)m(try\).)51 b(With)34 b(a)g(n)m(umeric)g(argumen)m
(t,)h(b)s(eha)m(v)m(e)f(exactly)h(lik)m(e)g Fn(yank-nth-arg)p
-Fo(.)630 2328 y(Successiv)m(e)26 b(calls)g(to)f Fn(yank-last-arg)c
+Fo(.)630 2961 y(Successiv)m(e)26 b(calls)g(to)f Fn(yank-last-arg)c
Fo(mo)m(v)m(e)27 b(bac)m(k)e(through)f(the)h(history)g(list,)i
-(inserting)630 2438 y(the)c(last)g(w)m(ord)f(\(or)h(the)g(w)m(ord)f(sp)
+(inserting)630 3070 y(the)c(last)g(w)m(ord)f(\(or)h(the)g(w)m(ord)f(sp)
s(eci\014ed)g(b)m(y)g(the)h(argumen)m(t)g(to)g(the)g(\014rst)f(call\))i
-(of)f(eac)m(h)h(line)630 2547 y(in)36 b(turn.)58 b(An)m(y)36
+(of)f(eac)m(h)h(line)630 3180 y(in)36 b(turn.)58 b(An)m(y)36
b(n)m(umeric)h(argumen)m(t)f(supplied)g(to)h(these)g(successiv)m(e)g
-(calls)h(determines)630 2657 y(the)d(direction)g(to)h(mo)m(v)m(e)g
+(calls)h(determines)630 3290 y(the)d(direction)g(to)h(mo)m(v)m(e)g
(through)e(the)h(history)-8 b(.)54 b(A)35 b(negativ)m(e)i(argumen)m(t)e
-(switc)m(hes)h(the)630 2766 y(direction)23 b(through)g(the)g(history)f
+(switc)m(hes)h(the)630 3399 y(direction)23 b(through)g(the)g(history)f
(\(bac)m(k)i(or)f(forw)m(ard\).)38 b(The)22 b(history)h(expansion)g
-(facilities)630 2876 y(are)28 b(used)f(to)h(extract)h(the)f(last)g
+(facilities)630 3509 y(are)28 b(used)f(to)h(extract)h(the)f(last)g
(argumen)m(t,)h(as)e(if)h(the)g(`)p Fn(!$)p Fo(')f(history)g(expansion)
-h(had)f(b)s(een)630 2986 y(sp)s(eci\014ed.)150 3190 y
-Fd(1.4.3)63 b(Commands)42 b(F)-10 b(or)41 b(Changing)g(T)-10
-b(ext)150 3365 y Fg(end-of-file)27 b Fn(\(usually)h(C-d\))630
-3475 y Fo(The)e(c)m(haracter)h(indicating)h(end-of-\014le)e(as)h(set,)g
+h(had)f(b)s(een)630 3618 y(sp)s(eci\014ed.)150 3791 y
+Fn(operate-and-get-next)e(\(C-o\))630 3900 y Fo(Accept)30
+b(the)g(curren)m(t)e(line)i(for)f(return)f(to)h(the)h(calling)g
+(application)h(as)e(if)g(a)h(newline)f(had)630 4010 y(b)s(een)22
+b(en)m(tered,)k(and)d(fetc)m(h)h(the)f(next)g(line)h(relativ)m(e)h(to)f
+(the)f(curren)m(t)g(line)h(from)f(the)g(history)630 4120
+y(for)31 b(editing.)43 b(A)31 b(n)m(umeric)f(argumen)m(t,)i(if)f
+(supplied,)f(sp)s(eci\014es)h(the)g(history)f(en)m(try)i(to)f(use)630
+4229 y(instead)g(of)f(the)h(curren)m(t)f(line.)150 4441
+y Fd(1.4.3)63 b(Commands)42 b(F)-10 b(or)41 b(Changing)g(T)-10
+b(ext)150 4620 y Fg(end-of-file)27 b Fn(\(usually)h(C-d\))630
+4729 y Fo(The)e(c)m(haracter)h(indicating)h(end-of-\014le)e(as)h(set,)g
(for)f(example,)i(b)m(y)e Fn(stty)p Fo(.)39 b(If)25 b(this)h(c)m
-(harac-)630 3584 y(ter)c(is)g(read)g(when)e(there)i(are)h(no)e(c)m
+(harac-)630 4839 y(ter)c(is)g(read)g(when)e(there)i(are)h(no)e(c)m
(haracters)j(on)d(the)h(line,)i(and)d(p)s(oin)m(t)h(is)g(at)h(the)f(b)s
-(eginning)630 3694 y(of)31 b(the)f(line,)h(Readline)g(in)m(terprets)g
+(eginning)630 4948 y(of)31 b(the)f(line,)h(Readline)g(in)m(terprets)g
(it)g(as)f(the)h(end)f(of)g(input)f(and)h(returns)f Fh(eof)p
-Fo(.)150 3859 y Fn(delete-char)e(\(C-d\))630 3968 y Fo(Delete)35
+Fo(.)150 5121 y Fn(delete-char)e(\(C-d\))630 5230 y Fo(Delete)35
b(the)f(c)m(haracter)h(at)f(p)s(oin)m(t.)49 b(If)33 b(this)g(function)g
-(is)g(b)s(ound)e(to)j(the)g(same)f(c)m(haracter)630 4078
+(is)g(b)s(ound)e(to)j(the)g(same)f(c)m(haracter)630 5340
y(as)e(the)f(tt)m(y)i Fh(eof)d Fo(c)m(haracter,)j(as)f
Fg(C-d)e Fo(commonly)i(is,)g(see)g(ab)s(o)m(v)m(e)h(for)e(the)g
-(e\013ects.)150 4243 y Fn(backward-delete-char)25 b(\(Rubout\))630
-4353 y Fo(Delete)32 b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40
-b(A)30 b(n)m(umeric)g(argumen)m(t)h(means)f(to)h(kill)g(the)630
-4462 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
-4627 y Fn(forward-backward-delete-)o(char)24 b(\(\))630
-4737 y Fo(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h
+(e\013ects.)p eop end
+%%Page: 19 22
+TeXDict begin 19 21 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(19)150 299 y Fn
+(backward-delete-char)25 b(\(Rubout\))630 408 y Fo(Delete)32
+b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40 b(A)30
+b(n)m(umeric)g(argumen)m(t)h(means)f(to)h(kill)g(the)630
+518 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
+669 y Fn(forward-backward-delete-)o(char)24 b(\(\))630
+779 y Fo(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h
(unless)d(the)i(cursor)e(is)h(at)h(the)g(end)e(of)i(the)630
-4846 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s
-(ehind)d(the)i(cursor)f(is)g(deleted.)46 b(By)32 b(default,)g(this)630
-4956 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
-5121 y Fn(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 5230
+889 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s(ehind)
+d(the)i(cursor)f(is)g(deleted.)46 b(By)32 b(default,)g(this)630
+998 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
+1149 y Fn(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 1259
y Fo(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)h
(v)m(erbatim.)53 b(This)33 b(is)i(ho)m(w)f(to)h(insert)f(k)m(ey)630
-5340 y(sequences)d(lik)m(e)g Fg(C-q)p Fo(,)f(for)g(example.)p
-eop end
-%%Page: 19 22
-TeXDict begin 19 21 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(19)150 299 y Fn(tab-insert)28
-b(\(M-TAB\))630 408 y Fo(Insert)i(a)h(tab)f(c)m(haracter.)150
-573 y Fn(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o(\))630
-683 y Fo(Insert)g(y)m(ourself.)150 848 y Fn(bracketed-paste-begin)25
-b(\(\))630 957 y Fo(This)f(function)h(is)f(in)m(tended)h(to)h(b)s(e)e
-(b)s(ound)f(to)i(the)g Fn(")p Fo(brac)m(k)m(eted)h(paste)p
-Fn(")f Fo(escap)s(e)h(sequence)630 1067 y(sen)m(t)38
-b(b)m(y)f(some)h(terminals,)i(and)d(suc)m(h)g(a)h(binding)e(is)i
-(assigned)f(b)m(y)h(default.)62 b(It)38 b(allo)m(ws)630
-1177 y(Readline)33 b(to)g(insert)g(the)f(pasted)h(text)g(as)g(a)g
-(single)g(unit)f(without)h(treating)h(eac)m(h)f(c)m(har-)630
-1286 y(acter)40 b(as)f(if)g(it)g(had)f(b)s(een)g(read)h(from)f(the)h(k)
+1369 y(sequences)d(lik)m(e)g Fg(C-q)p Fo(,)f(for)g(example.)150
+1520 y Fn(tab-insert)e(\(M-TAB\))630 1630 y Fo(Insert)i(a)h(tab)f(c)m
+(haracter.)150 1781 y Fn(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o
+(\))630 1891 y Fo(Insert)g(y)m(ourself.)150 2042 y Fn
+(bracketed-paste-begin)25 b(\(\))630 2151 y Fo(This)f(function)h(is)f
+(in)m(tended)h(to)h(b)s(e)e(b)s(ound)f(to)i(the)g Fn(")p
+Fo(brac)m(k)m(eted)h(paste)p Fn(")f Fo(escap)s(e)h(sequence)630
+2261 y(sen)m(t)38 b(b)m(y)f(some)h(terminals,)i(and)d(suc)m(h)g(a)h
+(binding)e(is)i(assigned)f(b)m(y)h(default.)62 b(It)38
+b(allo)m(ws)630 2371 y(Readline)33 b(to)g(insert)g(the)f(pasted)h(text)
+g(as)g(a)g(single)g(unit)f(without)h(treating)h(eac)m(h)f(c)m(har-)630
+2480 y(acter)40 b(as)f(if)g(it)g(had)f(b)s(een)g(read)h(from)f(the)h(k)
m(eyb)s(oard.)66 b(The)39 b(c)m(haracters)h(are)f(inserted)630
-1396 y(as)44 b(if)g(eac)m(h)i(one)e(w)m(as)g(b)s(ound)e(to)j
+2590 y(as)44 b(if)g(eac)m(h)i(one)e(w)m(as)g(b)s(ound)e(to)j
Fn(self-insert)c Fo(instead)j(of)h(executing)g(an)m(y)f(editing)630
-1505 y(commands.)150 1670 y Fn(transpose-chars)26 b(\(C-t\))630
-1780 y Fo(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)g(cursor)f
-(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g(cursor,)630
-1889 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m(ell.)57
-b(If)35 b(the)h(insertion)g(p)s(oin)m(t)f(is)g(at)i(the)e(end)g(of)h
-(the)630 1999 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h(last)h
-(t)m(w)m(o)g(c)m(haracters)g(of)f(the)h(line.)38 b(Negativ)m(e)25
-b(argumen)m(ts)630 2109 y(ha)m(v)m(e)32 b(no)e(e\013ect.)150
-2273 y Fn(transpose-words)c(\(M-t\))630 2383 y Fo(Drag)33
-b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g(the)h(w)m(ord)f
-(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s(oin)m(t)f(past)g(that)630
-2493 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27 b(the)i(insertion)f(p)s(oin)m
-(t)h(is)f(at)h(the)g(end)e(of)i(the)f(line,)i(this)e(transp)s(oses)g
-(the)630 2602 y(last)j(t)m(w)m(o)h(w)m(ords)e(on)g(the)h(line.)150
-2767 y Fn(upcase-word)c(\(M-u\))630 2877 y Fo(Upp)s(ercase)32
-b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i(w)m(ord.)45
-b(With)32 b(a)g(negativ)m(e)j(argumen)m(t,)e(upp)s(er-)630
-2986 y(case)e(the)g(previous)f(w)m(ord,)g(but)g(do)g(not)h(mo)m(v)m(e)h
-(the)e(cursor.)150 3151 y Fn(downcase-word)d(\(M-l\))630
-3261 y Fo(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))i
+2699 y(commands.)630 2830 y(Brac)m(k)m(eted)38 b(paste)f(sets)f(the)h
+(region)f(\(the)h(c)m(haracters)g(b)s(et)m(w)m(een)g(p)s(oin)m(t)f(and)
+g(the)g(mark\))630 2939 y(to)j(the)g(inserted)f(text.)65
+b(It)39 b(uses)f(the)g(concept)h(of)g(an)f Ff(active)i(mark)10
+b Fo(:)57 b(when)38 b(the)g(mark)630 3049 y(is)d(activ)m(e,)k(Readline)
+c(redispla)m(y)h(uses)e(the)h(terminal's)h(standout)f(mo)s(de)f(to)i
+(denote)g(the)630 3159 y(region.)150 3310 y Fn(transpose-chars)26
+b(\(C-t\))630 3420 y Fo(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)
+g(cursor)f(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g
+(cursor,)630 3529 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m
+(ell.)57 b(If)35 b(the)h(insertion)g(p)s(oin)m(t)f(is)g(at)i(the)e(end)
+g(of)h(the)630 3639 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h
+(last)h(t)m(w)m(o)g(c)m(haracters)g(of)f(the)h(line.)38
+b(Negativ)m(e)25 b(argumen)m(ts)630 3748 y(ha)m(v)m(e)32
+b(no)e(e\013ect.)150 3900 y Fn(transpose-words)c(\(M-t\))630
+4009 y Fo(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g
+(the)h(w)m(ord)f(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s(oin)m(t)f(past)
+g(that)630 4119 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27
+b(the)i(insertion)f(p)s(oin)m(t)h(is)f(at)h(the)g(end)e(of)i(the)f
+(line,)i(this)e(transp)s(oses)g(the)630 4228 y(last)j(t)m(w)m(o)h(w)m
+(ords)e(on)g(the)h(line.)150 4380 y Fn(upcase-word)c(\(M-u\))630
+4489 y Fo(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i
+(w)m(ord.)45 b(With)32 b(a)g(negativ)m(e)j(argumen)m(t,)e(upp)s(er-)630
+4599 y(case)e(the)g(previous)f(w)m(ord,)g(but)g(do)g(not)h(mo)m(v)m(e)h
+(the)e(cursor.)150 4750 y Fn(downcase-word)d(\(M-l\))630
+4860 y Fo(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))i
(w)m(ord.)37 b(With)22 b(a)g(negativ)m(e)i(argumen)m(t,)g(lo)m(w)m
-(ercase)630 3370 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f(mo)m
-(v)m(e)i(the)f(cursor.)150 3535 y Fn(capitalize-word)26
-b(\(M-c\))630 3645 y Fo(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo)m
+(ercase)630 4969 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f(mo)m
+(v)m(e)i(the)f(cursor.)150 5121 y Fn(capitalize-word)26
+b(\(M-c\))630 5230 y Fo(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo)m
(wing\))i(w)m(ord.)38 b(With)21 b(a)h(negativ)m(e)h(argumen)m(t,)h
-(capitalize)630 3754 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f
-(mo)m(v)m(e)i(the)f(cursor.)150 3919 y Fn(overwrite-mode)26
-b(\(\))630 4029 y Fo(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48
+(capitalize)630 5340 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f
+(mo)m(v)m(e)i(the)f(cursor.)p eop end
+%%Page: 20 23
+TeXDict begin 20 22 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(20)150 299 y Fn(overwrite-mode)26
+b(\(\))630 408 y Fo(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48
b(With)33 b(an)g(explicit)h(p)s(ositiv)m(e)g(n)m(umeric)f(argumen)m(t,)
-h(switc)m(hes)630 4138 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37
+h(switc)m(hes)630 518 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37
b(With)22 b(an)g(explicit)h(non-p)s(ositiv)m(e)f(n)m(umeric)g(argumen)m
-(t,)i(switc)m(hes)e(to)630 4248 y(insert)30 b(mo)s(de.)41
+(t,)i(switc)m(hes)e(to)630 628 y(insert)30 b(mo)s(de.)41
b(This)30 b(command)h(a\013ects)h(only)e Fn(emacs)f Fo(mo)s(de;)i
-Fn(vi)f Fo(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 4357
+Fn(vi)f Fo(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 737
y(di\013eren)m(tly)-8 b(.)42 b(Eac)m(h)31 b(call)h(to)f
Fn(readline\(\))c Fo(starts)k(in)f(insert)g(mo)s(de.)630
-4495 y(In)52 b(o)m(v)m(erwrite)h(mo)s(de,)58 b(c)m(haracters)c(b)s
-(ound)c(to)j Fn(self-insert)c Fo(replace)k(the)g(text)g(at)630
-4604 y(p)s(oin)m(t)59 b(rather)f(than)h(pushing)e(the)i(text)g(to)h
-(the)f(righ)m(t.)126 b(Characters)59 b(b)s(ound)d(to)630
-4714 y Fn(backward-delete-char)25 b Fo(replace)31 b(the)g(c)m(haracter)
-h(b)s(efore)e(p)s(oin)m(t)g(with)g(a)h(space.)630 4851
-y(By)g(default,)f(this)h(command)f(is)g(un)m(b)s(ound.)150
-5056 y Fd(1.4.4)63 b(Killing)42 b(And)e(Y)-10 b(anking)150
-5230 y Fn(kill-line)28 b(\(C-k\))630 5340 y Fo(Kill)j(the)f(text)i
-(from)e(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f(line.)p
-eop end
-%%Page: 20 23
-TeXDict begin 20 22 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(20)150 299 y Fn
-(backward-kill-line)25 b(\(C-x)30 b(Rubout\))630 408
-y Fo(Kill)h(bac)m(kw)m(ard)g(from)e(the)i(cursor)f(to)h(the)f(b)s
-(eginning)g(of)h(the)f(curren)m(t)g(line.)150 566 y Fn
-(unix-line-discard)c(\(C-u\))630 675 y Fo(Kill)31 b(bac)m(kw)m(ard)g
-(from)e(the)i(cursor)f(to)h(the)f(b)s(eginning)g(of)h(the)f(curren)m(t)
-g(line.)150 832 y Fn(kill-whole-line)c(\(\))630 942 y
-Fo(Kill)37 b(all)g(c)m(haracters)h(on)f(the)f(curren)m(t)h(line,)h(no)f
-(matter)g(where)f(p)s(oin)m(t)h(is.)59 b(By)36 b(default,)630
-1052 y(this)30 b(is)h(un)m(b)s(ound.)150 1209 y Fn(kill-word)d(\(M-d\))
-630 1318 y Fo(Kill)i(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f
+877 y(In)52 b(o)m(v)m(erwrite)h(mo)s(de,)58 b(c)m(haracters)c(b)s(ound)
+c(to)j Fn(self-insert)c Fo(replace)k(the)g(text)g(at)630
+986 y(p)s(oin)m(t)59 b(rather)f(than)h(pushing)e(the)i(text)g(to)h(the)
+f(righ)m(t.)126 b(Characters)59 b(b)s(ound)d(to)630 1096
+y Fn(backward-delete-char)25 b Fo(replace)31 b(the)g(c)m(haracter)h(b)s
+(efore)e(p)s(oin)m(t)g(with)g(a)h(space.)630 1236 y(By)g(default,)f
+(this)h(command)f(is)g(un)m(b)s(ound.)150 1445 y Fd(1.4.4)63
+b(Killing)42 b(And)e(Y)-10 b(anking)150 1622 y Fn(kill-line)28
+b(\(C-k\))630 1732 y Fo(Kill)k(the)f(text)i(from)d(p)s(oin)m(t)i(to)g
+(the)f(end)g(of)g(the)h(line.)44 b(With)31 b(a)h(negativ)m(e)i(n)m
+(umeric)d(argu-)630 1841 y(men)m(t,)g(kill)g(bac)m(kw)m(ard)g(from)f
+(the)g(cursor)g(to)h(the)g(b)s(eginning)e(of)i(the)g(curren)m(t)f
+(line.)150 2011 y Fn(backward-kill-line)25 b(\(C-x)30
+b(Rubout\))630 2120 y Fo(Kill)40 b(bac)m(kw)m(ard)h(from)e(the)h
+(cursor)g(to)g(the)g(b)s(eginning)g(of)g(the)g(curren)m(t)f(line.)70
+b(With)41 b(a)630 2230 y(negativ)m(e)47 b(n)m(umeric)e(argumen)m(t,)50
+b(kill)c(forw)m(ard)e(from)h(the)g(cursor)g(to)h(the)f(end)f(of)i(the)
+630 2339 y(curren)m(t)30 b(line.)150 2509 y Fn(unix-line-discard)c
+(\(C-u\))630 2619 y Fo(Kill)31 b(bac)m(kw)m(ard)g(from)e(the)i(cursor)f
+(to)h(the)f(b)s(eginning)g(of)h(the)f(curren)m(t)g(line.)150
+2788 y Fn(kill-whole-line)c(\(\))630 2898 y Fo(Kill)37
+b(all)g(c)m(haracters)h(on)f(the)f(curren)m(t)h(line,)h(no)f(matter)g
+(where)f(p)s(oin)m(t)h(is.)59 b(By)36 b(default,)630
+3007 y(this)30 b(is)h(un)m(b)s(ound.)150 3177 y Fn(kill-word)d(\(M-d\))
+630 3287 y Fo(Kill)i(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f
(curren)m(t)h(w)m(ord,)f(or)g(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)h
-(the)g(end)630 1428 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
+(the)g(end)630 3396 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f Fn(forward-word)p
-Fo(.)150 1585 y Fn(backward-kill-word)25 b(\(M-DEL\))630
-1695 y Fo(Kill)k(the)g(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t.)40
+Fo(.)150 3566 y Fn(backward-kill-word)25 b(\(M-DEL\))630
+3675 y Fo(Kill)k(the)g(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t.)40
b(W)-8 b(ord)29 b(b)s(oundaries)f(are)h(the)g(same)g(as)g
-Fn(backward-word)p Fo(.)150 1852 y Fn(unix-word-rubout)d(\(C-w\))630
-1961 y Fo(Kill)32 b(the)g(w)m(ord)f(b)s(ehind)f(p)s(oin)m(t,)i(using)f
-(white)h(space)g(as)g(a)g(w)m(ord)f(b)s(oundary)-8 b(.)43
-b(The)31 b(killed)630 2071 y(text)g(is)g(sa)m(v)m(ed)g(on)g(the)f
-(kill-ring.)150 2228 y Fn(unix-filename-rubout)25 b(\(\))630
-2338 y Fo(Kill)37 b(the)f(w)m(ord)g(b)s(ehind)f(p)s(oin)m(t,)j(using)e
+Fn(backward-word)p Fo(.)150 3845 y Fn(shell-transpose-words)c
+(\(M-C-t\))630 3955 y Fo(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)
+m(t)g(past)g(the)h(w)m(ord)f(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s
+(oin)m(t)f(past)g(that)630 4064 y(w)m(ord)c(as)h(w)m(ell.)41
+b(If)27 b(the)i(insertion)f(p)s(oin)m(t)h(is)f(at)h(the)g(end)e(of)i
+(the)f(line,)i(this)e(transp)s(oses)g(the)630 4174 y(last)j(t)m(w)m(o)h
+(w)m(ords)d(on)i(the)f(line.)41 b(W)-8 b(ord)31 b(b)s(oundaries)e(are)h
+(the)h(same)f(as)h Fn(shell-forward-)630 4283 y(word)e
+Fo(and)h Fn(shell-backward-word)p Fo(.)150 4453 y Fn(unix-word-rubout)c
+(\(C-w\))630 4562 y Fo(Kill)32 b(the)g(w)m(ord)f(b)s(ehind)f(p)s(oin)m
+(t,)i(using)f(white)h(space)g(as)g(a)g(w)m(ord)f(b)s(oundary)-8
+b(.)43 b(The)31 b(killed)630 4672 y(text)g(is)g(sa)m(v)m(ed)g(on)g(the)
+f(kill-ring.)150 4842 y Fn(unix-filename-rubout)25 b(\(\))630
+4951 y Fo(Kill)37 b(the)f(w)m(ord)g(b)s(ehind)f(p)s(oin)m(t,)j(using)e
(white)g(space)h(and)f(the)g(slash)g(c)m(haracter)i(as)f(the)630
-2447 y(w)m(ord)30 b(b)s(oundaries.)39 b(The)30 b(killed)h(text)g(is)g
-(sa)m(v)m(ed)g(on)g(the)f(kill-ring.)150 2605 y Fn
-(delete-horizontal-space)24 b(\(\))630 2714 y Fo(Delete)33
+5061 y(w)m(ord)30 b(b)s(oundaries.)39 b(The)30 b(killed)h(text)g(is)g
+(sa)m(v)m(ed)g(on)g(the)f(kill-ring.)150 5230 y Fn
+(delete-horizontal-space)24 b(\(\))630 5340 y Fo(Delete)33
b(all)e(spaces)g(and)e(tabs)i(around)e(p)s(oin)m(t.)41
-b(By)31 b(default,)f(this)h(is)f(un)m(b)s(ound.)150 2871
-y Fn(kill-region)d(\(\))630 2981 y Fo(Kill)k(the)f(text)i(in)e(the)g
-(curren)m(t)h(region.)41 b(By)31 b(default,)f(this)h(command)f(is)g(un)
-m(b)s(ound.)150 3138 y Fn(copy-region-as-kill)25 b(\(\))630
-3248 y Fo(Cop)m(y)34 b(the)g(text)h(in)f(the)g(region)g(to)h(the)f
-(kill)h(bu\013er,)f(so)g(it)h(can)f(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)f
-(a)m(w)m(a)m(y)-8 b(.)630 3357 y(By)31 b(default,)f(this)h(command)f
-(is)g(un)m(b)s(ound.)150 3514 y Fn(copy-backward-word)25
-b(\(\))630 3624 y Fo(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m
-(t)g(to)i(the)e(kill)h(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)
-f(are)i(the)630 3734 y(same)31 b(as)f Fn(backward-word)p
-Fo(.)38 b(By)30 b(default,)h(this)f(command)g(is)h(un)m(b)s(ound.)150
-3891 y Fn(copy-forward-word)26 b(\(\))630 4000 y Fo(Cop)m(y)31
+b(By)31 b(default,)f(this)h(is)f(un)m(b)s(ound.)p eop
+end
+%%Page: 21 24
+TeXDict begin 21 23 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(21)150 299 y Fn(kill-region)27
+b(\(\))630 408 y Fo(Kill)k(the)f(text)i(in)e(the)g(curren)m(t)h
+(region.)41 b(By)31 b(default,)f(this)h(command)f(is)g(un)m(b)s(ound.)
+150 554 y Fn(copy-region-as-kill)25 b(\(\))630 663 y
+Fo(Cop)m(y)34 b(the)g(text)h(in)f(the)g(region)g(to)h(the)f(kill)h
+(bu\013er,)f(so)g(it)h(can)f(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)f(a)m(w)m
+(a)m(y)-8 b(.)630 773 y(By)31 b(default,)f(this)h(command)f(is)g(un)m
+(b)s(ound.)150 918 y Fn(copy-backward-word)25 b(\(\))630
+1028 y Fo(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(to)i
+(the)e(kill)h(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)f(are)i
+(the)630 1138 y(same)31 b(as)f Fn(backward-word)p Fo(.)38
+b(By)30 b(default,)h(this)f(command)g(is)h(un)m(b)s(ound.)150
+1283 y Fn(copy-forward-word)26 b(\(\))630 1393 y Fo(Cop)m(y)31
b(the)g(w)m(ord)g(follo)m(wing)h(p)s(oin)m(t)f(to)h(the)f(kill)h
(bu\013er.)42 b(The)30 b(w)m(ord)h(b)s(oundaries)e(are)j(the)630
-4110 y(same)f(as)f Fn(forward-word)p Fo(.)38 b(By)30
+1502 y(same)f(as)f Fn(forward-word)p Fo(.)38 b(By)30
b(default,)h(this)g(command)f(is)g(un)m(b)s(ound.)150
-4267 y Fn(yank)f(\(C-y\))630 4377 y Fo(Y)-8 b(ank)31
+1647 y Fn(yank)f(\(C-y\))630 1757 y Fo(Y)-8 b(ank)31
b(the)f(top)h(of)g(the)f(kill)h(ring)f(in)m(to)i(the)e(bu\013er)g(at)h
-(p)s(oin)m(t.)150 4534 y Fn(yank-pop)d(\(M-y\))630 4643
+(p)s(oin)m(t.)150 1902 y Fn(yank-pop)d(\(M-y\))630 2012
y Fo(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h(the)f(new)g(top.)54
b(Y)-8 b(ou)35 b(can)g(only)f(do)h(this)f(if)h(the)g(prior)630
-4753 y(command)30 b(is)h Fn(yank)e Fo(or)h Fn(yank-pop)p
-Fo(.)150 4950 y Fd(1.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
-(ts)150 5121 y Fn(digit-argument)26 b(\()p Fg(M-0)p Fn(,)j
-Fg(M-1)p Fn(,)h(...)f Fg(M--)p Fn(\))630 5230 y Fo(Add)d(this)h(digit)g
+2122 y(command)30 b(is)h Fn(yank)e Fo(or)h Fn(yank-pop)p
+Fo(.)150 2307 y Fd(1.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
+(ts)150 2472 y Fn(digit-argument)26 b(\()p Fg(M-0)p Fn(,)j
+Fg(M-1)p Fn(,)h(...)f Fg(M--)p Fn(\))630 2581 y Fo(Add)d(this)h(digit)g
(to)h(the)f(argumen)m(t)g(already)h(accum)m(ulating,)h(or)e(start)h(a)f
-(new)f(argumen)m(t.)630 5340 y Fg(M--)j Fo(starts)i(a)g(negativ)m(e)i
-(argumen)m(t.)p eop end
-%%Page: 21 24
-TeXDict begin 21 23 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(21)150 299 y Fn
-(universal-argument)25 b(\(\))630 408 y Fo(This)g(is)g(another)h(w)m(a)
-m(y)g(to)h(sp)s(ecify)e(an)g(argumen)m(t.)40 b(If)25
-b(this)g(command)h(is)f(follo)m(w)m(ed)i(b)m(y)f(one)630
-518 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h(leading)h(min)m(us)
-e(sign,)h(those)g(digits)g(de\014ne)f(the)h(ar-)630 628
-y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)g(follo)m(w)m(ed)h(b)m(y)f
-(digits,)i(executing)f Fn(universal-argument)630 737
-y Fo(again)j(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h
+(new)f(argumen)m(t.)630 2691 y Fg(M--)j Fo(starts)i(a)g(negativ)m(e)i
+(argumen)m(t.)150 2836 y Fn(universal-argument)25 b(\(\))630
+2946 y Fo(This)g(is)g(another)h(w)m(a)m(y)g(to)h(sp)s(ecify)e(an)g
+(argumen)m(t.)40 b(If)25 b(this)g(command)h(is)f(follo)m(w)m(ed)i(b)m
+(y)f(one)630 3055 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h
+(leading)h(min)m(us)e(sign,)h(those)g(digits)g(de\014ne)f(the)h(ar-)630
+3165 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)g(follo)m(w)m(ed)h(b)
+m(y)f(digits,)i(executing)f Fn(universal-argument)630
+3275 y Fo(again)j(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h
(otherwise)g(ignored.)45 b(As)32 b(a)g(sp)s(ecial)h(case,)630
-847 y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y)d
-(a)h(c)m(haracter)i(that)e(is)g(neither)g(a)g(digit)630
-956 y(nor)41 b(min)m(us)f(sign,)k(the)e(argumen)m(t)f(coun)m(t)h(for)f
+3384 y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y)
+d(a)h(c)m(haracter)i(that)e(is)g(neither)g(a)g(digit)630
+3494 y(nor)41 b(min)m(us)f(sign,)k(the)e(argumen)m(t)f(coun)m(t)h(for)f
(the)h(next)f(command)g(is)g(m)m(ultiplied)h(b)m(y)630
-1066 y(four.)54 b(The)35 b(argumen)m(t)g(coun)m(t)h(is)f(initially)h
+3603 y(four.)54 b(The)35 b(argumen)m(t)g(coun)m(t)h(is)f(initially)h
(one,)h(so)e(executing)i(this)e(function)f(the)i(\014rst)630
-1176 y(time)29 b(mak)m(es)h(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)h
+3713 y(time)29 b(mak)m(es)h(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)h
(second)g(time)g(mak)m(es)h(the)e(argumen)m(t)h(coun)m(t)630
-1285 y(sixteen,)i(and)f(so)h(on.)40 b(By)31 b(default,)g(this)f(is)g
-(not)h(b)s(ound)d(to)k(a)e(k)m(ey)-8 b(.)150 1498 y Fd(1.4.6)63
+3822 y(sixteen,)i(and)f(so)h(on.)40 b(By)31 b(default,)g(this)f(is)g
+(not)h(b)s(ound)d(to)k(a)e(k)m(ey)-8 b(.)150 4008 y Fd(1.4.6)63
b(Letting)40 b(Readline)h(T)m(yp)s(e)g(F)-10 b(or)42
-b(Y)-10 b(ou)150 1676 y Fn(complete)28 b(\(TAB\))630
-1785 y Fo(A)m(ttempt)c(to)f(p)s(erform)e(completion)j(on)f(the)g(text)g
+b(Y)-10 b(ou)150 4173 y Fn(complete)28 b(\(TAB\))630
+4282 y Fo(A)m(ttempt)c(to)f(p)s(erform)e(completion)j(on)f(the)g(text)g
(b)s(efore)f(p)s(oin)m(t.)39 b(The)22 b(actual)i(completion)630
-1895 y(p)s(erformed)29 b(is)h(application-sp)s(eci\014c.)42
+4392 y(p)s(erformed)29 b(is)h(application-sp)s(eci\014c.)42
b(The)30 b(default)h(is)f(\014lename)h(completion.)150
-2068 y Fn(possible-completions)25 b(\(M-?\))630 2177
+4537 y Fn(possible-completions)25 b(\(M-?\))630 4647
y Fo(List)35 b(the)g(p)s(ossible)f(completions)i(of)e(the)h(text)h(b)s
(efore)e(p)s(oin)m(t.)54 b(When)34 b(displa)m(ying)h(com-)630
-2287 y(pletions,)f(Readline)f(sets)f(the)h(n)m(um)m(b)s(er)e(of)i
+4756 y(pletions,)f(Readline)f(sets)f(the)h(n)m(um)m(b)s(er)e(of)i
(columns)f(used)f(for)i(displa)m(y)f(to)h(the)g(v)-5
-b(alue)33 b(of)630 2396 y Fn(completion-display-width)o
+b(alue)33 b(of)630 4866 y Fn(completion-display-width)o
Fo(,)g(the)j(v)-5 b(alue)37 b(of)g(the)f(en)m(vironmen)m(t)h(v)-5
-b(ariable)38 b Fn(COLUMNS)p Fo(,)630 2506 y(or)30 b(the)h(screen)f
-(width,)g(in)g(that)h(order.)150 2678 y Fn(insert-completions)25
-b(\(M-*\))630 2788 y Fo(Insert)30 b(all)h(completions)h(of)f(the)g
+b(ariable)38 b Fn(COLUMNS)p Fo(,)630 4975 y(or)30 b(the)h(screen)f
+(width,)g(in)g(that)h(order.)150 5121 y Fn(insert-completions)25
+b(\(M-*\))630 5230 y Fo(Insert)30 b(all)h(completions)h(of)f(the)g
(text)g(b)s(efore)f(p)s(oin)m(t)h(that)g(w)m(ould)f(ha)m(v)m(e)i(b)s
-(een)e(generated)630 2898 y(b)m(y)g Fn(possible-completions)p
-Fo(.)150 3070 y Fn(menu-complete)d(\(\))630 3180 y Fo(Similar)d(to)g
-Fn(complete)p Fo(,)f(but)h(replaces)g(the)g(w)m(ord)g(to)g(b)s(e)f
-(completed)i(with)e(a)i(single)f(matc)m(h)630 3289 y(from)37
-b(the)h(list)h(of)f(p)s(ossible)f(completions.)64 b(Rep)s(eated)39
-b(execution)g(of)f Fn(menu-complete)630 3399 y Fo(steps)i(through)g
-(the)g(list)h(of)f(p)s(ossible)g(completions,)k(inserting)c(eac)m(h)i
-(matc)m(h)f(in)f(turn.)630 3508 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g
-(of)g(completions,)i(the)e(b)s(ell)g(is)g(rung)f(\(sub)5
-b(ject)36 b(to)i(the)f(setting)630 3618 y(of)f Fn(bell-style)p
-Fo(\))e(and)h(the)h(original)i(text)f(is)f(restored.)57
-b(An)36 b(argumen)m(t)h(of)f Fe(n)f Fo(mo)m(v)m(es)i
-Fe(n)630 3728 y Fo(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e
+(een)e(generated)630 5340 y(b)m(y)g Fn(possible-completions)p
+Fo(.)p eop end
+%%Page: 22 25
+TeXDict begin 22 24 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(22)150 299 y Fn(menu-complete)27
+b(\(\))630 408 y Fo(Similar)d(to)g Fn(complete)p Fo(,)f(but)h(replaces)
+g(the)g(w)m(ord)g(to)g(b)s(e)f(completed)i(with)e(a)i(single)f(matc)m
+(h)630 518 y(from)37 b(the)h(list)h(of)f(p)s(ossible)f(completions.)64
+b(Rep)s(eated)39 b(execution)g(of)f Fn(menu-complete)630
+628 y Fo(steps)i(through)g(the)g(list)h(of)f(p)s(ossible)g
+(completions,)k(inserting)c(eac)m(h)i(matc)m(h)f(in)f(turn.)630
+737 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g(of)g(completions,)i(the)e
+(b)s(ell)g(is)g(rung)f(\(sub)5 b(ject)36 b(to)i(the)f(setting)630
+847 y(of)f Fn(bell-style)p Fo(\))e(and)h(the)h(original)i(text)f(is)f
+(restored.)57 b(An)36 b(argumen)m(t)h(of)f Fe(n)f Fo(mo)m(v)m(es)i
+Fe(n)630 956 y Fo(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e
(matc)m(hes;)39 b(a)c(negativ)m(e)i(argumen)m(t)e(ma)m(y)g(b)s(e)f
-(used)g(to)630 3837 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
+(used)g(to)630 1066 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
(list.)65 b(This)38 b(command)g(is)g(in)m(tended)g(to)h(b)s(e)f(b)s
-(ound)e(to)630 3947 y Fn(TAB)p Fo(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m
-(y)i(default.)150 4119 y Fn(menu-complete-backward)24
-b(\(\))630 4229 y Fo(Iden)m(tical)36 b(to)g Fn(menu-complete)p
+(ound)e(to)630 1176 y Fn(TAB)p Fo(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m
+(y)i(default.)150 1331 y Fn(menu-complete-backward)24
+b(\(\))630 1441 y Fo(Iden)m(tical)36 b(to)g Fn(menu-complete)p
Fo(,)d(but)h(mo)m(v)m(es)j(bac)m(kw)m(ard)e(through)f(the)i(list)f(of)g
-(p)s(ossible)630 4338 y(completions,)d(as)e(if)h Fn(menu-complete)26
+(p)s(ossible)630 1550 y(completions,)d(as)e(if)h Fn(menu-complete)26
b Fo(had)k(b)s(een)g(giv)m(en)h(a)g(negativ)m(e)i(argumen)m(t.)150
-4511 y Fn(delete-char-or-list)25 b(\(\))630 4620 y Fo(Deletes)41
+1705 y Fn(delete-char-or-list)25 b(\(\))630 1815 y Fo(Deletes)41
b(the)e(c)m(haracter)h(under)e(the)h(cursor)f(if)h(not)g(at)g(the)h(b)s
-(eginning)e(or)h(end)f(of)h(the)630 4730 y(line)50 b(\(lik)m(e)h
+(eginning)e(or)h(end)f(of)h(the)630 1925 y(line)50 b(\(lik)m(e)h
Fn(delete-char)p Fo(\).)96 b(If)49 b(at)h(the)g(end)f(of)h(the)f(line,)
-55 b(b)s(eha)m(v)m(es)c(iden)m(tically)g(to)630 4840
+55 b(b)s(eha)m(v)m(es)c(iden)m(tically)g(to)630 2034
y Fn(possible-completions)p Fo(.)35 b(This)30 b(command)g(is)g(un)m(b)s
-(ound)e(b)m(y)i(default.)150 5052 y Fd(1.4.7)63 b(Keyb)s(oard)41
-b(Macros)150 5230 y Fn(start-kbd-macro)26 b(\(C-x)j(\(\))630
-5340 y Fo(Begin)i(sa)m(ving)h(the)e(c)m(haracters)i(t)m(yp)s(ed)e(in)m
-(to)h(the)g(curren)m(t)f(k)m(eyb)s(oard)g(macro.)p eop
-end
-%%Page: 22 25
-TeXDict begin 22 24 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(22)150 299 y Fn(end-kbd-macro)27
-b(\(C-x)i(\)\))630 408 y Fo(Stop)e(sa)m(ving)h(the)g(c)m(haracters)g(t)
-m(yp)s(ed)f(in)m(to)i(the)e(curren)m(t)g(k)m(eyb)s(oard)g(macro)h(and)f
-(sa)m(v)m(e)i(the)630 518 y(de\014nition.)150 671 y Fn
-(call-last-kbd-macro)c(\(C-x)k(e\))630 780 y Fo(Re-execute)37
-b(the)e(last)h(k)m(eyb)s(oard)f(macro)h(de\014ned,)f(b)m(y)h(making)f
-(the)g(c)m(haracters)i(in)e(the)630 890 y(macro)c(app)s(ear)f(as)g(if)h
-(t)m(yp)s(ed)f(at)h(the)f(k)m(eyb)s(oard.)150 1042 y
-Fn(print-last-kbd-macro)25 b(\(\))630 1152 y Fo(Prin)m(t)30
-b(the)h(last)g(k)m(eb)s(oard)f(macro)h(de\014ned)e(in)i(a)f(format)h
-(suitable)g(for)f(the)h Fe(inputrc)k Fo(\014le.)150 1344
-y Fd(1.4.8)63 b(Some)41 b(Miscellaneous)i(Commands)150
-1513 y Fn(re-read-init-file)26 b(\(C-x)j(C-r\))630 1622
-y Fo(Read)22 b(in)g(the)g(con)m(ten)m(ts)h(of)f(the)g
+(ound)e(b)m(y)i(default.)150 2229 y Fd(1.4.7)63 b(Keyb)s(oard)41
+b(Macros)150 2399 y Fn(start-kbd-macro)26 b(\(C-x)j(\(\))630
+2509 y Fo(Begin)i(sa)m(ving)h(the)e(c)m(haracters)i(t)m(yp)s(ed)e(in)m
+(to)h(the)g(curren)m(t)f(k)m(eyb)s(oard)g(macro.)150
+2664 y Fn(end-kbd-macro)d(\(C-x)i(\)\))630 2774 y Fo(Stop)e(sa)m(ving)h
+(the)g(c)m(haracters)g(t)m(yp)s(ed)f(in)m(to)i(the)e(curren)m(t)g(k)m
+(eyb)s(oard)g(macro)h(and)f(sa)m(v)m(e)i(the)630 2883
+y(de\014nition.)150 3039 y Fn(call-last-kbd-macro)c(\(C-x)k(e\))630
+3148 y Fo(Re-execute)37 b(the)e(last)h(k)m(eyb)s(oard)f(macro)h
+(de\014ned,)f(b)m(y)h(making)f(the)g(c)m(haracters)i(in)e(the)630
+3258 y(macro)c(app)s(ear)f(as)g(if)h(t)m(yp)s(ed)f(at)h(the)f(k)m(eyb)s
+(oard.)150 3413 y Fn(print-last-kbd-macro)25 b(\(\))630
+3523 y Fo(Prin)m(t)30 b(the)h(last)g(k)m(eb)s(oard)f(macro)h(de\014ned)
+e(in)i(a)f(format)h(suitable)g(for)f(the)h Fe(inputrc)k
+Fo(\014le.)150 3718 y Fd(1.4.8)63 b(Some)41 b(Miscellaneous)i(Commands)
+150 3888 y Fn(re-read-init-file)26 b(\(C-x)j(C-r\))630
+3997 y Fo(Read)22 b(in)g(the)g(con)m(ten)m(ts)h(of)f(the)g
Fe(inputrc)27 b Fo(\014le,)d(and)d(incorp)s(orate)h(an)m(y)h(bindings)d
-(or)i(v)-5 b(ariable)630 1732 y(assignmen)m(ts)31 b(found)e(there.)150
-1885 y Fn(abort)g(\(C-g\))630 1994 y Fo(Ab)s(ort)d(the)h(curren)m(t)f
+(or)i(v)-5 b(ariable)630 4107 y(assignmen)m(ts)31 b(found)e(there.)150
+4262 y Fn(abort)g(\(C-g\))630 4372 y Fo(Ab)s(ort)d(the)h(curren)m(t)f
(editing)h(command)f(and)g(ring)h(the)f(terminal's)h(b)s(ell)g(\(sub)5
-b(ject)26 b(to)i(the)630 2104 y(setting)j(of)g Fn(bell-style)p
-Fo(\).)150 2256 y Fn(do-lowercase-version)25 b(\(M-A,)k(M-B,)g(M-)p
-Fg(x)p Fn(,)g(...)o(\))630 2366 y Fo(If)35 b(the)g(meta\014ed)g(c)m
+b(ject)26 b(to)i(the)630 4481 y(setting)j(of)g Fn(bell-style)p
+Fo(\).)150 4637 y Fn(do-lowercase-version)25 b(\(M-A,)k(M-B,)g(M-)p
+Fg(x)p Fn(,)g(...)o(\))630 4746 y Fo(If)35 b(the)g(meta\014ed)g(c)m
(haracter)i Fe(x)k Fo(is)35 b(upp)s(er)e(case,)k(run)d(the)h(command)g
-(that)g(is)g(b)s(ound)e(to)630 2476 y(the)g(corresp)s(onding)f
+(that)g(is)g(b)s(ound)e(to)630 4856 y(the)g(corresp)s(onding)f
(meta\014ed)h(lo)m(w)m(er)i(case)f(c)m(haracter.)50 b(The)32
-b(b)s(eha)m(vior)h(is)g(unde\014ned)e(if)630 2585 y Fe(x)37
-b Fo(is)30 b(already)h(lo)m(w)m(er)h(case.)150 2738 y
-Fn(prefix-meta)27 b(\(ESC\))630 2847 y Fo(Metafy)39 b(the)e(next)h(c)m
+b(b)s(eha)m(vior)h(is)g(unde\014ned)e(if)630 4965 y Fe(x)37
+b Fo(is)30 b(already)h(lo)m(w)m(er)h(case.)150 5121 y
+Fn(prefix-meta)27 b(\(ESC\))630 5230 y Fo(Metafy)39 b(the)e(next)h(c)m
(haracter)h(t)m(yp)s(ed.)62 b(This)37 b(is)g(for)h(k)m(eyb)s(oards)f
-(without)g(a)h(meta)g(k)m(ey)-8 b(.)630 2957 y(T)m(yping)30
+(without)g(a)h(meta)g(k)m(ey)-8 b(.)630 5340 y(T)m(yping)30
b(`)p Fn(ESC)g(f)p Fo(')g(is)h(equiv)-5 b(alen)m(t)31
-b(to)g(t)m(yping)g Fg(M-f)p Fo(.)150 3109 y Fn(undo)e(\(C-_)g(or)h(C-x)
-g(C-u\))630 3219 y Fo(Incremen)m(tal)h(undo,)f(separately)h(remem)m(b)s
-(ered)f(for)g(eac)m(h)i(line.)150 3372 y Fn(revert-line)27
-b(\(M-r\))630 3481 y Fo(Undo)33 b(all)h(c)m(hanges)g(made)f(to)h(this)f
-(line.)49 b(This)32 b(is)h(lik)m(e)i(executing)f(the)f
-Fn(undo)f Fo(command)630 3591 y(enough)e(times)h(to)g(get)h(bac)m(k)f
-(to)g(the)f(b)s(eginning.)150 3743 y Fn(tilde-expand)d(\(M-~\))630
-3853 y Fo(P)m(erform)j(tilde)h(expansion)g(on)f(the)g(curren)m(t)h(w)m
-(ord.)150 4006 y Fn(set-mark)d(\(C-@\))630 4115 y Fo(Set)33
-b(the)g(mark)f(to)i(the)f(p)s(oin)m(t.)48 b(If)32 b(a)h(n)m(umeric)g
-(argumen)m(t)g(is)g(supplied,)f(the)h(mark)g(is)f(set)630
-4225 y(to)f(that)g(p)s(osition.)150 4377 y Fn(exchange-point-and-mark)
-24 b(\(C-x)29 b(C-x\))630 4487 y Fo(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with)
-g(the)g(mark.)43 b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)i(is)f
-(set)h(to)f(the)h(sa)m(v)m(ed)630 4596 y(p)s(osition,)f(and)e(the)i
-(old)g(cursor)e(p)s(osition)i(is)f(sa)m(v)m(ed)i(as)e(the)h(mark.)150
-4749 y Fn(character-search)26 b(\(C-]\))630 4859 y Fo(A)f(c)m(haracter)
-h(is)f(read)g(and)f(p)s(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)g(the)f(next)g
-(o)s(ccurrence)g(of)g(that)g(c)m(haracter.)630 4968 y(A)30
-b(negativ)m(e)j(coun)m(t)e(searc)m(hes)g(for)f(previous)g(o)s
-(ccurrences.)150 5121 y Fn(character-search-backwar)o(d)24
-b(\(M-C-]\))630 5230 y Fo(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s
-(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)f(the)g(previous)f(o)s(ccurrence)h(of)
-g(that)630 5340 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f
-(searc)m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)p
-eop end
+b(to)g(t)m(yping)g Fg(M-f)p Fo(.)p eop end
%%Page: 23 26
TeXDict begin 23 25 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(23)150 299 y Fn(skip-csi-sequence)
-26 b(\(\))630 408 y Fo(Read)i(enough)f(c)m(haracters)h(to)g(consume)f
-(a)h(m)m(ulti-k)m(ey)h(sequence)f(suc)m(h)f(as)g(those)h(de\014ned)630
-518 y(for)37 b(k)m(eys)h(lik)m(e)g(Home)g(and)f(End.)60
-b(Suc)m(h)37 b(sequences)g(b)s(egin)g(with)g(a)h(Con)m(trol)g(Sequence)
-630 628 y(Indicator)f(\(CSI\),)f(usually)h(ESC-[.)59
+b(Command)29 b(Line)i(Editing)2107 b(23)150 299 y Fn(undo)29
+b(\(C-_)g(or)h(C-x)g(C-u\))630 408 y Fo(Incremen)m(tal)h(undo,)f
+(separately)h(remem)m(b)s(ered)f(for)g(eac)m(h)i(line.)150
+584 y Fn(revert-line)27 b(\(M-r\))630 693 y Fo(Undo)33
+b(all)h(c)m(hanges)g(made)f(to)h(this)f(line.)49 b(This)32
+b(is)h(lik)m(e)i(executing)f(the)f Fn(undo)f Fo(command)630
+803 y(enough)e(times)h(to)g(get)h(bac)m(k)f(to)g(the)f(b)s(eginning.)
+150 978 y Fn(tilde-expand)d(\(M-~\))630 1088 y Fo(P)m(erform)j(tilde)h
+(expansion)g(on)f(the)g(curren)m(t)h(w)m(ord.)150 1263
+y Fn(set-mark)d(\(C-@\))630 1373 y Fo(Set)33 b(the)g(mark)f(to)i(the)f
+(p)s(oin)m(t.)48 b(If)32 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g
+(supplied,)f(the)h(mark)g(is)f(set)630 1482 y(to)f(that)g(p)s(osition.)
+150 1658 y Fn(exchange-point-and-mark)24 b(\(C-x)29 b(C-x\))630
+1767 y Fo(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with)g(the)g(mark.)43
+b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)i(is)f(set)h(to)f(the)h
+(sa)m(v)m(ed)630 1877 y(p)s(osition,)f(and)e(the)i(old)g(cursor)e(p)s
+(osition)i(is)f(sa)m(v)m(ed)i(as)e(the)h(mark.)150 2052
+y Fn(character-search)26 b(\(C-]\))630 2162 y Fo(A)f(c)m(haracter)h(is)
+f(read)g(and)f(p)s(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)g(the)f(next)g(o)s
+(ccurrence)g(of)g(that)g(c)m(haracter.)630 2271 y(A)30
+b(negativ)m(e)j(coun)m(t)e(searc)m(hes)g(for)f(previous)g(o)s
+(ccurrences.)150 2447 y Fn(character-search-backwar)o(d)24
+b(\(M-C-]\))630 2556 y Fo(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s
+(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)f(the)g(previous)f(o)s(ccurrence)h(of)
+g(that)630 2666 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f
+(searc)m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)150
+2841 y Fn(skip-csi-sequence)d(\(\))630 2951 y Fo(Read)i(enough)f(c)m
+(haracters)h(to)g(consume)f(a)h(m)m(ulti-k)m(ey)h(sequence)f(suc)m(h)f
+(as)g(those)h(de\014ned)630 3061 y(for)37 b(k)m(eys)h(lik)m(e)g(Home)g
+(and)f(End.)60 b(Suc)m(h)37 b(sequences)g(b)s(egin)g(with)g(a)h(Con)m
+(trol)g(Sequence)630 3170 y(Indicator)f(\(CSI\),)f(usually)h(ESC-[.)59
b(If)36 b(this)g(sequence)h(is)g(b)s(ound)d(to)k Fn("\\)p
-Fo(e[)p Fn(")p Fo(,)g(k)m(eys)f(pro-)630 737 y(ducing)31
+Fo(e[)p Fn(")p Fo(,)g(k)m(eys)f(pro-)630 3280 y(ducing)31
b(suc)m(h)h(sequences)g(will)h(ha)m(v)m(e)g(no)f(e\013ect)h(unless)e
-(explicitly)j(b)s(ound)c(to)i(a)h(readline)630 847 y(command,)f
+(explicitly)j(b)s(ound)c(to)i(a)h(readline)630 3389 y(command,)f
(instead)g(of)g(inserting)g(stra)m(y)h(c)m(haracters)g(in)m(to)g(the)f
-(editing)h(bu\013er.)44 b(This)31 b(is)630 956 y(un)m(b)s(ound)d(b)m(y)
-i(default,)h(but)f(usually)g(b)s(ound)e(to)j(ESC-[.)150
-1116 y Fn(insert-comment)26 b(\(M-#\))630 1225 y Fo(Without)36
+(editing)h(bu\013er.)44 b(This)31 b(is)630 3499 y(un)m(b)s(ound)d(b)m
+(y)i(default,)h(but)f(usually)g(b)s(ound)e(to)j(ESC-[.)150
+3674 y Fn(insert-comment)26 b(\(M-#\))630 3784 y Fo(Without)36
b(a)g(n)m(umeric)g(argumen)m(t,)h(the)f(v)-5 b(alue)36
b(of)g(the)g Fn(comment-begin)c Fo(v)-5 b(ariable)36
-b(is)g(in-)630 1335 y(serted)c(at)g(the)g(b)s(eginning)f(of)h(the)f
+b(is)g(in-)630 3893 y(serted)c(at)g(the)g(b)s(eginning)f(of)h(the)f
(curren)m(t)h(line.)45 b(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is)g
-(supplied,)630 1444 y(this)k(command)h(acts)g(as)g(a)g(toggle:)55
+(supplied,)630 4003 y(this)k(command)h(acts)g(as)g(a)g(toggle:)55
b(if)37 b(the)f(c)m(haracters)i(at)g(the)e(b)s(eginning)g(of)h(the)g
-(line)630 1554 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5
+(line)630 4113 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5
b(alue)31 b(of)f Fn(comment-begin)p Fo(,)e(the)i(v)-5
-b(alue)31 b(is)g(inserted,)g(otherwise)g(the)630 1664
+b(alue)31 b(is)g(inserted,)g(otherwise)g(the)630 4222
y(c)m(haracters)42 b(in)d Fn(comment-begin)e Fo(are)j(deleted)h(from)f
-(the)g(b)s(eginning)g(of)g(the)g(line.)71 b(In)630 1773
+(the)g(b)s(eginning)g(of)g(the)g(line.)71 b(In)630 4332
y(either)31 b(case,)h(the)e(line)h(is)f(accepted)i(as)f(if)f(a)h
-(newline)f(had)g(b)s(een)f(t)m(yp)s(ed.)150 1932 y Fn(dump-functions)d
-(\(\))630 2042 y Fo(Prin)m(t)g(all)i(of)e(the)h(functions)f(and)g
+(newline)f(had)g(b)s(een)f(t)m(yp)s(ed.)150 4507 y Fn(dump-functions)d
+(\(\))630 4617 y Fo(Prin)m(t)g(all)i(of)e(the)h(functions)f(and)g
(their)g(k)m(ey)h(bindings)e(to)j(the)e(Readline)h(output)f(stream.)630
-2151 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h
+4726 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h
(output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)m(y)g(that)630
-2261 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fe(inputrc)k
+4836 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fe(inputrc)k
Fo(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c(b)m(y)k
-(default.)150 2420 y Fn(dump-variables)26 b(\(\))630
-2530 y Fo(Prin)m(t)21 b(all)h(of)g(the)f(settable)i(v)-5
+(default.)150 5011 y Fn(dump-variables)26 b(\(\))630
+5121 y Fo(Prin)m(t)21 b(all)h(of)g(the)f(settable)i(v)-5
b(ariables)22 b(and)f(their)g(v)-5 b(alues)22 b(to)g(the)f(Readline)h
-(output)f(stream.)630 2639 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)
+(output)f(stream.)630 5230 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)
g(supplied,)f(the)h(output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)
-m(y)g(that)630 2749 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h
+m(y)g(that)630 5340 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h
Fe(inputrc)k Fo(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c
-(b)m(y)k(default.)150 2908 y Fn(dump-macros)c(\(\))630
-3018 y Fo(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h(sequences)
-f(b)s(ound)e(to)i(macros)g(and)f(the)h(strings)g(they)630
-3127 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e
+(b)m(y)k(default.)p eop end
+%%Page: 24 27
+TeXDict begin 24 26 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(24)150 299 y Fn(dump-macros)27
+b(\(\))630 408 y Fo(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h
+(sequences)f(b)s(ound)e(to)i(macros)g(and)f(the)h(strings)g(they)630
+518 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e
(supplied,)h(the)g(output)g(is)f(formatted)i(in)e(suc)m(h)h(a)630
-3237 y(w)m(a)m(y)c(that)g(it)f(can)g(b)s(e)g(made)g(part)f(of)i(an)e
+628 y(w)m(a)m(y)c(that)g(it)f(can)g(b)s(e)g(made)g(part)f(of)i(an)e
Fe(inputrc)35 b Fo(\014le.)41 b(This)29 b(command)h(is)g(un)m(b)s(ound)
-d(b)m(y)630 3346 y(default.)150 3506 y Fn(emacs-editing-mode)e(\(C-e\))
-630 3615 y Fo(When)30 b(in)g Fn(vi)g Fo(command)g(mo)s(de,)g(this)h
+d(b)m(y)630 737 y(default.)150 897 y Fn(emacs-editing-mode)e(\(C-e\))
+630 1006 y Fo(When)30 b(in)g Fn(vi)g Fo(command)g(mo)s(de,)g(this)h
(causes)f(a)h(switc)m(h)g(to)g Fn(emacs)e Fo(editing)i(mo)s(de.)150
-3774 y Fn(vi-editing-mode)26 b(\(M-C-j\))630 3884 y Fo(When)k(in)g
+1166 y Fn(vi-editing-mode)26 b(\(M-C-j\))630 1275 y Fo(When)k(in)g
Fn(emacs)f Fo(editing)i(mo)s(de,)f(this)h(causes)f(a)h(switc)m(h)g(to)g
-Fn(vi)f Fo(editing)h(mo)s(de.)150 4124 y Fm(1.5)68 b(Readline)47
-b(vi)e(Mo)t(de)150 4284 y Fo(While)32 b(the)g(Readline)g(library)f(do)s
+Fn(vi)f Fo(editing)h(mo)s(de.)150 1516 y Fm(1.5)68 b(Readline)47
+b(vi)e(Mo)t(de)150 1675 y Fo(While)32 b(the)g(Readline)g(library)f(do)s
(es)g(not)h(ha)m(v)m(e)h(a)f(full)f(set)h(of)g Fn(vi)f
Fo(editing)h(functions,)f(it)h(do)s(es)g(con)m(tain)150
-4393 y(enough)i(to)h(allo)m(w)g(simple)f(editing)h(of)f(the)g(line.)52
+1785 y(enough)i(to)h(allo)m(w)g(simple)f(editing)h(of)f(the)g(line.)52
b(The)34 b(Readline)g Fn(vi)g Fo(mo)s(de)f(b)s(eha)m(v)m(es)i(as)f(sp)s
-(eci\014ed)f(in)150 4503 y(the)e Fh(posix)e Fo(standard.)275
-4637 y(In)f(order)g(to)i(switc)m(h)g(in)m(teractiv)m(ely)i(b)s(et)m(w)m
+(eci\014ed)f(in)150 1895 y(the)e Fh(posix)e Fo(standard.)275
+2029 y(In)f(order)g(to)i(switc)m(h)g(in)m(teractiv)m(ely)i(b)s(et)m(w)m
(een)d Fn(emacs)f Fo(and)g Fn(vi)h Fo(editing)g(mo)s(des,)g(use)g(the)g
-(command)150 4747 y Fg(M-C-j)36 b Fo(\(b)s(ound)h(to)h
+(command)150 2139 y Fg(M-C-j)36 b Fo(\(b)s(ound)h(to)h
(emacs-editing-mo)s(de)i(when)d(in)g Fn(vi)h Fo(mo)s(de)f(and)g(to)i
-(vi-editing-mo)s(de)g(in)e Fn(emacs)150 4857 y Fo(mo)s(de\).)k(The)30
+(vi-editing-mo)s(de)g(in)e Fn(emacs)150 2248 y Fo(mo)s(de\).)k(The)30
b(Readline)h(default)f(is)g Fn(emacs)f Fo(mo)s(de.)275
-4991 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f(in)g Fn(vi)f
+2383 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f(in)g Fn(vi)f
Fo(mo)s(de,)h(y)m(ou)h(are)f(already)h(placed)f(in)g(`insertion')g(mo)s
-(de,)g(as)h(if)f(y)m(ou)150 5101 y(had)f(t)m(yp)s(ed)g(an)g(`)p
+(de,)g(as)h(if)f(y)m(ou)150 2492 y(had)f(t)m(yp)s(ed)g(an)g(`)p
Fn(i)p Fo('.)41 b(Pressing)29 b Fn(ESC)f Fo(switc)m(hes)i(y)m(ou)g(in)m
(to)h(`command')e(mo)s(de,)h(where)e(y)m(ou)i(can)g(edit)g(the)150
-5210 y(text)35 b(of)f(the)g(line)g(with)f(the)h(standard)f
+2602 y(text)35 b(of)f(the)g(line)g(with)f(the)h(standard)f
Fn(vi)g Fo(mo)m(v)m(emen)m(t)j(k)m(eys,)g(mo)m(v)m(e)f(to)f(previous)g
-(history)f(lines)h(with)150 5320 y(`)p Fn(k)p Fo(')d(and)e(subsequen)m
+(history)f(lines)h(with)150 2711 y(`)p Fn(k)p Fo(')d(and)e(subsequen)m
(t)h(lines)h(with)f(`)p Fn(j)p Fo(',)g(and)g(so)h(forth.)p
eop end
-%%Page: 24 27
-TeXDict begin 24 26 bop 3659 -116 a Fo(24)150 299 y Fk(App)t(endix)52
+%%Page: 25 28
+TeXDict begin 25 27 bop 3659 -116 a Fo(25)150 299 y Fk(App)t(endix)52
b(A)81 b(GNU)54 b(F)-13 b(ree)53 b(Do)t(cumen)l(tation)e(License)1359
502 y Fo(V)-8 b(ersion)31 b(1.3,)g(3)g(No)m(v)m(em)m(b)s(er)h(2008)390
635 y(Cop)m(yrigh)m(t)842 632 y(c)817 635 y Fl(\015)e
@@ -6821,10 +6905,10 @@ b(\\In)m(v)-5 b(arian)m(t)27 b(Sections")g(are)f(certain)g(Secondary)g
5340 y(b)s(eing)e(those)h(of)g(In)m(v)-5 b(arian)m(t)27
b(Sections,)i(in)d(the)h(notice)h(that)f(sa)m(ys)g(that)g(the)g(Do)s
(cumen)m(t)g(is)g(released)p eop end
-%%Page: 25 28
-TeXDict begin 25 27 bop 150 -116 a Fo(App)s(endix)29
+%%Page: 26 29
+TeXDict begin 26 28 bop 150 -116 a Fo(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(25)330 299 y(under)26 b(this)i(License.)40 b(If)27
+b(26)330 299 y(under)26 b(this)i(License.)40 b(If)27
b(a)h(section)h(do)s(es)f(not)f(\014t)h(the)g(ab)s(o)m(v)m(e)h
(de\014nition)e(of)h(Secondary)f(then)h(it)g(is)330 408
y(not)k(allo)m(w)m(ed)i(to)e(b)s(e)g(designated)g(as)g(In)m(v)-5
@@ -6915,10 +6999,10 @@ b(Disclaimers)f(are)g(considered)e(to)330 4970 y(b)s(e)k(included)g(b)m
b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g(and)f(has)h(no)330
5189 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h(this)f(License.)199
5340 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)p eop end
-%%Page: 26 29
-TeXDict begin 26 28 bop 150 -116 a Fo(App)s(endix)29
+%%Page: 27 30
+TeXDict begin 27 29 bop 150 -116 a Fo(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(26)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
+b(27)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
(the)g(Do)s(cumen)m(t)h(in)f(an)m(y)g(medium,)h(either)g(commercially)h
(or)330 408 y(noncommercially)-8 b(,)48 b(pro)m(vided)42
b(that)h(this)f(License,)47 b(the)42 b(cop)m(yrigh)m(t)i(notices,)j
@@ -7008,10 +7092,10 @@ b(in)f(the)h(Title)h(P)m(age)g(\(and)f(on)f(the)h(co)m(v)m(ers,)i(if)e
5340 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f(previous)f(v)m
(ersions)h(\(whic)m(h)g(should,)g(if)g(there)g(w)m(ere)g(an)m(y)-8
b(,)p eop end
-%%Page: 27 30
-TeXDict begin 27 29 bop 150 -116 a Fo(App)s(endix)29
+%%Page: 28 31
+TeXDict begin 28 30 bop 150 -116 a Fo(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(27)510 299 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g
+b(28)510 299 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g
(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 b(ma)m(y)g(use)f(the)g(same)
h(title)h(as)510 408 y(a)e(previous)f(v)m(ersion)g(if)h(the)f(original)
i(publisher)d(of)h(that)h(v)m(ersion)g(giv)m(es)h(p)s(ermission.)360
@@ -7090,10 +7174,10 @@ b(arran)m(t)m(y)32 b(Disclaimers.)330 5121 y(If)h(the)g(Mo)s(di\014ed)g
(designate)h(some)e(or)h(all)g(of)f(these)h(sections)h(as)e(in)m(v)-5
b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)p
eop end
-%%Page: 28 31
-TeXDict begin 28 30 bop 150 -116 a Fo(App)s(endix)29
+%%Page: 29 32
+TeXDict begin 29 31 bop 150 -116 a Fo(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(28)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
+b(29)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
b(arian)m(t)36 b(Sections)g(in)f(the)h(Mo)s(di\014ed)f(V)-8
b(ersion's)36 b(license)g(notice.)57 b(These)330 408
y(titles)32 b(m)m(ust)e(b)s(e)g(distinct)h(from)e(an)m(y)i(other)g
@@ -7178,10 +7262,10 @@ b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h
5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g
(other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330
5340 y(that)d(do)s(cumen)m(t.)p eop end
-%%Page: 29 32
-TeXDict begin 29 31 bop 150 -116 a Fo(App)s(endix)29
+%%Page: 30 33
+TeXDict begin 30 32 bop 150 -116 a Fo(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(29)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h
+b(30)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h
(W)m(ORKS)330 441 y(A)d(compilation)i(of)e(the)g(Do)s(cumen)m(t)h(or)f
(its)g(deriv)-5 b(ativ)m(es)30 b(with)d(other)i(separate)g(and)e(indep)
s(enden)m(t)330 551 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h
@@ -7266,10 +7350,10 @@ b(ha)m(v)m(e)h(receiv)m(ed)h(copies)e(or)h(righ)m(ts)f(from)g(y)m(ou)g
(reinstated,)i(receipt)f(of)f(a)g(cop)m(y)h(of)f(some)h(or)f(all)h(of)f
(the)330 5340 y(same)31 b(material)h(do)s(es)e(not)g(giv)m(e)i(y)m(ou)f
(an)m(y)g(righ)m(ts)f(to)i(use)e(it.)p eop end
-%%Page: 30 33
-TeXDict begin 30 32 bop 150 -116 a Fo(App)s(endix)29
+%%Page: 31 34
+TeXDict begin 31 33 bop 150 -116 a Fo(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(30)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)330
+b(31)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)330
433 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8
b(oundation)43 b(ma)m(y)f(publish)e(new,)k(revised)d(v)m(ersions)h(of)g
(the)g(GNU)g(F)-8 b(ree)330 543 y(Do)s(cumen)m(tation)34
@@ -7333,10 +7417,10 @@ f(of)g(that)330 2944 y(license)31 b(published)e(b)m(y)h(that)h(same)g
g(under)330 3895 y(CC-BY-SA)30 b(on)g(the)h(same)f(site)h(at)g(an)m(y)g
(time)g(b)s(efore)e(August)h(1,)h(2009,)h(pro)m(vided)e(the)g(MMC)h(is)
330 4005 y(eligible)h(for)e(relicensing.)p eop end
-%%Page: 31 34
-TeXDict begin 31 33 bop 150 -116 a Fo(App)s(endix)29
+%%Page: 32 35
+TeXDict begin 32 34 bop 150 -116 a Fo(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(31)150 299 y Fm(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f
+b(32)150 299 y Fm(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f
(for)g(y)l(our)g(do)t(cumen)l(ts)150 458 y Fo(T)-8 b(o)35
b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m(t)g(y)m(ou)f(ha)m(v)m(e)
i(written,)g(include)f(a)f(cop)m(y)i(of)f(the)f(License)h(in)g(the)150
diff --git a/doc/rluserman.texi b/doc/rluserman.texi
index b575438..6e8e848 100644
--- a/doc/rluserman.texi
+++ b/doc/rluserman.texi
@@ -12,7 +12,7 @@ This manual describes the end user interface of the GNU Readline Library
consistency of user interface across discrete programs which provide
a command line interface.
-Copyright @copyright{} 1988--2016 Free Software Foundation, Inc.
+Copyright @copyright{} 1988--2020 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/texi2dvi b/doc/texi2dvi
index 173e8ab..17f4355 100755
--- a/doc/texi2dvi
+++ b/doc/texi2dvi
@@ -1,10 +1,7 @@
#! /bin/sh
# texi2dvi --- produce DVI (or PDF) files from Texinfo (or (La)TeX) sources.
-# $Id: texi2dvi 5704 2014-07-07 17:45:16Z karl $
#
-# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
-# Free Software Foundation, Inc.
+# Copyright 1992-2019 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
@@ -36,20 +33,17 @@ set -e
# In case the default sed doesn't suffice.
: ${SED=sed}
-# This string is expanded automatically when this file is checked out.
-rcs_revision='$Revision: 5704 $'
-rcs_version=`set - $rcs_revision; echo $2`
program=`echo $0 | $SED -e 's!.*/!!'`
build_mode=${TEXI2DVI_BUILD_MODE:-local}
build_dir=${TEXI2DVI_BUILD_DIRECTORY:-.}
+orig_pwd=`pwd`
+
# Initialize variables for option overriding and otherwise.
# Don't use `unset' since old bourne shells don't have this command.
# Instead, assign them an empty value.
action=compile
-batch=false # interact normally
-catcode_special=maybe
debug=false
escape="\\"
expand=false # true for expansion via makeinfo
@@ -68,13 +62,11 @@ txiprereq=19990129 # minimum texinfo.tex version with macro expansion
verb=false # true for verbose mode
translate_file= # name of charset translation file
-orig_pwd=`pwd`
-
# We have to initialize IFS to space tab newline since we save and
# restore IFS and apparently POSIX allows stupid/broken behavior with
# empty-but-set IFS.
# http://lists.gnu.org/archive/html/automake-patches/2006-05/msg00008.html
-# We need space, tab and new line, in precisely that order. And don't leave
+# We need space, tab and newline, in precisely that order. And don't leave
# trailing blanks.
space=' '
tab=' '
@@ -82,70 +74,176 @@ newline='
'
IFS="$space$tab$newline"
-# In case someone pedantic insists on using grep -E.
: ${EGREP=egrep}
# Systems which define $COMSPEC or $ComSpec use semicolons to separate
-# directories in TEXINPUTS -- except for Cygwin et al., where COMSPEC
+# directories in TEXINPUTS -- except for Cygwin and Msys, where COMSPEC
# might be inherited, but : is used.
+
+# In the case of Msys, uname returns a value derived from MSYSTEM, as
+# MSYSTEM is user configurable, it is not so safe to use it to detect
+# Msys. It is safer to use OSTYPE, this is why we set MSYSTEM to
+# $OSTYPE before calling uname
if test -n "$COMSPEC$ComSpec" \
- && uname | $EGREP -iv 'cygwin|mingw|djgpp' >/dev/null; then
+ && MSYSTEM=$OSTYPE uname | $EGREP -iv 'cygwin|msys' >/dev/null; then
path_sep=";"
else
path_sep=":"
fi
+
# Pacify verbose cds.
CDPATH=${ZSH_VERSION+.}$path_sep
-# If $TEX is set to a directory, don't use it.
-test -n "$TEX" && test -d "$TEX" && unset TEX
-#
-## --------------------- ##
-## Auxiliary functions. ##
-## --------------------- ##
-
-# In case `local' is not supported by the shell, provide a function
-# that simulates it by simply performing the assignments. This means
-# that we must not expect `local' to work, i.e., we must not (i) rely
-# on it during recursion, and (ii) have two local declarations of the
-# same variable. (ii) is easy to check statically, and our test suite
-# does make sure there is never twice a static local declaration of a
-# variable. (i) cannot be checked easily, so just be careful.
-#
-# Note that since we might use a function simulating `local', we can
-# no longer rely on the fact that no IFS-splitting is performed. So,
-# while
-#
-# foo=$bar
-#
-# is fine (no IFS-splitting), never write
-#
-# local foo=$bar
-#
-# but rather
+# Now we define numerous functions, with no other executable code.
+# The main program is at the end of the file.
+
+
+# Standard help and version functions.
#
-# local foo="$bar"
-(
- foo=bar
- test_local () {
- local foo=foo
- }
- test_local >/dev/null 2>&1
- test $foo = bar
-) || eval '
-local () {
+# usage - display usage and exit successfully.
+usage ()
+{
+ cat <<EOF
+Usage: $program [OPTION]... FILE...
+ or: texi2pdf [OPTION]... FILE...
+ or: pdftexi2dvi [OPTION]... FILE...
+
+Run each Texinfo or (La)TeX FILE through TeX in turn until all
+cross-references are resolved, building all indices. The directory
+containing each FILE is searched for included files. The suffix of FILE
+is used to determine its language ((La)TeX or Texinfo). To process
+(e)plain TeX files, set the environment variable LATEX=tex.
+
+When invoked as \`texi2pdf' or given the option --pdf generate PDF output.
+Otherwise, generate DVI.
+
+General options:
+ -D, --debug turn on shell debugging (set -x)
+ -h, --help display this help and exit successfully
+ -o, --output=OFILE leave output in OFILE; only one input FILE is allowed
+ -q, --quiet no output unless errors
+ -v, --version display version information and exit successfully
+ -V, --verbose report on what is done
+ --max-iterations=N don't process files more than N times [$max_iters]
+ --mostly-clean remove auxiliary files or directories from
+ previous runs (but not the output)
+
+Output format:
+ --dvi output a DVI file [default]
+ --dvipdf output a PDF file via DVI (using a dvi-to-pdf program)
+ --html output an HTML file from LaTeX, using HeVeA
+ --info output an Info file from LaTeX, using HeVeA
+ -p, --pdf use pdftex or pdflatex for processing
+ --ps output a PostScript file via DVI (using dvips)
+ --text output a plain text file from LaTeX, using HeVeA
+
+TeX tuning:
+ -E, --expand macro expansion using makeinfo
+ -I DIR search DIR for Texinfo files
+ -l, --language=LANG specify LANG for FILE, either latex or texinfo
+ --no-line-error do not pass --file-line-error to TeX
+ --shell-escape pass --shell-escape to TeX
+ --src-specials pass --src-specials to TeX
+ --translate-file=FILE use given charset translation file for TeX
+ -t, --command=CMD insert CMD in copy of input file
+
+Build modes:
+ --build=MODE specify the treatment of auxiliary files [$build_mode]
+ --tidy same as --build=tidy
+ -c, --clean same as --build=clean
+ --build-dir=DIR specify where the tidy compilation is performed;
+ implies --tidy;
+ defaults to TEXI2DVI_BUILD_DIRECTORY [$build_dir]
+
+The MODE specifies where the TeX compilation takes place, and, as a
+consequence, how auxiliary files are treated. The build mode can also
+be set using the environment variable TEXI2DVI_BUILD_MODE.
+
+Valid values of MODE are:
+ \`local' compile in the current directory, leaving all the auxiliary
+ files around. This is the traditional TeX use.
+ \`tidy' compile in a local *.t2d directory, where the auxiliary files
+ are left. Output files are copied back to the original file.
+ \`clean' same as \`tidy', but remove the auxiliary directory afterwards.
+ Every compilation therefore requires the full cycle.
+
+The values of these environment variables are used to run the
+corresponding commands, if they are set:
+
+ BIBER BIBTEX DVIPDF DVIPS EGREP HEVEA LATEX MAKEINDEX MAKEINFO
+ PDFLATEX PDFTEX SED T4HT TEX TEX4HT TEXINDEX TEXINDY THUMBPDF_CMD
+
+Regarding --dvipdf, if DVIPDF is not set in the environment, the
+following programs are looked for (in this order): dvipdfmx dvipdfm
+dvipdf dvi2pdf dvitopdf.
+
+If Texinfo is installed on your site, then the command
+
+ info texi2dvi
+
+should give you access to more documentation.
+
+Report bugs to bug-texinfo@gnu.org,
+general questions and discussion to help-texinfo@gnu.org.
+GNU Texinfo home page: <http://www.gnu.org/software/texinfo/>
+General help using GNU software: <http://www.gnu.org/gethelp/>
+EOF
+ exit 0
+}
+
+
+# version - Display version info and exit successfully.
+version ()
+{
+ cat <<EOF
+texi2dvi (GNU Texinfo 6.7)
+
+Copyright (C) 2019 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+EOF
+ exit 0
+}
+
+
+# Generic auxiliary functions.
+
+# Used to access files and directories after we have changed directory
+# (for --tidy).
+rel=
+
+# Change directory, updating some relative paths.
+cd_dir ()
+{
+ cd "$1"
+
+ # Check if argument or input file is absolute, and if so, make all the path
+ # variables absolute.
+ use_absolute=false
case $1 in
- *=*) eval "$1";;
+ [\\/]* | ?:[\\/]*) # absolute path
+ use_absolute=true ;;
+ esac
+ case $in_input in
+ [\\/]* | ?:[\\/]*)
+ use_absolute=true ;;
esac
-}
-'
+ if $use_absolute ; then
+ for cdd_dir in work_build workdir t2ddir work_bak in_input in_dir; do
+ eval "$cdd_dir=\`absolute \$$cdd_dir\`"
+ done
+ return
+ fi
+
+ # Replace each path component with ".." and add a single trailing slash.
+ rel=`echo "$1" | \$SED -e 's/[^/\\][^/\\]*/../g' -e 's/[/\\]*$/\//'`
+}
-# cd_orig
-# -------
-# Return to the original directory.
+# cd_orig - Return to the original directory.
cd_orig ()
{
# In case $orig_pwd is on a different drive (for DOS).
@@ -155,11 +253,12 @@ cd_orig ()
# - the next file is processed in correct conditions
# - the temporary file can be removed
cd "$orig_pwd" || exit 1
+
+ rel=
}
-# func_dirname FILE
-# -----------------
-# Return the directory part of FILE.
+
+# func_dirname FILE - Return the directory part of FILE.
func_dirname ()
{
dirname "$1" 2>/dev/null \
@@ -167,18 +266,15 @@ func_dirname ()
}
-# noexit FILE
-# -----------
-# Return FILE with one extension remove. foo.bar.baz -> foo.bar.
+# noext FILE - Return FILE with one extension removed:
+# foo.bar.baz -> foo.bar
noext ()
{
echo "$1" | $SED -e 's/\.[^/.][^/.]*$//'
}
-# absolute NAME -> ABS-NAME
-# -------------------------
-# Return an absolute path to NAME.
+# absolute NAME - Return an absolute path to NAME.
absolute ()
{
case $1 in
@@ -186,26 +282,21 @@ absolute ()
# Absolute paths don't need to be expanded.
echo "$1"
;;
- *) local slashes
- slashes=`echo "$1" | $SED -n 's,.*[^/]\(/*\)$,\1,p'`
- local rel
- rel=$orig_pwd/`func_dirname "$1"`
- if test -d "$rel"; then
- (cd "$rel" 2>/dev/null \
- && local n
- n=`pwd`/`basename "$1"`"$slashes"
- echo "$n")
+ *) absolute_slashes=`echo "$1" | $SED -n 's,.*[^/]\(/*\)$,\1,p'`
+ absolute_rel=$orig_pwd/`func_dirname "$1"`
+ if test -d "$absolute_rel"; then
+ (cd "$absolute_rel" 2>/dev/null \
+ && absolute_name=`pwd`/`basename "$1"`"$absolute_slashes"
+ echo "$absolute_name")
else
- error 1 "not a directory: $rel"
+ error 1 "not a directory: $absolute_rel"
fi
;;
esac
}
-# ensure_dir DIR1 DIR2...
-# -----------------------
-# Make sure the directories exist.
+# ensure_dir DIR1 DIR2... - Make sure given directories exist.
ensure_dir ()
{
for dir
@@ -221,26 +312,23 @@ ensure_dir ()
}
-# error EXIT_STATUS LINE1 LINE2...
-# --------------------------------
-# Report an error and exit with failure if EXIT_STATUS is non-null.
+# error EXIT_STATUS LINE1 LINE2... - Report an error and exit with
+# failure if EXIT_STATUS is non-null.
error ()
{
- local s="$1"
+ error_status="$1"
shift
report "$@"
- if test "$s" != 0; then
- exit $s
+ if test "$error_status" != 0; then
+ exit $error_status
fi
}
-# findprog PROG
-# -------------
-# Return true if PROG is somewhere in PATH, else false.
+# findprog PROG - Return true if PROG is somewhere in PATH, else false.
findprog ()
{
- local saveIFS="$IFS"
+ saveIFS="$IFS"
IFS=$path_sep # break path components at the path separator
for dir in $PATH; do
IFS=$saveIFS
@@ -261,9 +349,7 @@ findprog ()
return 1
}
-# report LINE1 LINE2...
-# ---------------------
-# Report some information on stderr.
+# report LINE1 LINE2... - Echo each argument to stderr.
report ()
{
for i in "$@"
@@ -273,9 +359,7 @@ report ()
}
-# run COMMAND-LINE
-# ----------------
-# Run the COMMAND-LINE verbosely, and catching errors as failures.
+# run COMMAND-LINE - Run COMMAND-LINE verbosely, catching errors as failures.
run ()
{
verbose "Running $@"
@@ -284,135 +368,7 @@ run ()
}
-# usage
-# -----
-# Display usage and exit successfully.
-usage ()
-{
- # We used to simply have `echo "$usage"', but coping with the
- # changing behavior of `echo' is much harder than simply using a
- # here-doc.
- #
- # echo '\noto' echo '\\noto' echo -e '\\noto'
- # bash 3.1 \noto \\noto \noto
- # bash 3.2 %oto \noto -e \noto
- #
- # where % denotes the eol character.
- cat <<EOF
-Usage: $program [OPTION]... FILE...
- or: texi2pdf [OPTION]... FILE...
- or: pdftexi2dvi [OPTION]... FILE...
-
-Run each Texinfo or (La)TeX FILE through TeX in turn until all
-cross-references are resolved, building all indices. The directory
-containing each FILE is searched for included files. The suffix of FILE
-is used to determine its language ((La)TeX or Texinfo). To process
-(e)plain TeX files, set the environment variable LATEX=tex.
-
-In order to make texi2dvi a drop-in replacement of TeX/LaTeX in AUC-TeX,
-the FILE may also be composed of the following simple TeX commands.
- \`\\input{FILE}' the actual file to compile
- \`\\nonstopmode' same as --batch
-
-When invoked as \`texi2pdf' or \`pdftexi2dvi', or given the option --pdf
-or --dvipdf, generate PDF output. Otherwise, generate DVI.
-
-General options:
- -b, --batch no interaction
- -D, --debug turn on shell debugging (set -x)
- -h, --help display this help and exit successfully
- -o, --output=OFILE leave output in OFILE; only one input FILE is allowed
- -q, --quiet no output unless errors (implies --batch)
- -s, --silent same as --quiet
- -v, --version display version information and exit successfully
- -V, --verbose report on what is done
-
-Output format:
- --dvi output a DVI file [default]
- --dvipdf output a PDF file via DVI (using a dvi-to-pdf program)
- --html output an HTML file from LaTeX, using HeVeA
- --info output an Info file from LaTeX, using HeVeA
- -p, --pdf use pdftex or pdflatex for processing
- --ps output a PostScript file via DVI (using dvips)
- --text output a plain text file from LaTeX, using HeVeA
-
-TeX tuning:
- -@ use @input instead of \input for preloaded Texinfo
- -e, -E, --expand force macro expansion using makeinfo
- -I DIR search DIR for Texinfo files
- -l, --language=LANG specify LANG for FILE, either latex or texinfo
- --no-line-error do not pass --file-line-error to TeX
- --shell-escape pass --shell-escape to TeX
- --src-specials pass --src-specials to TeX
- -t, --command=CMD insert CMD in copy of input file
- or --texinfo=CMD multiple values accumulate
- --translate-file=FILE use given charset translation file for TeX
-
-Build modes:
- --build=MODE specify the treatment of auxiliary files [$build_mode]
- --tidy same as --build=tidy
- -c, --clean same as --build=clean
- --build-dir=DIR specify where the tidy compilation is performed;
- implies --tidy;
- defaults to TEXI2DVI_BUILD_DIRECTORY [$build_dir]
- --mostly-clean remove the auxiliary files and directories
- but not the output
- --max-iterations=N don't process files more than N times [$max_iters]
-
-The MODE specifies where the TeX compilation takes place, and, as a
-consequence, how auxiliary files are treated. The build mode
-can also be set using the environment variable TEXI2DVI_BUILD_MODE.
-
-Valid MODEs are:
- \`local' compile in the current directory, leaving all the auxiliary
- files around. This is the traditional TeX use.
- \`tidy' compile in a local *.t2d directory, where the auxiliary files
- are left. Output files are copied back to the original file.
- \`clean' same as \`tidy', but remove the auxiliary directory afterwards.
- Every compilation therefore requires the full cycle.
-
-Using the \`tidy' mode brings several advantages:
- - the current directory is not cluttered with plethora of temporary files.
- - clutter can be even further reduced using --build-dir=dir: all the *.t2d
- directories are stored there.
- - clutter can be reduced to zero using, e.g., --build-dir=/tmp/\$USER.t2d
- or --build-dir=\$HOME/.t2d.
- - the output file is updated after every successful TeX run, for
- sake of concurrent visualization of the output. In a \`local' build
- the viewer stops during the whole TeX run.
- - if the compilation fails, the previous state of the output file
- is preserved.
- - PDF and DVI compilation are kept in separate subdirectories
- preventing any possibility of auxiliary file incompatibility.
-
-On the other hand, because \`tidy' compilation takes place in another
-directory, occasionally TeX won't be able to find some files (e.g., when
-using \\graphicspath): in that case, use -I to specify the additional
-directories to consider.
-
-The values of the BIBER, BIBTEX, DVIPDF, DVIPS, HEVEA, LATEX, MAKEINDEX,
-MAKEINFO, PDFLATEX, PDFTEX, SED, T4HT, TEX, TEX4HT, TEXINDEX, and THUMBPDF_CMD
-environment variables are used to run those commands, if they are set.
-
-Regarding --dvipdf, if DVIPDF is not set in the environment, the
-following programs are looked for (in this order): dvipdfmx dvipdfm
-dvipdf dvi2pdf dvitopdf.
-
-Any CMD strings are added after @setfilename for Texinfo input, or in
-the first line for LaTeX input.
-
-Report bugs to bug-texinfo@gnu.org,
-general questions and discussion to help-texinfo@gnu.org.
-GNU Texinfo home page: <http://www.gnu.org/software/texinfo/>
-General help using GNU software: <http://www.gnu.org/gethelp/>
-EOF
- exit 0
-}
-
-
-# verbose WORD1 WORD2
-# -------------------
-# Report some verbose information.
+# verbose WORD1 WORD2... - Echo concatenated WORDs to stderr, if $verb.
verbose ()
{
if $verb; then
@@ -421,69 +377,45 @@ verbose ()
}
-# version
-# -------
-# Display version info and exit successfully.
-version ()
-{
- cat <<EOF
-texi2dvi (GNU Texinfo 5.2) $rcs_version
-
-Copyright (C) 2014 Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-This is free software: you are free to change and redistribute it.
-There is NO WARRANTY, to the extent permitted by law.
-EOF
- exit 0
-}
-
-
-## ---------------- ##
-## Handling lists. ##
-## ---------------- ##
-
-
-# list_append LIST-NAME ELEM
-# --------------------------
-# Set LIST-NAME to its former contents, with ELEM appended.
+# Handling lists.
+#
+# list_append LIST-NAME ELEM - Append ELEM to (the contents of) LIST-NAME.
list_append ()
{
- local la_l="$1"
+ list_name="$1"
shift
- eval set X \$$la_l "$@"
+ eval set X \$$list_name "$@"
shift
- eval $la_l=\""$@"\"
+ eval $list_name=\""$@"\"
}
-# list_concat_dirs LIST-NAME DIR-LIST
-# -----------------------------------
-# Append to LIST-NAME all the components (included empty) from
-# the $path_sep separated list DIR-LIST. Make the paths absolute.
+# list_concat_dirs LIST-NAME DIR-LIST - Append to LIST-NAME all the
+# components (including empty ones) from the $path_sep-separated list
+# DIR-LIST. Make the paths absolute.
list_concat_dirs ()
{
- local lcd_list="$1"
+ lcd_list="$1"
# Empty path components are meaningful to tex. We rewrite them as
# `EMPTY' so they don't get lost when we split on $path_sep.
# Hopefully no one will have an actual directory named EMPTY.
- local replace_EMPTY="-e 's/^$path_sep/EMPTY$path_sep/g' \
- -e 's/$path_sep\$/${path_sep}EMPTY/g' \
- -e 's/$path_sep$path_sep/${path_sep}EMPTY:/g'"
+ lcd_replace_EMPTY="-e 's/^$path_sep/EMPTY$path_sep/g' \
+ -e 's/$path_sep\$/${path_sep}EMPTY/g' \
+ -e 's/$path_sep$path_sep/${path_sep}EMPTY${path_sep}/g'"
save_IFS=$IFS
IFS=$path_sep
- set x `echo "$2" | eval $SED $replace_EMPTY`; shift
+ set x `echo "$2" | eval $SED $lcd_replace_EMPTY`; shift
IFS=$save_IFS
- local dir
- for dir
+ for lcd_dir
do
- case $dir in
+ case $lcd_dir in
EMPTY)
list_append $lcd_list ""
;;
*)
- if test -d $dir; then
- dir=`absolute "$dir"`
- list_append $lcd_list "$dir"
+ if test -d $lcd_dir; then
+ dir=`absolute "$lcd_dir"`
+ list_append $lcd_list "$lcd_dir"
fi
;;
esac
@@ -491,64 +423,54 @@ list_concat_dirs ()
}
-# list_prefix LIST-NAME SEP -> STRING
-# -----------------------------------
-# Return a string that is composed of the LIST-NAME with each item
-# preceded by SEP.
+# list_prefix LIST-NAME SEP -> STRING - Return string with each element
+# of LIST-NAME preceded by SEP.
list_prefix ()
{
- local lp_p="$2"
+ lp_separator="$2"
eval set X \$$1
shift
- local lp_res
+ lp_result=''
for i
do
- lp_res="$lp_res \"$lp_p\" \"$i\""
+ lp_result="$lp_result \"$lp_separator\" \"$i\""
done
- echo "$lp_res"
+ echo "$lp_result"
}
-# list_infix LIST-NAME SEP -> STRING
-# ----------------------------------
-# Same as list_prefix, but a separator.
+# list_infix LIST-NAME SEP -> STRING - Same as list_prefix, but a separator.
list_infix ()
{
eval set X \$$1
shift
- local la_IFS="$IFS"
+ save_IFS="$IFS"
IFS=$path_sep
echo "$*"
- IFS=$la_IFS
+ IFS=$save_IFS
}
-# list_dir_to_abs LIST-NAME
-# -------------------------
-# Convert the list to using only absolute dir names.
+# list_dir_to_abs LIST-NAME - Convert list to using only absolute dir names.
# Currently unused, but should replace absolute_filenames some day.
list_dir_to_abs ()
{
- local ld_l="$1"
- eval set X \$$ld_l
+ ldta_list="$1"
+ eval set X \$$ldta_list
shift
- local ld_res
+ ldta_result=''
for dir
do
dir=`absolute "$dir"`
test -d "$dir" || continue
- ld_res="$ld_res \"$dir\""
+ ldta_result="$ldata_result \"$dir\""
done
- set X $ld_res; shift
- eval $ld_l=\"$@\"
+ set X $ldta_result; shift
+ eval $ldta_list=\"$@\"
}
-## ------------------------------ ##
-## Language auxiliary functions. ##
-## ------------------------------ ##
-
-
-# out_lang_set LANG
-# -----------------
+# Language auxiliary functions.
+#
+# out_lang_set LANG - set $out_lang to LANG (dvi, pdf, etc.), or error.
out_lang_set ()
{
case $1 in
@@ -557,10 +479,7 @@ out_lang_set ()
esac
}
-
-# out_lang_tex
-# ------------
-# Return the tex output language (DVI or PDF) for $OUT_LANG.
+# out_lang_tex - Return the tex output language (DVI or PDF) for $out_lang.
out_lang_tex ()
{
case $out_lang in
@@ -571,10 +490,7 @@ out_lang_tex ()
esac
}
-
-# out_lang_ext
-# ------------
-# Return the extension for $OUT_LANG.
+# out_lang_ext - Return the extension for $out_lang (pdf, dvi, etc.).
out_lang_ext ()
{
case $out_lang in
@@ -585,83 +501,64 @@ out_lang_ext ()
}
-## ------------------------- ##
-## TeX auxiliary functions. ##
-## ------------------------- ##
-
-# Save TEXINPUTS so we can construct a new TEXINPUTS path for each file.
-# Likewise for bibtex and makeindex.
-tex_envvars="BIBINPUTS BSTINPUTS DVIPSHEADERS INDEXSTYLE MFINPUTS MPINPUTS \
-TEXINPUTS TFMFONTS"
-for var in $tex_envvars; do
- eval ${var}_orig=\$$var
- export $var
-done
-
-
-# absolute_filenames TEX-PATH -> TEX-PATH
-# ---------------------------------------
-# Convert relative paths to absolute paths, so we can run in another
-# directory (e.g., in tidy build mode, or during the macro-support
-# detection). Prepend ".".
+# TeX file auxiliary functions.
+#
+# absolute_filenames TEX-PATH -> TEX-PATH - Convert relative paths to
+# absolute, so we can run in another directory (e.g., in tidy build
+# mode, or during the macro-support detection).
absolute_filenames ()
{
# Empty path components are meaningful to tex. We rewrite them as
# `EMPTY' so they don't get lost when we split on $path_sep.
# Hopefully no one will have an actual directory named EMPTY.
- local replace_empty="-e 's/^$path_sep/EMPTY$path_sep/g' \
- -e 's/$path_sep\$/${path_sep}EMPTY/g' \
- -e 's/$path_sep$path_sep/${path_sep}EMPTY:/g'"
- local res
- res=`echo "$1" | eval $SED $replace_empty`
+ af_replace_empty="-e 's/^$path_sep/EMPTY$path_sep/g' \
+ -e 's/$path_sep\$/${path_sep}EMPTY/g' \
+ -e 's/$path_sep$path_sep/${path_sep}EMPTY${path_sep}/g'"
+ af_result=`echo "$1" | eval $SED $af_replace_empty`
save_IFS=$IFS
IFS=$path_sep
- set x $res; shift
- res=.
+ set x $af_result; shift
+ af_result=
+ af_path_sep=
for dir
do
case $dir in
EMPTY)
- res=$res$path_sep
+ af_result=$af_result$af_path_sep
;;
*)
if test -d "$dir"; then
- res=$res$path_sep`absolute "$dir"`
+ af_result=$af_result$af_path_sep`absolute "$dir"`
else
# Even if $dir is not a directory, preserve it in the path.
# It might contain metacharacters that TeX will expand in
# turn, e.g., /some/path/{a,b,c}. This will not get the
# implicit absolutification of the path, but we can't help that.
- res=$res$path_sep$dir
+ af_result=$af_result$af_path_sep$dir
fi
;;
esac
+ af_path_sep=$path_sep
done
- echo "$res"
+ echo "$af_result"
}
-# output_base_name FILE
-# ---------------------
-# The name of FILE, possibly renamed to satisfy --output.
-# FILE is local, there is no directory part.
+# output_base_name FILE - Return the name of FILE, possibly renamed to
+# satisfy --output. FILE is local, i.e., without any directory part.
output_base_name ()
{
case $oname in
'') echo "$1";;
- *) local out_noext
- out_noext=`noext "$oname"`
- local file_ext
- file_ext=`echo "$1" | $SED 's/^.*\.//'`
- echo "$out_noext.$file_ext"
+ *) obn_out_noext=`noext "$oname"`
+ obn_file_ext=`echo "$1" | $SED 's/^.*\.//'`
+ echo "$obn_out_noext.$obn_file_ext"
;;
esac
}
-# destdir
-# -------
-# Return the name of the directory where the output is expected.
+# destdir - Return the directory where the output is expected.
destdir ()
{
case $oname in
@@ -671,15 +568,13 @@ destdir ()
}
-# move_to_dest FILE...
-# --------------------
-# Move FILE to the place where the user expects it. Truly move it, that
-# is, it must not remain in its build location unless that is also the
-# output location. (Otherwise it might appear as an extra file in make
-# distcheck.)
+# move_to_dest FILE... - Move FILE(s) to the place where the user expects.
+# Truly move it, that is, it must not remain in its build location
+# unless that is also the output location. (Otherwise it might appear
+# as an extra file in make distcheck.)
#
-# FILE can be the principal output (in which case -o directly applies), or
-# an auxiliary file with the same base name.
+# FILE can be the principal output (in which case -o directly applies),
+# or an auxiliary file with the same base name.
move_to_dest ()
{
# echo "move_to_dest $*, tidy=$tidy, oname=$oname"
@@ -690,23 +585,17 @@ move_to_dest ()
false:) return;;
esac
- local destfile
- local destdir
- local destbase
- local sourcedir
- local sourcebase
-
for file
do
test -f "$file" \
|| error 1 "no such file or directory: $file"
case $tidy:$oname in
- true:) destdir=$orig_pwd
- destfile=$destdir/$file;;
- true:*) destfile=`output_base_name "$file"`
- destdir=`dirname "$destfile"`;;
- false:*) destfile=$oname
- destdir=`dirname "$destfile"`;;
+ true:) mtd_destdir=$orig_pwd
+ mtd_destfile=$mtd_destdir/$file;;
+ true:*) mtd_destfile=`output_base_name "$file"`
+ mtd_destdir=`dirname "$mtd_destfile"`;;
+ false:*) mtd_destfile=$oname
+ mtd_destdir=`dirname "$mtd_destfile"`;;
esac
# We want to compare the source location and the output location,
@@ -716,45 +605,39 @@ move_to_dest ()
# directory names, canonicalized with pwd. We can't use cmp -s
# since the output file might not actually change from run to run;
# e.g., TeX DVI output is timestamped to only the nearest minute.
- destdir=`cd "$destdir" && pwd`
- destbase=`basename "$destfile"`
-
- sourcedir=`dirname "$file"`
- sourcedir=`cd "$sourcedir" && pwd`
- sourcebase=`basename "$file"`
-
- if test "$sourcedir/$sourcebase" != "$destdir/$destbase"; then
- verbose "Moving $file to $destfile"
- rm -f "$destfile"
- mv "$file" "$destfile"
+ mtd_destdir=`cd "$mtd_destdir" && pwd`
+ mtd_destbase=`basename "$mtd_destfile"`
+
+ mtd_sourcedir=`dirname "$file"`
+ mtd_sourcedir=`cd "$mtd_sourcedir" && pwd`
+ mtd_sourcebase=`basename "$file"`
+
+ if test "$mtd_sourcedir/$mtd_sourcebase" != "$mtd_destdir/$mtd_destbase"
+ then
+ verbose "Moving $file to $mtd_destfile"
+ rm -f "$mtd_destfile"
+ mv "$file" "$mtd_destfile"
fi
done
}
-## --------------------- ##
-## Managing xref files. ##
-## --------------------- ##
-
-# aux_file_p FILE
-# ---------------
-# Return with success if FILE is an aux file.
+# Managing xref files.
+#
+# aux_file_p FILE - Echo FILE if FILE is an aux file.
aux_file_p ()
{
- test -f "$1" || return 1
+ test -f "$1" || return 0
case $1 in
- *.aux) return 0;;
- *) return 1;;
+ *.aux) echo "$1";;
+ *) return 0;;
esac
}
-# bibaux_file_p FILE
-# ------------------
-# Return with success if FILE is an aux file containing citation
-# requests.
+# bibaux_file_p FILE - Echo FILE if FILE contains citation requests.
bibaux_file_p ()
{
- test -s "$1" || return 1
+ test -s "$1" || return 0
if (grep '^\\bibstyle[{]' "$1" \
&& grep '^\\bibdata[{]' "$1" \
## The following line is suspicious: fails when there
@@ -763,17 +646,15 @@ bibaux_file_p ()
## && grep '^\\citation[{]' "$f"
) >&6 2>&1;
then
- return 0
+ echo "$1"
fi
- return 1
+ return 0
}
-# index_file_p FILE
-# -----------------
-# Return with success if FILE is an index file.
+# index_file_p FILE - Echo FILE if FILE is an index file.
index_file_p ()
{
- test -f "$1" || return 1
+ test -f "$1" || return 0
case $in_lang:$latex2html:`out_lang_tex`:`$SED '1q' "$1"` in
# When working with TeX4HT, *.idx are created by LaTeX. They must
# be processed to produce *.4ix, *.4dx files. The *.4dx file is
@@ -781,20 +662,21 @@ index_file_p ()
# handled by run_index, so we are only interested in the *.idx
# files, which have each "\indexentry" preceded by a
# "\beforeentry".
- latex:tex4ht:html:"\\beforeentry {"*) return 0;;
+ latex:tex4ht:html:"\\beforeentry {"*) echo $1;;
# When index.sty is used, there is a space before the brace.
- latex:*:*:"\\indexentry{"*|latex:*:*:"\\indexentry {"*) return 0;;
-
- texinfo:*:*:"\\entry{"*) return 0;;
+ latex:*:*:"\\indexentry{"*|latex:*:*:"\\indexentry {"*) echo $1;;
- *) return 1;;
+ texinfo:*:*:"\\entry{"*) echo $1;;
+ texinfo:*:*:"@entry{"*) echo $1;;
+ # @entry is output from newer versions of texinfo.tex
esac
+ return 0
}
-# xref_file_p FILE
-# ----------------
-# Return with success if FILE is an xref file (indexes, tables and lists).
+########### not used currently
+# xref_file_p FILE - Return success if FILE is an xref file (indexes,
+# tables and lists).
xref_file_p ()
{
test -f "$1" || return 1
@@ -810,67 +692,52 @@ xref_file_p ()
}
-# generated_files_get FILENAME-NOEXT [PREDICATE-FILTER]
-# -----------------------------------------------------
-# Return the list of files generated by the TeX compilation of FILENAME-NOEXT.
-generated_files_get ()
+# Used in generated_files_get
+generated_files_get_from_log ()
{
- local filter=true
- if test -n "$2"; then
- filter=$2
+ if test -f "$1.log"; then
+ # Usually the output is like: \openout1 = `foobar.tex'.
+ # (including the final period)
+ # but luatex outputs: \openout1 = foobar.tex
+ # (no quotes, no period).
+ # So we have to make the punctuation optional.
+ grep '^\\openout[0-9]' "$1.log" \
+ | $SED -e "s/\\\\openout[^=]*= *[\`']*//" \
+ -e "s/'\.$//"
fi
+}
- # Gather the files created by TeX.
- (
- if test -f "$1.log"; then
- $SED -n -e "s,^\\\\openout.* = \`\\(.*\\)'\\.,\\1,p" "$1.log"
- fi
- echo "$1.log"
- ) |
- # Depending on these files, infer outputs from other tools.
- while read file; do
- echo $file
- case $in_lang in
- texinfo)
- # texindex: texinfo.cp -> texinfo.cps
- if index_file_p $file; then
- echo ${file}s
- fi
- ;;
- latex)
- if aux_file_p $file; then
- # bibtex: *.aux -> *.bbl and *.blg.
- echo $file | $SED 's/^\(.*\)\.aux$/\1.bbl/'
- echo $file | $SED 's/^\(.*\)\.aux$/\1.blg/'
- # -recorder: .fls
- echo $file | $SED 's/^\(.*\)\.aux$/\1.fls/'
- fi
- ;;
- esac
- done |
- # Filter existing files matching the criterion.
- #
- # With an input file name containing a space, this produces a
- # "command not found" message (and filtering is ineffective).
- # The situation with a newline is presumably even worse.
- while read file; do
- if $filter "$file"; then
- echo $file
+# Used in generated_files_get
+generated_files_get_from_fls ()
+{
+ if test -f "$1.fls"; then
+ grep '^OUTPUT ' "$1.fls" | cut -b 8- \
+ | grep -v '\.dvi$' | grep -v '\.log$' | grep -v '\.pdf$' || true
+ fi
+}
+
+# generated_files_get - Output the list of files generated by the TeX
+# compilation.
+generated_files_get ()
+{
+ $generated_files_get_method "$in_noext"
+ if test $generated_files_get_method = generated_files_get_from_fls; then
+ if test -r "$in_noext.fl"; then
+ report 'WARNING!! The fl index may typeset as garbage!' # goes to stderr
+ report 'Try upgrading your version of texinfo.tex, or else try setting'
+ report 'the environment variable TEXI2DVI_USE_RECORDER to '\''no'\''.'
+report 'Once you'\''ve done that, delete the file with an '\''fl'\'' extension.'
fi
- done |
- sort |
- # Some files are opened several times, e.g., listings.sty's *.vrb.
- uniq
+ fi
}
-# xref_files_save
-# ---------------
-# Save the xref files.
+# xref_files_save - set xref_files_orig from xref_files_new, and save xref
+# files in $work_bak.
xref_files_save ()
{
# Save copies of auxiliary files for later comparison.
- xref_files_orig=`generated_files_get "$in_noext" xref_file_p`
+ xref_files_orig=$xref_files_new
if test -n "$xref_files_orig"; then
verbose "Backing up xref files: $xref_files_orig"
# The following line improves `cp $xref_files_orig "$work_bak"'
@@ -880,14 +747,24 @@ xref_files_save ()
# Users may have, e.g., --keep-old-files. Don't let this interfere.
# (Don't use unset for the sake of ancient shells.)
TAR_OPTIONS=; export TAR_OPTIONS
- tar cf - $xref_files_orig | (cd "$work_bak" && tar xf -)
+ tar cf - $xref_files_orig | (cd "$rel$work_bak" && tar xf -)
+ fi
+
+ # Remove auxiliary files in same directory as main input file. Otherwise,
+ # these will likely be read instead of those in the build dir.
+ if $tidy ; then
+ secondary_xref_files=`sorted_index_files`
+ for f in $xref_files_new $secondary_xref_files ; do
+ if test -f "$rel$in_dir/$f" ; then
+ remove $rel$in_dir/$f
+ fi
+ done
fi
}
-# xref_files_changed
-# ------------------
-# Whether the xref files were changed since the previous run.
+# xref_files_changed - Return success if the xref files have changed
+# since the previous run.
xref_files_changed ()
{
# LaTeX (and the package changebar) report in the LOG file if it
@@ -898,14 +775,14 @@ xref_files_changed ()
if grep "Rerun to get" "$in_noext.log" >&6 2>&1; then
return 0
fi
- # biblatex report of whether rerunning is needed.
+ # Similarly, check for biblatex report of whether rerunning is needed.
if grep "biblatex.*(re)run" "$in_noext.log" >&6 2>&1; then
return 0
fi
# If old and new lists don't have the same file list,
# then something has definitely changed.
- xref_files_new=`generated_files_get "$in_noext" xref_file_p`
+ xref_files_new=`generated_files_get`
verbose "Original xref files = $xref_files_orig"
verbose "New xref files = $xref_files_new"
if test "x$xref_files_orig" != "x$xref_files_new"; then
@@ -916,31 +793,32 @@ xref_files_changed ()
for this_file in $xref_files_new; do
verbose "Comparing xref file `echo $this_file | $SED 's|\./||g'` ..."
# cmp -s returns nonzero exit status if files differ.
- if cmp -s "$this_file" "$work_bak/$this_file"; then :; else
+ if cmp -s "$this_file" "$rel$work_bak/$this_file"; then :; else
verbose "xref file `echo $this_file | $SED 's|\./||g'` differed ..."
if $debug; then
- diff -u "$work_bak/$this_file" "$this_file"
+ diff -u "$rel$work_bak/$this_file" "$this_file"
fi
return 0
fi
done
+ secondary_xref_files=`sorted_index_files`
+ verbose "Secondary xref files = $secondary_xref_files"
+ for this_file in $secondary_xref_files; do
+ if test -f $this_file; then :; else
+ verbose "$this_file missing ..."
+ return 0
+ fi
+ done
+
# No change.
return 1
}
-
-
-## ----------------------- ##
-## Running the TeX suite. ##
-## ----------------------- ##
-
-
-
-# run_tex ()
-# ----------
-# Run TeX as "$tex $in_input", taking care of errors and logs.
-run_tex ()
+# Running the TeX suite.
+#
+# Set tex_cmd variable, for running TeX.
+make_tex_cmd ()
{
case $in_lang:$latex2html:`out_lang_tex` in
latex:*:dvi|latex:tex4ht:html)
@@ -955,18 +833,9 @@ run_tex ()
*) tex=$TEX
esac;;
texinfo:*:pdf) tex=$PDFTEX;;
-
*) error 1 "$out_lang not supported for $in_lang";;
esac
- # do the special catcode trick for ~ in filenames only for Texinfo,
- # not LaTeX.
- if test x"$in_lang" = xtexinfo && test $catcode_special = maybe; then
- catcode_special=true
- else
- catcode_special=false
- fi
-
# Beware of aux files in subdirectories that require the
# subdirectory to exist.
case $in_lang:$tidy in
@@ -981,7 +850,7 @@ run_tex ()
esac
# Note that this will be used via an eval: quote properly.
- local cmd="$tex"
+ tex_cmd="$tex"
# If possible, make TeX report error locations in GNU format.
if $line_error; then
@@ -995,98 +864,90 @@ run_tex ()
# The mk program and perhaps others want to parse TeX's
# original error messages.
case $tex_help in
- *file-line-error*) cmd="$cmd --file-line-error";;
+ *file-line-error*) tex_cmd="$tex_cmd --file-line-error";;
esac
fi
+ # Tell TeX about -recorder option, if specified
+ # recorder_option_maybe is in { " -recorder", "" }
+ tex_cmd="$tex_cmd$recorder_option_maybe"
+
+
# Tell TeX about TCX file, if specified.
- test -n "$translate_file" && cmd="$cmd --translate-file=$translate_file"
+ test -n "$translate_file" \
+ && tex_cmd="$tex_cmd --translate-file=$translate_file"
# Tell TeX to make source specials (for backtracking from output to
# source, given a sufficiently smart editor), if specified.
- test -n "$src_specials" && cmd="$cmd $src_specials"
+ test -n "$src_specials" && tex_cmd="$tex_cmd $src_specials"
# Tell TeX to allow running external executables
- test -n "$shell_escape" && cmd="$cmd $shell_escape"
-
- # Tell TeX to be batch if requested.
- if $batch; then
- # \batchmode does not show terminal output at all, so we don't
- # want that. And even in batch mode, TeX insists on having input
- # from the user. Close its stdin to make it impossible.
- cmd="$cmd </dev/null '${escape}nonstopmode'"
- fi
+ test -n "$shell_escape" && tex_cmd="$tex_cmd $shell_escape"
- # we'd like to handle arbitrary input file names, especially
- # foo~bar/a~b.tex, since Debian likes ~ characters.
- if $catcode_special; then
- # $normaltilde is just to reduce line length in this source file.
- # The idea is to define \normaltilde as a catcode other ~ character,
- # then make the active ~ be equivalent to that, instead of the plain
- # TeX tie. Then when the active ~ appears in the filename, it will
- # be expanded to itself, as far as \input will see. (This is the
- # same thing that texinfo.tex does in general, BTW.)
- normaltilde="${escape}catcode126=12 ${escape}def${escape}normaltilde{~}"
- cmd="$cmd '$normaltilde${escape}catcode126=13 ${escape}let~\normaltilde '"
- fi
- # Other special (non-active) characters could be supported by
- # resetting their catcodes to other on the command line and changing
- # texinfo.tex to initialize everything to plain catcodes. Maybe someday.
-
- # append the \input command.
- cmd="$cmd '${escape}input'"
-
- # TeX's \input does not (easily or reliably) support whitespace
- # characters or other special characters in file names. Our intensive
- # use of absolute file names makes this worse: the enclosing directory
- # names may include white spaces. Improve the situation using a
- # symbolic link to the filename in the current directory, in tidy mode
- # only. Do not alter in_input.
- #
- # The filename is almost always tokenized using plain TeX conventions
- # (the exception would be if the user made a texinfo.fmt file). Not
- # all the plain TeX special characters cause trouble, but there's no
- # harm in making the link.
- #
- case $tidy:`func_dirname "$in_input"` in
- true:*["$space$tab$newline\"#\$%\\^_{}~"]*)
- _run_tex_file_name=`basename "$in_input"`
- if test ! -f "$_run_tex_file_name"; then
- # It might not be a file, clear it.
- run rm -f "$_run_tex_file_name"
- run ln -s "$in_input"
- fi
- cmd="$cmd '$_run_tex_file_name'"
- ;;
+ # Run without interaction.
+ # \batchmode does not show terminal output at all, so we don't
+ # want that. And even in batch mode, TeX insists on having input
+ # from the user. Close its stdin to make it impossible.
+ tex_cmd="$tex_cmd </dev/null '${escape}nonstopmode'"
+}
- *)
- cmd="$cmd '$in_input'"
- ;;
- esac
- verbose "$0: Running $cmd ..."
- if eval "$cmd" >&5; then
+# run_tex - Run TeX, taking care of errors and logs.
+run_tex ()
+{
+ # Check for any unusual characters in the filename.
+ # However, >, \ and any whitespace characters are not supported
+ # filenames.
+ in_input_funnies=`echo "$in_input" \
+ | $SED -e 's![^}#$%&^_{~]!!g' -e 's!\(.\)!\1\''
+!g' | uniq`
+
+ if test -n "$in_input_funnies" ; then
+ # Make > an end group character, as it's unlikely to appear in
+ # a filename.
+ tex_cmd="$tex_cmd '${escape}bgroup${escape}catcode62=2${escape}relax'"
+
+ # If the filename has funny characters, change the TeX category codes of
+ # some characters within a group, and use \expandafter to input the file
+ # outside of the group.
+ for w in $in_input_funnies ; do
+ tex_cmd="$tex_cmd '${escape}catcode\`${escape}$w=12${escape}relax'"
+ done
+
+ # Set \toks0 to "\input FILENAME\relax"
+ tex_cmd="$tex_cmd '${escape}toks0${escape}bgroup${escape}input' '$rel$in_input' '${escape}relax>"
+
+ # Expand \toks0 after the end of the group
+ tex_cmd="$tex_cmd${escape}expandafter${escape}egroup"
+ tex_cmd="$tex_cmd${escape}the${escape}toks0${escape}relax'"
+ else
+ # In the case of a simple filename, just pass the filename
+ # with no funny tricks.
+ tex_cmd="$tex_cmd '${escape}input' '$rel$in_input'"
+ fi
+
+ verbose "$0: Running $tex_cmd ..."
+ if (eval "$tex_cmd" >&5); then
case $out_lang in
dvi | pdf ) move_to_dest "$in_noext.$out_lang";;
esac
else
- error 1 "$tex exited with bad status, quitting."
+ tex_failed=true
fi
}
-# run_bibtex ()
-# -------------
-# Run bibtex on (or biber) current file.
-# - If its input (AUX) exists.
-# - If some citations are missing (LOG contains `Citation').
-# or the LOG complains of a missing .bbl
+
+# run_bibtex - Run bibtex (or biber) on current file
+# - if its input (AUX) exists,
+# - or if some citations are missing (LOG contains `Citation'),
+# - or if the LOG complains of a missing .bbl.
#
# Don't try to be too smart:
# 1. Running bibtex only if the bbl file exists and is older than
# the LaTeX file is wrong, since the document might include files
# that have changed.
#
-# 3. Because there can be several AUX (if there are \include's),
+# 2. Because there can be several AUX (if there are \include's),
# but a single LOG, looking for missing citations in LOG is
# easier, though we take the risk of matching false messages.
run_bibtex ()
@@ -1109,7 +970,7 @@ run_bibtex ()
&& grep '^\\bibdata' "$in_noext.aux") ) \
>&6 2>&1; \
then
- bibtex_aux=`generated_files_get "$in_noext" bibaux_file_p`
+ bibtex_aux=`filter_files bibaux_file_p`
for f in $bibtex_aux; do
run $bibtex "$f"
done
@@ -1122,16 +983,31 @@ run_bibtex ()
fi
}
-# run_index ()
-# ------------
-# Run texindex (or makeindex or texindy) on current index files. If
-# they already exist, and after running TeX a first time the index
-# files don't change, then there's no reason to run TeX again. But we
-# won't know that if the index files are out of date or nonexistent.
+
+# filter_file PREDICATE - Go through the list of files in xref_files_new
+# and use PREDICATE on each one to optionally print it or print other files
+# based on the filename.
+filter_files ()
+{
+ test -n "$xref_files_new" || return 0
+ echo "$xref_files_new" |
+ # Filter existing files matching the criterion.
+ #
+ while read file; do
+ $1 "$file"
+ done |
+ sort |
+ # Some files are opened several times, e.g., listings.sty's *.vrb.
+ uniq
+}
+
+# run_index - Run texindex (or makeindex or texindy) on current index
+# files. If they already exist, and after running TeX a first time the
+# index files don't change, then there's no reason to run TeX again.
+# But we won't know that if the index files are out of date or nonexistent.
run_index ()
{
- local index_files
- index_files=`generated_files_get $in_noext index_file_p`
+ index_files=`filter_files index_file_p`
test -n "$index_files" \
|| return 0
@@ -1139,8 +1015,6 @@ run_index ()
: ${TEXINDEX:=texindex}
: ${TEXINDY:=texindy}
- local index_file
- local index_noext
case $in_lang:$latex2html:`out_lang_tex` in
latex:tex4ht:html)
for index_file in $index_files
@@ -1168,16 +1042,14 @@ run_index ()
}
-# run_tex4ht ()
-# -------------
-# Run the last two phases of TeX4HT: tex4ht extracts the HTML from the
-# instrumented DVI file, and t4ht converts the figures and installs
-# the files when given -d.
+# run_tex4ht - Run the last two phases of TeX4HT: tex4ht extracts the
+# HTML from the instrumented DVI file, and t4ht converts the figures and
+# installs the files when given -d.
#
# Because knowing exactly which files are created is complex (in
# addition the names are not simple to compute), which makes it
-# difficult to install the output files in a second step, it is much
-# simpler to install directly the output files.
+# difficult to install the output files in a second step, we
+# tell t4ht to install the output files.
run_tex4ht ()
{
case $in_lang:$latex2html:`out_lang_tex` in
@@ -1191,8 +1063,7 @@ run_tex4ht ()
}
-# run_thumbpdf ()
-# ---------------
+# run_thumbpdf - Run thumbpdf.
run_thumbpdf ()
{
if test `out_lang_tex` = pdf \
@@ -1212,14 +1083,15 @@ run_thumbpdf ()
}
-# run_dvipdf FILE.dvi
-# -------------------
-# Convert FILE.dvi to FILE.pdf.
+# run_dvipdf FILE.dvi - Convert FILE.dvi to FILE.pdf.
run_dvipdf ()
{
# Find which dvi->pdf program is available.
- if test -z "$dvipdf"; then
- for i in "$DVIPDF" dvipdfmx dvipdfm dvipdf dvi2pdf dvitopdf; do
+ if test -n "$DVIPDF"; then
+ dvipdf=$DVIPDF # user envvar, use it without checking
+
+ elif test -z "$dvipdf"; then
+ for i in dvipdfmx dvipdfm dvipdf dvi2pdf dvitopdf; do
if findprog $i; then
dvipdf=$i
fi
@@ -1234,31 +1106,39 @@ run_dvipdf ()
fi
}
-# run_tex_suite ()
-# ----------------
-# Run the TeX tools until a fix point is reached.
+# run_tex_suite - Run the TeX tools until a stable point is reached.
run_tex_suite ()
{
+ make_tex_cmd
+
# Move to the working directory.
if $tidy; then
verbose "cd $work_build"
- cd "$work_build" || exit 1
+ cd_dir "$work_build" || exit 1
fi
# Count the number of cycles.
- local cycle=0
+ suite_cycle=0
+
+ # Start by checking the log files for what files were created last
+ # time. This will mean that if they don't change, we finish in 1 cycle.
+ xref_files_new=`generated_files_get`
+ xref_files_save
while :; do
- # check for probably LaTeX loop (e.g. varioref)
- if test $cycle -eq "$max_iters"; then
+ # check for (probably) LaTeX loop (e.g. varioref)
+ if test $suite_cycle -eq "$max_iters"; then
error 0 "Maximum of $max_iters cycles exceeded"
break
fi
# report progress
- cycle=`expr $cycle + 1`
- verbose "Cycle $cycle for $command_line_filename"
+ suite_cycle=`expr $suite_cycle + 1`
+ verbose "Cycle $suite_cycle for $command_line_filename"
+ tex_failed=false
+ run_core_conversion
+ xref_files_changed || break
xref_files_save
# We run bibtex first, because it's more likely for the indexes
@@ -1266,11 +1146,13 @@ run_tex_suite ()
# would be rare.
run_bibtex
run_index
- run_core_conversion
-
- xref_files_changed || break
done
+ if $tex_failed ; then
+ # TeX failed, and the xref files did not change.
+ error 1 "$tex exited with bad status, quitting."
+ fi
+
# If we were using thumbpdf and producing PDF, then run thumbpdf
# and TeX one last time.
run_thumbpdf
@@ -1295,53 +1177,11 @@ run_tex_suite ()
cd_orig
}
-## -------------------------------- ##
-## TeX processing auxiliary tools. ##
-## -------------------------------- ##
-
-# A sed script that preprocesses Texinfo sources in order to keep the
-# iftex sections only. We want to remove non-TeX sections, and comment
-# (with `@c _texi2dvi') TeX sections so that makeinfo does not try to
-# parse them. Nevertheless, while commenting TeX sections, don't
-# comment @macro/@end macro so that makeinfo does propagate them.
-# Unfortunately makeinfo --iftex --no-ifinfo doesn't work well enough
-# (yet), makeinfo can't parse the TeX commands, so work around with sed.
-#
-# We assume that `@c _texi2dvi' starting a line is not present in the
-# document.
+# TeX processing auxiliary tools.
#
-comment_iftex=\
-'/^@tex/,/^@end tex/{
- s/^/@c _texi2dvi/
-}
-/^@iftex/,/^@end iftex/{
- s/^/@c _texi2dvi/
- /^@c _texi2dvi@macro/,/^@c _texi2dvi@end macro/{
- s/^@c _texi2dvi//
- }
-}
-/^@ifnottex/,/^@end ifnottex/{
- s/^/@c (_texi2dvi)/
-}
-/^@ifinfo/,/^@end ifinfo/{
- /^@node/p
- /^@menu/,/^@end menu/p
- t
- s/^/@c (_texi2dvi)/
-}
-s/^@ifnotinfo/@c _texi2dvi@ifnotinfo/
-s/^@end ifnotinfo/@c _texi2dvi@end ifnotinfo/'
-
-# Uncommenting is simpler: remove any leading `@c texi2dvi'; repeated
-# copies can sneak in via macro invocations.
-uncomment_iftex='s/^@c _texi2dvi\(@c _texi2dvi\)*//'
-
-
-# run_makeinfo ()
-# ---------------
-# Expand macro commands in the original source file using Makeinfo.
-# Always use `end' footnote style, since the `separate' style
+# run_makeinfo - Expand macro commands in the original source file using
+# Makeinfo. Always use `end' footnote style, since the `separate' style
# generates different output (arguably this is a bug in -E). Discard
# main info output, the user asked to run TeX, not makeinfo.
run_makeinfo ()
@@ -1395,15 +1235,14 @@ to tex itself simply not working."
work_src=$workdir/src
ensure_dir "$work_src"
in_src=$work_src/$in_base
- local miincludes
- miincludes=`list_prefix includes -I`
+ run_mi_includes=`list_prefix includes -I`
verbose "Macro-expanding $command_line_filename to $in_src ..."
# eval $makeinfo because it might be defined as something complex
# (running missing) and then we end up with things like '"-I"',
# and "-I" (including the quotes) is not an option name. This
# happens with gettext 0.14.5, at least.
$SED "$comment_iftex" "$command_line_filename" \
- | eval $makeinfo --footnote-style=end -I "$in_dir" $miincludes \
+ | eval $makeinfo --footnote-style=end -I "$in_dir" $run_mi_includes \
-o /dev/null --macro-expand=- \
| $SED "$uncomment_iftex" >"$in_src"
# Continue only if everything succeeded.
@@ -1416,9 +1255,62 @@ to tex itself simply not working."
fi
}
-# insert_commands ()
-# ------------------
-# Used most commonly for @finalout, @smallbook, etc.
+# Unfortunately, makeinfo --iftex --no-ifinfo doesn't work well enough
+# in versions before 5.0, as makeinfo can't parse the TeX commands
+# inside @tex blocks, so work around with sed.
+#
+# This sed script preprocesses Texinfo sources in order to keep the
+# iftex sections only. We want to remove non-TeX sections, and comment
+# (with `@c _texi2dvi') TeX sections so that makeinfo does not try to
+# parse them. Nevertheless, while commenting TeX sections, don't
+# comment @macro/@end macro so that makeinfo does propagate them.
+# Similarly, preserve the @top node to avoid makeinfo complaining about
+# it being missed. Comment it out after preprocessing, so that it does
+# not appear in the generated document.
+#
+# We assume that `@c _texi2dvi' or `@c (_texi2dvi)' starting a line is
+# not present in the document. Additionally, conditionally defined
+# macros inside the @top node may end up with the wrong value, although
+# this is unlikely in practice.
+#
+comment_iftex=\
+'/^@tex/,/^@end tex/{
+ s/^/@c _texi2dvi/
+}
+/^@iftex/,/^@end iftex/{
+ s/^/@c _texi2dvi/
+ /^@c _texi2dvi@macro/,/^@c _texi2dvi@end macro/{
+ s/^@c _texi2dvi//
+ }
+}
+/^@ifnottex/,/^@end ifnottex/{
+ s/^/@c (_texi2dvi)/
+ /^@c (_texi2dvi)@node Top/,/^@c (_texi2dvi)@end ifnottex/ {
+ /^@c (_texi2dvi)@end ifnottex/b
+ s/^@c (_texi2dvi)//
+ }
+}
+/^@ifinfo/,/^@end ifinfo/{
+ /^@node/p
+ /^@menu/,/^@end menu/p
+ t
+ s/^/@c (_texi2dvi)/
+}
+s/^@ifnotinfo/@c _texi2dvi@ifnotinfo/
+s/^@end ifnotinfo/@c _texi2dvi@end ifnotinfo/'
+
+# Uncomment @iftex blocks by removing any leading `@c texi2dvi' (repeated
+# copies can sneak in via macro invocations). Likewise, comment out
+# the @top node inside a @ifnottex block.
+uncomment_iftex=\
+'s/^@c _texi2dvi\(@c _texi2dvi\)*//
+/^@c (_texi2dvi)@ifnottex/,/^@c (_texi2dvi)@end ifnottex/{
+ s/^/@c (_texi2dvi)/
+}'
+
+
+# insert_commands - Insert $textra commands at the beginning of the file.
+# Recommended to be used for @finalout, @smallbook, etc.
insert_commands ()
{
if test -n "$textra"; then
@@ -1427,10 +1319,15 @@ insert_commands ()
in_xtr=$work_xtr/$in_base
ensure_dir "$work_xtr"
verbose "Inserting extra commands: $textra"
- local textra_cmd
case $in_lang in
latex) textra_cmd=1i;;
- texinfo) textra_cmd='/^@setfilename/a';;
+ texinfo)
+ textra_cmd='/^\\input texinfo/a'
+ # insert after @setfilename line if present
+ if head -n 10 $in_input | grep '^@setfilename' ; then
+ textra_cmd='/^@setfilename/a'
+ fi
+ ;;
*) error 1 "internal error, unknown language: $in_lang";;
esac
$SED "$textra_cmd\\
@@ -1453,10 +1350,9 @@ $textra" "$in_input" >"$in_xtr"
esac
}
-# compute_language FILENAME
-# -------------------------
-# Return the short string describing the language in which FILENAME
-# is written: `texinfo' or `latex'.
+
+# compute_language FILENAME - Return the short string for the language
+# in which FILENAME is written: `texinfo' or `latex'.
compute_language ()
{
# If the user explicitly specified the language, use that.
@@ -1477,9 +1373,7 @@ compute_language ()
}
-# run_hevea (MODE)
-# ----------------
-# Convert to HTML/INFO/TEXT.
+# run_hevea (MODE) - Convert to HTML/INFO/TEXT.
#
# Don't pass `-noiso' to hevea: it's useless in HTML since anyway the
# charset is set to latin1, and troublesome in other modes since
@@ -1490,27 +1384,27 @@ compute_language ()
# to handle images some day.
run_hevea ()
{
- local hevea="${HEVEA:-hevea}"
- local run_hevea="$hevea"
+ run_hevea_name="${HEVEA:-hevea}"
+ run_hevea_cmd="$run_hevea_name"
case $1 in
html) ;;
- text|info) run_hevea="$run_hevea -$1";;
- *) error 1 "run_hevea: invalid argument: $1";;
+ text|info) run_hevea_cmd="$run_hevea_cmd -$1";;
+ *) error 1 "run_hevea_cmd: invalid argument: $1";;
esac
# Compiling to the tmp directory enables to preserve a previous
# successful compilation.
- run_hevea="$run_hevea -fix -O -o '$out_base'"
- run_hevea="$run_hevea `list_prefix includes -I` -I '$orig_pwd' "
- run_hevea="$run_hevea '$in_input'"
+ run_hevea_cmd="$run_hevea_cmd -fix -O -o '$out_base'"
+ run_hevea_cmd="$run_hevea_cmd `list_prefix includes -I` -I '$orig_pwd' "
+ run_hevea_cmd="$run_hevea_cmd '$rel$in_input'"
if $debug; then
- run_hevea="$run_hevea -v -v"
+ run_hevea_cmd="$run_hevea_cmd -v -v"
fi
- verbose "running $run_hevea"
- if eval "$run_hevea" >&5; then
+ verbose "running $run_hevea_cmd"
+ if eval "$run_hevea_cmd" >&5; then
# hevea leaves trailing white spaces, this is annoying.
case $1 in text|info)
perl -pi -e 's/[ \t]+$//g' "$out_base"*;;
@@ -1521,14 +1415,12 @@ run_hevea ()
move_to_dest "$out_base"*;;
esac
else
- error 1 "$hevea exited with bad status, quitting."
+ error 1 "$run_hevea_name exited with bad status, quitting."
fi
}
-# run_core_conversion ()
-# ----------------------
-# Run the TeX (or HeVeA).
+# run_core_conversion - Run TeX (or HeVeA).
run_core_conversion ()
{
case $in_lang:$latex2html:`out_lang_tex` in
@@ -1542,23 +1434,22 @@ run_core_conversion ()
}
-# compile ()
-# ----------
-# Run the full compilation chain, from pre-processing to installation
-# of the output at its expected location.
+# compile - Run the full compilation chain, from pre-processing to
+# installation of the output at its expected location.
compile ()
{
- # Source file might include additional sources.
- # We want `.:$orig_pwd' before anything else. (We'll add `.:' later
- # after all other directories have been turned into absolute paths.)
- # `.' goes first to ensure that any old .aux, .cps,
- # etc. files in ${directory} don't get used in preference to fresher
- # files in `.'. Include orig_pwd in case we are in clean build mode, where
- # we have cd'd to a temp directory.
+ # Set include path for tools:
+ # . Include current directory in case there are files there already, so
+ # we don't have more TeX runs than necessary. orig_pwd is used in case
+ # we are in clean build mode, where we have cd'd to a temp directory.
+ # . Include directory containing file, in case there are other
+ # files @include'd.
+ # . Keep a final path_sep to get the default (system) TeX
+ # directories included.
+ # . If we have any includes, put those at the end.
+
common="$orig_pwd$path_sep$in_dir$path_sep"
#
- # If we have any includes, put those at the end.
- # Keep a final path_sep to get the default (system) TeX directories included.
txincludes=`list_infix includes $path_sep`
test -n "$txincludes" && common="$common$txincludes$path_sep"
#
@@ -1566,7 +1457,7 @@ compile ()
eval val="\$common\$${var}_orig"
# Convert relative paths to absolute paths, so we can run in another
# directory (e.g., in clean build mode, or during the macro-support
- # detection). ".:" is added here.
+ # detection).
val=`absolute_filenames "$val"`
eval $var="\"$val\""
export $var
@@ -1579,13 +1470,137 @@ compile ()
# --command, --texinfo
insert_commands
- # Run until a fix point is reached.
+ # Run until a fixed point is reached.
run_tex_suite
}
+# make_openout_test FLAGS EXTENSION
+# - Run TeX with an input file that performs an \openout. Pass FLAGS to TeX.
+#
+make_openout_test ()
+{
+ recorder_option_maybe="$1"
+ make_tex_cmd
+
+ ensure_dir "$workdir"/check_recorder
+ cd_dir "$workdir"/check_recorder
+
+ cat > openout.tex <<EOF
+\newwrite\ourwrite
+\immediate\openout\ourwrite dum.dum
+\bye
+EOF
+ # \bye doesn't work for LaTeX, but it will cause latex
+ # to exit with an input error.
+ tex_cmd="$tex_cmd '${escape}input' ./openout.tex"
+ # ./ in case . isn't in path
+ verbose "$0: running $tex_cmd ..."
+ rm -fr "openout.$2"
+ (eval "$tex_cmd" >/dev/null 2>&1)
+}
+
+# Check tex supports -recorder option
+check_recorder_support ()
+{
+ verbose "Checking TeX recorder support..."
+ make_openout_test " -recorder" fls
+ if test -f openout.fls && grep '^OUTPUT dum.dum$' openout.fls > /dev/null
+ then
+ cd_orig
+ verbose "Checking TeX recorder support... yes"
+ return 0
+ else
+ cd_orig
+ verbose "Checking TeX recorder support... no"
+ return 1
+ fi
+}
+
+# Check tex supports \openout traces in log
+check_openout_in_log_support ()
+{
+ verbose "Checking TeX \openout in log support..."
+ make_openout_test "" log
+ if test -f openout.log \
+ && grep '^\\openout..\? *= *`\?dum\.dum'\''\?' openout.log >/dev/null
+ then
+ cd_orig
+ verbose "Checking TeX \openout in log support... yes"
+ return 0
+ else
+ cd_orig
+ verbose "Checking TeX \openout in log support... no"
+ return 1
+ fi
+}
+
+# Set that output auxiliary files are detected with the -recorder option,
+# which creates a file JOBNAME.fls which is a machine-readable listing of
+# files read and written during the job.
+set_aux_files_from_fls ()
+{
+ recorder_option_maybe=" -recorder"
+ generated_files_get_method=generated_files_get_from_fls
+}
+
+# Set that output auxiliary files are detected with searching for \openout
+# in the log file.
+set_aux_files_from_log ()
+{
+ recorder_option_maybe=''
+ generated_files_get_method=generated_files_get_from_log
+}
+
+# Decide whether output auxiliary files are detected with the -recorder
+# option, or by searching for \openout in the log file.
+decide_aux_files_method ()
+{
+ # Select output file detection method
+ # Valid values of TEXI2DVI_USE_RECORDER are:
+ # yes use the -recorder option, no checks.
+ # no scan for \openout in the log file, no checks.
+ # yesmaybe check whether -recorder option is supported, and if yes
+ # use it, otherwise check for tracing \openout in the
+ # log file is supported, and if yes use it, else it is an
+ # error.
+ # nomaybe same as `yesmaybe', except that the \openout trace in
+ # log file is checked first.
+ #
+ # The default behaviour is `nomaybe'.
+
+ test -n "$TEXI2DVI_USE_RECORDER" || TEXI2DVI_USE_RECORDER=nomaybe
+
+ case $TEXI2DVI_USE_RECORDER in
+ yes) set_aux_files_from_fls;;
+
+ no) set_aux_files_from_log;;
+
+ yesmaybe)
+ if check_recorder_support; then
+ set_aux_files_from_fls
+ elif check_openout_in_log_support; then
+ set_aux_files_from_log
+ else
+ error 1 "TeX neither supports -recorder nor outputs \\openout lines in its log file"
+ fi
+ ;;
+
+ nomaybe)
+ if check_openout_in_log_support; then
+ set_aux_files_from_log
+ elif check_recorder_support; then
+ set_aux_files_from_fls
+ else
+ error 1 "TeX neither supports -recorder nor outputs \\openout lines in its log file"
+ fi
+ ;;
+
+ *) error 1 "Invalid value of TEXI2DVI_USE_RECORDER environment variable : $TEXI2DVI_USE_RECORDER.";;
-# remove FILES
-# ------------
+ esac
+}
+
+# remove FILE...
remove ()
{
verbose "Removing" "$@"
@@ -1593,42 +1608,154 @@ remove ()
}
-# mostly_clean
-# ------------
-# Remove auxiliary files and directories. Changes the current directory.
+# all_files - Echo the names of all files generated, including those by
+# auxiliary tools like texindex.
+all_files ()
+{
+ echo $in_noext.log
+ echo $in_noext.fls
+ echo $xref_files_new
+ echo `sorted_index_files`
+}
+
+sorted_index_files ()
+{
+ filter_files sorted_index_filter
+}
+
+# Print the name of a generated file based on FILE if there is one.
+sorted_index_filter ()
+{
+ case $in_lang in
+ texinfo)
+ # texindex: texinfo.cp -> texinfo.cps
+ if test -n "`index_file_p $1`" ; then
+ echo $1s
+ fi
+ ;;
+ esac
+}
+
+
+# Not currently used - use with filter_files to add secondary files created by
+# bibtex
+bibtex_secondary_files ()
+{
+ case $in_lang in
+ latex)
+ if test -n "`aux_file_p $1`"; then
+ # bibtex: *.aux -> *.bbl and *.blg.
+ echo $1 | $SED 's/^\(.*\)\.aux$/\1.bbl/'
+ echo $1 | $SED 's/^\(.*\)\.aux$/\1.blg/'
+ fi
+ ;;
+ esac
+}
+
+# mostly_clean - Remove auxiliary files and directories. Changes back to
+# the original directory.
mostly_clean ()
{
cd_orig
set X "$t2ddir"
shift
$tidy || {
- local log="$work_build/$in_noext.log"
- set X ${1+"$@"} "$log" `generated_files_get "$work_build/$in_noext"`
+ set X ${1+"$@"} `all_files`
shift
}
remove ${1+"$@"}
}
-# cleanup ()
-# ----------
-# Remove what should be removed according to options.
+# cleanup - Remove what should be removed according to options.
# Called at the end of each compilation cycle, and at the end of
# the script. Changes the current directory.
cleanup ()
{
- case $build_mode in
- local) cd_orig; remove "$t2ddir";;
- clean) mostly_clean;;
- tidy) ;;
+ case $clean:$tidy in
+ true:true) mostly_clean ;; # build mode is "clean"
+ false:false) cd_orig; remove "$t2ddir";; # build mode is "local"
esac
}
+# input_file_name_decode - Decode COMMAND_LINE_FILENAME, and set the
+# following shell variables:
+#
+# - COMMAND_LINE_FILENAME
+# The filename given on the commmand line, but cleaned of TeX commands.
+# - IN_DIR
+# The directory containing the input file.
+# - IN_BASE
+# The input file base name (no directory part).
+# - IN_NOEXT
+# The input file name with neither file extensions nor directory part.
+# - IN_INPUT
+# The path to the input file for passing as a command-line argument
+# to TeX. Defaults to COMMAND_LINE_FILENAME, but might change if the
+# input is preprocessed.
+input_file_name_decode ()
+{
+ case $command_line_filename in
+ *\\input{*}*)
+ # Let AUC-TeX error parser deal with line numbers.
+ line_error=false
+ command_line_filename=`\
+ expr X"$command_line_filename" : X'.*input{\([^}]*\)}'`
+ ;;
+ esac
+
+ # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex),
+ # prepend `./' in order to avoid that the tools take it as an option.
+ echo "$command_line_filename" | LC_ALL=C $EGREP '^(/|[A-Za-z]:/)' >&6 \
+ || command_line_filename="./$command_line_filename"
+
+ # See if the file exists. If it doesn't we're in trouble since, even
+ # though the user may be able to reenter a valid filename at the tex
+ # prompt (assuming they're attending the terminal), this script won't
+ # be able to find the right xref files and so forth.
+ test -r "$command_line_filename" \
+ || error 1 "cannot read $command_line_filename, skipping."
+
+ # Get the name of the current directory.
+ in_dir=`func_dirname "$command_line_filename"`
+
+ # Strip directory part but leave extension.
+ in_base=`basename "$command_line_filename"`
+ # Strip extension.
+ in_noext=`noext "$in_base"`
+
+ # The normalized file name to compile. Must always point to the
+ # file to actually compile (in case of recoding, macro-expansion etc.).
+ in_input=$in_dir/$in_base
+
+
+ # Compute the output file name.
+ if test x"$oname" != x; then
+ out_name=$oname
+ else
+ out_name=$in_noext.`out_lang_ext`
+ fi
+ out_dir=`func_dirname "$out_name"`
+ out_dir_abs=`absolute "$out_dir"`
+ out_base=`basename "$out_name"`
+ out_noext=`noext "$out_base"`
+}
+
+
+#
+#################### Main program starts ##########################
-## ---------------------- ##
-## Command line parsing. ##
-## ---------------------- ##
+# Initialize more variables.
+#
+# Save TEXINPUTS so we can construct a new TEXINPUTS path for each file.
+# Likewise for bibtex and makeindex.
+tex_envvars="BIBINPUTS BSTINPUTS DVIPSHEADERS INDEXSTYLE MFINPUTS MPINPUTS \
+TEXINPUTS TFMFONTS"
+for var in $tex_envvars; do
+ eval ${var}_orig=\$$var
+ export $var
+done
# Push a token among the arguments that will be used to notice when we
# ended options/arguments parsing.
@@ -1640,10 +1767,7 @@ cleanup ()
arg_sep="$$--$$"
set dummy ${1+"$@"} "$arg_sep"; shift
-#
-# Parse command line arguments.
while test x"$1" != x"$arg_sep"; do
-
# Handle --option=value by splitting apart and putting back on argv.
case "$1" in
--*=*)
@@ -1656,9 +1780,8 @@ while test x"$1" != x"$arg_sep"; do
case "$1" in
-@ ) escape=@;;
- -~ ) catcode_special=false;;
- # Silently and without documentation accept -b and --b[atch] as synonyms.
- -b | --batch) batch=true;;
+ -~ ) verbose "Option -~ is obsolete: texi2dvi ignores it.";;
+ -b | --batch) ;; # Obsolete
--build) shift; build_mode=$1;;
--build-dir) shift; build_dir=$1; build_mode=tidy;;
-c | --clean) build_mode=clean;;
@@ -1681,7 +1804,7 @@ while test x"$1" != x"$arg_sep"; do
out_lang_set `echo "x$1" | $SED 's/^x--//'`;;
-p) out_lang_set pdf;;
- -q | -s | --quiet | --silent) quiet=true; batch=true;;
+ -q | -s | --quiet | --silent) quiet=true;;
--src-specials) src_specials=--src-specials;;
--shell-escape) shell_escape=--shell-escape;;
--tex4ht) latex2html=tex4ht;;
@@ -1733,9 +1856,15 @@ esac
# We can't do much without tex.
+# End up with the TEX and PDFTEX variables set to what we are going to use.
#
-if findprog ${TEX:-tex}; then :; else cat <<EOM
-You don't have a working TeX binary (${TEX:-tex}) installed anywhere in
+# If $TEX is set to a directory, don't use it.
+test -n "$TEX" && test -d "$TEX" && unset TEX
+
+# But otherwise, use $TEX if it is set.
+if test -z "$TEX"; then
+ if findprog tex; then :; else cat <<EOM >&2
+You don't have a working TeX binary (tex) installed anywhere in
your PATH, and texi2dvi cannot proceed without one. If you want to use
this script, you'll need to install TeX (if you don't have it) or change
your PATH or TEX environment variable (if you do). See the --help
@@ -1744,20 +1873,19 @@ output for more details.
For information about obtaining TeX, please see http://tug.org/texlive,
or do a web search for TeX and your operating system or distro.
EOM
- exit 1
-fi
-
+ exit 1
+ fi
-# We want to use etex (or pdftex) if they are available, and the user
-# didn't explicitly specify. We don't check for elatex and pdfelatex
-# because (as of 2003), the LaTeX team has asked that new distributions
-# use etex by default anyway.
-#
-# End up with the TEX and PDFTEX variables set to what we are going to use.
-if test -z "$TEX"; then
+ # We want to use etex (or pdftex) if they are available, and the user
+ # didn't explicitly specify. We don't check for elatex and pdfelatex
+ # because (as of 2003), the LaTeX team has asked that new distributions
+ # use etex by default anyway.
+ #
if findprog etex; then TEX=etex; else TEX=tex; fi
fi
-#
+
+# For many years, the pdftex binary has included the e-tex extensions,
+# but for those people with ancient TeX distributions ...
if test -z "$PDFTEX"; then
if findprog pdfetex; then PDFTEX=pdfetex; else PDFTEX=pdftex; fi
fi
@@ -1767,12 +1895,9 @@ fi
# 0 standard input
# 1 standard output (--verbose messages)
# 2 standard error
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
# 5 tools output (turned off by --quiet)
# 6 tracing/debugging (set -x output, etc.)
-
# Main tools' output (TeX, etc.) that TeX users are used to seeing.
#
# If quiet, discard, else redirect to the message flow.
@@ -1797,87 +1922,8 @@ else
exec 6>/dev/null
fi
-#
-
-# input_file_name_decode
-# ----------------------
-# Decode COMMAND_LINE_FILENAME, and compute:
-# - COMMAND_LINE_FILENAME clean of TeX commands
-# - IN_DIR
-# The directory to the input file, possibly absolute if needed.
-# - IN_DIR_ABS
-# The absolute directory of the input file.
-# - IN_BASE
-# The input file base name (no directory part).
-# - IN_NOEXT
-# The input file name without extensions (nor directory part).
-# - IN_INPUT
-# Defaults to COMMAND_LINE_FILENAME, but might change if the
-# input is preprocessed. With directory, possibly absolute.
-input_file_name_decode ()
-{
- # See if we are run from within AUC-Tex, in which case we are
- # passed `\input{FOO.tex}' or even `\nonstopmode\input{FOO.tex}'.
- case $command_line_filename in
- *\\nonstopmode*)
- batch=true;;
- esac
- case $command_line_filename in
- *\\input{*}*)
- # Let AUC-TeX error parser deal with line numbers.
- line_error=false
- command_line_filename=`\
- expr X"$command_line_filename" : X'.*input{\([^}]*\)}'`
- ;;
- esac
-
- # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex),
- # prepend `./' in order to avoid that the tools take it as an option.
- echo "$command_line_filename" | LC_ALL=C $EGREP '^(/|[A-Za-z]:/)' >&6 \
- || command_line_filename="./$command_line_filename"
-
- # See if the file exists. If it doesn't we're in trouble since, even
- # though the user may be able to reenter a valid filename at the tex
- # prompt (assuming they're attending the terminal), this script won't
- # be able to find the right xref files and so forth.
- test -r "$command_line_filename" \
- || error 1 "cannot read $command_line_filename, skipping."
-
- # Get the name of the current directory.
- in_dir=`func_dirname "$command_line_filename"`
- in_dir_abs=`absolute "$in_dir"`
- # In a clean build, we `cd', so get an absolute file name.
- if $tidy; then
- in_dir=$in_dir_abs
- fi
-
- # Strip directory part but leave extension.
- in_base=`basename "$command_line_filename"`
- # Strip extension.
- in_noext=`noext "$in_base"`
-
- # The normalized file name to compile. Must always point to the
- # file to actually compile (in case of recoding, macro-expansion etc.).
- in_input=$in_dir/$in_base
-
-
- # Compute the output file name.
- if test x"$oname" != x; then
- out_name=$oname
- else
- out_name=$in_noext.`out_lang_ext`
- fi
- out_dir=`func_dirname "$out_name"`
- out_dir_abs=`absolute "$out_dir"`
- out_base=`basename "$out_name"`
- out_noext=`noext "$out_base"`
-}
-
-
-## -------------- ##
-## TeXify files. ##
-## -------------- ##
+# Main program main loop - TeXify each file in turn.
for command_line_filename
do
verbose "Processing $command_line_filename ..."
@@ -1905,8 +1951,6 @@ do
ensure_dir "$build_dir" "$t2ddir"
- # We will change directory, better work with an absolute path...
- t2ddir=`absolute "$t2ddir"`
# Sometimes there are incompatibilities between auxiliary files for
# DVI and PDF. The contents can also change whether we work on PDF
# and/or DVI. So keep separate spaces for each.
@@ -1927,6 +1971,9 @@ do
# Make those directories.
ensure_dir "$work_build" "$work_bak"
+ # Decide how to find auxiliary files created by TeX.
+ decide_aux_files_method
+
case $action in
compile)
# Compile the document.
@@ -1935,6 +1982,7 @@ do
;;
mostly-clean)
+ xref_files_new=`generated_files_get`
mostly_clean
;;
esac
@@ -1942,3 +1990,7 @@ done
verbose "done."
exit 0 # exit successfully, not however we ended the loop.
+# Local Variables:
+# sh-basic-offset: 2
+# sh-indentation: 2
+# End:
diff --git a/doc/version.texi b/doc/version.texi
index 576c35c..abb9cb6 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,10 +1,10 @@
@ignore
-Copyright (C) 1988-2018 Free Software Foundation, Inc.
+Copyright (C) 1988-2020 Free Software Foundation, Inc.
@end ignore
-@set EDITION 8.0
-@set VERSION 8.0
-@set UPDATED 30 November 2018
-@set UPDATED-MONTH November 2018
+@set EDITION 8.1
+@set VERSION 8.1
+@set UPDATED 29 October 2020
+@set UPDATED-MONTH October 2020
-@set LASTCHANGE Fri Nov 30 22:50:53 EST 2018
+@set LASTCHANGE Thu Oct 29 16:49:01 EDT 2020
diff --git a/emacs_keymap.c b/emacs_keymap.c
index b5e53f4..02597da 100644
--- a/emacs_keymap.c
+++ b/emacs_keymap.c
@@ -47,7 +47,7 @@ KEYMAP_ENTRY_ARRAY emacs_standard_keymap = {
{ ISFUNC, rl_clear_screen }, /* Control-l */
{ ISFUNC, rl_newline }, /* Control-m */
{ ISFUNC, rl_get_next_history }, /* Control-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-o */
+ { ISFUNC, rl_operate_and_get_next }, /* Control-o */
{ ISFUNC, rl_get_previous_history }, /* Control-p */
{ ISFUNC, rl_quoted_insert }, /* Control-q */
{ ISFUNC, rl_reverse_search_history }, /* Control-r */
@@ -327,7 +327,7 @@ KEYMAP_ENTRY_ARRAY emacs_meta_keymap = {
{ ISFUNC, rl_tab_insert }, /* Meta-Control-i */
{ ISFUNC, rl_vi_editing_mode }, /* Meta-Control-j */
{ ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-k */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-l */
+ { ISFUNC, rl_clear_display }, /* Meta-Control-l */
{ ISFUNC, rl_vi_editing_mode }, /* Meta-Control-m */
{ ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-n */
{ ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-o */
diff --git a/examples/autoconf/BASH_CHECK_LIB_TERMCAP b/examples/autoconf/BASH_CHECK_LIB_TERMCAP
index 5e89551..0a09883 100644
--- a/examples/autoconf/BASH_CHECK_LIB_TERMCAP
+++ b/examples/autoconf/BASH_CHECK_LIB_TERMCAP
@@ -12,7 +12,8 @@ AC_CACHE_VAL(bash_cv_termcap_lib,
[AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
[AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
[AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
- bash_cv_termcap_lib=gnutermcap)])])])])])
+ [AC_CHECK_LIB(ncursesw, tgetent, bash_cv_termcap_lib=libncursesw,
+ bash_cv_termcap_lib=gnutermcap)])])])])])])
if test "X$_bash_needmsg" = "Xyes"; then
AC_MSG_CHECKING(which library has the termcap functions)
fi
diff --git a/examples/autoconf/RL_LIB_READLINE_VERSION b/examples/autoconf/RL_LIB_READLINE_VERSION
index 883942c..cc158a8 100644
--- a/examples/autoconf/RL_LIB_READLINE_VERSION
+++ b/examples/autoconf/RL_LIB_READLINE_VERSION
@@ -35,6 +35,7 @@ AC_CACHE_VAL(ac_cv_rl_version,
[AC_TRY_RUN([
#include <stdio.h>
#include <readline/readline.h>
+#include <stdlib.h>
extern int rl_gnu_readline_p;
diff --git a/examples/fileman.c b/examples/fileman.c
index c821df0..f8d0be7 100644
--- a/examples/fileman.c
+++ b/examples/fileman.c
@@ -377,11 +377,11 @@ com_stat (arg)
printf ("Statistics for `%s':\n", arg);
- printf ("%s has %d link%s, and is %d byte%s in length.\n",
+ printf ("%s has %d link%s, and is %lu byte%s in length.\n",
arg,
finfo.st_nlink,
(finfo.st_nlink == 1) ? "" : "s",
- finfo.st_size,
+ (unsigned long)finfo.st_size,
(finfo.st_size == 1) ? "" : "s");
printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime));
printf (" Last access at: %s", ctime (&finfo.st_atime));
diff --git a/funmap.c b/funmap.c
index aaf144d..eca49a3 100644
--- a/funmap.c
+++ b/funmap.c
@@ -1,6 +1,6 @@
/* funmap.c -- attach names to functions. */
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2020 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.
@@ -73,6 +73,7 @@ static const FUNMAP default_funmap[] = {
{ "capitalize-word", rl_capitalize_word },
{ "character-search", rl_char_search },
{ "character-search-backward", rl_backward_char_search },
+ { "clear-display", rl_clear_display },
{ "clear-screen", rl_clear_screen },
{ "complete", rl_complete },
{ "copy-backward-word", rl_copy_backward_word },
@@ -116,6 +117,7 @@ static const FUNMAP default_funmap[] = {
{ "non-incremental-forward-search-history-again", rl_noninc_forward_search_again },
{ "non-incremental-reverse-search-history-again", rl_noninc_reverse_search_again },
{ "old-menu-complete", rl_old_menu_complete },
+ { "operate-and-get-next", rl_operate_and_get_next },
{ "overwrite-mode", rl_overwrite_mode },
#if defined (_WIN32)
{ "paste-from-clipboard", rl_paste_from_clipboard },
@@ -157,7 +159,7 @@ static const FUNMAP default_funmap[] = {
{ "vi-backward-bigword", rl_vi_bWord },
{ "vi-backward-word", rl_vi_bword },
{ "vi-bWord", rl_vi_bWord },
- { "vi-bword", rl_vi_bword },
+ { "vi-bword", rl_vi_bword }, /* BEWARE: name matching is case insensitive */
{ "vi-change-case", rl_vi_change_case },
{ "vi-change-char", rl_vi_change_char },
{ "vi-change-to", rl_vi_change_to },
@@ -171,13 +173,13 @@ static const FUNMAP default_funmap[] = {
{ "vi-end-bigword", rl_vi_eWord },
{ "vi-end-word", rl_vi_end_word },
{ "vi-eof-maybe", rl_vi_eof_maybe },
- { "vi-eword", rl_vi_eword },
+ { "vi-eword", rl_vi_eword }, /* BEWARE: name matching is case insensitive */
{ "vi-fWord", rl_vi_fWord },
{ "vi-fetch-history", rl_vi_fetch_history },
{ "vi-first-print", rl_vi_first_print },
{ "vi-forward-bigword", rl_vi_fWord },
{ "vi-forward-word", rl_vi_fword },
- { "vi-fword", rl_vi_fword },
+ { "vi-fword", rl_vi_fword }, /* BEWARE: name matching is case insensitive */
{ "vi-goto-mark", rl_vi_goto_mark },
{ "vi-insert-beg", rl_vi_insert_beg },
{ "vi-insertion-mode", rl_vi_insert_mode },
diff --git a/histexpand.c b/histexpand.c
index adcf5dc..b986dba 100644
--- a/histexpand.c
+++ b/histexpand.c
@@ -89,7 +89,7 @@ char history_expansion_char = '!';
char history_subst_char = '^';
/* During tokenization, if this character is seen as the first character
- of a word, then it, and all subsequent characters upto a newline are
+ of a word, then it, and all subsequent characters up to a newline are
ignored. For a Bourne shell, this should be '#'. Bash special cases
the interactive comment character to not be a comment delimiter. */
char history_comment_char = '\0';
@@ -180,7 +180,7 @@ get_history_event (const char *string, int *caller_index, int delimiting_quote)
}
/* Hack case of numeric line specification. */
- if (string[i] == '-')
+ if (string[i] == '-' && _rl_digit_p (string[i+1]))
{
sign = -1;
i++;
@@ -230,10 +230,12 @@ get_history_event (const char *string, int *caller_index, int delimiting_quote)
}
#endif /* HANDLE_MULTIBYTE */
- if ((!substring_okay && (whitespace (c) || c == ':' ||
- (history_event_delimiter_chars && member (c, history_event_delimiter_chars)) ||
- (history_search_delimiter_chars && member (c, history_search_delimiter_chars)) ||
- string[i] == delimiting_quote)) ||
+ if ((!substring_okay &&
+ (whitespace (c) || c == ':' ||
+ (i > local_index && history_event_delimiter_chars && c == '-') ||
+ (c != '-' && history_event_delimiter_chars && member (c, history_event_delimiter_chars)) ||
+ (history_search_delimiter_chars && member (c, history_search_delimiter_chars)) ||
+ string[i] == delimiting_quote)) ||
string[i] == '\n' ||
(substring_okay && string[i] == '?'))
break;
@@ -409,7 +411,10 @@ hist_error(char *s, int start, int current, int errtype)
}
temp = (char *)xmalloc (ll + elen + 3);
- strncpy (temp, s + start, ll);
+ if (s[start])
+ strncpy (temp, s + start, ll);
+ else
+ ll = 0;
temp[ll] = ':';
temp[ll + 1] = ' ';
strcpy (temp + ll + 2, emsg);
@@ -624,7 +629,7 @@ history_expand_internal (char *string, int start, int qc, int *end_index_ptr, ch
return an error state after adding this line to the
history. */
case 'p':
- print_only++;
+ print_only = 1;
break;
/* :t discards all but the last part of the pathname. */
@@ -1356,6 +1361,11 @@ get_history_word_specifier (char *spec, char *from, int *caller_index)
i++;
last = '$';
}
+ else if (spec[i] == '^')
+ {
+ i++;
+ last = 1;
+ }
#if 0
else if (!spec[i] || spec[i] == ':')
/* check against `:' because there could be a modifier separator */
diff --git a/histfile.c b/histfile.c
index 8eb3496..f0fa5ce 100644
--- a/histfile.c
+++ b/histfile.c
@@ -1,6 +1,6 @@
/* histfile.c - functions to manipulate the history file. */
-/* Copyright (C) 1989-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2019 Free Software Foundation, Inc.
This file contains the GNU History Library (History), a set of
routines for managing the text of previously typed lines.
@@ -26,6 +26,8 @@
#define READLINE_LIBRARY
#if defined (__TANDEM)
+# define _XOPEN_SOURCE_EXTENDED 1
+# include <unistd.h>
# include <floss.h>
#endif
@@ -79,6 +81,11 @@
#endif /* HISTORY_USE_MMAP */
+#if defined(_WIN32)
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+
/* If we're compiling for __EMX__ (OS/2) or __CYGWIN__ (cygwin32 environment
on win 95/98/nt), we want to open files with O_BINARY mode so that there
is no \n -> \r\n conversion performed. On other systems, we don't want to
@@ -138,6 +145,7 @@ static char *history_backupfile PARAMS((const char *));
static char *history_tempfile PARAMS((const char *));
static int histfile_backup PARAMS((const char *, const char *));
static int histfile_restore PARAMS((const char *, const char *));
+static int history_rename PARAMS((const char *, const char *));
/* Return the string that should be used in the place of this
filename. This only matters when you don't specify the
@@ -449,6 +457,18 @@ read_history_range (const char *filename, int from, int to)
return (0);
}
+/* We need a special version for WIN32 because Windows rename() refuses to
+ overwrite an existing file. */
+static int
+history_rename (const char *old, const char *new)
+{
+#if defined (_WIN32)
+ return (MoveFileEx (old, new, MOVEFILE_REPLACE_EXISTING) == 0 ? -1 : 0);
+#else
+ return (rename (old, new));
+#endif
+}
+
/* Save FILENAME to BACK, handling case where FILENAME is a symlink
(e.g., ~/.bash_history -> .histfiles/.bash_history.$HOSTNAME) */
static int
@@ -462,10 +482,10 @@ histfile_backup (const char *filename, const char *back)
if ((n = readlink (filename, linkbuf, sizeof (linkbuf) - 1)) > 0)
{
linkbuf[n] = '\0';
- return (rename (linkbuf, back));
+ return (history_rename (linkbuf, back));
}
#endif
- return (rename (filename, back));
+ return (history_rename (filename, back));
}
/* Restore ORIG from BACKUP handling case where ORIG is a symlink
@@ -481,12 +501,18 @@ histfile_restore (const char *backup, const char *orig)
if ((n = readlink (orig, linkbuf, sizeof (linkbuf) - 1)) > 0)
{
linkbuf[n] = '\0';
- return (rename (backup, linkbuf));
+ return (history_rename (backup, linkbuf));
}
#endif
- return (rename (backup, orig));
+ return (history_rename (backup, orig));
}
+/* Should we call chown, based on whether finfo and nfinfo describe different
+ files with different owners? */
+
+#define SHOULD_CHOWN(finfo, nfinfo) \
+ (finfo.st_uid != nfinfo.st_uid || finfo.st_gid != nfinfo.st_gid)
+
/* Truncate the history file FNAME, leaving only LINES trailing lines.
If FNAME is NULL, then use ~/.history. Writes a new file and renames
it to the original name. Returns 0 on success, errno on failure. */
@@ -495,7 +521,7 @@ history_truncate_file (const char *fname, int lines)
{
char *buffer, *filename, *tempname, *bp, *bp1; /* bp1 == bp+1 */
int file, chars_read, rv, orig_lines, exists, r;
- struct stat finfo;
+ struct stat finfo, nfinfo;
size_t file_size;
history_lines_written_to_file = 0;
@@ -516,6 +542,9 @@ history_truncate_file (const char *fname, int lines)
}
exists = 1;
+ nfinfo.st_uid = finfo.st_uid;
+ nfinfo.st_gid = finfo.st_gid;
+
if (S_ISREG (finfo.st_mode) == 0)
{
close (file);
@@ -604,6 +633,9 @@ history_truncate_file (const char *fname, int lines)
if (write (file, bp, chars_read - (bp - buffer)) < 0)
rv = errno;
+ if (fstat (file, &nfinfo) < 0 && rv == 0)
+ rv = errno;
+
if (close (file) < 0 && rv == 0)
rv = errno;
}
@@ -631,7 +663,7 @@ history_truncate_file (const char *fname, int lines)
user is running this, it's a no-op. If the shell is running after sudo
with a shared history file, we don't want to leave the history file
owned by root. */
- if (rv == 0 && exists)
+ if (rv == 0 && exists && SHOULD_CHOWN (finfo, nfinfo))
r = chown (filename, finfo.st_uid, finfo.st_gid);
#endif
@@ -650,7 +682,7 @@ history_do_write (const char *filename, int nelements, int overwrite)
register int i;
char *output, *tempname, *histname;
int file, mode, rv, exists;
- struct stat finfo;
+ struct stat finfo, nfinfo;
#ifdef HISTORY_USE_MMAP
size_t cursize;
@@ -695,15 +727,11 @@ history_do_write (const char *filename, int nelements, int overwrite)
the_history = history_list ();
/* Calculate the total number of bytes to write. */
for (buffer_size = 0, i = history_length - nelements; i < history_length; i++)
-#if 0
- buffer_size += 2 + HISTENT_BYTES (the_history[i]);
-#else
{
if (history_write_timestamps && the_history[i]->timestamp && the_history[i]->timestamp[0])
buffer_size += strlen (the_history[i]->timestamp) + 1;
buffer_size += strlen (the_history[i]->line) + 1;
}
-#endif
/* Allocate the buffer, and fill it. */
#ifdef HISTORY_USE_MMAP
diff --git a/input.c b/input.c
index d4d57a8..61b0fde 100644
--- a/input.c
+++ b/input.c
@@ -22,6 +22,8 @@
#define READLINE_LIBRARY
#if defined (__TANDEM)
+# define _XOPEN_SOURCE_EXTENDED 1
+# define _TANDEM_SOURCE 1
# include <floss.h>
#endif
@@ -347,8 +349,7 @@ _rl_input_available (void)
FD_ZERO (&exceptfds);
FD_SET (tty, &readfds);
FD_SET (tty, &exceptfds);
- timeout.tv_sec = 0;
- timeout.tv_usec = _keyboard_input_timeout;
+ USEC_TO_TIMEVAL (_keyboard_input_timeout, timeout);
return (select (tty + 1, &readfds, (fd_set *)NULL, &exceptfds, &timeout) > 0);
#else
@@ -368,6 +369,24 @@ _rl_input_available (void)
}
int
+_rl_nchars_available ()
+{
+ int chars_avail, fd, result;
+
+ chars_avail = 0;
+
+#if defined (FIONREAD)
+ fd = fileno (rl_instream);
+ errno = 0;
+ result = ioctl (fd, FIONREAD, &chars_avail);
+ if (result == -1 && errno == EIO)
+ return -1;
+#endif
+
+ return chars_avail;
+}
+
+int
_rl_input_queued (int t)
{
int old_timeout, r;
@@ -493,7 +512,7 @@ rl_read_key (void)
{
if (rl_get_char (&c) == 0)
c = (*rl_getc_function) (rl_instream);
-/* fprintf(stderr, "rl_read_key: calling RL_CHECK_SIGNALS: _rl_caught_signal = %d", _rl_caught_signal); */
+/* fprintf(stderr, "rl_read_key: calling RL_CHECK_SIGNALS: _rl_caught_signal = %d\r\n", _rl_caught_signal); */
RL_CHECK_SIGNALS ();
}
}
@@ -596,6 +615,10 @@ handle_error:
else if (_rl_caught_signal == SIGINT)
#endif
RL_CHECK_SIGNALS ();
+#if defined (SIGTSTP)
+ else if (_rl_caught_signal == SIGTSTP)
+ RL_CHECK_SIGNALS ();
+#endif
/* non-keyboard-generated signals of interest */
#if defined (SIGWINCH)
else if (_rl_caught_signal == SIGWINCH)
@@ -631,9 +654,7 @@ _rl_read_mbchar (char *mbchar, int size)
mb_len = 0;
while (mb_len < size)
{
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
+ c = (mb_len == 0) ? _rl_bracketed_read_key () : rl_read_key ();
if (c < 0)
break;
diff --git a/isearch.c b/isearch.c
index d6c5904..080ba3c 100644
--- a/isearch.c
+++ b/isearch.c
@@ -6,7 +6,7 @@
/* */
/* **************************************************************** */
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2020 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.
@@ -185,11 +185,13 @@ rl_display_search (char *search_string, int flags, int where)
strcpy (message + msglen, "i-search)`");
msglen += 10;
- if (search_string)
+ if (search_string && *search_string)
{
strcpy (message + msglen, search_string);
msglen += searchlen;
}
+ else
+ _rl_optimize_redisplay ();
strcpy (message + msglen, "': ");
@@ -255,6 +257,9 @@ _rl_isearch_init (int direction)
_rl_iscxt = cxt; /* save globally */
+ /* experimental right now */
+ _rl_init_executing_keyseq ();
+
return cxt;
}
@@ -287,16 +292,22 @@ _rl_isearch_fini (_rl_search_cxt *cxt)
else
cxt->sline_index = strlen (rl_line_buffer);
rl_mark = cxt->save_mark;
+ rl_deactivate_mark ();
}
rl_point = cxt->sline_index;
/* Don't worry about where to put the mark here; rl_get_previous_history
- and rl_get_next_history take care of it. */
+ and rl_get_next_history take care of it.
+ If we want to highlight the search string, this is where to set the
+ point and mark to do it. */
_rl_fix_point (0);
+ rl_deactivate_mark ();
+/* _rl_optimize_redisplay (); */
rl_clear_message ();
}
+/* XXX - we could use _rl_bracketed_read_mbstring () here. */
int
_rl_search_getchar (_rl_search_cxt *cxt)
{
@@ -342,6 +353,24 @@ _rl_isearch_dispatch (_rl_search_cxt *cxt, int c)
return -1;
}
+ _rl_add_executing_keyseq (c);
+
+ /* XXX - experimental code to allow users to bracketed-paste into the search
+ string even when ESC is one of the isearch-terminators. Not perfect yet. */
+ if (_rl_enable_bracketed_paste && c == ESC && strchr (cxt->search_terminators, c) && (n = _rl_nchars_available ()) > (BRACK_PASTE_SLEN-1))
+ {
+ j = _rl_read_bracketed_paste_prefix (c);
+ if (j == 1)
+ {
+ cxt->lastc = -7; /* bracketed paste, see below */
+ goto opcode_dispatch;
+ }
+ else if (_rl_pushed_input_available ()) /* eat extra char we pushed back */
+ c = cxt->lastc = rl_read_key ();
+ else
+ c = cxt->lastc; /* last ditch */
+ }
+
/* If we are moving into a new keymap, modify cxt->keymap and go on.
This can be a problem if c == ESC and we want to terminate the
incremental search, so we check */
@@ -387,7 +416,18 @@ add_character:
/* Translate the keys we do something with to opcodes. */
if (c >= 0 && cxt->keymap[c].type == ISFUNC)
{
- f = cxt->keymap[c].function;
+ /* If we have a multibyte character, see if it's bound to something that
+ affects the search. */
+#if defined (HANDLE_MULTIBYTE)
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0 && cxt->mb[1])
+ f = rl_function_of_keyseq (cxt->mb, cxt->keymap, (int *)NULL);
+ else
+#endif
+ {
+ f = cxt->keymap[c].function;
+ if (f == rl_do_lowercase_version)
+ f = cxt->keymap[_rl_to_lower (c)].function;
+ }
if (f == rl_reverse_search_history)
cxt->lastc = (cxt->sflags & SF_REVERSE) ? -1 : -2;
@@ -454,9 +494,14 @@ add_character:
}
else if (cxt->lastc > 0 && cxt->prevc > 0 && f && f != rl_insert)
{
- rl_stuff_char (cxt->lastc);
- rl_execute_next (cxt->prevc);
- /* XXX - do we insert everything in cxt->pmb? */
+ _rl_term_executing_keyseq (); /* should this go in the caller? */
+
+ _rl_pending_command.map = cxt->keymap;
+ _rl_pending_command.count = 1; /* XXX */
+ _rl_pending_command.key = cxt->lastc;
+ _rl_pending_command.func = f;
+ _rl_command_to_execute = &_rl_pending_command;
+
return (0);
}
}
@@ -502,6 +547,9 @@ add_character:
return (0);
}
+ _rl_init_executing_keyseq ();
+
+opcode_dispatch:
/* Now dispatch on the character. `Opcodes' affect the search string or
state. Other characters are added to the string. */
switch (cxt->lastc)
@@ -519,6 +567,7 @@ add_character:
rl_display_search (cxt->search_string, cxt->sflags, -1);
break;
}
+ /* XXX - restore keymap here? */
return (1);
}
else if ((cxt->sflags & SF_REVERSE) && cxt->sline_index >= 0)
@@ -566,9 +615,11 @@ add_character:
rl_replace_line (cxt->lines[cxt->save_line], 0);
rl_point = cxt->save_point;
rl_mark = cxt->save_mark;
+ rl_deactivate_mark ();
rl_restore_prompt();
rl_clear_message ();
+ _rl_fix_point (1); /* in case save_line and save_point are out of sync */
return -1;
case -5: /* C-W */
@@ -632,6 +683,8 @@ add_character:
free (paste);
break;
}
+ if (_rl_enable_active_region)
+ rl_activate_mark ();
if (cxt->search_string_index + pastelen + 1 >= cxt->search_string_size)
{
cxt->search_string_size += pastelen + 2;
@@ -736,11 +789,15 @@ add_character:
cxt->sline_index = (cxt->sflags & SF_REVERSE) ? cxt->sline_len - cxt->search_string_index : 0;
}
+ /* reset the keymaps for the next time through the loop */
+ cxt->keymap = cxt->okeymap = _rl_keymap;
+
if (cxt->sflags & SF_FAILED)
{
/* We cannot find the search string. Ding the bell. */
rl_ding ();
cxt->history_pos = cxt->last_found_line;
+ rl_deactivate_mark ();
rl_display_search (cxt->search_string, cxt->sflags, (cxt->history_pos == cxt->save_line) ? -1 : cxt->history_pos);
return 1;
}
@@ -752,7 +809,11 @@ add_character:
{
cxt->prev_line_found = cxt->lines[cxt->history_pos];
rl_replace_line (cxt->lines[cxt->history_pos], 0);
+ if (_rl_enable_active_region)
+ rl_activate_mark ();
rl_point = cxt->sline_index;
+ if (rl_mark_active_p () && cxt->search_string_index > 0)
+ rl_mark = rl_point + cxt->search_string_index;
cxt->last_found_line = cxt->history_pos;
rl_display_search (cxt->search_string, cxt->sflags, (cxt->history_pos == cxt->save_line) ? -1 : cxt->history_pos);
}
diff --git a/kill.c b/kill.c
index cf8ca93..50c3fde 100644
--- a/kill.c
+++ b/kill.c
@@ -1,6 +1,6 @@
/* kill.c -- kill ring management. */
-/* Copyright (C) 1994-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2020 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.
@@ -408,6 +408,7 @@ region_kill_internal (int delete)
_rl_copy_to_kill_ring (text, rl_point < rl_mark);
}
+ _rl_fix_point (1);
_rl_last_command_was_kill++;
return 0;
}
@@ -427,8 +428,8 @@ rl_kill_region (int count, int key)
npoint = (rl_point < rl_mark) ? rl_point : rl_mark;
r = region_kill_internal (1);
- _rl_fix_point (1);
rl_point = npoint;
+ _rl_fix_point (1);
return r;
}
@@ -605,7 +606,7 @@ rl_yank_nth_arg_internal (int count, int key, int history_skip)
#if defined (VI_MODE)
/* Vi mode always inserts a space before yanking the argument, and it
inserts it right *after* rl_point. */
- if (rl_editing_mode == vi_mode)
+ if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap)
{
rl_vi_append_mode (1, key);
rl_insert_text (" ");
@@ -668,8 +669,7 @@ rl_yank_last_arg (int count, int key)
/* Having read the special escape sequence denoting the beginning of a
`bracketed paste' sequence, read the rest of the pasted input until the
- closing sequence and insert the pasted text as a single unit without
- interpretation. */
+ closing sequence and return the pasted text. */
char *
_rl_bracketed_text (size_t *lenp)
{
@@ -715,6 +715,10 @@ _rl_bracketed_text (size_t *lenp)
return (buf);
}
+/* Having read the special escape sequence denoting the beginning of a
+ `bracketed paste' sequence, read the rest of the pasted input until the
+ closing sequence and insert the pasted text as a single unit without
+ interpretation. Temporarily highlight the inserted text. */
int
rl_bracketed_paste_begin (int count, int key)
{
@@ -723,12 +727,108 @@ rl_bracketed_paste_begin (int count, int key)
char *buf;
buf = _rl_bracketed_text (&len);
+ rl_mark = rl_point;
retval = rl_insert_text (buf) == len ? 0 : 1;
+ if (_rl_enable_active_region)
+ rl_activate_mark ();
xfree (buf);
return (retval);
}
+int
+_rl_read_bracketed_paste_prefix (int c)
+{
+ char pbuf[BRACK_PASTE_SLEN+1], *pbpref;
+ int key, ind, j;
+
+ pbpref = BRACK_PASTE_PREF; /* XXX - debugging */
+ if (c != pbpref[0])
+ return (0);
+ pbuf[ind = 0] = c;
+ while (ind < BRACK_PASTE_SLEN-1 &&
+ (RL_ISSTATE (RL_STATE_INPUTPENDING|RL_STATE_MACROINPUT) == 0) &&
+ _rl_pushed_input_available () == 0 &&
+ _rl_input_queued (0))
+ {
+ key = rl_read_key (); /* XXX - for now */
+ if (key < 0)
+ break;
+ pbuf[++ind] = key;
+ if (pbuf[ind] != pbpref[ind])
+ break;
+ }
+
+ if (ind < BRACK_PASTE_SLEN-1) /* read incomplete sequence */
+ {
+ while (ind >= 0)
+ _rl_unget_char (pbuf[ind--]);
+ return (key < 0 ? key : 0);
+ }
+ return (key < 0 ? key : 1);
+}
+
+/* Get a character from wherever we read input, handling input in bracketed
+ paste mode. If we don't have or use bracketed paste mode, this can be
+ used in place of rl_read_key(). */
+int
+_rl_bracketed_read_key ()
+{
+ int c, r;
+ char *pbuf;
+ size_t pblen;
+
+ RL_SETSTATE(RL_STATE_MOREINPUT);
+ c = rl_read_key ();
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
+ if (c < 0)
+ return -1;
+
+ /* read pasted data with bracketed-paste mode enabled. */
+ if (_rl_enable_bracketed_paste && c == ESC && (r = _rl_read_bracketed_paste_prefix (c)) == 1)
+ {
+ pbuf = _rl_bracketed_text (&pblen);
+ if (pblen == 0)
+ {
+ xfree (pbuf);
+ return 0; /* XXX */
+ }
+ c = (unsigned char)pbuf[0];
+ if (pblen > 1)
+ {
+ while (--pblen > 0)
+ _rl_unget_char ((unsigned char)pbuf[pblen]);
+ }
+ xfree (pbuf);
+ }
+
+ return c;
+}
+
+/* Get a character from wherever we read input, handling input in bracketed
+ paste mode. If we don't have or use bracketed paste mode, this can be
+ used in place of rl_read_key(). */
+int
+_rl_bracketed_read_mbstring (char *mb, int mlen)
+{
+ int c, r;
+
+ c = _rl_bracketed_read_key ();
+ if (c < 0)
+ return -1;
+
+#if defined (HANDLE_MULTIBYTE)
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ c = _rl_read_mbstring (c, mb, mlen);
+ else
+#endif
+ mb[0] = c;
+ mb[mlen] = '\0'; /* just in case */
+
+ return c;
+}
+
/* A special paste command for Windows users. */
#if defined (_WIN32)
#include <windows.h>
diff --git a/mbutil.c b/mbutil.c
index 1771635..dc62b4c 100644
--- a/mbutil.c
+++ b/mbutil.c
@@ -1,6 +1,6 @@
/* mbutil.c -- readline multibyte character utility functions */
-/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2020 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.
@@ -86,7 +86,7 @@ int _rl_utf8locale = 0;
static int
_rl_utf8_mblen (const char *s, size_t n)
{
- unsigned char c, c1;
+ unsigned char c, c1, c2, c3;
if (s == 0)
return (0); /* no shift states */
@@ -101,25 +101,46 @@ _rl_utf8_mblen (const char *s, size_t n)
c1 = (unsigned char)s[1];
if (c < 0xe0)
{
- if (n >= 2 && (s[1] ^ 0x80) < 0x40)
+ if (n == 1)
+ return -2;
+ if (n >= 2 && (c1 ^ 0x80) < 0x40)
return 2;
}
else if (c < 0xf0)
{
- if (n >= 3
- && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ if (n == 1)
+ return -2;
+ if ((c1 ^ 0x80) < 0x40
&& (c >= 0xe1 || c1 >= 0xa0)
&& (c != 0xed || c1 < 0xa0))
- return 3;
+ {
+ if (n == 2)
+ return -2;
+ c2 = (unsigned char)s[2];
+ if ((c2 ^ 0x80) < 0x40)
+ return 3;
+ }
}
- else if (c < 0xf8)
+ else if (c < 0xf4)
{
- if (n >= 4
- && (s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
- && (s[3] ^ 0x80) < 0x40
+ if (n == 1)
+ return -2;
+ if (((c1 ^ 0x80) < 0x40)
&& (c >= 0xf1 || c1 >= 0x90)
&& (c < 0xf4 || (c == 0xf4 && c1 < 0x90)))
- return 4;
+ {
+ if (n == 2)
+ return -2;
+ c2 = (unsigned char)s[2];
+ if ((c2 ^ 0x80) < 0x40)
+ {
+ if (n == 3)
+ return -2;
+ c3 = (unsigned char)s[3];
+ if ((c3 ^ 0x80) < 0x40)
+ return 4;
+ }
+ }
}
}
/* invalid or incomplete multibyte character */
@@ -206,6 +227,66 @@ _rl_find_next_mbchar_internal (char *string, int seed, int count, int find_non_z
return point;
}
+static inline int
+_rl_test_nonzero (char *string, int ind, int len)
+{
+ size_t tmp;
+ wchar_t wc;
+ mbstate_t ps;
+
+ memset (&ps, 0, sizeof (mbstate_t));
+ tmp = mbrtowc (&wc, string + ind, len - ind, &ps);
+ /* treat invalid multibyte sequences as non-zero-width */
+ return (MB_INVALIDCH (tmp) || MB_NULLWCH (tmp) || WCWIDTH (wc) > 0);
+}
+
+/* experimental -- needs to handle zero-width characters better */
+static int
+_rl_find_prev_utf8char (char *string, int seed, int find_non_zero)
+{
+ char *s;
+ unsigned char b;
+ int save, prev;
+ size_t len;
+
+ if (find_non_zero)
+ len = RL_STRLEN (string);
+
+ prev = seed - 1;
+ while (prev >= 0)
+ {
+ b = (unsigned char)string[prev];
+ if (UTF8_SINGLEBYTE (b))
+ return (prev);
+
+ save = prev;
+
+ /* Move back until we're not in the middle of a multibyte char */
+ if (UTF8_MBCHAR (b))
+ {
+ while (prev > 0 && (b = (unsigned char)string[--prev]) && UTF8_MBCHAR (b))
+ ;
+ }
+
+ if (UTF8_MBFIRSTCHAR (b))
+ {
+ if (find_non_zero)
+ {
+ if (_rl_test_nonzero (string, prev, len))
+ return (prev);
+ else /* valid but WCWIDTH (wc) == 0 */
+ prev = prev - 1;
+ }
+ else
+ return (prev);
+ }
+ else
+ return (save); /* invalid utf-8 multibyte sequence */
+ }
+
+ return ((prev < 0) ? 0 : prev);
+}
+
/*static*/ int
_rl_find_prev_mbchar_internal (char *string, int seed, int find_non_zero)
{
@@ -214,6 +295,9 @@ _rl_find_prev_mbchar_internal (char *string, int seed, int find_non_zero)
size_t tmp;
wchar_t wc;
+ if (_rl_utf8locale)
+ return (_rl_find_prev_utf8char (string, seed, find_non_zero));
+
memset(&ps, 0, sizeof(mbstate_t));
length = strlen(string);
diff --git a/misc.c b/misc.c
index 42005b0..3d9a674 100644
--- a/misc.c
+++ b/misc.c
@@ -1,6 +1,6 @@
/* misc.c -- miscellaneous bindable readline functions. */
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2019 Free Software Foundation, Inc.
This file is part of the GNU Readline Library (Readline), a library
for reading lines of text with interactive input and history editing.
@@ -138,9 +138,7 @@ _rl_arg_dispatch (_rl_arg_cxt cxt, int c)
}
else
{
- RL_SETSTATE(RL_STATE_MOREINPUT);
- key = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
+ key = _rl_bracketed_read_key ();
rl_restore_prompt ();
rl_clear_message ();
RL_UNSETSTATE(RL_STATE_NUMERICARG);
@@ -435,7 +433,7 @@ rl_replace_from_history (HIST_ENTRY *entry, int flags)
intended to be called while actively editing, and the current line is
not assumed to have been added to the history list. */
void
-_rl_revert_all_lines (void)
+_rl_revert_previous_lines (void)
{
int hpos;
HIST_ENTRY *entry;
@@ -479,6 +477,19 @@ _rl_revert_all_lines (void)
xfree (lbuf);
}
+/* Revert all lines in the history by making sure we are at the end of the
+ history before calling _rl_revert_previous_lines() */
+void
+_rl_revert_all_lines (void)
+{
+ int pos;
+
+ pos = where_history ();
+ using_history ();
+ _rl_revert_previous_lines ();
+ history_set_pos (pos);
+}
+
/* Free the history list, including private readline data and take care
of pointer aliases to history data. Resets rl_undo_list if it points
to an UNDO_LIST * saved as some history entry's data member. This
@@ -626,6 +637,48 @@ rl_get_previous_history (int count, int key)
return 0;
}
+/* The equivalent of the Korn shell C-o operate-and-get-next-history-line
+ editing command. */
+
+/* This could stand to be global to the readline library */
+static rl_hook_func_t *_rl_saved_internal_startup_hook = 0;
+static int saved_history_logical_offset = -1;
+
+#define HISTORY_FULL() (history_is_stifled () && history_length >= history_max_entries)
+
+static int
+set_saved_history ()
+{
+ int absolute_offset, count;
+
+ if (saved_history_logical_offset >= 0)
+ {
+ absolute_offset = saved_history_logical_offset - history_base;
+ count = where_history () - absolute_offset;
+ rl_get_previous_history (count, 0);
+ }
+ saved_history_logical_offset = -1;
+ _rl_internal_startup_hook = _rl_saved_internal_startup_hook;
+
+ return (0);
+}
+
+int
+rl_operate_and_get_next (count, c)
+ int count, c;
+{
+ /* Accept the current line. */
+ rl_newline (1, c);
+
+ saved_history_logical_offset = rl_explicit_arg ? count : where_history () + history_base + 1;
+
+
+ _rl_saved_internal_startup_hook = _rl_internal_startup_hook;
+ _rl_internal_startup_hook = set_saved_history;
+
+ return 0;
+}
+
/* **************************************************************** */
/* */
/* Editing Modes */
diff --git a/patchlevel b/patchlevel
index 626a945..d8c9df7 100644
--- a/patchlevel
+++ b/patchlevel
@@ -1,3 +1,3 @@
# Do not edit -- exists only for use by patch
-4
+0
diff --git a/posixdir.h b/posixdir.h
index 0921c5d..af5be80 100644
--- a/posixdir.h
+++ b/posixdir.h
@@ -46,7 +46,7 @@
# define D_NAMLEN(d) ((d)->d_namlen)
#endif /* !HAVE_DIRENT_H */
-/* The bash code fairly consistenly uses d_fileno; make sure it's available */
+/* The bash code fairly consistently uses d_fileno; make sure it's available */
#if defined (HAVE_STRUCT_DIRENT_D_INO) && !defined (HAVE_STRUCT_DIRENT_D_FILENO)
# define d_fileno d_ino
#endif
diff --git a/posixstat.h b/posixstat.h
index 3eb7f29..b607786 100644
--- a/posixstat.h
+++ b/posixstat.h
@@ -1,7 +1,7 @@
/* posixstat.h -- Posix stat(2) definitions for systems that
don't have them. */
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2019 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -132,6 +132,26 @@
# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
+#else /* !S_IRWXU */
+ /* S_IRWXU is defined, but "group" and "other" bits might not be
+ (happens in certain versions of MinGW). */
+# if !defined (S_IRGRP)
+# define S_IRGRP (S_IREAD >> 3) /* read, group */
+# define S_IWGRP (S_IWRITE >> 3) /* write, group */
+# define S_IXGRP (S_IEXEC >> 3) /* execute, group */
+# endif /* !S_IRGRP */
+
+# if !defined (S_IROTH)
+# define S_IROTH (S_IREAD >> 6) /* read, other */
+# define S_IWOTH (S_IWRITE >> 6) /* write, other */
+# define S_IXOTH (S_IEXEC >> 6) /* execute, other */
+# endif /* !S_IROTH */
+# if !defined (S_IRWXG)
+# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
+# endif
+# if !defined (S_IRWXO)
+# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
+# endif
#endif /* !S_IRWXU */
/* These are non-standard, but are used in builtins.c$symbolic_umask() */
diff --git a/readline.c b/readline.c
index 678f989..e61d188 100644
--- a/readline.c
+++ b/readline.c
@@ -1,7 +1,7 @@
/* readline.c -- a general facility for reading lines of input
with emacs style editing and completion. */
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2020 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.
@@ -73,11 +73,11 @@ extern int errno;
#include "xmalloc.h"
#ifndef RL_LIBRARY_VERSION
-# define RL_LIBRARY_VERSION "5.1"
+# define RL_LIBRARY_VERSION "8.0"
#endif
#ifndef RL_READLINE_VERSION
-# define RL_READLINE_VERSION 0x0501
+# define RL_READLINE_VERSION 0x0800
#endif
extern void _rl_free_history_entry PARAMS((HIST_ENTRY *));
@@ -199,6 +199,10 @@ int rl_key_sequence_length = 0;
before readline_internal_setup () prints the first prompt. */
rl_hook_func_t *rl_startup_hook = (rl_hook_func_t *)NULL;
+/* Any readline function can set this and have it run just before the user's
+ rl_startup_hook. */
+rl_hook_func_t *_rl_internal_startup_hook = (rl_hook_func_t *)NULL;
+
/* If non-zero, this is the address of a function to call just before
readline_internal_setup () returns and readline_internal starts
reading input characters. */
@@ -258,6 +262,9 @@ int rl_executing_key;
char *rl_executing_keyseq = 0;
int _rl_executing_keyseq_size = 0;
+struct _rl_cmd _rl_pending_command;
+struct _rl_cmd *_rl_command_to_execute = (struct _rl_cmd *)NULL;
+
/* Timeout (specified in milliseconds) when reading characters making up an
ambiguous multiple-key sequence */
int _rl_keyseq_timeout = 500;
@@ -314,7 +321,8 @@ int _rl_show_mode_in_prompt = 0;
/* Non-zero means to attempt to put the terminal in `bracketed paste mode',
where it will prefix pasted text with an escape sequence and send
another to mark the end of the paste. */
-int _rl_enable_bracketed_paste = 0;
+int _rl_enable_bracketed_paste = BRACKETED_PASTE_DEFAULT;
+int _rl_enable_active_region = BRACKETED_PASTE_DEFAULT;
/* **************************************************************** */
/* */
@@ -417,6 +425,11 @@ readline_internal_setup (void)
if (rl_startup_hook)
(*rl_startup_hook) ();
+ if (_rl_internal_startup_hook)
+ (*_rl_internal_startup_hook) ();
+
+ rl_deactivate_mark ();
+
#if defined (VI_MODE)
if (rl_editing_mode == vi_mode)
rl_vi_insertion_mode (1, 'i'); /* don't want to reset last */
@@ -632,12 +645,34 @@ readline_internal_charloop (void)
r = _rl_dispatch ((unsigned char)c, _rl_keymap);
RL_CHECK_SIGNALS ();
+ if (_rl_command_to_execute)
+ {
+ (*rl_redisplay_function) ();
+
+ rl_executing_keymap = _rl_command_to_execute->map;
+ rl_executing_key = _rl_command_to_execute->key;
+
+ rl_dispatching = 1;
+ RL_SETSTATE(RL_STATE_DISPATCHING);
+ r = (*(_rl_command_to_execute->func)) (_rl_command_to_execute->count, _rl_command_to_execute->key);
+ _rl_command_to_execute = 0;
+ RL_UNSETSTATE(RL_STATE_DISPATCHING);
+ rl_dispatching = 0;
+
+ RL_CHECK_SIGNALS ();
+ }
+
/* If there was no change in _rl_last_command_was_kill, then no kill
has taken place. Note that if input is pending we are reading
a prefix command, so nothing has changed yet. */
if (rl_pending_input == 0 && lk == _rl_last_command_was_kill)
_rl_last_command_was_kill = 0;
+ if (_rl_keep_mark_active)
+ _rl_keep_mark_active = 0;
+ else if (rl_mark_active_p ())
+ rl_deactivate_mark ();
+
_rl_internal_char_cleanup ();
#if defined (READLINE_CALLBACKS)
@@ -856,7 +891,11 @@ _rl_dispatch_subseq (register int key, Keymap map, int got_subseq)
/* If we have input pending, then the last command was a prefix
command. Don't change the state of rl_last_func. Otherwise,
remember the last command executed in this variable. */
+#if defined (VI_MODE)
+ if (rl_pending_input == 0 && map[key].function != rl_digit_argument && map[key].function != rl_vi_arg_digit)
+#else
if (rl_pending_input == 0 && map[key].function != rl_digit_argument)
+#endif
rl_last_func = map[key].function;
RL_CHECK_SIGNALS ();
@@ -870,6 +909,8 @@ _rl_dispatch_subseq (register int key, Keymap map, int got_subseq)
_rl_prev_macro_key ();
else
_rl_unget_char (key);
+ if (rl_key_sequence_length > 0)
+ rl_executing_keyseq[--rl_key_sequence_length] = '\0';
return -2;
}
else if (got_subseq)
@@ -882,6 +923,8 @@ _rl_dispatch_subseq (register int key, Keymap map, int got_subseq)
_rl_prev_macro_key ();
else
_rl_unget_char (key);
+ if (rl_key_sequence_length > 0)
+ rl_executing_keyseq[--rl_key_sequence_length] = '\0';
return -1;
}
else
@@ -974,7 +1017,11 @@ _rl_dispatch_subseq (register int key, Keymap map, int got_subseq)
_rl_pushed_input_available () == 0 &&
_rl_dispatching_keymap[ANYOTHERKEY].function &&
_rl_input_queued (_rl_keyseq_timeout*1000) == 0)
- return (_rl_subseq_result (-2, map, key, got_subseq));
+ {
+ if (rl_key_sequence_length > 0)
+ rl_executing_keyseq[--rl_key_sequence_length] = '\0';
+ return (_rl_subseq_result (-2, map, key, got_subseq));
+ }
newkey = _rl_subseq_getchar (key);
if (newkey < 0)
@@ -1065,6 +1112,8 @@ _rl_subseq_result (int r, Keymap map, int key, int got_subseq)
_rl_prev_macro_key ();
else
_rl_unget_char (key);
+ if (rl_key_sequence_length > 0)
+ rl_executing_keyseq[--rl_key_sequence_length] = '\0';
_rl_dispatching_keymap = map;
return -2;
}
@@ -1075,6 +1124,8 @@ _rl_subseq_result (int r, Keymap map, int key, int got_subseq)
_rl_prev_macro_key ();
else
_rl_unget_char (key);
+ if (rl_key_sequence_length > 0)
+ rl_executing_keyseq[--rl_key_sequence_length] = '\0';
_rl_dispatching_keymap = map;
return -1;
}
@@ -1241,7 +1292,7 @@ readline_initialize_everything (void)
rl_executing_keyseq = malloc (_rl_executing_keyseq_size = 16);
if (rl_executing_keyseq)
- rl_executing_keyseq[0] = '\0';
+ rl_executing_keyseq[rl_key_sequence_length = 0] = '\0';
}
/* If this system allows us to look at the values of the regular
@@ -1356,9 +1407,12 @@ bind_bracketed_paste_prefix (void)
_rl_keymap = emacs_standard_keymap;
rl_bind_keyseq_if_unbound (BRACK_PASTE_PREF, rl_bracketed_paste_begin);
-
+
+#if defined (VI_MODE)
_rl_keymap = vi_insertion_keymap;
rl_bind_keyseq_if_unbound (BRACK_PASTE_PREF, rl_bracketed_paste_begin);
+ /* XXX - is there a reason to do this in the vi command keymap? */
+#endif
_rl_keymap = xkeymap;
}
@@ -1446,5 +1500,35 @@ rl_restore_state (struct readline_state *sp)
rl_attempted_completion_function = sp->attemptfunc;
rl_completer_word_break_characters = sp->wordbreakchars;
+ rl_deactivate_mark ();
+
return (0);
}
+
+/* Functions to manage the string that is the current key sequence. */
+
+void
+_rl_init_executing_keyseq (void)
+{
+ rl_executing_keyseq[rl_key_sequence_length = 0] = '\0';
+}
+
+void
+_rl_term_executing_keyseq (void)
+{
+ rl_executing_keyseq[rl_key_sequence_length] = '\0';
+}
+
+void
+_rl_end_executing_keyseq (void)
+{
+ if (rl_key_sequence_length > 0)
+ rl_executing_keyseq[--rl_key_sequence_length] = '\0';
+}
+
+void
+_rl_add_executing_keyseq (int key)
+{
+ RESIZE_KEYSEQ_BUFFER ();
+ rl_executing_keyseq[rl_key_sequence_length++] = key;
+}
diff --git a/readline.h b/readline.h
index da78271..78fa39d 100644
--- a/readline.h
+++ b/readline.h
@@ -1,6 +1,6 @@
/* Readline.h -- the names of functions callable from within readline. */
-/* Copyright (C) 1987-2016 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2020 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.
@@ -39,9 +39,9 @@ extern "C" {
#endif
/* Hex-encoded Readline version number. */
-#define RL_READLINE_VERSION 0x0800 /* Readline 8.0 */
+#define RL_READLINE_VERSION 0x0801 /* Readline 8.0 */
#define RL_VERSION_MAJOR 8
-#define RL_VERSION_MINOR 0
+#define RL_VERSION_MINOR 1
/* Readline data structures. */
@@ -95,6 +95,7 @@ extern int rl_forward_word PARAMS((int, int));
extern int rl_backward_word PARAMS((int, int));
extern int rl_refresh_line PARAMS((int, int));
extern int rl_clear_screen PARAMS((int, int));
+extern int rl_clear_display PARAMS((int, int));
extern int rl_skip_csi_sequence PARAMS((int, int));
extern int rl_arrow_keys PARAMS((int, int));
@@ -132,6 +133,7 @@ extern int rl_beginning_of_history PARAMS((int, int));
extern int rl_end_of_history PARAMS((int, int));
extern int rl_get_next_history PARAMS((int, int));
extern int rl_get_previous_history PARAMS((int, int));
+extern int rl_operate_and_get_next PARAMS((int, int));
/* Bindable commands for managing the mark and region. */
extern int rl_set_mark PARAMS((int, int));
@@ -392,6 +394,14 @@ extern int rl_clear_message PARAMS((void));
extern int rl_reset_line_state PARAMS((void));
extern int rl_crlf PARAMS((void));
+/* Functions to manage the mark and region, especially the notion of an
+ active mark and an active region. */
+extern void rl_keep_mark_active PARAMS((void));
+
+extern void rl_activate_mark PARAMS((void));
+extern void rl_deactivate_mark PARAMS((void));
+extern int rl_mark_active_p PARAMS((void));
+
#if defined (USE_VARARGS) && defined (PREFER_STDARG)
extern int rl_message (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
#else
diff --git a/readline.pc.in b/readline.pc.in
index a7f2cf3..ff79d71 100644
--- a/readline.pc.in
+++ b/readline.pc.in
@@ -9,4 +9,4 @@ URL: http://tiswww.cwru.edu/php/chet/readline/rltop.html
Version: @LIBVERSION@
Requires.private: @TERMCAP_PKG_CONFIG_LIB@
Libs: -L${libdir} -lreadline
-Cflags: -I${includedir}/readline
+Cflags: -I${includedir}
diff --git a/rlmbutil.h b/rlmbutil.h
index 6fd03f6..4d3e907 100644
--- a/rlmbutil.h
+++ b/rlmbutil.h
@@ -28,7 +28,7 @@
/* check multibyte capability for I18N code */
/************************************************/
-/* For platforms which support the ISO C amendement 1 functionality we
+/* For platforms which support the ISO C amendment 1 functionality we
support user defined character classes. */
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
#if defined (HAVE_WCTYPE_H) && defined (HAVE_WCHAR_H) && defined (HAVE_LOCALE_H)
diff --git a/rlprivate.h b/rlprivate.h
index e85e4d8..23ab2d8 100644
--- a/rlprivate.h
+++ b/rlprivate.h
@@ -1,7 +1,7 @@
/* rlprivate.h -- functions and variables global to the readline library,
but not intended for use by applications. */
-/* Copyright (C) 1999-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2020 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.
@@ -65,7 +65,8 @@
#define SF_FOUND 0x02
#define SF_FAILED 0x04
#define SF_CHGKMAP 0x08
-#define SF_PATTERN 0x10 /* unused so far */
+#define SF_PATTERN 0x10
+#define SF_NOCASE 0x20 /* unused so far */
typedef struct __rl_search_context
{
@@ -109,6 +110,15 @@ typedef struct __rl_search_context
char *search_terminators;
} _rl_search_cxt;
+struct _rl_cmd {
+ Keymap map;
+ int count;
+ int key;
+ rl_command_func_t *func;
+};
+extern struct _rl_cmd _rl_pending_command;
+extern struct _rl_cmd *_rl_command_to_execute;
+
/* Callback data for reading numeric arguments */
#define NUM_SAWMINUS 0x01
#define NUM_SAWDIGITS 0x02
@@ -267,23 +277,25 @@ extern void _rl_free_match_list PARAMS((char **));
/* display.c */
extern char *_rl_strip_prompt PARAMS((char *));
extern void _rl_reset_prompt PARAMS((void));
-extern void _rl_move_cursor_relative PARAMS((int, const char *));
extern void _rl_move_vert PARAMS((int));
extern void _rl_save_prompt PARAMS((void));
extern void _rl_restore_prompt PARAMS((void));
extern char *_rl_make_prompt_for_search PARAMS((int));
extern void _rl_erase_at_end_of_line PARAMS((int));
extern void _rl_clear_to_eol PARAMS((int));
-extern void _rl_clear_screen PARAMS((void));
+extern void _rl_clear_screen PARAMS((int));
extern void _rl_update_final PARAMS((void));
+extern void _rl_optimize_redisplay PARAMS((void));
extern void _rl_redisplay_after_sigwinch PARAMS((void));
extern void _rl_clean_up_for_exit PARAMS((void));
extern void _rl_erase_entire_line PARAMS((void));
extern int _rl_current_display_line PARAMS((void));
+extern void _rl_refresh_line PARAMS((void));
/* input.c */
extern int _rl_any_typein PARAMS((void));
extern int _rl_input_available PARAMS((void));
+extern int _rl_nchars_available PARAMS((void));
extern int _rl_input_queued PARAMS((int));
extern void _rl_insert_typein PARAMS((int));
extern int _rl_unget_char PARAMS((int));
@@ -300,6 +312,10 @@ extern int _rl_isearch_cleanup PARAMS((_rl_search_cxt *, int));
extern int _rl_search_getchar PARAMS((_rl_search_cxt *));
/* kill.c */
+#ifndef BRACKETED_PASTE_DEFAULT
+# define BRACKETED_PASTE_DEFAULT 1 /* XXX - for now */
+#endif
+
#define BRACK_PASTE_PREF "\033[200~"
#define BRACK_PASTE_SUFF "\033[201~"
@@ -309,7 +325,10 @@ extern int _rl_search_getchar PARAMS((_rl_search_cxt *));
#define BRACK_PASTE_INIT "\033[?2004h"
#define BRACK_PASTE_FINI "\033[?2004l\r"
+extern int _rl_read_bracketed_paste_prefix PARAMS((int));
extern char *_rl_bracketed_text PARAMS((size_t *));
+extern int _rl_bracketed_read_key PARAMS((void));
+extern int _rl_bracketed_read_mbstring PARAMS((char *, int));
/* macro.c */
extern void _rl_with_macro_input PARAMS((char *));
@@ -332,6 +351,7 @@ extern void _rl_start_using_history PARAMS((void));
extern int _rl_free_saved_history_line PARAMS((void));
extern void _rl_set_insert_mode PARAMS((int, int));
+extern void _rl_revert_previous_lines PARAMS((void));
extern void _rl_revert_all_lines PARAMS((void));
/* nls.c */
@@ -348,6 +368,11 @@ extern int _rl_dispatch PARAMS((int, Keymap));
extern int _rl_dispatch_subseq PARAMS((int, Keymap, int));
extern void _rl_internal_char_cleanup PARAMS((void));
+extern void _rl_init_executing_keyseq PARAMS((void));
+extern void _rl_term_executing_keyseq PARAMS((void));
+extern void _rl_end_executing_keyseq PARAMS((void));
+extern void _rl_add_executing_keyseq PARAMS((int));
+
/* rltty.c */
extern int _rl_disable_tty_signals PARAMS((void));
extern int _rl_restore_tty_signals PARAMS((void));
@@ -373,15 +398,19 @@ extern void _rl_output_character_function PARAMS((int));
#else
extern int _rl_output_character_function PARAMS((int));
#endif
+extern void _rl_cr PARAMS((void));
extern void _rl_output_some_chars PARAMS((const char *, int));
extern int _rl_backspace PARAMS((int));
extern void _rl_enable_meta_key PARAMS((void));
extern void _rl_disable_meta_key PARAMS((void));
extern void _rl_control_keypad PARAMS((int));
extern void _rl_set_cursor PARAMS((int, int));
+extern void _rl_standout_on PARAMS((void));
+extern void _rl_standout_off PARAMS((void));
/* text.c */
extern void _rl_fix_point PARAMS((int));
+extern void _rl_fix_mark PARAMS((void));
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));
@@ -507,6 +536,7 @@ extern int _rl_revert_all_at_newline;
extern int _rl_echo_control_chars;
extern int _rl_show_mode_in_prompt;
extern int _rl_enable_bracketed_paste;
+extern int _rl_enable_active_region;
extern char *_rl_comment_begin;
extern unsigned char _rl_parsing_conditionalized_out;
extern Keymap _rl_keymap;
@@ -521,11 +551,12 @@ extern int _rl_keyseq_timeout;
extern int _rl_executing_keyseq_size;
+extern rl_hook_func_t *_rl_internal_startup_hook;
+
/* search.c */
extern _rl_search_cxt *_rl_nscxt;
/* signals.c */
-extern int _rl_interrupt_immediately;
extern int volatile _rl_caught_signal;
extern _rl_sigcleanup_func_t *_rl_sigcleanup;
@@ -560,6 +591,7 @@ extern int _rl_term_autowrap;
/* text.c */
extern int _rl_optimize_typeahead;
+extern int _rl_keep_mark_active;
/* undo.c */
extern int _rl_doing_an_undo;
diff --git a/search.c b/search.c
index c9c1f5d..38a2936 100644
--- a/search.c
+++ b/search.c
@@ -1,6 +1,6 @@
/* search.c - code for non-incremental searching in emacs and vi modes. */
-/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2020 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.
@@ -159,7 +159,7 @@ noninc_search_from_pos (char *string, int pos, int dir, int flags, int *ncp)
static int
noninc_dosearch (char *string, int dir, int flags)
{
- int oldpos, pos;
+ int oldpos, pos, ind;
HIST_ENTRY *entry;
if (string == 0 || *string == '\0' || noninc_history_pos < 0)
@@ -168,7 +168,7 @@ noninc_dosearch (char *string, int dir, int flags)
return 0;
}
- pos = noninc_search_from_pos (string, noninc_history_pos + dir, dir, flags, (int *)0);
+ pos = noninc_search_from_pos (string, noninc_history_pos + dir, dir, flags, &ind);
if (pos == -1)
{
/* Search failed, current history position unchanged. */
@@ -192,8 +192,19 @@ noninc_dosearch (char *string, int dir, int flags)
make_history_line_current (entry);
- rl_point = 0;
- rl_mark = rl_end;
+ if (_rl_enable_active_region && ((flags & SF_PATTERN) == 0) && ind > 0 && ind < rl_end)
+ {
+ rl_point = ind;
+ rl_mark = ind + strlen (string);
+ if (rl_mark > rl_end)
+ rl_mark = rl_end; /* can't happen? */
+ rl_activate_mark ();
+ }
+ else
+ {
+ rl_point = 0;
+ rl_mark = rl_end;
+ }
rl_clear_message ();
return 1;
@@ -256,6 +267,7 @@ _rl_nsearch_abort (_rl_search_cxt *cxt)
rl_clear_message ();
rl_point = cxt->save_point;
rl_mark = cxt->save_mark;
+ _rl_fix_point (1);
rl_restore_prompt ();
RL_UNSETSTATE (RL_STATE_NSEARCH);
@@ -267,6 +279,8 @@ _rl_nsearch_abort (_rl_search_cxt *cxt)
static int
_rl_nsearch_dispatch (_rl_search_cxt *cxt, int c)
{
+ int n;
+
if (c < 0)
c = CTRL ('C');
@@ -300,6 +314,28 @@ _rl_nsearch_dispatch (_rl_search_cxt *cxt, int c)
_rl_nsearch_abort (cxt);
return -1;
+ case ESC:
+ /* XXX - experimental code to allow users to bracketed-paste into the
+ search string. Similar code is in isearch.c:_rl_isearch_dispatch().
+ The difference here is that the bracketed paste sometimes doesn't
+ paste everything, so checking for the prefix and the suffix in the
+ input queue doesn't work well. We just have to check to see if the
+ number of chars in the input queue is enough for the bracketed paste
+ prefix and hope for the best. */
+ if (_rl_enable_bracketed_paste && ((n = _rl_nchars_available ()) >= (BRACK_PASTE_SLEN-1)))
+ {
+ if (_rl_read_bracketed_paste_prefix (c) == 1)
+ rl_bracketed_paste_begin (1, c);
+ else
+ {
+ c = rl_read_key (); /* get the ESC that got pushed back */
+ _rl_insert_char (1, c);
+ }
+ }
+ else
+ _rl_insert_char (1, c);
+ break;
+
default:
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
@@ -311,6 +347,7 @@ _rl_nsearch_dispatch (_rl_search_cxt *cxt, int c)
}
(*rl_redisplay_function) ();
+ rl_deactivate_mark ();
return 1;
}
diff --git a/shlib/Makefile.in b/shlib/Makefile.in
index f2ec3e4..d138524 100644
--- a/shlib/Makefile.in
+++ b/shlib/Makefile.in
@@ -64,7 +64,7 @@ localedir = @localedir@
DESTDIR =
CFLAGS = @CFLAGS@
-LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DRL_LIBRARY_VERSION='"$(RL_LIBRARY_VERSION)"'
+LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DRL_LIBRARY_VERSION='"$(RL_LIBRARY_VERSION)"' @BRACKETED_PASTE@
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@ @LOCAL_LDFLAGS@ @CFLAGS@
diff --git a/signals.c b/signals.c
index 76c5c47..f9174ab 100644
--- a/signals.c
+++ b/signals.c
@@ -99,7 +99,6 @@ int rl_catch_sigwinch = 0; /* for the readline state struct in readline.c */
#endif
/* Private variables. */
-int _rl_interrupt_immediately = 0;
int volatile _rl_caught_signal = 0; /* should be sig_atomic_t, but that requires including <signal.h> everywhere */
/* If non-zero, print characters corresponding to received signals as long as
@@ -136,7 +135,7 @@ void *_rl_sigcleanarg;
/* Readline signal handler functions. */
-/* Called from RL_CHECK_SIGNALS() macro */
+/* Called from RL_CHECK_SIGNALS() macro to run signal handling code. */
RETSIGTYPE
_rl_signal_handler (int sig)
{
@@ -145,6 +144,8 @@ _rl_signal_handler (int sig)
#if defined (SIGWINCH)
if (sig == SIGWINCH)
{
+ RL_SETSTATE(RL_STATE_SIGHANDLER);
+
rl_resize_terminal ();
/* XXX - experimental for now */
/* Call a signal hook because though we called the original signal handler
@@ -152,6 +153,8 @@ _rl_signal_handler (int sig)
ourselves. */
if (rl_signal_event_hook)
(*rl_signal_event_hook) ();
+
+ RL_UNSETSTATE(RL_STATE_SIGHANDLER);
}
else
#endif
@@ -163,22 +166,20 @@ _rl_signal_handler (int sig)
static RETSIGTYPE
rl_signal_handler (int sig)
{
- if (_rl_interrupt_immediately)
- {
- _rl_interrupt_immediately = 0;
- _rl_handle_signal (sig);
- }
- else
- _rl_caught_signal = sig;
-
+ _rl_caught_signal = sig;
SIGHANDLER_RETURN;
}
+/* This is called to handle a signal when it is safe to do so (out of the
+ signal handler execution path). Called by _rl_signal_handler for all the
+ signals readline catches except SIGWINCH. */
static RETSIGTYPE
_rl_handle_signal (int sig)
{
+ int block_sig;
+
#if defined (HAVE_POSIX_SIGNALS)
- sigset_t set;
+ sigset_t set, oset;
#else /* !HAVE_POSIX_SIGNALS */
# if defined (HAVE_BSD_SIGNALS)
long omask;
@@ -208,7 +209,16 @@ _rl_handle_signal (int sig)
_rl_sigcleanup = 0;
_rl_sigcleanarg = 0;
}
-
+
+#if defined (HAVE_POSIX_SIGNALS)
+ /* Get the current set of blocked signals. If we want to block a signal for
+ the duration of the cleanup functions, make sure to add it to SET and
+ set block_sig = 1 (see the SIGHUP case below). */
+ block_sig = 0; /* sentinel to block signals with sigprocmask */
+ sigemptyset (&set);
+ sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &set);
+#endif
+
switch (sig)
{
case SIGINT:
@@ -223,38 +233,60 @@ _rl_handle_signal (int sig)
#if defined (SIGTSTP)
case SIGTSTP:
case SIGTTIN:
+ case SIGTTOU:
# if defined (HAVE_POSIX_SIGNALS)
/* Block SIGTTOU so we can restore the terminal settings to something
sane without stopping on SIGTTOU if we have been placed into the
background. Even trying to get the current terminal pgrp with
- tcgetpgrp() will generate SIGTTOU, so we don't bother. Don't bother
- doing this if we've been stopped on SIGTTOU; it's aready too late. */
- sigemptyset (&set);
+ tcgetpgrp() will generate SIGTTOU, so we don't bother. We still do
+ this even if we've been stopped on SIGTTOU, since we handle signals
+ when we have returned from the signal handler and the signal is no
+ longer blocked. */
sigaddset (&set, SIGTTOU);
- sigprocmask (SIG_BLOCK, &set, (sigset_t *)NULL);
+ block_sig = 1;
# endif
- case SIGTTOU:
#endif /* SIGTSTP */
- case SIGTERM:
+ /* Any signals that should be blocked during cleanup should go here. */
#if defined (SIGHUP)
case SIGHUP:
-#endif
+# if defined (_AIX)
+ if (block_sig == 0)
+ {
+ sigaddset (&set, sig);
+ block_sig = 1;
+ }
+# endif // _AIX
+#endif
+ /* Signals that don't require blocking during cleanup should go here. */
+ case SIGTERM:
#if defined (SIGALRM)
case SIGALRM:
#endif
#if defined (SIGQUIT)
case SIGQUIT:
#endif
+
+ if (block_sig)
+ sigprocmask (SIG_BLOCK, &set, &oset);
+
rl_echo_signal_char (sig);
rl_cleanup_after_signal ();
+ /* At this point, the application's signal handler, if any, is the
+ current handler. */
+
#if defined (HAVE_POSIX_SIGNALS)
-# if defined (SIGTSTP)
- /* Unblock SIGTTOU blocked above */
- if (sig == SIGTTIN || sig == SIGTSTP)
- sigprocmask (SIG_UNBLOCK, &set, (sigset_t *)NULL);
-# endif
+ /* Unblock any signal(s) blocked above */
+ if (block_sig)
+ sigprocmask (SIG_UNBLOCK, &oset, (sigset_t *)NULL);
+#endif
+ /* We don't have to bother unblocking the signal because we are not
+ running in a signal handler context. */
+#if 0
+#if defined (HAVE_POSIX_SIGNALS)
+ /* Make sure this signal is not blocked when we resend it to the
+ calling application. */
sigemptyset (&set);
sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &set);
sigdelset (&set, sig);
@@ -263,6 +295,7 @@ _rl_handle_signal (int sig)
omask = sigblock (0);
# endif /* HAVE_BSD_SIGNALS */
#endif /* !HAVE_POSIX_SIGNALS */
+#endif
#if defined (__EMX__)
signal (sig, SIG_ACK);
@@ -274,7 +307,10 @@ _rl_handle_signal (int sig)
raise (sig); /* assume we have raise */
#endif
- /* Let the signal that we just sent through. */
+ /* We don't need to modify the signal mask now that this is not run in
+ a signal handler context. */
+#if 0
+ /* Let the signal that we just sent through if it is blocked. */
#if defined (HAVE_POSIX_SIGNALS)
sigprocmask (SIG_SETMASK, &set, (sigset_t *)NULL);
#else /* !HAVE_POSIX_SIGNALS */
@@ -282,6 +318,7 @@ _rl_handle_signal (int sig)
sigsetmask (omask & ~(sigmask (sig)));
# endif /* HAVE_BSD_SIGNALS */
#endif /* !HAVE_POSIX_SIGNALS */
+#endif
rl_reset_after_signal ();
}
diff --git a/support/config.guess b/support/config.guess
index 18f8edc..0fc11ed 100755
--- a/support/config.guess
+++ b/support/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2018 Free Software Foundation, Inc.
+# Copyright 1992-2020 Free Software Foundation, Inc.
-timestamp='2018-08-29'
+timestamp='2020-11-07'
# 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
@@ -32,7 +32,7 @@ timestamp='2018-08-29'
# Please send patches to <config-patches@gnu.org>.
-me=`echo "$0" | sed -e 's,.*/,,'`
+me=$(echo "$0" | sed -e 's,.*/,,')
usage="\
Usage: $0 [OPTION]
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2018 Free Software Foundation, Inc.
+Copyright 1992-2020 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."
@@ -96,13 +96,14 @@ fi
tmp=
# shellcheck disable=SC2172
-trap 'test -z "$tmp" || rm -fr "$tmp"' 1 2 13 15
-trap 'exitcode=$?; test -z "$tmp" || rm -fr "$tmp"; exit $exitcode' 0
+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
set_cc_for_build() {
+ # prevent multiple calls if $tmp is already set
+ test "$tmp" && return 0
: "${TMPDIR=/tmp}"
# shellcheck disable=SC2039
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
@@ -130,10 +131,10 @@ if test -f /.attbin/uname ; then
PATH=$PATH:/.attbin ; export PATH
fi
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-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
+UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown
+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
Linux|GNU|GNU/*)
@@ -149,17 +150,15 @@ Linux|GNU|GNU/*)
#elif defined(__dietlibc__)
LIBC=dietlibc
#else
+ #include <stdarg.h>
+ #ifdef __DEFINED_va_list
+ LIBC=musl
+ #else
LIBC=gnu
#endif
+ #endif
EOF
- 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
+ eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')"
;;
esac
@@ -178,19 +177,20 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+ UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \
"/sbin/$sysctl" 2>/dev/null || \
"/usr/sbin/$sysctl" 2>/dev/null || \
- echo unknown)`
+ echo unknown))
case "$UNAME_MACHINE_ARCH" in
+ aarch64eb) machine=aarch64_be-unknown ;;
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'`
+ 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 ;;
@@ -221,7 +221,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" 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
@@ -234,7 +234,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
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:
@@ -243,15 +243,15 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
echo "$machine-${os}${release}${abi-}"
exit ;;
*:Bitrig:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//')
echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
exit ;;
*:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//')
echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
exit ;;
*:LibertyBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+ UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//')
echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
exit ;;
*:MidnightBSD:*:*)
@@ -263,6 +263,9 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:SolidBSD:*:*)
echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
exit ;;
+ *:OS108:*:*)
+ echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
+ exit ;;
macppc:MirBSD:*:*)
echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
exit ;;
@@ -272,26 +275,29 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
*:Sortix:*:*)
echo "$UNAME_MACHINE"-unknown-sortix
exit ;;
+ *:Twizzler:*:*)
+ echo "$UNAME_MACHINE"-unknown-twizzler
+ exit ;;
*:Redox:*:*)
echo "$UNAME_MACHINE"-unknown-redox
exit ;;
mips:OSF1:*.*)
- echo mips-dec-osf1
- exit ;;
+ echo mips-dec-osf1
+ exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}')
;;
*5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}')
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1)
case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
UNAME_MACHINE=alpha ;;
@@ -329,7 +335,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
@@ -363,7 +369,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ if test "$( (/bin/universe) 2>/dev/null)" = att ; then
echo pyramid-pyramid-sysv3
else
echo pyramid-pyramid-bsd
@@ -376,54 +382,59 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
echo sparc-icl-nx6
exit ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
- case `/usr/bin/uname -p` in
+ case $(/usr/bin/uname -p) 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"
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- UNAME_REL="`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
- case `isainfo -b` in
- 32)
- echo i386-pc-solaris2"$UNAME_REL"
- ;;
- 64)
- echo x86_64-pc-solaris2"$UNAME_REL"
- ;;
- esac
+ set_cc_for_build
+ SUN_ARCH=i386
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH=x86_64
+ fi
+ fi
+ echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
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
+ case "$(/usr/bin/arch -k)" in
Series*|S4*)
- UNAME_RELEASE=`uname -v`
+ UNAME_RELEASE=$(uname -v)
;;
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"
exit ;;
sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null)
test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
- case "`/bin/arch`" in
+ case "$(/bin/arch)" in
sun3)
echo m68k-sun-sunos"$UNAME_RELEASE"
;;
@@ -503,8 +514,8 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
}
EOF
$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
- dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
+ 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"
exit ;;
@@ -531,11 +542,11 @@ EOF
exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
+ UNAME_PROCESSOR=$(/usr/bin/uname -p)
+ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
then
- if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
- [ "$TARGET_BINARY_INTERFACE"x = x ]
+ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
+ test "$TARGET_BINARY_INTERFACE"x = x
then
echo m88k-dg-dgux"$UNAME_RELEASE"
else
@@ -559,17 +570,17 @@ 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
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
exit ;;
ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
+ if test -x /usr/bin/oslevel ; then
+ IBM_REV=$(/usr/bin/oslevel)
else
IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
fi
@@ -589,7 +600,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
@@ -602,15 +613,15 @@ EOF
fi
exit ;;
*:AIX:*:[4567])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ 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
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
- if [ -x /usr/bin/lslpp ] ; then
- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
- awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
+ if test -x /usr/bin/lslpp ; then
+ 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"
fi
@@ -638,14 +649,14 @@ EOF
echo m68k-hp-bsd4.4
exit ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ 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`
+ if test -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
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
@@ -657,7 +668,7 @@ EOF
esac ;;
esac
fi
- if [ "$HP_ARCH" = "" ]; then
+ if test "$HP_ARCH" = ""; then
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
@@ -692,11 +703,11 @@ 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 test "$HP_ARCH" = hppa2.0w
then
set_cc_for_build
@@ -720,7 +731,7 @@ EOF
echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
exit ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
+ HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//')
echo ia64-hp-hpux"$HPUX_REV"
exit ;;
3050*:HI-UX:*:*)
@@ -750,7 +761,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 ;;
@@ -770,7 +781,7 @@ EOF
echo hppa1.0-hp-osf
exit ;;
i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
+ if test -x /usr/sbin/sysversion ; then
echo "$UNAME_MACHINE"-unknown-osf1mk
else
echo "$UNAME_MACHINE"-unknown-osf1
@@ -819,14 +830,14 @@ EOF
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_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)
+ FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | 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_SYS=$(uname -p | 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:*:*)
@@ -839,25 +850,25 @@ EOF
echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
exit ;;
arm:FreeBSD:*:*)
- UNAME_PROCESSOR=`uname -p`
+ UNAME_PROCESSOR=$(uname -p)
set_cc_for_build
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi
else
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf
fi
exit ;;
*:FreeBSD:*:*)
- UNAME_PROCESSOR=`/usr/bin/uname -p`
+ UNAME_PROCESSOR=$(/usr/bin/uname -p)
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
@@ -893,15 +904,15 @@ EOF
echo x86_64-pc-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 ;;
*:Minix:*:*)
echo "$UNAME_MACHINE"-unknown-minix
@@ -914,7 +925,7 @@ EOF
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
@@ -981,22 +992,50 @@ EOF
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
set_cc_for_build
+ IS_GLIBC=0
+ test x"${LIBC}" = xgnu && IS_GLIBC=1
sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
- #undef ${UNAME_MACHINE}
- #undef ${UNAME_MACHINE}el
+ #undef mips
+ #undef mipsel
+ #undef mips64
+ #undef mips64el
+ #if ${IS_GLIBC} && defined(_ABI64)
+ LIBCABI=gnuabi64
+ #else
+ #if ${IS_GLIBC} && defined(_ABIN32)
+ LIBCABI=gnuabin32
+ #else
+ LIBCABI=${LIBC}
+ #endif
+ #endif
+
+ #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa64r6
+ #else
+ #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa32r6
+ #else
+ #if defined(__mips64)
+ CPU=mips64
+ #else
+ CPU=mips
+ #endif
+ #endif
+ #endif
+
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=${UNAME_MACHINE}el
+ MIPS_ENDIAN=el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=${UNAME_MACHINE}
+ MIPS_ENDIAN=
#else
- CPU=
+ MIPS_ENDIAN=
#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\|^MIPS_ENDIAN\|^LIBCABI')"
+ test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
;;
mips64el:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
@@ -1015,7 +1054,7 @@ EOF
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ 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" ;;
@@ -1055,7 +1094,17 @@ EOF
echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
exit ;;
x86_64:Linux:*:*)
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
+ set_cc_for_build
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_X32 >/dev/null
+ then
+ LIBCABI="$LIBC"x32
+ fi
+ fi
+ echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI"
exit ;;
xtensa*:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
@@ -1095,7 +1144,7 @@ EOF
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"
else
@@ -1104,19 +1153,19 @@ EOF
exit ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
- case `/bin/uname -X | grep "^Machine"` in
+ case $(/bin/uname -X | grep "^Machine") in
*486*) UNAME_MACHINE=i486 ;;
*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`
+ UNAME_REL=$(sed -n 's/.*Version //p' </usr/options/cb.name)
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/.*= //')`
+ UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //'))
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
@@ -1166,7 +1215,7 @@ EOF
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /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; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
@@ -1177,7 +1226,7 @@ EOF
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
OS_REL='.3'
test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /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; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
@@ -1210,7 +1259,7 @@ EOF
exit ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ UNAME_MACHINE=$( (uname -p) 2>/dev/null)
echo "$UNAME_MACHINE"-sni-sysv4
else
echo ns32k-sni-sysv
@@ -1244,7 +1293,7 @@ EOF
echo mips-sony-newsos6
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
+ if test -d /usr/nec; then
echo mips-nec-sysv"$UNAME_RELEASE"
else
echo mips-unknown-sysv"$UNAME_RELEASE"
@@ -1292,44 +1341,48 @@ EOF
*:Rhapsody:*:*)
echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
exit ;;
+ arm64:Darwin:*:*)
+ echo aarch64-apple-darwin"$UNAME_RELEASE"
+ exit ;;
*:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- set_cc_for_build
- if test "$UNAME_PROCESSOR" = unknown ; then
- UNAME_PROCESSOR=powerpc
+ UNAME_PROCESSOR=$(uname -p)
+ case $UNAME_PROCESSOR in
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ if command -v xcode-select > /dev/null 2> /dev/null && \
+ ! xcode-select --print-path > /dev/null 2> /dev/null ; then
+ # Avoid executing cc if there is no toolchain installed as
+ # cc will be a stub that puts up a graphical alert
+ # prompting the user to install developer tools.
+ CC_FOR_BUILD=no_compiler_found
+ else
+ set_cc_for_build
fi
- 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) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
- fi
- # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
- if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_PPC >/dev/null
- then
- UNAME_PROCESSOR=powerpc
- fi
+ if test "$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) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
- # Avoid executing cc on OS X 10.9, as it ships with a stub
- # that puts up a graphical alert prompting to install
- # developer tools. Any system running Mac OS X 10.7 or
- # later (Darwin 11 and later) is required to have a 64-bit
- # processor. This is not true of the ARM version of Darwin
- # that Apple uses in portable devices.
- UNAME_PROCESSOR=x86_64
+ # uname -m returns i386 or x86_64
+ UNAME_PROCESSOR=$UNAME_MACHINE
fi
echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
+ UNAME_PROCESSOR=$(uname -p)
if test "$UNAME_PROCESSOR" = x86; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
@@ -1397,10 +1450,10 @@ EOF
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`
+ UNAME_MACHINE=$( (uname -p) 2>/dev/null)
case "$UNAME_MACHINE" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
@@ -1410,7 +1463,7 @@ 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
@@ -1424,8 +1477,148 @@ EOF
amd64:Isilon\ OneFS:*:*)
echo x86_64-unknown-onefs
exit ;;
+ *:Unleashed:*:*)
+ echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
+ exit ;;
esac
+# No uname command or uname output not recognized.
+set_cc_for_build
+cat > "$dummy.c" <<EOF
+#ifdef _SEQUENT_
+#include <sys/types.h>
+#include <sys/utsname.h>
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#include <signal.h>
+#if defined(_SIZE_T_) || defined(SIGLOST)
+#include <sys/utsname.h>
+#endif
+#endif
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null);
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+#endif
+
+#if defined (vax)
+#if !defined (ultrix)
+#include <sys/param.h>
+#if defined (BSD)
+#if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+#else
+#if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#else
+ printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#endif
+#else
+ printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#else
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname un;
+ uname (&un);
+ printf ("vax-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname *un;
+ uname (&un);
+ printf ("mips-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("mips-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
+
echo "$0: unable to guess system type" >&2
case "$UNAME_MACHINE:$UNAME_SYSTEM" in
@@ -1448,6 +1641,12 @@ copies of config.guess and config.sub with the latest versions from:
https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
and
https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+EOF
+
+year=$(echo $timestamp | sed 's,-.*,,')
+# shellcheck disable=SC2003
+if test "$(expr "$(date +%Y)" - "$year")" -lt 3 ; then
+ cat >&2 <<EOF
If $0 has already been updated, send the following data and any
information you think might be pertinent to config-patches@gnu.org to
@@ -1455,26 +1654,27 @@ provide the necessary information to handle your system.
config.guess timestamp = $timestamp
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
+uname -m = $( (uname -m) 2>/dev/null || echo unknown)
+uname -r = $( (uname -r) 2>/dev/null || echo unknown)
+uname -s = $( (uname -s) 2>/dev/null || echo unknown)
+uname -v = $( (uname -v) 2>/dev/null || echo unknown)
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null)
+/bin/uname -X = $( (/bin/uname -X) 2>/dev/null)
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+hostinfo = $( (hostinfo) 2>/dev/null)
+/bin/universe = $( (/bin/universe) 2>/dev/null)
+/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null)
+/bin/arch = $( (/bin/arch) 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"
EOF
+fi
exit 1
diff --git a/support/config.sub b/support/config.sub
index f208558..c874b7a 100755
--- a/support/config.sub
+++ b/support/config.sub
@@ -1,8 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2018 Free Software Foundation, Inc.
+# Copyright 1992-2020 Free Software Foundation, Inc.
-timestamp='2018-08-29'
+timestamp='2020-11-07'
# 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 @@ timestamp='2018-08-29'
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
-me=`echo "$0" | sed -e 's,.*/,,'`
+me=$(echo "$0" | sed -e 's,.*/,,')
usage="\
Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2018 Free Software Foundation, Inc.
+Copyright 1992-2020 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."
@@ -111,7 +111,8 @@ case $# in
esac
# Split fields of configuration type
-IFS="-" read -r field1 field2 field3 field4 <<EOF
+# shellcheck disable=SC2162
+IFS="-" read field1 field2 field3 field4 <<EOF
$1
EOF
@@ -123,28 +124,27 @@ case $1 in
;;
*-*-*-*)
basic_machine=$field1-$field2
- os=$field3-$field4
+ basic_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* \
+ nto-qnx* | linux-* | 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
+ basic_os=$maybe_os
;;
android-linux)
basic_machine=$field1-unknown
- os=linux-android
+ basic_os=linux-android
;;
*)
basic_machine=$field1-$field2
- os=$field3
+ basic_os=$field3
;;
esac
;;
@@ -153,7 +153,7 @@ case $1 in
case $field1-$field2 in
decstation-3100)
basic_machine=mips-dec
- os=
+ basic_os=
;;
*-*)
# Second component is usually, but not always the OS
@@ -161,7 +161,7 @@ case $1 in
# Prevent following clause from handling this valid os
sun*os*)
basic_machine=$field1
- os=$field2
+ basic_os=$field2
;;
# Manufacturers
dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
@@ -174,11 +174,11 @@ case $1 in
| microblaze* | sim | cisco \
| oki | wec | wrs | winbond)
basic_machine=$field1-$field2
- os=
+ basic_os=
;;
*)
basic_machine=$field1
- os=$field2
+ basic_os=$field2
;;
esac
;;
@@ -190,450 +190,451 @@ case $1 in
case $field1 in
386bsd)
basic_machine=i386-pc
- os=bsd
+ basic_os=bsd
;;
a29khif)
basic_machine=a29k-amd
- os=udi
+ basic_os=udi
;;
adobe68k)
basic_machine=m68010-adobe
- os=scout
+ basic_os=scout
;;
alliant)
basic_machine=fx80-alliant
- os=
+ basic_os=
;;
altos | altos3068)
basic_machine=m68k-altos
- os=
+ basic_os=
;;
am29k)
basic_machine=a29k-none
- os=bsd
+ basic_os=bsd
;;
amdahl)
basic_machine=580-amdahl
- os=sysv
+ basic_os=sysv
;;
amiga)
basic_machine=m68k-unknown
- os=
+ basic_os=
;;
amigaos | amigados)
basic_machine=m68k-unknown
- os=amigaos
+ basic_os=amigaos
;;
amigaunix | amix)
basic_machine=m68k-unknown
- os=sysv4
+ basic_os=sysv4
;;
apollo68)
basic_machine=m68k-apollo
- os=sysv
+ basic_os=sysv
;;
apollo68bsd)
basic_machine=m68k-apollo
- os=bsd
+ basic_os=bsd
;;
aros)
basic_machine=i386-pc
- os=aros
+ basic_os=aros
;;
aux)
basic_machine=m68k-apple
- os=aux
+ basic_os=aux
;;
balance)
basic_machine=ns32k-sequent
- os=dynix
+ basic_os=dynix
;;
blackfin)
basic_machine=bfin-unknown
- os=linux
+ basic_os=linux
;;
cegcc)
basic_machine=arm-unknown
- os=cegcc
+ basic_os=cegcc
;;
convex-c1)
basic_machine=c1-convex
- os=bsd
+ basic_os=bsd
;;
convex-c2)
basic_machine=c2-convex
- os=bsd
+ basic_os=bsd
;;
convex-c32)
basic_machine=c32-convex
- os=bsd
+ basic_os=bsd
;;
convex-c34)
basic_machine=c34-convex
- os=bsd
+ basic_os=bsd
;;
convex-c38)
basic_machine=c38-convex
- os=bsd
+ basic_os=bsd
;;
cray)
basic_machine=j90-cray
- os=unicos
+ basic_os=unicos
;;
crds | unos)
basic_machine=m68k-crds
- os=
+ basic_os=
;;
da30)
basic_machine=m68k-da30
- os=
+ basic_os=
;;
decstation | pmax | pmin | dec3100 | decstatn)
basic_machine=mips-dec
- os=
+ basic_os=
;;
delta88)
basic_machine=m88k-motorola
- os=sysv3
+ basic_os=sysv3
;;
dicos)
basic_machine=i686-pc
- os=dicos
+ basic_os=dicos
;;
djgpp)
basic_machine=i586-pc
- os=msdosdjgpp
+ basic_os=msdosdjgpp
;;
ebmon29k)
basic_machine=a29k-amd
- os=ebmon
+ basic_os=ebmon
;;
es1800 | OSE68k | ose68k | ose | OSE)
basic_machine=m68k-ericsson
- os=ose
+ basic_os=ose
;;
gmicro)
basic_machine=tron-gmicro
- os=sysv
+ basic_os=sysv
;;
go32)
basic_machine=i386-pc
- os=go32
+ basic_os=go32
;;
h8300hms)
basic_machine=h8300-hitachi
- os=hms
+ basic_os=hms
;;
h8300xray)
basic_machine=h8300-hitachi
- os=xray
+ basic_os=xray
;;
h8500hms)
basic_machine=h8500-hitachi
- os=hms
+ basic_os=hms
;;
harris)
basic_machine=m88k-harris
- os=sysv3
+ basic_os=sysv3
;;
- hp300)
+ hp300 | hp300hpux)
basic_machine=m68k-hp
+ basic_os=hpux
;;
hp300bsd)
basic_machine=m68k-hp
- os=bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=hpux
+ basic_os=bsd
;;
hppaosf)
basic_machine=hppa1.1-hp
- os=osf
+ basic_os=osf
;;
hppro)
basic_machine=hppa1.1-hp
- os=proelf
+ basic_os=proelf
;;
i386mach)
basic_machine=i386-mach
- os=mach
- ;;
- vsta)
- basic_machine=i386-pc
- os=vsta
+ basic_os=mach
;;
isi68 | isi)
basic_machine=m68k-isi
- os=sysv
+ basic_os=sysv
;;
m68knommu)
basic_machine=m68k-unknown
- os=linux
+ basic_os=linux
;;
magnum | m3230)
basic_machine=mips-mips
- os=sysv
+ basic_os=sysv
;;
merlin)
basic_machine=ns32k-utek
- os=sysv
+ basic_os=sysv
;;
mingw64)
basic_machine=x86_64-pc
- os=mingw64
+ basic_os=mingw64
;;
mingw32)
basic_machine=i686-pc
- os=mingw32
+ basic_os=mingw32
;;
mingw32ce)
basic_machine=arm-unknown
- os=mingw32ce
+ basic_os=mingw32ce
;;
monitor)
basic_machine=m68k-rom68k
- os=coff
+ basic_os=coff
;;
morphos)
basic_machine=powerpc-unknown
- os=morphos
+ basic_os=morphos
;;
moxiebox)
basic_machine=moxie-unknown
- os=moxiebox
+ basic_os=moxiebox
;;
msdos)
basic_machine=i386-pc
- os=msdos
+ basic_os=msdos
;;
msys)
basic_machine=i686-pc
- os=msys
+ basic_os=msys
;;
mvs)
basic_machine=i370-ibm
- os=mvs
+ basic_os=mvs
;;
nacl)
basic_machine=le32-unknown
- os=nacl
+ basic_os=nacl
;;
ncr3000)
basic_machine=i486-ncr
- os=sysv4
+ basic_os=sysv4
;;
netbsd386)
basic_machine=i386-pc
- os=netbsd
+ basic_os=netbsd
;;
netwinder)
basic_machine=armv4l-rebel
- os=linux
+ basic_os=linux
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
- os=newsos
+ basic_os=newsos
;;
news1000)
basic_machine=m68030-sony
- os=newsos
+ basic_os=newsos
;;
necv70)
basic_machine=v70-nec
- os=sysv
+ basic_os=sysv
;;
nh3000)
basic_machine=m68k-harris
- os=cxux
+ basic_os=cxux
;;
nh[45]000)
basic_machine=m88k-harris
- os=cxux
+ basic_os=cxux
;;
nindy960)
basic_machine=i960-intel
- os=nindy
+ basic_os=nindy
;;
mon960)
basic_machine=i960-intel
- os=mon960
+ basic_os=mon960
;;
nonstopux)
basic_machine=mips-compaq
- os=nonstopux
+ basic_os=nonstopux
;;
os400)
basic_machine=powerpc-ibm
- os=os400
+ basic_os=os400
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
- os=ose
+ basic_os=ose
;;
os68k)
basic_machine=m68k-none
- os=os68k
+ basic_os=os68k
;;
paragon)
basic_machine=i860-intel
- os=osf
+ basic_os=osf
;;
parisc)
basic_machine=hppa-unknown
- os=linux
+ basic_os=linux
+ ;;
+ psp)
+ basic_machine=mipsallegrexel-sony
+ basic_os=psp
;;
pw32)
basic_machine=i586-unknown
- os=pw32
+ basic_os=pw32
;;
rdos | rdos64)
basic_machine=x86_64-pc
- os=rdos
+ basic_os=rdos
;;
rdos32)
basic_machine=i386-pc
- os=rdos
+ basic_os=rdos
;;
rom68k)
basic_machine=m68k-rom68k
- os=coff
+ basic_os=coff
;;
sa29200)
basic_machine=a29k-amd
- os=udi
+ basic_os=udi
;;
sei)
basic_machine=mips-sei
- os=seiux
+ basic_os=seiux
;;
sequent)
basic_machine=i386-sequent
- os=
+ basic_os=
;;
sps7)
basic_machine=m68k-bull
- os=sysv2
+ basic_os=sysv2
;;
st2000)
basic_machine=m68k-tandem
- os=
+ basic_os=
;;
stratus)
basic_machine=i860-stratus
- os=sysv4
+ basic_os=sysv4
;;
sun2)
basic_machine=m68000-sun
- os=
+ basic_os=
;;
sun2os3)
basic_machine=m68000-sun
- os=sunos3
+ basic_os=sunos3
;;
sun2os4)
basic_machine=m68000-sun
- os=sunos4
+ basic_os=sunos4
;;
sun3)
basic_machine=m68k-sun
- os=
+ basic_os=
;;
sun3os3)
basic_machine=m68k-sun
- os=sunos3
+ basic_os=sunos3
;;
sun3os4)
basic_machine=m68k-sun
- os=sunos4
+ basic_os=sunos4
;;
sun4)
basic_machine=sparc-sun
- os=
+ basic_os=
;;
sun4os3)
basic_machine=sparc-sun
- os=sunos3
+ basic_os=sunos3
;;
sun4os4)
basic_machine=sparc-sun
- os=sunos4
+ basic_os=sunos4
;;
sun4sol2)
basic_machine=sparc-sun
- os=solaris2
+ basic_os=solaris2
;;
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
- os=
+ basic_os=
;;
sv1)
basic_machine=sv1-cray
- os=unicos
+ basic_os=unicos
;;
symmetry)
basic_machine=i386-sequent
- os=dynix
+ basic_os=dynix
;;
t3e)
basic_machine=alphaev5-cray
- os=unicos
+ basic_os=unicos
;;
t90)
basic_machine=t90-cray
- os=unicos
+ basic_os=unicos
;;
toad1)
basic_machine=pdp10-xkl
- os=tops20
+ basic_os=tops20
;;
tpf)
basic_machine=s390x-ibm
- os=tpf
+ basic_os=tpf
;;
udi29k)
basic_machine=a29k-amd
- os=udi
+ basic_os=udi
;;
ultra3)
basic_machine=a29k-nyu
- os=sym1
+ basic_os=sym1
;;
v810 | necv810)
basic_machine=v810-nec
- os=none
+ basic_os=none
;;
vaxv)
basic_machine=vax-dec
- os=sysv
+ basic_os=sysv
;;
vms)
basic_machine=vax-dec
- os=vms
+ basic_os=vms
+ ;;
+ vsta)
+ basic_machine=i386-pc
+ basic_os=vsta
;;
vxworks960)
basic_machine=i960-wrs
- os=vxworks
+ basic_os=vxworks
;;
vxworks68)
basic_machine=m68k-wrs
- os=vxworks
+ basic_os=vxworks
;;
vxworks29k)
basic_machine=a29k-wrs
- os=vxworks
+ basic_os=vxworks
;;
xbox)
basic_machine=i686-pc
- os=mingw32
+ basic_os=mingw32
;;
ymp)
basic_machine=ymp-cray
- os=unicos
+ basic_os=unicos
;;
*)
basic_machine=$1
- os=
+ basic_os=
;;
esac
;;
@@ -685,17 +686,17 @@ case $basic_machine in
bluegene*)
cpu=powerpc
vendor=ibm
- os=cnk
+ basic_os=cnk
;;
decsystem10* | dec10*)
cpu=pdp10
vendor=dec
- os=tops10
+ basic_os=tops10
;;
decsystem20* | dec20*)
cpu=pdp10
vendor=dec
- os=tops20
+ basic_os=tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
@@ -705,7 +706,7 @@ case $basic_machine in
dpx2*)
cpu=m68k
vendor=bull
- os=sysv3
+ basic_os=sysv3
;;
encore | umax | mmax)
cpu=ns32k
@@ -714,7 +715,7 @@ case $basic_machine in
elxsi)
cpu=elxsi
vendor=elxsi
- os=${os:-bsd}
+ basic_os=${basic_os:-bsd}
;;
fx2800)
cpu=i860
@@ -727,7 +728,7 @@ case $basic_machine in
h3050r* | hiux*)
cpu=hppa1.1
vendor=hitachi
- os=hiuxwe2
+ basic_os=hiuxwe2
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
cpu=hppa1.0
@@ -768,38 +769,38 @@ case $basic_machine in
vendor=hp
;;
i*86v32)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ cpu=$(echo "$1" | sed -e 's/86.*/86/')
vendor=pc
- os=sysv32
+ basic_os=sysv32
;;
i*86v4*)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ cpu=$(echo "$1" | sed -e 's/86.*/86/')
vendor=pc
- os=sysv4
+ basic_os=sysv4
;;
i*86v)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ cpu=$(echo "$1" | sed -e 's/86.*/86/')
vendor=pc
- os=sysv
+ basic_os=sysv
;;
i*86sol2)
- cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ cpu=$(echo "$1" | sed -e 's/86.*/86/')
vendor=pc
- os=solaris2
+ basic_os=solaris2
;;
j90 | j90-cray)
cpu=j90
vendor=cray
- os=${os:-unicos}
+ basic_os=${basic_os:-unicos}
;;
iris | iris4d)
cpu=mips
vendor=sgi
- case $os in
+ case $basic_os in
irix*)
;;
*)
- os=irix4
+ basic_os=irix4
;;
esac
;;
@@ -810,24 +811,26 @@ case $basic_machine in
*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
cpu=m68k
vendor=atari
- os=mint
+ basic_os=mint
;;
news-3600 | risc-news)
cpu=mips
vendor=sony
- os=newsos
+ basic_os=newsos
;;
next | m*-next)
cpu=m68k
vendor=next
- case $os in
- nextstep* )
+ case $basic_os in
+ openstep*)
+ ;;
+ nextstep*)
;;
ns2*)
- os=nextstep2
+ basic_os=nextstep2
;;
*)
- os=nextstep3
+ basic_os=nextstep3
;;
esac
;;
@@ -838,12 +841,12 @@ case $basic_machine in
op50n-* | op60c-*)
cpu=hppa1.1
vendor=oki
- os=proelf
+ basic_os=proelf
;;
pa-hitachi)
cpu=hppa1.1
vendor=hitachi
- os=hiuxwe2
+ basic_os=hiuxwe2
;;
pbd)
cpu=sparc
@@ -880,12 +883,12 @@ case $basic_machine in
sde)
cpu=mipsisa32
vendor=sde
- os=${os:-elf}
+ basic_os=${basic_os:-elf}
;;
simso-wrs)
cpu=sparclite
vendor=wrs
- os=vxworks
+ basic_os=vxworks
;;
tower | tower-32)
cpu=m68k
@@ -902,7 +905,7 @@ case $basic_machine in
w89k-*)
cpu=hppa1.1
vendor=winbond
- os=proelf
+ basic_os=proelf
;;
none)
cpu=none
@@ -914,11 +917,12 @@ case $basic_machine in
;;
leon-*|leon[3-9]-*)
cpu=sparc
- vendor=`echo "$basic_machine" | sed 's/-.*//'`
+ vendor=$(echo "$basic_machine" | sed 's/-.*//')
;;
*-*)
- IFS="-" read -r cpu vendor <<EOF
+ # shellcheck disable=SC2162
+ IFS="-" read cpu vendor <<EOF
$basic_machine
EOF
;;
@@ -954,11 +958,11 @@ case $cpu-$vendor in
# some cases the only manufacturer, in others, it is the most popular.
craynv-unknown)
vendor=cray
- os=${os:-unicosmp}
+ basic_os=${basic_os:-unicosmp}
;;
c90-unknown | c90-cray)
vendor=cray
- os=${os:-unicos}
+ basic_os=${Basic_os:-unicos}
;;
fx80-unknown)
vendor=alliant
@@ -1002,7 +1006,7 @@ case $cpu-$vendor in
dpx20-unknown | dpx20-bull)
cpu=rs6000
vendor=bull
- os=${os:-bosx}
+ basic_os=${basic_os:-bosx}
;;
# Here we normalize CPU types irrespective of the vendor
@@ -1011,7 +1015,7 @@ case $cpu-$vendor in
;;
blackfin-*)
cpu=bfin
- os=linux
+ basic_os=linux
;;
c54x-*)
cpu=tic54x
@@ -1024,7 +1028,7 @@ case $cpu-$vendor in
;;
e500v[12]-*)
cpu=powerpc
- os=$os"spe"
+ basic_os=${basic_os}"spe"
;;
mips3*-*)
cpu=mips64
@@ -1034,7 +1038,7 @@ case $cpu-$vendor in
;;
m68knommu-*)
cpu=m68k
- os=linux
+ basic_os=linux
;;
m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
cpu=s12z
@@ -1044,7 +1048,7 @@ case $cpu-$vendor in
;;
parisc-*)
cpu=hppa
- os=linux
+ basic_os=linux
;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
cpu=i586
@@ -1080,7 +1084,7 @@ case $cpu-$vendor in
cpu=mipsisa64sb1el
;;
sh5e[lb]-*)
- cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
+ cpu=$(echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/')
;;
spur-*)
cpu=spur
@@ -1098,13 +1102,16 @@ case $cpu-$vendor in
cpu=x86_64
;;
xscale-* | xscalee[bl]-*)
- cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+ cpu=$(echo "$cpu" | sed 's/^xscale/arm/')
+ ;;
+ arm64-*)
+ cpu=aarch64
;;
# Recognize the canonical CPU Types that limit and/or modify the
# company names they are paired with.
cr16-*)
- os=${os:-elf}
+ basic_os=${basic_os:-elf}
;;
crisv32-* | etraxfs*-*)
cpu=crisv32
@@ -1115,7 +1122,7 @@ case $cpu-$vendor in
vendor=axis
;;
crx-*)
- os=${os:-elf}
+ basic_os=${basic_os:-elf}
;;
neo-tandem)
cpu=neo
@@ -1137,16 +1144,12 @@ case $cpu-$vendor in
cpu=nsx
vendor=tandem
;;
- s390-*)
- cpu=s390
- vendor=ibm
- ;;
- s390x-*)
- cpu=s390x
- vendor=ibm
+ mipsallegrexel-sony)
+ cpu=mipsallegrexel
+ vendor=sony
;;
tile*-*)
- os=${os:-linux-gnu}
+ basic_os=${basic_os:-linux-gnu}
;;
*)
@@ -1161,13 +1164,14 @@ case $cpu-$vendor in
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
| alphapca5[67] | alpha64pca5[67] \
| am33_2.0 \
+ | amdgcn \
| arc | arceb \
- | arm | arm[lb]e | arme[lb] | armv* \
+ | arm | arm[lb]e | arme[lb] | armv* \
| avr | avr32 \
| asmjs \
| ba \
| be32 | be64 \
- | bfin | bs2000 \
+ | bfin | bpf | bs2000 \
| c[123]* | c30 | [cjt]90 | c4x \
| c8051 | clipper | craynv | csky | cydra \
| d10v | d30v | dlx | dsp16xx \
@@ -1182,13 +1186,13 @@ case $cpu-$vendor in
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle \
- | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
- | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
| m88110 | m88k | maxq | mb | mcore | mep | metag \
| microblaze | microblazeel \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
- | mips64 | mips64el \
+ | mips64 | mips64eb | mips64el \
| mips64octeon | mips64octeonel \
| mips64orion | mips64orionel \
| mips64r5900 | mips64r5900el \
@@ -1215,19 +1219,22 @@ case $cpu-$vendor in
| nds32 | nds32le | nds32be \
| nfp \
| nios | nios2 | nios2eb | nios2el \
- | none | np1 | ns16k | ns32k \
+ | none | np1 | ns16k | ns32k | nvptx \
| open8 \
| or1k* \
| or32 \
| orion \
+ | picochip \
| pdp10 | pdp11 | pj | pjl | pn | power \
| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
| pru \
| pyramid \
| riscv | riscv32 | riscv64 \
| rl78 | romp | rs6000 | rx \
+ | s390 | s390x \
| score \
- | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh | shl \
+ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
| sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
| sparclite \
@@ -1237,10 +1244,11 @@ case $cpu-$vendor in
| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
| tron \
| ubicom32 \
- | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
| vax \
| visium \
- | wasm32 \
+ | w65 \
+ | wasm32 | wasm64 \
| we32k \
| x86 | x86_64 | xc16x | xgate | xps100 \
| xstormy16 | xtensa* \
@@ -1270,8 +1278,47 @@ esac
# Decode manufacturer-specific aliases for certain operating systems.
-if [ x$os != x ]
+if test x$basic_os != x
then
+
+# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
+# set os.
+case $basic_os in
+ gnu/linux*)
+ kernel=linux
+ os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|')
+ ;;
+ os2-emx)
+ kernel=os2
+ os=$(echo $basic_os | sed -e 's|os2-emx|emx|')
+ ;;
+ nto-qnx*)
+ kernel=nto
+ os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|')
+ ;;
+ *-*)
+ # shellcheck disable=SC2162
+ IFS="-" read kernel os <<EOF
+$basic_os
+EOF
+ ;;
+ # Default OS when just kernel was specified
+ nto*)
+ kernel=nto
+ os=$(echo $basic_os | sed -e 's|nto|qnx|')
+ ;;
+ linux*)
+ kernel=linux
+ os=$(echo $basic_os | sed -e 's|linux|gnu|')
+ ;;
+ *)
+ kernel=
+ os=$basic_os
+ ;;
+esac
+
+# Now, normalize the OS (knowing we just have one component, it's not a kernel,
+# etc.)
case $os in
# First match some system type aliases that might get confused
# with valid system types.
@@ -1283,7 +1330,7 @@ case $os in
os=cnk
;;
solaris1 | solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ os=$(echo $os | sed -e 's|solaris1|sunos4|')
;;
solaris)
os=solaris2
@@ -1291,9 +1338,6 @@ case $os in
unixware*)
os=sysv4.2uw
;;
- 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
@@ -1315,12 +1359,9 @@ case $os in
os=sco3.2v4
;;
sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- ;;
- sco3.2v[4-9]* | sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
+ os=$(echo $os | sed -e 's/sco3.2./sco3.2v/')
;;
- scout)
+ sco*v* | scout)
# Don't match below
;;
sco*)
@@ -1329,78 +1370,26 @@ case $os in
psos*)
os=psos
;;
- # Now accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST end in a * to match a version number.
- # sysv* is not here because it comes later, after sysvr4.
- gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
- | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
- | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
- | sym* | kopensolaris* | plan9* \
- | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
- | aos* | aros* | cloudabi* | sortix* \
- | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
- | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
- | knetbsd* | mirbsd* | netbsd* \
- | bitrig* | openbsd* | solidbsd* | libertybsd* \
- | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
- | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
- | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
- | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
- | chorusrdb* | cegcc* | glidix* \
- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
- | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
- | linux-newlib* | linux-musl* | linux-uclibc* \
- | uxpv* | beos* | mpeix* | udk* | moxiebox* \
- | 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*)
- case $cpu in
- x86 | i*86)
- ;;
- *)
- os=nto-$os
- ;;
- esac
+ os=qnx
;;
hiux*)
os=hiuxwe2
;;
- nto-qnx*)
- ;;
- nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
- ;;
- sim | xray | os68k* | v88r* \
- | windows* | osx | abug | netware* | os9* \
- | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
- ;;
- linux-dietlibc)
- os=linux-dietlibc
- ;;
- linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
lynx*178)
os=lynxos178
;;
lynx*5)
os=lynxos5
;;
+ lynxos*)
+ # don't get caught up in next wildcard
+ ;;
lynx*)
os=lynxos
;;
- mac*)
- os=`echo "$os" | sed -e 's|mac|macos|'`
+ mac[0-9]*)
+ os=$(echo "$os" | sed -e 's|mac|macos|')
;;
opened*)
os=openedition
@@ -1409,10 +1398,10 @@ case $os in
os=os400
;;
sunos5*)
- os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+ os=$(echo "$os" | sed -e 's|sunos5|solaris2|')
;;
sunos6*)
- os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+ os=$(echo "$os" | sed -e 's|sunos6|solaris3|')
;;
wince*)
os=wince
@@ -1444,12 +1433,9 @@ case $os in
ns2)
os=nextstep2
;;
- nsk*)
- os=nsk
- ;;
# Preserve the version number of sinix5.
sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
+ os=$(echo $os | sed -e 's|sinix|sysv|')
;;
sinix*)
os=sysv4
@@ -1472,18 +1458,12 @@ case $os in
sysvr4)
os=sysv4
;;
- # This must come after sysvr4.
- sysv*)
- ;;
ose*)
os=ose
;;
*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
os=mint
;;
- zvmoe)
- os=zvmoe
- ;;
dicos*)
os=dicos
;;
@@ -1500,19 +1480,11 @@ case $os in
;;
esac
;;
- nacl*)
- ;;
- ios)
- ;;
- none)
- ;;
- *-eabi)
- ;;
*)
- echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
- exit 1
+ # No normalization, but not necessarily accepted, that comes below.
;;
esac
+
else
# Here we handle the default operating systems that come with various machines.
@@ -1525,6 +1497,7 @@ else
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
+kernel=
case $cpu-$vendor in
score-*)
os=elf
@@ -1536,7 +1509,8 @@ case $cpu-$vendor in
os=riscix1.2
;;
arm*-rebel)
- os=linux
+ kernel=linux
+ os=gnu
;;
arm*-semi)
os=aout
@@ -1702,84 +1676,173 @@ case $cpu-$vendor in
os=none
;;
esac
+
fi
+# Now, validate our (potentially fixed-up) OS.
+case $os in
+ # Sometimes we do "kernel-abi", so those need to count as OSes.
+ musl* | newlib* | uclibc*)
+ ;;
+ # Likewise for "kernel-libc"
+ eabi | eabihf | gnueabi | gnueabihf)
+ ;;
+ # Now accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST end in a * to match a version number.
+ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
+ | hiux* | abug | nacl* | netware* | windows* \
+ | os9* | macos* | osx* | ios* \
+ | mpw* | magic* | mmixware* | mon960* | lnews* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
+ | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
+ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* \
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | mint* \
+ | 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* \
+ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
+ ;;
+ # This one is extra strict with allowed versions
+ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ none)
+ ;;
+ *)
+ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# As a final step for OS-related things, validate the OS-kernel combination
+# (given a valid OS), if there is a kernel.
+case $kernel-$os in
+ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
+ ;;
+ uclinux-uclibc* )
+ ;;
+ -dietlibc* | -newlib* | -musl* | -uclibc* )
+ # These are just libc implementations, not actual OSes, and thus
+ # require a kernel.
+ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ kfreebsd*-gnu* | kopensolaris*-gnu*)
+ ;;
+ nto-qnx*)
+ ;;
+ os2-emx)
+ ;;
+ *-eabi* | *-gnueabi*)
+ ;;
+ -*)
+ # Blank kernel with real OS is always fine.
+ ;;
+ *-*)
+ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
+ exit 1
+ ;;
+esac
+
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
case $vendor in
unknown)
- case $os in
- riscix*)
+ case $cpu-$os in
+ *-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
;;
- clix*)
+ *-clix*)
vendor=intergraph
;;
- mvs* | opened*)
+ *-mvs* | *-opened*)
+ vendor=ibm
+ ;;
+ *-os400*)
vendor=ibm
;;
- os400*)
+ s390-* | s390x-*)
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
;;
esac
-echo "$cpu-$vendor-$os"
+echo "$cpu-$vendor-${kernel:+$kernel-}$os"
exit
# Local variables:
diff --git a/support/shlib-install b/support/shlib-install
index f4eea27..661355d 100755
--- a/support/shlib-install
+++ b/support/shlib-install
@@ -17,7 +17,7 @@ LDCONFIG=ldconfig
PROGNAME=`basename $0`
USAGE="$PROGNAME [-D] -O host_os [-V host_vendor] -d installation-dir [-b bin-dir] -i install-prog [-U] library"
-# process options
+# process options - should use getopts
while [ $# -gt 0 ]; do
case "$1" in
@@ -118,7 +118,7 @@ INSTALL_LINK2='${echo} cd $INSTALLDIR && ${echo} ${LN} $LIBNAME $LINK2'
# Create symlinks to the installed library. This section is incomplete.
#
case "$host_os-$host_vendor" in
-*linux*|freebsd*-gentoo)
+*linux*|freebsd*|dragonfly*)
# libname.so.M -> libname.so.M.N
${echo} ${RM} ${INSTALLDIR}/$LINK2
if [ -z "$uninstall" ]; then
@@ -154,38 +154,6 @@ solaris2*|aix4.[2-9]*|aix[5-9]*|osf*|irix[56]*|sysv[45]*|dgux*|interix*)
fi
;;
-
-# FreeBSD 3.x and above can have either a.out or ELF shared libraries
-freebsd3*|freebsdaout*)
- if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
- # libname.so -> libname.so.M
- ${echo} ${RM} ${INSTALLDIR}/$LINK1
- if [ -z "$uninstall" ]; then
- eval $INSTALL_LINK1
- fi
- else
- # libname.so.M -> libname.so.M.N
- ${echo} ${RM} ${INSTALLDIR}/$LINK2
- if [ -z "$uninstall" ]; then
- eval $INSTALL_LINK2
- fi
-
- # libname.so -> libname.so.M.N
- ${echo} ${RM} ${INSTALLDIR}/$LINK1
- if [ -z "$uninstall" ]; then
- eval $INSTALL_LINK1
- fi
- fi
- ;;
-
-freebsd[4-9]*|freebsd1[0-9]*|freebsdelf*|dragonfly*)
- # libname.so -> libname.so.M
- ${echo} ${RM} ${INSTALLDIR}/$LINK1
- if [ -z "$uninstall" ]; then
- eval $INSTALL_LINK1
- fi
- ;;
-
hpux1*)
# libname.sl -> libname.M
${echo} ${RM} ${INSTALLDIR}/$LINK1.sl
diff --git a/support/shobj-conf b/support/shobj-conf
index 7920f1b..5a3f977 100644
--- a/support/shobj-conf
+++ b/support/shobj-conf
@@ -10,7 +10,7 @@
# Chet Ramey
# chet@po.cwru.edu
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2019 Free Software Foundation, Inc.
#
# This file is part of GNU Bash, the Bourne Again SHell.
#
@@ -65,7 +65,7 @@ while [ $# -gt 0 ]; do
done
case "${host_os}-${SHOBJ_CC}-${host_vendor}" in
-nsk-cc-tandem)
+nsk-cc-tandem|nsk-c99-tandem)
SHOBJ_CFLAGS=-Wglobalized
case `uname -m` in
NSR*)
@@ -123,7 +123,7 @@ sunos5*|solaris2*)
;;
# All versions of Linux (including Gentoo/FreeBSD) or the semi-mythical GNU Hurd.
-linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo)
+linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*|dragonfly*)
SHOBJ_CFLAGS=-fPIC
SHOBJ_LD='${CC}'
SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
@@ -132,44 +132,6 @@ linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo)
SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
;;
-freebsd2*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-x -Bshareable'
-
- SHLIB_XLDFLAGS='-R$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-# FreeBSD-3.x ELF
-freebsd3*|freebsdaout*)
- SHOBJ_CFLAGS=-fPIC
- SHOBJ_LD='${CC}'
-
- if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
-
- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- else
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_XLDFLAGS='-R$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- fi
- ;;
-
-# FreeBSD-4.x and later have only ELF
-freebsd[4-9]*|freebsd1[0-9]*|freebsdelf*|dragonfly*)
- SHOBJ_CFLAGS=-fPIC
- SHOBJ_LD='${CC}'
-
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
# Darwin/MacOS X
darwin*)
# Common definitions for all darwin/mac os x versions
@@ -402,18 +364,15 @@ hpux11*)
SHLIB_STATUS=unsupported
# If you are using the HP ANSI C compiler, you can uncomment and use
- # this code (I have not tested it)
-# SHOBJ_STATUS=supported
-# SHLIB_STATUS=supported
-#
+ # this code from michael.osipov@siemens.com (I have not tested it)
# SHOBJ_CFLAGS='+z'
-# SHOBJ_LD='ld'
-# SHOBJ_LDFLAGS='-b +s +h $@'
+# SHOBJ_LD='$(CC)'
+# SHOBJ_LDFLAGS='-b -Wl,+s -Wl,+h,$@'
#
-# SHLIB_XLDFLAGS='+b $(libdir)'
-# SHLIB_LIBSUFF='sl'
+# SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
+# SHLIB_LIBSUFF='so'
# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
-
+# SHLIB_LIBS='$(TERMCAP_LIB)'
;;
sysv4*-*gcc*)
diff --git a/terminal.c b/terminal.c
index e557389..05415dc 100644
--- a/terminal.c
+++ b/terminal.c
@@ -152,6 +152,10 @@ static int term_has_meta;
static char *_rl_term_mm;
static char *_rl_term_mo;
+/* The sequences to enter and exit standout mode. */
+static char *_rl_term_so;
+static char *_rl_term_se;
+
/* The key sequences output by the arrow keys, if this terminal has any. */
static char *_rl_term_ku;
static char *_rl_term_kd;
@@ -177,6 +181,19 @@ static char *_rl_term_kI;
static char *_rl_term_vs; /* very visible */
static char *_rl_term_ve; /* normal */
+/* It's not clear how HPUX is so broken here. */
+#ifdef TGETENT_BROKEN
+# define TGETENT_SUCCESS 0
+#else
+# define TGETENT_SUCCESS 1
+#endif
+#ifdef TGETFLAG_BROKEN
+# define TGETFLAG_SUCCESS 0
+#else
+# define TGETFLAG_SUCCESS 1
+#endif
+#define TGETFLAG(cap) (tgetflag (cap) == TGETFLAG_SUCCESS)
+
static void bind_termcap_arrow_keys PARAMS((Keymap));
/* Variables that hold the screen dimensions, used by the display code. */
@@ -410,6 +427,8 @@ static const struct _tc_string tc_strings[] =
{ "mo", &_rl_term_mo },
{ "nd", &_rl_term_forward_char },
{ "pc", &_rl_term_pc },
+ { "se", &_rl_term_se },
+ { "so", &_rl_term_so },
{ "up", &_rl_term_up },
{ "vb", &_rl_visible_bell },
{ "vs", &_rl_term_vs },
@@ -437,7 +456,7 @@ _rl_init_terminal_io (const char *terminal_name)
{
const char *term;
char *buffer;
- int tty, tgetent_ret;
+ int tty, tgetent_ret, dumbterm;
term = terminal_name ? terminal_name : sh_get_env_value ("TERM");
_rl_term_clrpag = _rl_term_cr = _rl_term_clreol = _rl_term_clrscroll = (char *)NULL;
@@ -446,6 +465,8 @@ _rl_init_terminal_io (const char *terminal_name)
if (term == 0)
term = "dumb";
+ dumbterm = STREQ (term, "dumb");
+
#ifdef __MSDOS__
_rl_term_im = _rl_term_ei = _rl_term_ic = _rl_term_IC = (char *)NULL;
_rl_term_up = _rl_term_dc = _rl_term_DC = _rl_visible_bell = (char *)NULL;
@@ -457,6 +478,7 @@ _rl_init_terminal_io (const char *terminal_name)
_rl_term_goto = _rl_term_pc = _rl_term_ip = (char *)NULL;
_rl_term_ks = _rl_term_ke =_rl_term_vs = _rl_term_ve = (char *)NULL;
_rl_term_kh = _rl_term_kH = _rl_term_at7 = _rl_term_kI = (char *)NULL;
+ _rl_term_so = _rl_term_se = (char *)NULL;
#if defined(HACK_TERMCAP_MOTION)
_rl_term_forward_char = (char *)NULL;
#endif
@@ -483,7 +505,7 @@ _rl_init_terminal_io (const char *terminal_name)
tgetent_ret = tgetent (term_buffer, term);
}
- if (tgetent_ret <= 0)
+ if (tgetent_ret != TGETENT_SUCCESS)
{
FREE (term_string_buffer);
FREE (term_buffer);
@@ -521,8 +543,13 @@ _rl_init_terminal_io (const char *terminal_name)
_rl_term_mm = _rl_term_mo = (char *)NULL;
_rl_term_ve = _rl_term_vs = (char *)NULL;
_rl_term_forward_char = (char *)NULL;
+ _rl_term_so = _rl_term_se = (char *)NULL;
_rl_terminal_can_insert = term_has_meta = 0;
+ /* Assume generic unknown terminal can't handle the enable/disable
+ escape sequences */
+ _rl_enable_bracketed_paste = 0;
+
/* Reasonable defaults for tgoto(). Readline currently only uses
tgoto if _rl_term_IC or _rl_term_DC is defined, but just in case we
change that later... */
@@ -541,10 +568,10 @@ _rl_init_terminal_io (const char *terminal_name)
BC = _rl_term_backspace;
UP = _rl_term_up;
- if (!_rl_term_cr)
+ if (_rl_term_cr == 0)
_rl_term_cr = "\r";
- _rl_term_autowrap = tgetflag ("am") && tgetflag ("xn");
+ _rl_term_autowrap = TGETFLAG ("am") && TGETFLAG ("xn");
/* Allow calling application to set default height and width, using
rl_set_screen_size */
@@ -559,7 +586,7 @@ _rl_init_terminal_io (const char *terminal_name)
/* Check to see if this terminal has a meta key and clear the capability
variables if there is none. */
- term_has_meta = tgetflag ("km") != 0;
+ term_has_meta = TGETFLAG ("km");
if (term_has_meta == 0)
_rl_term_mm = _rl_term_mo = (char *)NULL;
#endif /* !__MSDOS__ */
@@ -574,6 +601,11 @@ _rl_init_terminal_io (const char *terminal_name)
bind_termcap_arrow_keys (vi_insertion_keymap);
#endif /* VI_MODE */
+ /* There's no way to determine whether or not a given terminal supports
+ bracketed paste mode, so we assume a terminal named "dumb" does not. */
+ if (dumbterm)
+ _rl_enable_bracketed_paste = 0;
+
return 0;
}
@@ -676,6 +708,16 @@ rl_crlf (void)
return 0;
}
+void
+_rl_cr (void)
+{
+#if defined (__MSDOS__)
+ putc ('\r', rl_outstream);
+#else
+ tputs (_rl_term_cr, 1, _rl_output_character_function);
+#endif
+}
+
/* Ring the terminal bell. */
int
rl_ding (void)
@@ -710,6 +752,30 @@ rl_ding (void)
/* **************************************************************** */
/* */
+/* Entering and leaving terminal standout mode */
+/* */
+/* **************************************************************** */
+
+void
+_rl_standout_on (void)
+{
+#ifndef __MSDOS__
+ if (_rl_term_so && _rl_term_se)
+ tputs (_rl_term_so, 1, _rl_output_character_function);
+#endif
+}
+
+void
+_rl_standout_off (void)
+{
+#ifndef __MSDOS__
+ if (_rl_term_so && _rl_term_se)
+ tputs (_rl_term_se, 1, _rl_output_character_function);
+#endif
+}
+
+/* **************************************************************** */
+/* */
/* Controlling the Meta Key and Keypad */
/* */
/* **************************************************************** */
diff --git a/text.c b/text.c
index cddaeeb..2567dea 100644
--- a/text.c
+++ b/text.c
@@ -1,6 +1,6 @@
/* text.c -- text handling commands for readline. */
-/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2020 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.
@@ -154,6 +154,7 @@ rl_delete_text (int from, int to)
rl_end -= diff;
rl_line_buffer[rl_end] = '\0';
+ _rl_fix_mark ();
return (diff);
}
@@ -176,6 +177,12 @@ _rl_fix_point (int fix_mark_too)
if (fix_mark_too)
_RL_FIX_POINT (rl_mark);
}
+
+void
+_rl_fix_mark (void)
+{
+ _RL_FIX_POINT (rl_mark);
+}
#undef _RL_FIX_POINT
/* Replace the contents of the line buffer between START and END with
@@ -479,6 +486,8 @@ rl_forward_word (int count, int key)
while (count)
{
+ if (rl_point > rl_end)
+ rl_point = rl_end;
if (rl_point == rl_end)
return 0;
@@ -498,6 +507,8 @@ rl_forward_word (int count, int key)
}
}
+ if (rl_point > rl_end)
+ rl_point = rl_end;
if (rl_point == rl_end)
return 0;
@@ -569,18 +580,8 @@ rl_backward_word (int count, int key)
int
rl_refresh_line (int ignore1, int ignore2)
{
- int curr_line;
-
- curr_line = _rl_current_display_line ();
-
- _rl_move_vert (curr_line);
- _rl_move_cursor_relative (0, rl_line_buffer); /* XXX is this right */
-
- _rl_clear_to_eol (0); /* arg of 0 means to not use spaces */
-
- rl_redraw_prompt_last_line ();
+ _rl_refresh_line ();
rl_display_fixed = 1;
-
return 0;
}
@@ -596,7 +597,18 @@ rl_clear_screen (int count, int key)
return 0;
}
- _rl_clear_screen (); /* calls termcap function to clear screen */
+ _rl_clear_screen (0); /* calls termcap function to clear screen */
+ rl_keep_mark_active ();
+ rl_forced_update_display ();
+ rl_display_fixed = 1;
+
+ return 0;
+}
+
+int
+rl_clear_display (int count, int key)
+{
+ _rl_clear_screen (1); /* calls termcap function to clear screen and scrollback buffer */
rl_forced_update_display ();
rl_display_fixed = 1;
@@ -1080,6 +1092,13 @@ rl_tab_insert (int count, int key)
int
rl_newline (int count, int key)
{
+ if (rl_mark_active_p ())
+ {
+ rl_deactivate_mark ();
+ (*rl_redisplay_function) ();
+ _rl_want_redisplay = 0;
+ }
+
rl_done = 1;
if (_rl_history_preserve_point)
@@ -1452,7 +1471,18 @@ rl_change_case (int count, int op)
if (nwc != wc) /* just skip unchanged characters */
{
char *s, *e;
- mlen = wcrtomb (mb, nwc, &mps);
+ mbstate_t ts;
+
+ memset (&ts, 0, sizeof (mbstate_t));
+ mlen = wcrtomb (mb, nwc, &ts);
+ if (mlen < 0)
+ {
+ nwc = wc;
+ memset (&ts, 0, sizeof (mbstate_t));
+ mlen = wcrtomb (mb, nwc, &ts);
+ if (mlen < 0) /* should not happen */
+ strncpy (mb, rl_line_buffer + start, mlen = m);
+ }
if (mlen > 0)
mb[mlen] = '\0';
/* what to do if m != mlen? adjust below */
@@ -1472,7 +1502,9 @@ rl_change_case (int count, int op)
}
else if (m < mlen)
{
- rl_extend_line_buffer (mlen - m + 1);
+ rl_extend_line_buffer (rl_end + mlen + (e - s) - m + 2);
+ s = rl_line_buffer + start; /* have to redo this */
+ e = rl_line_buffer + rl_end;
memmove (s + mlen, s + m, (e - s) - m);
memcpy (s, mb, mlen);
next += mlen - m; /* next char changes */
@@ -1711,10 +1743,7 @@ _rl_char_search (int count, int fdir, int bdir)
{
int c;
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
+ c = _rl_bracketed_read_key ();
if (c < 0)
return 1;
@@ -1809,7 +1838,43 @@ rl_exchange_point_and_mark (int count, int key)
return 1;
}
else
- SWAP (rl_point, rl_mark);
+ {
+ SWAP (rl_point, rl_mark);
+ rl_activate_mark ();
+ }
return 0;
}
+
+/* Active mark support */
+
+/* Is the region active? */
+static int mark_active = 0;
+
+/* Does the current command want the mark to remain active when it completes? */
+int _rl_keep_mark_active;
+
+void
+rl_keep_mark_active (void)
+{
+ _rl_keep_mark_active++;
+}
+
+void
+rl_activate_mark (void)
+{
+ mark_active = 1;
+ rl_keep_mark_active ();
+}
+
+void
+rl_deactivate_mark (void)
+{
+ mark_active = 0;
+}
+
+int
+rl_mark_active_p (void)
+{
+ return (mark_active);
+}
diff --git a/tilde.c b/tilde.c
index 9d0f296..d678a31 100644
--- a/tilde.c
+++ b/tilde.c
@@ -1,6 +1,6 @@
/* tilde.c -- Tilde expansion code (~/foo := $HOME/foo). */
-/* Copyright (C) 1988-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1988-2020 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.
@@ -57,10 +57,10 @@ static void *xmalloc (), *xrealloc ();
#if !defined (HAVE_GETPW_DECLS)
# if defined (HAVE_GETPWUID)
-extern struct passwd *getpwuid PARAMS((uid_t));
+extern struct passwd *getpwuid (uid_t);
# endif
# if defined (HAVE_GETPWNAM)
-extern struct passwd *getpwnam PARAMS((const char *));
+extern struct passwd *getpwnam (const char *);
# endif
#endif /* !HAVE_GETPW_DECLS */
@@ -79,8 +79,8 @@ extern struct passwd *getpwnam PARAMS((const char *));
/* If being compiled as part of bash, these will be satisfied from
variables.o. If being compiled as part of readline, they will
be satisfied from shell.o. */
-extern char *sh_get_home_dir PARAMS((void));
-extern char *sh_get_env_value PARAMS((const char *));
+extern char *sh_get_home_dir (void);
+extern char *sh_get_env_value (const char *);
/* The default value of tilde_additional_prefixes. This is set to
whitespace preceding a tilde so that simple programs which do not
@@ -116,10 +116,10 @@ char **tilde_additional_prefixes = (char **)default_prefixes;
`:' and `=~'. */
char **tilde_additional_suffixes = (char **)default_suffixes;
-static int tilde_find_prefix PARAMS((const char *, int *));
-static int tilde_find_suffix PARAMS((const char *));
-static char *isolate_tilde_prefix PARAMS((const char *, int *));
-static char *glue_prefix_and_suffix PARAMS((char *, const char *, int));
+static int tilde_find_prefix (const char *, int *);
+static int tilde_find_suffix (const char *);
+static char *isolate_tilde_prefix (const char *, int *);
+static char *glue_prefix_and_suffix (char *, const char *, int);
/* Find the start of a tilde expansion in STRING, and return the index of
the tilde which starts the expansion. Place the length of the text
diff --git a/undo.c b/undo.c
index ae65d38..1479991 100644
--- a/undo.c
+++ b/undo.c
@@ -196,6 +196,7 @@ rl_do_undo (void)
/* Undoing deletes means inserting some text. */
case UNDO_DELETE:
rl_point = start;
+ _rl_fix_point (1);
rl_insert_text (rl_undo_list->text);
xfree (rl_undo_list->text);
break;
@@ -204,6 +205,7 @@ rl_do_undo (void)
case UNDO_INSERT:
rl_delete_text (start, end);
rl_point = start;
+ _rl_fix_point (1);
break;
/* Undoing an END means undoing everything 'til we get to a BEGIN. */
diff --git a/util.c b/util.c
index e009b23..1576b55 100644
--- a/util.c
+++ b/util.c
@@ -102,10 +102,11 @@ _rl_abort_internal (void)
rl_clear_message ();
_rl_reset_argument ();
rl_clear_pending_input ();
+ rl_deactivate_mark ();
- RL_UNSETSTATE (RL_STATE_MACRODEF);
while (rl_executing_macro)
_rl_pop_executing_macro ();
+ _rl_kill_kbd_macro ();
RL_UNSETSTATE (RL_STATE_MULTIKEY); /* XXX */
diff --git a/vi_mode.c b/vi_mode.c
index 836371c..742341e 100644
--- 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-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2020 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.
@@ -298,6 +298,11 @@ rl_vi_redo (int count, int c)
if (rl_point > 0)
_rl_vi_backup ();
}
+ else if (_rl_vi_last_command == '.' && _rl_keymap == vi_movement_keymap)
+ {
+ rl_ding ();
+ r = 0;
+ }
else
r = _rl_dispatch (_rl_vi_last_command, _rl_keymap);
@@ -320,9 +325,9 @@ rl_vi_yank_arg (int count, int key)
/* Readline thinks that the first word on a line is the 0th, while vi
thinks the first word on a line is the 1st. Compensate. */
if (rl_explicit_arg)
- rl_yank_nth_arg (count - 1, 0);
+ rl_yank_nth_arg (count - 1, key);
else
- rl_yank_nth_arg ('$', 0);
+ rl_yank_nth_arg ('$', key);
return (0);
}
@@ -837,6 +842,12 @@ _rl_vi_save_replace (void)
start = end - vi_replace_count + 1;
len = vi_replace_count + 1;
+ if (start < 0)
+ {
+ len = end + 1;
+ start = 0;
+ }
+
vi_save_insert_buffer (start, len);
}
@@ -864,8 +875,8 @@ _rl_vi_done_inserting (void)
{
if (_rl_vi_doing_insert)
{
- /* The `C', `s', and `S' commands set this. */
- rl_end_undo_group ();
+ /* The `c', `s', `S', and `R' commands set this. */
+ rl_end_undo_group (); /* for the group in rl_vi_start_inserting */
/* Now, the text between rl_undo_list->next->start and
rl_undo_list->next->end is what was inserted while in insert
mode. It gets copied to VI_INSERT_BUFFER because it depends
@@ -876,7 +887,9 @@ _rl_vi_done_inserting (void)
_rl_vi_save_replace (); /* Half the battle */
else
_rl_vi_save_insert (rl_undo_list->next);
- vi_continued_command = 1;
+ /* sanity check, should always be >= 1 here */
+ if (_rl_undo_group_level > 0)
+ rl_end_undo_group (); /* for the group in the command (change or replace) */
}
else
{
@@ -888,10 +901,12 @@ _rl_vi_done_inserting (void)
/* XXX - Other keys probably need to be checked. */
else if (_rl_vi_last_key_before_insert == 'C')
rl_end_undo_group ();
- while (_rl_undo_group_level > 0)
- rl_end_undo_group ();
- vi_continued_command = 0;
}
+
+ /* Sanity check, make sure all the undo groups are closed before we leave
+ insert mode */
+ while (_rl_undo_group_level > 0)
+ rl_end_undo_group ();
}
int
@@ -1162,6 +1177,7 @@ rl_domove_motion_callback (_rl_vimotion_cxt *m)
/* Append a blank character temporarily so that the motion routines
work right at the end of the line. Original value of rl_end is saved
as m->end. */
+ rl_extend_line_buffer (rl_end + 1);
rl_line_buffer[rl_end++] = ' ';
rl_line_buffer[rl_end] = '\0';
@@ -1193,12 +1209,15 @@ _rl_vi_domove_motion_cleanup (int c, _rl_vimotion_cxt *m)
/* Remove the blank that we added in rl_domove_motion_callback. */
rl_end = m->end;
rl_line_buffer[rl_end] = '\0';
- if (rl_point > rl_end)
- rl_point = rl_end;
+ _rl_fix_point (0);
/* No change in position means the command failed. */
if (rl_mark == rl_point)
{
+ /* 'c' and 'C' enter insert mode after the delete even if the motion
+ didn't delete anything, as long as the motion command is valid. */
+ if (_rl_to_upper (m->key) == 'C' && _rl_vi_motion_command (c))
+ return (vidomove_dispatch (m));
RL_UNSETSTATE (RL_STATE_VIMOTION);
return (-1);
}
@@ -1316,13 +1335,7 @@ rl_domove_read_callback (_rl_vimotion_cxt *m)
static int
rl_vi_domove_getchar (_rl_vimotion_cxt *m)
{
- int c;
-
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- return c;
+ return (_rl_bracketed_read_key ());
}
#if defined (READLINE_CALLBACKS)
@@ -1377,7 +1390,11 @@ rl_vi_delete_to (int count, int key)
{
int c, r;
- _rl_vimvcxt = _rl_mvcxt_alloc (VIM_DELETE, key);
+ if (_rl_vimvcxt)
+ _rl_mvcxt_init (_rl_vimvcxt, VIM_DELETE, key);
+ else
+ _rl_vimvcxt = _rl_mvcxt_alloc (VIM_DELETE, key);
+
_rl_vimvcxt->start = rl_point;
rl_mark = rl_point;
@@ -1465,7 +1482,10 @@ rl_vi_change_to (int count, int key)
{
int c, r;
- _rl_vimvcxt = _rl_mvcxt_alloc (VIM_CHANGE, key);
+ if (_rl_vimvcxt)
+ _rl_mvcxt_init (_rl_vimvcxt, VIM_CHANGE, key);
+ else
+ _rl_vimvcxt = _rl_mvcxt_alloc (VIM_CHANGE, key);
_rl_vimvcxt->start = rl_point;
rl_mark = rl_point;
@@ -1524,6 +1544,8 @@ vi_yank_dispatch (_rl_vimotion_cxt *m)
rl_do_undo ();
rl_point = m->start;
+ _rl_fix_point (1);
+
return (0);
}
@@ -1532,7 +1554,10 @@ rl_vi_yank_to (int count, int key)
{
int c, r;
- _rl_vimvcxt = _rl_mvcxt_alloc (VIM_YANK, key);
+ if (_rl_vimvcxt)
+ _rl_mvcxt_init (_rl_vimvcxt, VIM_YANK, key);
+ else
+ _rl_vimvcxt = _rl_mvcxt_alloc (VIM_YANK, key);
_rl_vimvcxt->start = rl_point;
rl_mark = rl_point;
@@ -2000,21 +2025,7 @@ _rl_vi_change_char (int count, int c, char *mb)
static int
_rl_vi_callback_getchar (char *mb, int mlen)
{
- int c;
-
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (c < 0)
- return -1;
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- c = _rl_read_mbstring (c, mb, mlen);
-#endif
-
- return c;
+ return (_rl_bracketed_read_mbstring (mb, mlen));
}
#if defined (READLINE_CALLBACKS)
@@ -2026,10 +2037,11 @@ _rl_vi_callback_change_char (_rl_callback_generic_arg *data)
c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
#if defined (HANDLE_MULTIBYTE)
- strncpy (_rl_vi_last_replacement, mb, MB_LEN_MAX);
-#else
- _rl_vi_last_replacement[0] = c;
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ strncpy (_rl_vi_last_replacement, mb, MB_LEN_MAX);
+ else
#endif
+ _rl_vi_last_replacement[0] = c;
_rl_vi_last_replacement[MB_LEN_MAX] = '\0'; /* XXX */
if (c < 0)
@@ -2066,10 +2078,11 @@ rl_vi_change_char (int count, int key)
{
c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
#ifdef HANDLE_MULTIBYTE
- strncpy (_rl_vi_last_replacement, mb, MB_LEN_MAX);
-#else
- _rl_vi_last_replacement[0] = c;
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ strncpy (_rl_vi_last_replacement, mb, MB_LEN_MAX);
+ else
#endif
+ _rl_vi_last_replacement[0] = c;
_rl_vi_last_replacement[MB_LEN_MAX] = '\0'; /* just in case */
}
@@ -2122,7 +2135,7 @@ rl_vi_overstrike_delete (int count, int key)
s = rl_point;
if (rl_do_undo ())
- vi_replace_count--;
+ vi_replace_count--; /* XXX */
if (rl_point == s)
rl_backward_char (1, key);
@@ -2137,6 +2150,67 @@ rl_vi_overstrike_delete (int count, int key)
return (0);
}
+static int
+rl_vi_overstrike_kill_line (int count, int key)
+{
+ int r, end;
+
+ end = rl_end;
+ r = rl_unix_line_discard (count, key);
+ vi_replace_count -= end - rl_end;
+ return r;
+}
+
+static int
+rl_vi_overstrike_kill_word (int count, int key)
+{
+ int r, end;
+
+ end = rl_end;
+ r = rl_vi_unix_word_rubout (count, key);
+ vi_replace_count -= end - rl_end;
+ return r;
+}
+
+static int
+rl_vi_overstrike_yank (int count, int key)
+{
+ int r, end;
+
+ end = rl_end;
+ r = rl_yank (count, key);
+ vi_replace_count += rl_end - end;
+ return r;
+}
+
+/* Read bracketed paste mode pasted text and insert it in overwrite mode */
+static int
+rl_vi_overstrike_bracketed_paste (int count, int key)
+{
+ int r;
+ char *pbuf;
+ size_t pblen;
+
+ pbuf = _rl_bracketed_text (&pblen);
+ if (pblen == 0)
+ {
+ xfree (pbuf);
+ return 0;
+ }
+ r = pblen;
+ while (--r >= 0)
+ _rl_unget_char ((unsigned char)pbuf[r]);
+ xfree (pbuf);
+
+ while (_rl_pushed_input_available ())
+ {
+ key = rl_read_key ();
+ r = rl_vi_overstrike (1, key);
+ }
+
+ return r;
+}
+
int
rl_vi_replace (int count, int key)
{
@@ -2169,6 +2243,21 @@ rl_vi_replace (int count, int key)
vi_insertion_keymap[CTRL ('H')].function == rl_rubout)
vi_replace_map[CTRL ('H')].function = rl_vi_overstrike_delete;
+ /* Same for ^U and unix-line-discard. */
+ if (vi_insertion_keymap[CTRL ('U')].type == ISFUNC &&
+ vi_insertion_keymap[CTRL ('U')].function == rl_unix_line_discard)
+ vi_replace_map[CTRL ('U')].function = rl_vi_overstrike_kill_line;
+
+ /* And for ^W and unix-word-rubout. */
+ if (vi_insertion_keymap[CTRL ('W')].type == ISFUNC &&
+ vi_insertion_keymap[CTRL ('W')].function == rl_vi_unix_word_rubout)
+ vi_replace_map[CTRL ('W')].function = rl_vi_overstrike_kill_word;
+
+ /* And finally for ^Y and yank. */
+ if (vi_insertion_keymap[CTRL ('Y')].type == ISFUNC &&
+ vi_insertion_keymap[CTRL ('Y')].function == rl_yank)
+ vi_replace_map[CTRL ('Y')].function = rl_vi_overstrike_yank;
+
/* Make sure this is the value we need. */
vi_replace_map[ANYOTHERKEY].type = ISFUNC;
vi_replace_map[ANYOTHERKEY].function = (rl_command_func_t *)NULL;
@@ -2176,9 +2265,12 @@ rl_vi_replace (int count, int key)
rl_vi_start_inserting (key, 1, rl_arg_sign);
- _rl_vi_last_key_before_insert = key;
+ _rl_vi_last_key_before_insert = 'R'; /* in case someone rebinds it */
_rl_keymap = vi_replace_map;
+ if (_rl_enable_bracketed_paste)
+ rl_bind_keyseq_if_unbound (BRACK_PASTE_PREF, rl_vi_overstrike_bracketed_paste);
+
return (0);
}
@@ -2268,6 +2360,7 @@ _rl_vi_goto_mark (void)
if (ch == '`')
{
rl_point = rl_mark;
+ _rl_fix_point (1);
return 0;
}
else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
@@ -2283,6 +2376,7 @@ _rl_vi_goto_mark (void)
return 1;
}
rl_point = vi_mark_chars[ch];
+ _rl_fix_point (1);
return 0;
}