summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2016-09-15 17:02:15 -0400
committerChet Ramey <chet.ramey@case.edu>2016-09-15 17:02:15 -0400
commitd49a9082c0e15bba8cd3d8cc0a994409cf823cac (patch)
treef0737355f68bc024a31beb0a5dd3c0370f522071
parent96c967e80aeaeda3c06ab298de77efd41288bb86 (diff)
downloadreadline-d49a9082c0e15bba8cd3d8cc0a994409cf823cac.tar.gz
Readline-7.0 distribution sources and documentationreadline-7.0
-rw-r--r--CHANGELOG82
-rw-r--r--CHANGES185
-rw-r--r--INSTALL2
-rw-r--r--MANIFEST2
-rw-r--r--Makefile.in15
-rw-r--r--NEWS236
-rw-r--r--README2
-rw-r--r--aclocal.m48
-rw-r--r--bind.c218
-rw-r--r--callback.c79
-rw-r--r--chardefs.h18
-rw-r--r--colors.c56
-rw-r--r--colors.h10
-rw-r--r--complete.c182
-rw-r--r--config.h.in38
-rwxr-xr-xconfigure415
-rw-r--r--configure.ac31
-rw-r--r--display.c430
-rw-r--r--doc/Makefile.in18
-rw-r--r--doc/history.0501
-rw-r--r--doc/history.322
-rw-r--r--doc/history.dvibin85108 -> 69092 bytes
-rw-r--r--doc/history.html19
-rw-r--r--doc/history.info707
-rw-r--r--doc/history.pdfbin88219 -> 201610 bytes
-rw-r--r--doc/history.ps4561
-rw-r--r--doc/history.texi2
-rw-r--r--doc/history_3.ps546
-rw-r--r--doc/hstech.texi15
-rw-r--r--doc/hsuser.texi19
-rw-r--r--doc/readline.01061
-rw-r--r--doc/readline.3111
-rw-r--r--doc/readline.dvibin314656 -> 310188 bytes
-rw-r--r--doc/readline.html1808
-rw-r--r--doc/readline.info3105
-rw-r--r--doc/readline.pdfbin210088 -> 389589 bytes
-rw-r--r--doc/readline.ps8919
-rw-r--r--doc/readline_3.ps1994
-rw-r--r--doc/rlman.texi2
-rw-r--r--doc/rltech.texi103
-rw-r--r--doc/rluser.texi123
-rw-r--r--doc/rluserman.dvibin105200 -> 109432 bytes
-rw-r--r--doc/rluserman.html515
-rw-r--r--doc/rluserman.info1416
-rw-r--r--doc/rluserman.pdfbin105809 -> 226783 bytes
-rw-r--r--doc/rluserman.ps3168
-rw-r--r--doc/rluserman.texi2
-rwxr-xr-xdoc/texi2dvi2316
-rw-r--r--doc/texinfo.tex2068
-rw-r--r--doc/version.texi12
-rw-r--r--examples/Makefile.in35
-rw-r--r--examples/fileman.c18
-rw-r--r--examples/hist_erasedups.c2
-rw-r--r--examples/hist_purgecmd.c2
-rw-r--r--examples/rl-callbacktest.c32
-rw-r--r--examples/rl.c1
-rw-r--r--examples/rlbasic.c29
-rw-r--r--examples/rlptytest.c8
-rw-r--r--examples/rlversion.c1
-rw-r--r--funmap.c9
-rw-r--r--histexpand.c48
-rw-r--r--histfile.c295
-rw-r--r--histlib.h3
-rw-r--r--history.c54
-rw-r--r--history.h18
-rw-r--r--input.c67
-rw-r--r--isearch.c25
-rw-r--r--kill.c106
-rw-r--r--macro.c4
-rw-r--r--mbutil.c4
-rw-r--r--misc.c8
-rw-r--r--parens.c28
-rw-r--r--patchlevel2
-rw-r--r--posixjmp.h22
-rw-r--r--readline.c127
-rw-r--r--readline.h50
-rw-r--r--readline.pc.in12
-rw-r--r--rlconf.h14
-rw-r--r--rlmbutil.h46
-rw-r--r--rlprivate.h35
-rw-r--r--rltty.c57
-rw-r--r--search.c11
-rw-r--r--shlib/Makefile.in10
-rw-r--r--signals.c39
-rw-r--r--tcap.h4
-rw-r--r--terminal.c9
-rw-r--r--text.c85
-rw-r--r--tilde.c10
-rw-r--r--undo.c11
-rw-r--r--util.c65
-rw-r--r--vi_keymap.c6
-rw-r--r--vi_mode.c172
92 files changed, 20692 insertions, 16034 deletions
diff --git a/CHANGELOG b/CHANGELOG
index c7c3077..6794591 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1222,3 +1222,85 @@ support/shobj-conf
minor one. The idea is that the minor versions should all be API/ABI
compatible, and it is better to link automatically with the latest
one. Idea from Max Horn <max@quendi.de>
+
+ 2/26/2014
+ ---------
+[readline-6.3 released]
+
+ 3/14
+ ----
+shlib/Makefile.in
+ - fix typo in dependency list for vi_mode.so: it should not depend on
+ just $(topdir). Report and fix from Natanael Copa
+ <ncopa@alpinelinux.org>
+
+ 4/15
+ ----
+{.,shlib,examples}/Makefile.in
+ - make sure $(INCLUDES) appears before $(CPPFLAGS) in the various
+ CFLAGS assignments so readline looks in its own source and build
+ directories (INCLUDES) before some directories specified by the
+ user or builder (CPPFLAGS). Report and fix from Max Horn
+ <max@quendi.de>
+
+ 6/2
+ ---
+config.h.in
+ - use correct symbols: HAVE_STRUCT_DIRENT_D_INO, HAVE_STRUCT_DIRENT_D_FILENO
+ HAVE_STRUCT_DIRENT_D_NAMLEN. They don't really matter, but they are
+ what posixdir.h looks for. Report from Ross Burton <ross.burton@intel.com>
+
+ 6/11
+ ----
+readline.pc.in
+ - new file, config file for pkgconfig. Patch to add from Jirka Klimes
+ <jklimes@redhat.com>
+
+{MANIFEST,configure.ac,Makefile.in}
+ - readline.pc: changes to create file for pkgconfig
+
+ 10/13
+ -----
+doc/Makefile.in
+ - readline.pdf, history.pdf, rluserman.pdf: use texi2dvi --pdf to generate
+ these. Suggestion from Siep Kroonenberg <siepo@cybercomm.nl>
+
+ 11/29
+ -----
+config.h.in
+ - HAVE_PSELECT: define if pselect(2) available
+
+configure.ac
+ - check for pselect(2), define HAVE_PSELECT if found
+
+ 12/29
+ -----
+configure.ac
+ - bump version number up to 6.4
+
+ 1/6/2015
+ --------
+configure.ac,config.h.in
+ - look for ncurses/termcap.h, define HAVE_NCURSES_TERMCAP_H
+
+ 4/20
+ ----
+configure.ac
+ - add template definitions set by AC_USE_SYSTEM_EXTENSIONS from a report
+ from Andreas Schwab <schwab@linux-m68k.org>
+
+ 4/24
+ ----
+configure.ac,config.h.in
+ - add check for sys/ioctl.h to AC_CHECK_HEADERS, define HAVE_SYS_IOCTL_H
+ if found
+
+ 5/29
+ ----
+configure.ac
+ - bump library version to 7.0 because of addition of rl_callback_sigcleanup
+
+ 8/26
+ ----
+configure.ac,Makefile.in,examples/Makefile.in
+ - remove references to purify
diff --git a/CHANGES b/CHANGES
index 337275d..b5e16b7 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,188 @@
+This document details the changes between this version, readline-7.0, and the
+previous version, readline-6.3.
+
+1. Changes to Readline
+
+a. A bug that caused vi-mode `.' to be unable to redo `c', `d', and `y'
+ commands with modifiers was fixed.
+
+b. Fixed a bug that caused callback mode to dump core when reading a
+ multiple-key sequence (e.g., arrow keys).
+
+c. Fixed a bug that caused the redisplay code to erase some of the line when
+ using horizontal scrolling with incremental search.
+
+d. Readline's input handler now performs signal processing if read(2) is
+ interrupted by SIGALRM or SIGVTALRM.
+
+e. Fixed a problem with revert-all-at-newline freeing freed memory.
+
+f. Clarified the documentation for the history_quotes_inhibit_expansion
+ variable to note that it inhibits scanning for the history comment
+ character and that it only affects double-quoted strings.
+
+g. Fixed an off-by-one error in the prompt printed when performing searches.
+
+h. Use pselect(2), if available, to wait for input before calling read(2), so
+ a SIGWINCH can interrupt it, since it doesn't interrupt read(2).
+
+i. Some memory leaks caused by signals interrupting filename completion have
+ been fixed.
+
+j. Reading EOF twice on a non-empty line causes EOF to be returned, rather
+ than the partial line. This can cause partial lines to be executed on
+ SIGHUP, for example.
+
+k. Fixed a bug concerning deleting multibyte characters from the search
+ string while performing an incremental search.
+
+l. Fixed a bug with tilde expanding directory names in filename completion.
+
+m. Fixed a bug that did not allow binding sequences beginning with a `\'.
+
+n. Fixed a redisplay bug involving incorrect line wrapping when the prompt
+ contains a multibyte character in the last screen column.
+
+o. Fixed a bug that caused history expansion to disregard characters that are
+ documented to delimit a history event specifier without requiring `:'.
+
+p. Fixed a bug that could cause reading past the end of a string when reading
+ the value when binding the set of isearch terminators.
+
+q. Fixed a bug that caused readline commands that depend on knowing which
+ key invoked them to misbehave when dispatching key sequences that are
+ prefixes of other key bindings.
+
+r. Paren matching now works in vi insert mode.
+
+s. Colored completion prefixes are now displayed using a different color, less
+ likely to collide with files.
+
+t. Fixed a bug that caused vi-mode character search to misbehave when
+ running in callback mode.
+
+u. Fixed a bug that caused output to be delayed when input is coming from a
+ macro in vi-mode.
+
+v. Fixed a bug that caused the vi-mode `.' command to misbehave when redoing
+ a multi-key key sequence via a macro.
+
+w. Fixed a bug that caused problems with applications that supply their own
+ input function when performing completion.
+
+x. When read returns -1/EIO when attempting to read a key, return an error
+ instead of line termination back to the caller.
+
+y. Updated tty auditing feature based on patch from Red Hat.
+
+z. Fixed a bug that could cause the history library to crash on overflows
+ introduced by malicious editing of timestamps in the history file.
+
+aa. The history file writing functions only attempt to create and use a backup
+ history file if the history file exists and is a regular file.
+
+bb. Fixed an out-of-bounds read in readline's internal tilde expansion interface.
+
+cc. Fixed several redisplay bugs with prompt strings containing multibyte
+ and non-visible characters whose physical length is longer than the screen
+ width.
+
+dd. Fixed a redisplay bug with prompt strings containing invisible characters
+ whose physical length exceeds the screen width and using incremental search.
+
+ee. Readline prints more descriptive error messages when it encounters errors
+ while reading an inputrc file.
+
+ff. Fixed a bug in the character insertion code that attempts to optimize
+ typeahead when it reads a character that is not bound to self-insert and
+ resets the key sequence state.
+
+gg. When refreshing the line as the result of a key sequence, Readline attempts
+ to redraw only the last line of a multiline prompt.
+
+hh. Fixed an issue that caused completion of git commands to display
+ incorrectly when using colored-completion-prefix.
+
+ii. Fixed several redisplay bugs having to do with multibyte characters and
+ invisible characters in prompt strings.
+
+jj. Fixed a bug that caused mode strings to be displayed incorrectly if the
+ prompt was shorter than the mode string.
+
+2. New Features in Readline
+
+a. The history truncation code now uses the same error recovery mechansim as
+ the history writing code, and restores the old version of the history file
+ on error. The error recovery mechanism handles symlinked history files.
+
+b. There is a new bindable variable, `enable-bracketed-paste', which enables
+ support for a terminal's bracketed paste mode.
+
+c. The editing mode indicators can now be strings and are user-settable
+ (new `emacs-mode-string', `vi-cmd-mode-string' and `vi-ins-mode-string'
+ variables). Mode strings can contain invisible character sequences.
+ Setting mode strings to null strings restores the defaults.
+
+d. Prompt expansion adds the mode string to the last line of a multi-line
+ prompt (one with embedded newlines).
+
+e. There is a new bindable variable, `colored-completion-prefix', which, if
+ set, causes the common prefix of a set of possible completions to be
+ displayed in color.
+
+f. There is a new bindable command `vi-yank-pop', a vi-mode version of emacs-
+ mode yank-pop.
+
+g. The redisplay code underwent several efficiency improvements for multibyte
+ locales.
+
+h. The insert-char function attempts to batch-insert all pending typeahead
+ that maps to self-insert, as long as it is coming from the terminal.
+
+i. rl_callback_sigcleanup: a new application function that can clean up and
+ unset any state set by readline's callback mode. Intended to be used
+ after a signal.
+
+j. If an incremental search string has its last character removed with DEL, the
+ resulting empty search string no longer matches the previous line.
+
+k. If readline reads a history file that begins with `#' (or the value of
+ the history comment character) and has enabled history timestamps, the history
+ entries are assumed to be delimited by timestamps. This allows multi-line
+ history entries.
+
+l. Readline now throws an error if it parses a key binding without a terminating
+ `:' or whitespace.
+
+m. The default binding for ^W in vi mode now uses word boundaries specified
+ by Posix (vi-unix-word-rubout is bindable command name).
+
+n. rl_clear_visible_line: new application-callable function; clears all
+ screen lines occupied by the current visible readline line.
+
+o. rl_tty_set_echoing: application-callable function that controls whether
+ or not readline thinks it is echoing terminal output.
+
+p. Handle >| and strings of digits preceding and following redirection
+ specifications as single tokens when tokenizing the line for history
+ expansion.
+
+q. Fixed a bug with displaying completions when the prefix display length
+ is greater than the length of the completions to be displayed.
+
+r. The :p history modifier now applies to the entire line, so any expansion
+ specifying :p causes the line to be printed instead of expanded.
+
+s. New application-callable function: rl_pending_signal(): returns the signal
+ number of any signal readline has caught but not yet handled.
+
+t. New application-settable variable: rl_persistent_signal_handlers: if set
+ to a non-zero value, readline will enable the readline-6.2 signal handler
+ behavior in callback mode: handlers are installed when
+ rl_callback_handler_install is called and removed removed when a complete
+ line has been read.
+
+-------------------------------------------------------------------------------
This document details the changes between this version, readline-6.3, and the
previous version, readline-6.2.
diff --git a/INSTALL b/INSTALL
index 7e67623..e1a92d3 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
Basic Installation
==================
-These are installation instructions for Readline-6.3.
+These are installation instructions for Readline-7.0.
The simplest way to compile readline is:
diff --git a/MANIFEST b/MANIFEST
index ec98f19..bfd0547 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -20,6 +20,7 @@ config.h.in f
configure f
configure.ac f
Makefile.in f
+readline.pc.in f
ansi_stdlib.h f
chardefs.h f
colors.h f
@@ -114,6 +115,7 @@ examples/fileman.c f
examples/manexamp.c f
examples/readlinebuf.h f
examples/rl-fgets.c f
+examples/rlbasic.c f
examples/rlcat.c f
examples/rlevent.c f
examples/rltest.c f
diff --git a/Makefile.in b/Makefile.in
index c0a0f1c..6522573 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -45,8 +45,6 @@ RM = rm -f
CP = cp
MV = mv
-PURIFY = @PURIFY@
-
@SET_MAKE@
SHELL = @MAKE_SHELL@
@@ -87,7 +85,7 @@ TERMCAP_LIB = @TERMCAP_LIB@
# For libraries which include headers from other libraries.
INCLUDES = -I. -I$(srcdir)
-XCCFLAGS = $(DEFS) $(LOCAL_DEFS) $(CPPFLAGS) $(INCLUDES)
+XCCFLAGS = $(DEFS) $(LOCAL_DEFS) $(INCLUDES) $(CPPFLAGS)
CCFLAGS = $(XCCFLAGS) $(LOCAL_CFLAGS) $(CFLAGS)
# could add -Werror here
@@ -116,7 +114,7 @@ CSOURCES = $(srcdir)/readline.c $(srcdir)/funmap.c $(srcdir)/keymaps.c \
$(srcdir)/histfile.c $(srcdir)/nls.c $(srcdir)/search.c \
$(srcdir)/shell.c $(srcdir)/savestring.c $(srcdir)/tilde.c \
$(srcdir)/text.c $(srcdir)/misc.c $(srcdir)/compat.c \
- $(srcdir)/mbutil.c $(srcdir)/xfree.c
+ $(srcdir)/mbutil.c
# The header files for this library.
HSOURCES = $(srcdir)/readline.h $(srcdir)/rldefs.h $(srcdir)/chardefs.h \
@@ -145,7 +143,7 @@ DOCUMENTATION = $(DOCSOURCE) $(DOCOBJECT) $(DOCSUPPORT)
CREATED_MAKEFILES = Makefile doc/Makefile examples/Makefile shlib/Makefile
CREATED_CONFIGURE = config.status config.h config.cache config.log \
- stamp-config stamp-h
+ stamp-config stamp-h readline.pc
CREATED_TAGS = TAGS tags
INSTALLED_HEADERS = readline.h chardefs.h keymaps.h history.h tilde.h \
@@ -304,6 +302,9 @@ distclean maintainer-clean: clean
$(RM) $(CREATED_CONFIGURE)
$(RM) $(CREATED_TAGS)
+readline.pc: config.status $(srcdir)/readline.pc.in
+ $(SHELL) config.status
+
info dvi html pdf ps:
-( cd doc && $(MAKE) $(MFLAGS) $@ )
@@ -334,7 +335,8 @@ bind.o: history.h
callback.o: rlconf.h
callback.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
callback.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-compat.o: rlstdc.h
+compat.o: ${BUILD_DIR}/config.h
+compat.o: rlstdc.h rltypedefs.h
complete.o: ansi_stdlib.h posixdir.h posixstat.h
complete.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
complete.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
@@ -395,6 +397,7 @@ readline.o: posixstat.h ansi_stdlib.h posixjmp.h
rltty.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
rltty.o: rltty.h
rltty.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
+savestring.o: ${BUILD_DIR}/config.h
search.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
search.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
search.o: ansi_stdlib.h history.h rlstdc.h
diff --git a/NEWS b/NEWS
index ba5b581..cf7107e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,52 @@
+This is a terse description of the new features added to readline-7.0 since
+the release of readline-6.3.
+
+New Features in Readline
+
+a. The history truncation code now uses the same error recovery mechansim as
+ the history writing code, and restores the old version of the history file
+ on error. The error recovery mechanism handles symlinked history files.
+
+b. There is a new bindable variable, `enable-bracketed-paste', which enables
+ support for a terminal's bracketed paste mode.
+
+c. The editing mode indicators can now be strings and are user-settable
+ (new `emacs-mode-string', `vi-cmd-mode-string' and `vi-ins-mode-string'
+ variables). Mode strings can contain invisible character sequences.
+ Setting mode strings to null strings restores the defaults.
+
+d. Prompt expansion adds the mode string to the last line of a multi-line
+ prompt (one with embedded newlines).
+
+e. There is a new bindable variable, `colored-completion-prefix', which, if
+ set, causes the common prefix of a set of possible completions to be
+ displayed in color.
+
+f. There is a new bindable command `vi-yank-pop', a vi-mode version of emacs-
+ mode yank-pop.
+
+g. The redisplay code underwent several efficiency improvements for multibyte
+ locales.
+
+h. The insert-char function attempts to batch-insert all pending typeahead
+ that maps to self-insert, as long as it is coming from the terminal.
+
+i. rl_callback_sigcleanup: a new application function that can clean up and
+ unset any state set by readline's callback mode. Intended to be used
+ after a signal.
+
+j. If an incremental search string has its last character removed with DEL, the
+ resulting empty search string no longer matches the previous line.
+
+k. If readline reads a history file that begins with `#' (or the value of
+ the history comment character) and has enabled history timestamps, the history
+ entries are assumed to be delimited by timestamps. This allows multi-line
+ history entries.
+
+l. Readline now throws an error if it parses a key binding without a terminating
+ `:' or whitespace.
+
+-------------------------------------------------------------------------------
This is a terse description of the new features added to readline-6.3 since
the release of readline-6.2.
@@ -55,3 +104,190 @@ m. If the user-settable variable `history-size' is set to a value less than
n. New application-settable variable: rl_signal_event_hook; function that is
called when readline is reading terminal input and read(2) is interrupted
by a signal. Currently not called for SIGHUP or SIGTERM.
+
+-------------------------------------------------------------------------------
+This is a terse description of the new features added to readline-6.1 since
+the release of readline-6.0.
+
+New Features in Readline
+
+a. New bindable function: menu-complete-backward.
+
+b. In the vi insertion keymap, C-n is now bound to menu-complete by default,
+ and C-p to menu-complete-backward.
+
+c. When in vi command mode, repeatedly hitting ESC now does nothing, even
+ when ESC introduces a bound key sequence. This is closer to how
+ historical vi behaves.
+
+d. New bindable function: skip-csi-sequence. Can be used as a default to
+ consume key sequences generated by keys like Home and End without having
+ to bind all keys.
+
+e. New application-settable function: rl_filename_rewrite_hook. Can be used
+ to rewite or modify filenames read from the file system before they are
+ compared to the word to be completed.
+
+f. New bindable variable: skip-completed-text, active when completing in the
+ middle of a word. If enabled, it means that characters in the completion
+ that match characters in the remainder of the word are "skipped" rather
+ than inserted into the line.
+
+g. The pre-readline-6.0 version of menu completion is available as
+ "old-menu-complete" for users who do not like the readline-6.0 version.
+
+h. New bindable variable: echo-control-characters. If enabled, and the
+ tty ECHOCTL bit is set, controls the echoing of characters corresponding
+ to keyboard-generated signals.
+
+i. New bindable variable: enable-meta-key. Controls whether or not readline
+ sends the smm/rmm sequences if the terminal indicates it has a meta key
+ that enables eight-bit characters.
+
+-------------------------------------------------------------------------------
+This is a terse description of the new features added to readline-6.0 since
+the release of readline-5.2.
+
+New Features in Readline
+
+a. A new variable, rl_sort_completion_matches; allows applications to inhibit
+ match list sorting (but beware: some things don't work right if
+ applications do this).
+
+b. A new variable, rl_completion_invoking_key; allows applications to discover
+ the key that invoked rl_complete or rl_menu_complete.
+
+c. The functions rl_block_sigint and rl_release_sigint are now public and
+ available to calling applications who want to protect critical sections
+ (like redisplay).
+
+d. The functions rl_save_state and rl_restore_state are now public and
+ available to calling applications; documented rest of readline's state
+ flag values.
+
+e. A new user-settable variable, `history-size', allows setting the maximum
+ number of entries in the history list.
+
+f. There is a new implementation of menu completion, with several improvements
+ over the old; the most notable improvement is a better `completions
+ browsing' mode.
+
+g. The menu completion code now uses the rl_menu_completion_entry_function
+ variable, allowing applications to provide their own menu completion
+ generators.
+
+h. There is support for replacing a prefix of a pathname with a `...' when
+ displaying possible completions. This is controllable by setting the
+ `completion-prefix-display-length' variable. Matches with a common prefix
+ longer than this value have the common prefix replaced with `...'.
+
+i. There is a new `revert-all-at-newline' variable. If enabled, readline will
+ undo all outstanding changes to all history lines when `accept-line' is
+ executed.
+
+-------------------------------------------------------------------------------
+This is a terse description of the new features added to readline-5.2 since
+the release of readline-5.1.
+
+New Features in Readline
+
+a. Calling applications can now set the keyboard timeout to 0, allowing
+ poll-like behavior.
+
+b. The value of SYS_INPUTRC (configurable at compilation time) is now used as
+ the default last-ditch startup file.
+
+c. The history file reading functions now allow windows-like \r\n line
+ terminators.
+
+-------------------------------------------------------------------------------
+This is a terse description of the new features added to readline-5.1 since
+the release of readline-5.0.
+
+New Features in Readline
+
+a. The key sequence sent by the keypad `delete' key is now automatically
+ bound to delete-char.
+
+b. A negative argument to menu-complete now cycles backward through the
+ completion list.
+
+c. A new bindable readline variable: bind-tty-special-chars. If non-zero,
+ readline will bind the terminal special characters to their readline
+ equivalents when it's called (on by default).
+
+d. New bindable command: vi-rubout. Saves deleted text for possible
+ reinsertion, as with any vi-mode `text modification' command; `X' is bound
+ to this in vi command mode.
+
+e. If the rl_completion_query_items is set to a value < 0, readline never
+ asks the user whether or not to view the possible completions.
+
+f. New application-callable auxiliary function, rl_variable_value, returns
+ a string corresponding to a readline variable's value.
+
+g. When parsing inputrc files and variable binding commands, the parser
+ strips trailing whitespace from values assigned to boolean variables
+ before checking them.
+
+h. A new external application-controllable variable that allows the LINES
+ and COLUMNS environment variables to set the window size regardless of
+ what the kernel returns.
+
+
+-------------------------------------------------------------------------------
+This is a terse description of the new features added to readline-5.0 since
+the release of readline-4.3.
+
+New Features in Readline
+
+a. History expansion has a new `a' modifier equivalent to the `g' modifier
+ for compatibility with the BSD csh.
+
+b. History expansion has a new `G' modifier equivalent to the BSD csh `g'
+ modifier, which performs a substitution once per word.
+
+c. All non-incremental search operations may now undo the operation of
+ replacing the current line with the history line.
+
+d. The text inserted by an `a' command in vi mode can be reinserted with
+ `.'.
+
+e. New bindable variable, `show-all-if-unmodified'. If set, the readline
+ completer will list possible completions immediately if there is more
+ than one completion and partial completion cannot be performed.
+
+f. There is a new application-callable `free_history_entry()' function.
+
+g. History list entries now contain timestamp information; the history file
+ functions know how to read and write timestamp information associated
+ with each entry.
+
+h. Four new key binding functions have been added:
+
+ rl_bind_key_if_unbound()
+ rl_bind_key_if_unbound_in_map()
+ rl_bind_keyseq_if_unbound()
+ rl_bind_keyseq_if_unbound_in_map()
+
+i. New application variable, rl_completion_quote_character, set to any
+ quote character readline finds before it calls the application completion
+ function.
+
+j. New application variable, rl_completion_suppress_quote, settable by an
+ application completion function. If set to non-zero, readline does not
+ attempt to append a closing quote to a completed word.
+
+k. New application variable, rl_completion_found_quote, set to a non-zero
+ value if readline determines that the word to be completed is quoted.
+ Set before readline calls any application completion function.
+
+l. New function hook, rl_completion_word_break_hook, called when readline
+ needs to break a line into words when completion is attempted. Allows
+ the word break characters to vary based on position in the line.
+
+m. New bindable command: unix-filename-rubout. Does the same thing as
+ unix-word-rubout, but adds `/' to the set of word delimiters.
+
+n. When listing completions, directories have a `/' appended if the
+ `mark-directories' option has been enabled.
diff --git a/README b/README
index 8395c34..6a9c2b9 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
Introduction
============
-This is the Gnu Readline library, version 6.3.
+This is the Gnu Readline library, version 7.0.
The Readline library provides a set of functions for use by applications
that allow users to edit command lines as they are typed in. Both
diff --git a/aclocal.m4 b/aclocal.m4
index a947272..d3bac07 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1692,6 +1692,8 @@ AC_CHECK_HEADERS(wctype.h)
AC_CHECK_HEADERS(wchar.h)
AC_CHECK_HEADERS(langinfo.h)
+AC_CHECK_HEADERS(mbstr.h)
+
AC_CHECK_FUNC(mbrlen, AC_DEFINE(HAVE_MBRLEN))
AC_CHECK_FUNC(mbscasecmp, AC_DEFINE(HAVE_MBSCMP))
AC_CHECK_FUNC(mbscmp, AC_DEFINE(HAVE_MBSCMP))
@@ -1784,14 +1786,14 @@ char **v;
exit (w == 0); /* exit 0 if wcwidth broken */
}
],
-bash_cv_wcwidth_broken=yes, bash_cv_wcwdith_broken=no, bash_cv_wcwidth_broken=no)])
+bash_cv_wcwidth_broken=yes, bash_cv_wcwidth_broken=no, bash_cv_wcwidth_broken=no)])
if test "$bash_cv_wcwidth_broken" = yes; then
AC_DEFINE(WCWIDTH_BROKEN, 1, [wcwidth is usually not broken])
fi
if test "$am_cv_func_iconv" = yes; then
OLDLIBS="$LIBS"
- LIBS="$LIBS $LIBICONV"
+ LIBS="$LIBS $LIBINTL $LIBICONV"
AC_CHECK_FUNCS(locale_charset)
LIBS="$OLDLIBS"
fi
@@ -1854,7 +1856,7 @@ main()
],
ac_cv_rl_version=`cat conftest.rlv`,
ac_cv_rl_version='0.0',
-ac_cv_rl_version='4.2')])
+ac_cv_rl_version='6.3')])
CFLAGS="$_save_CFLAGS"
LDFLAGS="$_save_LDFLAGS"
diff --git a/bind.c b/bind.c
index 8acf4ac..f1098c4 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-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2016 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.
@@ -74,8 +74,13 @@ Keymap rl_binding_keymap;
static int _rl_skip_to_delim PARAMS((char *, int, int));
+#if defined (USE_VARARGS) && defined (PREFER_STDARG)
+static void _rl_init_file_error (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
+#else
+static void _rl_init_file_error ();
+#endif
+
static char *_rl_read_file PARAMS((char *, size_t *));
-static void _rl_init_file_error PARAMS((const char *));
static int _rl_read_init_file PARAMS((const char *, int));
static int glean_key_from_name PARAMS((char *));
@@ -117,6 +122,9 @@ rl_bind_key (key, function)
int key;
rl_command_func_t *function;
{
+ char keyseq[3];
+ int l;
+
if (key < 0)
return (key);
@@ -135,8 +143,24 @@ rl_bind_key (key, function)
return (key);
}
- _rl_keymap[key].type = ISFUNC;
- _rl_keymap[key].function = function;
+ /* 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. */
+ if (_rl_keymap[key].type != ISKMAP)
+ {
+ _rl_keymap[key].type = ISFUNC;
+ _rl_keymap[key].function = function;
+ }
+ else
+ {
+ l = 0;
+ if (key == '\\')
+ keyseq[l++] = '\\';
+ keyseq[l++] = key;
+ keyseq[l] = '\0';
+ rl_bind_keyseq (keyseq, function);
+ }
rl_binding_keymap = _rl_keymap;
return (0);
}
@@ -542,7 +566,7 @@ rl_translate_keyseq (seq, array, len)
case '0': case '1': case '2': case '3':
case '4': case '5': case '6': case '7':
i++;
- for (temp = 2, c -= '0'; ISOCTAL (seq[i]) && temp--; i++)
+ 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;
@@ -970,14 +994,35 @@ _rl_read_init_file (filename, include_level)
}
static void
-_rl_init_file_error (msg)
- const char *msg;
+#if defined (PREFER_STDARG)
+_rl_init_file_error (const char *format, ...)
+#else
+_rl_init_file_error (va_alist)
+ va_dcl
+#endif
{
+ va_list args;
+#if defined (PREFER_VARARGS)
+ char *format;
+#endif
+
+#if defined (PREFER_STDARG)
+ va_start (args, format);
+#else
+ va_start (args);
+ format = va_arg (args, char *);
+#endif
+
+ fprintf (stderr, "readline: ");
if (currently_reading_init_file)
- _rl_errmsg ("%s: line %d: %s\n", current_readline_init_file,
- current_readline_init_lineno, msg);
- else
- _rl_errmsg ("%s", msg);
+ fprintf (stderr, "%s: line %d: ", current_readline_init_file,
+ current_readline_init_lineno);
+
+ vfprintf (stderr, format, args);
+ fprintf (stderr, "\n");
+ fflush (stderr);
+
+ va_end (args);
}
/* **************************************************************** */
@@ -1197,7 +1242,7 @@ handle_parser_directive (statement)
}
/* display an error message about the unknown parser directive */
- _rl_init_file_error ("unknown parser directive");
+ _rl_init_file_error ("%s: unknown parser directive", directive);
return (1);
}
@@ -1243,7 +1288,7 @@ rl_parse_and_bind (string)
{
char *funname, *kname;
register int c, i;
- int key, equivalency;
+ int key, equivalency, foundmod, foundsep;
while (string && whitespace (*string))
string++;
@@ -1273,7 +1318,7 @@ rl_parse_and_bind (string)
/* If we didn't find a closing quote, abort the line. */
if (string[i] == '\0')
{
- _rl_init_file_error ("no closing `\"' in key binding");
+ _rl_init_file_error ("%s: no closing `\"' in key binding", string);
return 1;
}
else
@@ -1285,6 +1330,8 @@ rl_parse_and_bind (string)
equivalency = (c == ':' && string[i + 1] == '=');
+ foundsep = c != 0;
+
/* Mark the end of the command (or keyname). */
if (string[i])
string[i++] = '\0';
@@ -1374,6 +1421,12 @@ remove_trailing:
return 0;
}
+ if (foundsep == 0)
+ {
+ _rl_init_file_error ("%s: no key sequence terminator", string);
+ return 1;
+ }
+
/* If this is a new-style key-binding, then do the binding with
rl_bind_keyseq (). Otherwise, let the older code deal with it. */
if (*string == '"')
@@ -1430,11 +1483,24 @@ remove_trailing:
key = glean_key_from_name (kname);
/* Add in control and meta bits. */
+ foundmod = 0;
if (substring_member_of_array (string, _rl_possible_control_prefixes))
- key = CTRL (_rl_to_upper (key));
+ {
+ key = CTRL (_rl_to_upper (key));
+ foundmod = 1;
+ }
if (substring_member_of_array (string, _rl_possible_meta_prefixes))
- key = META (key);
+ {
+ key = META (key);
+ foundmod = 1;
+ }
+
+ if (foundmod == 0 && kname != string)
+ {
+ _rl_init_file_error ("%s: unknown key modifier", string);
+ return 1;
+ }
/* Temporary. Handle old-style keyname with macro-binding. */
if (*funname == '\'' || *funname == '"')
@@ -1461,6 +1527,7 @@ remove_trailing:
#endif /* PREFIX_META_HACK */
else
rl_bind_key (key, rl_named_function (funname));
+
return 0;
}
@@ -1479,6 +1546,7 @@ static const struct {
{ "blink-matching-paren", &rl_blink_matching_paren, V_SPECIAL },
{ "byte-oriented", &rl_byte_oriented, 0 },
#if defined (COLOR_SUPPORT)
+ { "colored-completion-prefix",&_rl_colored_completion_prefix, 0 },
{ "colored-stats", &_rl_colored_stats, 0 },
#endif
{ "completion-ignore-case", &_rl_completion_case_fold, 0 },
@@ -1486,6 +1554,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-keypad", &_rl_enable_keypad, 0 },
{ "enable-meta-key", &_rl_enable_meta, 0 },
{ "expand-tilde", &rl_complete_with_tilde_expansion, 0 },
@@ -1569,10 +1638,13 @@ static int sv_dispprefix PARAMS((const char *));
static int sv_compquery PARAMS((const char *));
static int sv_compwidth PARAMS((const char *));
static int sv_editmode PARAMS((const char *));
+static int sv_emacs_modestr PARAMS((const char *));
static int sv_histsize PARAMS((const char *));
static int sv_isrchterm PARAMS((const char *));
static int sv_keymap PARAMS((const char *));
static int sv_seqtimeout PARAMS((const char *));
+static int sv_viins_modestr PARAMS((const char *));
+static int sv_vicmd_modestr PARAMS((const char *));
static const struct {
const char * const name;
@@ -1585,10 +1657,13 @@ static const struct {
{ "completion-prefix-display-length", V_INT, sv_dispprefix },
{ "completion-query-items", V_INT, sv_compquery },
{ "editing-mode", V_STRING, sv_editmode },
+ { "emacs-mode-string", V_STRING, sv_emacs_modestr },
{ "history-size", V_INT, sv_histsize },
{ "isearch-terminators", V_STRING, sv_isrchterm },
{ "keymap", V_STRING, sv_keymap },
{ "keyseq-timeout", V_INT, sv_seqtimeout },
+ { "vi-cmd-mode-string", V_STRING, sv_vicmd_modestr },
+ { "vi-ins-mode-string", V_STRING, sv_viins_modestr },
{ (char *)NULL, 0, (_rl_sv_func_t *)0 }
};
@@ -1605,7 +1680,7 @@ find_string_var (name)
}
/* A boolean value that can appear in a `set variable' command is true if
- the value is null or empty, `on' (case-insenstive), or "1". Any other
+ the value is null or empty, `on' (case-insensitive), or "1". Any other
values result in 0 (false). */
static int
bool_to_int (value)
@@ -1654,10 +1729,14 @@ rl_variable_bind (name, value)
i = find_string_var (name);
- /* For the time being, unknown variable names or string names without a
- handler function are simply ignored. */
+ /* For the time being, string names without a handler function are simply
+ ignored. */
if (i < 0 || string_varlist[i].set_func == 0)
- return 0;
+ {
+ if (i < 0)
+ _rl_init_file_error ("%s: unknown variable name", name);
+ return 0;
+ }
v = (*string_varlist[i].set_func) (value);
return v;
@@ -1832,7 +1911,7 @@ sv_isrchterm (value)
}
else
{
- for (beg = end = 0; whitespace (v[end]) == 0; end++)
+ for (beg = end = 0; v[end] && whitespace (v[end]) == 0; end++)
;
}
@@ -1846,7 +1925,96 @@ sv_isrchterm (value)
xfree (v);
return 0;
}
-
+
+extern char *_rl_emacs_mode_str;
+
+static int
+sv_emacs_modestr (value)
+ const char *value;
+{
+ if (value && *value)
+ {
+ FREE (_rl_emacs_mode_str);
+ _rl_emacs_mode_str = (char *)xmalloc (2 * strlen (value) + 1);
+ rl_translate_keyseq (value, _rl_emacs_mode_str, &_rl_emacs_modestr_len);
+ _rl_emacs_mode_str[_rl_emacs_modestr_len] = '\0';
+ return 0;
+ }
+ else if (value)
+ {
+ FREE (_rl_emacs_mode_str);
+ _rl_emacs_mode_str = (char *)xmalloc (1);
+ _rl_emacs_mode_str[_rl_emacs_modestr_len = 0] = '\0';
+ return 0;
+ }
+ else if (value == 0)
+ {
+ FREE (_rl_emacs_mode_str);
+ _rl_emacs_mode_str = 0; /* prompt_modestr does the right thing */
+ _rl_emacs_modestr_len = 0;
+ return 0;
+ }
+ return 1;
+}
+
+static int
+sv_viins_modestr (value)
+ const char *value;
+{
+ if (value && *value)
+ {
+ FREE (_rl_vi_ins_mode_str);
+ _rl_vi_ins_mode_str = (char *)xmalloc (2 * strlen (value) + 1);
+ rl_translate_keyseq (value, _rl_vi_ins_mode_str, &_rl_vi_ins_modestr_len);
+ _rl_vi_ins_mode_str[_rl_vi_ins_modestr_len] = '\0';
+ return 0;
+ }
+ else if (value)
+ {
+ FREE (_rl_vi_ins_mode_str);
+ _rl_vi_ins_mode_str = (char *)xmalloc (1);
+ _rl_vi_ins_mode_str[_rl_vi_ins_modestr_len = 0] = '\0';
+ return 0;
+ }
+ else if (value == 0)
+ {
+ FREE (_rl_vi_ins_mode_str);
+ _rl_vi_ins_mode_str = 0; /* prompt_modestr does the right thing */
+ _rl_vi_ins_modestr_len = 0;
+ return 0;
+ }
+ return 1;
+}
+
+static int
+sv_vicmd_modestr (value)
+ const char *value;
+{
+ if (value && *value)
+ {
+ FREE (_rl_vi_cmd_mode_str);
+ _rl_vi_cmd_mode_str = (char *)xmalloc (2 * strlen (value) + 1);
+ rl_translate_keyseq (value, _rl_vi_cmd_mode_str, &_rl_vi_cmd_modestr_len);
+ _rl_vi_cmd_mode_str[_rl_vi_cmd_modestr_len] = '\0';
+ return 0;
+ }
+ else if (value)
+ {
+ FREE (_rl_vi_cmd_mode_str);
+ _rl_vi_cmd_mode_str = (char *)xmalloc (1);
+ _rl_vi_cmd_mode_str[_rl_vi_cmd_modestr_len = 0] = '\0';
+ return 0;
+ }
+ else if (value == 0)
+ {
+ FREE (_rl_vi_cmd_mode_str);
+ _rl_vi_cmd_mode_str = 0; /* prompt_modestr does the right thing */
+ _rl_vi_cmd_modestr_len = 0;
+ return 0;
+ }
+ return 1;
+}
+
/* Return the character which matches NAME.
For example, `Space' returns ' '. */
@@ -2420,6 +2588,12 @@ _rl_get_string_variable_value (name)
sprintf (numbuf, "%d", _rl_keyseq_timeout);
return (numbuf);
}
+ else if (_rl_stricmp (name, "emacs-mode-string") == 0)
+ return (_rl_emacs_mode_str ? _rl_emacs_mode_str : RL_EMACS_MODESTR_DEFAULT);
+ else if (_rl_stricmp (name, "vi-cmd-mode-string") == 0)
+ return (_rl_vi_cmd_mode_str ? _rl_vi_cmd_mode_str : RL_VI_CMD_MODESTR_DEFAULT);
+ else if (_rl_stricmp (name, "vi-ins-mode-string") == 0)
+ return (_rl_vi_ins_mode_str ? _rl_vi_ins_mode_str : RL_VI_INS_MODESTR_DEFAULT);
else
return (0);
}
diff --git a/callback.c b/callback.c
index 6bb2c3e..cc3ce11 100644
--- a/callback.c
+++ b/callback.c
@@ -1,6 +1,6 @@
/* callback.c -- functions to use readline as an X `callback' mechanism. */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2015 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.
@@ -50,6 +50,14 @@
_rl_callback_func_t *_rl_callback_func = 0;
_rl_callback_generic_arg *_rl_callback_data = 0;
+/* Applications can set this to non-zero to have readline's signal handlers
+ installed during the entire duration of reading a complete line, as in
+ readline-6.2. This should be used with care, because it can result in
+ readline receiving signals and not handling them until it's called again
+ via rl_callback_read_char, thereby stealing them from the application.
+ By default, signal handlers are only active while readline is active. */
+int rl_persistent_signal_handlers = 0;
+
/* **************************************************************** */
/* */
/* Callback Readline Functions */
@@ -82,6 +90,11 @@ _rl_callback_newline ()
if (rl_prep_term_function)
(*rl_prep_term_function) (_rl_meta_flag);
+
+#if defined (HANDLE_SIGNALS)
+ if (rl_persistent_signal_handlers)
+ rl_set_signals ();
+#endif
}
readline_internal_setup ();
@@ -103,7 +116,8 @@ rl_callback_handler_install (prompt, linefunc)
#if defined (HANDLE_SIGNALS)
#define CALLBACK_READ_RETURN() \
do { \
- rl_clear_signals (); \
+ if (rl_persistent_signal_handlers == 0) \
+ rl_clear_signals (); \
return; \
} while (0)
#else
@@ -140,7 +154,8 @@ rl_callback_read_char ()
#if defined (HANDLE_SIGNALS)
/* Install signal handlers only when readline has control. */
- rl_set_signals ();
+ if (rl_persistent_signal_handlers == 0)
+ rl_set_signals ();
#endif
do
@@ -161,6 +176,36 @@ rl_callback_read_char ()
CALLBACK_READ_RETURN ();
}
#if defined (VI_MODE)
+ /* States that can occur while in state VIMOTION have to be checked
+ before RL_STATE_VIMOTION */
+ else if (RL_ISSTATE (RL_STATE_CHARSEARCH))
+ {
+ int k;
+
+ k = _rl_callback_data->i2;
+
+ eof = (*_rl_callback_func) (_rl_callback_data);
+ /* If the function `deregisters' itself, make sure the data is
+ cleaned up. */
+ if (_rl_callback_func == 0) /* XXX - just sanity check */
+ {
+ if (_rl_callback_data)
+ {
+ _rl_callback_data_dispose (_rl_callback_data);
+ _rl_callback_data = 0;
+ }
+ }
+
+ /* Messy case where vi motion command can be char search */
+ if (RL_ISSTATE (RL_STATE_VIMOTION))
+ {
+ _rl_vi_domove_motion_cleanup (k, _rl_vimvcxt);
+ _rl_internal_char_cleanup ();
+ CALLBACK_READ_RETURN ();
+ }
+
+ _rl_internal_char_cleanup ();
+ }
else if (RL_ISSTATE (RL_STATE_VIMOTION))
{
eof = _rl_vi_domove_callback (_rl_vimvcxt);
@@ -284,10 +329,36 @@ _rl_callback_data_alloc (count)
return arg;
}
-void _rl_callback_data_dispose (arg)
+void
+_rl_callback_data_dispose (arg)
_rl_callback_generic_arg *arg;
{
xfree (arg);
}
+/* Make sure that this agrees with cases in rl_callback_read_char */
+void
+rl_callback_sigcleanup ()
+{
+ if (RL_ISSTATE (RL_STATE_CALLBACK) == 0)
+ return;
+
+ if (RL_ISSTATE (RL_STATE_ISEARCH))
+ _rl_isearch_cleanup (_rl_iscxt, 0);
+ else if (RL_ISSTATE (RL_STATE_NSEARCH))
+ _rl_nsearch_cleanup (_rl_nscxt, 0);
+ else if (RL_ISSTATE (RL_STATE_VIMOTION))
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
+ else if (RL_ISSTATE (RL_STATE_NUMERICARG))
+ {
+ _rl_argcxt = 0;
+ RL_UNSETSTATE (RL_STATE_NUMERICARG);
+ }
+ else if (RL_ISSTATE (RL_STATE_MULTIKEY))
+ RL_UNSETSTATE (RL_STATE_MULTIKEY);
+ if (RL_ISSTATE (RL_STATE_CHARSEARCH))
+ RL_UNSETSTATE (RL_STATE_CHARSEARCH);
+
+ _rl_callback_func = 0;
+}
#endif
diff --git a/chardefs.h b/chardefs.h
index 1fa1b08..3cf1326 100644
--- a/chardefs.h
+++ b/chardefs.h
@@ -1,6 +1,6 @@
/* chardefs.h -- Character definitions for readline. */
-/* Copyright (C) 1994-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2015 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,7 +73,7 @@
#endif
#if !defined (isxdigit) && !defined (HAVE_ISXDIGIT) && !defined (__cplusplus)
-# define isxdigit(c) (isdigit((c)) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
+# define isxdigit(c) (isdigit((unsigned char)(c)) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
#endif
#if defined (CTYPE_NON_ASCII)
@@ -87,13 +87,13 @@
/* Beware: these only work with single-byte ASCII characters. */
-#define ISALNUM(c) (IN_CTYPE_DOMAIN (c) && isalnum (c))
-#define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha (c))
-#define ISDIGIT(c) (IN_CTYPE_DOMAIN (c) && isdigit (c))
-#define ISLOWER(c) (IN_CTYPE_DOMAIN (c) && islower (c))
-#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
-#define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c))
-#define ISXDIGIT(c) (IN_CTYPE_DOMAIN (c) && isxdigit (c))
+#define ISALNUM(c) (IN_CTYPE_DOMAIN (c) && isalnum ((unsigned char)c))
+#define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha ((unsigned char)c))
+#define ISDIGIT(c) (IN_CTYPE_DOMAIN (c) && isdigit ((unsigned char)c))
+#define ISLOWER(c) (IN_CTYPE_DOMAIN (c) && islower ((unsigned char)c))
+#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint ((unsigned char)c))
+#define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper ((unsigned char)c))
+#define ISXDIGIT(c) (IN_CTYPE_DOMAIN (c) && isxdigit ((unsigned char)c))
#define _rl_lowercase_p(c) (NON_NEGATIVE(c) && ISLOWER(c))
#define _rl_uppercase_p(c) (NON_NEGATIVE(c) && ISUPPER(c))
diff --git a/colors.c b/colors.c
index 89d9035..7859f5d 100644
--- a/colors.c
+++ b/colors.c
@@ -2,8 +2,8 @@
Modified by Chet Ramey for Readline.
- Copyright (C) 1985, 1988, 1990-1991, 1995-2010, 2012 Free Software Foundation,
- Inc.
+ Copyright (C) 1985, 1988, 1990-1991, 1995-2010, 2012, 2015
+ 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
@@ -98,9 +98,29 @@ _rl_set_normal_color (void)
}
}
+bool
+_rl_print_prefix_color (void)
+{
+ struct bin_str *s;
+
+ /* What do we want to use for the prefix? Let's try cyan first, see colors.h */
+ s = &_rl_color_indicator[C_PREFIX];
+ if (s->string != NULL)
+ {
+ if (is_colored (C_NORM))
+ restore_default_color ();
+ _rl_put_indicator (&_rl_color_indicator[C_LEFT]);
+ _rl_put_indicator (s);
+ _rl_put_indicator (&_rl_color_indicator[C_RIGHT]);
+ return 0;
+ }
+ else
+ return 1;
+}
+
/* Returns whether any color sequence was printed. */
bool
-_rl_print_color_indicator (char *f)
+_rl_print_color_indicator (const char *f)
{
enum indicator_no colored_filetype;
COLOR_EXT_TYPE *ext; /* Color extension */
@@ -108,10 +128,9 @@ _rl_print_color_indicator (char *f)
const char* name;
char *filename;
- struct stat astat;
+ struct stat astat, linkstat;
mode_t mode;
- int linkok;
-
+ int linkok; /* 1 == ok, 0 == dangling symlink, -1 == missing */
int stat_ok;
name = f;
@@ -130,10 +149,20 @@ _rl_print_color_indicator (char *f)
#else
stat_ok = stat(name, &astat);
#endif
- if( stat_ok == 0 ) {
- mode = astat.st_mode;
- linkok = 1; //f->linkok;
- }
+ if (stat_ok == 0)
+ {
+ mode = astat.st_mode;
+#if defined (HAVE_LSTAT)
+ if (S_ISLNK (mode))
+ {
+ linkok = stat (name, &linkstat) == 0;
+ if (linkok && strncmp (_rl_color_indicator[C_LINK].string, "target", 6) == 0)
+ mode = linkstat.st_mode;
+ }
+ else
+#endif
+ linkok = 1;
+ }
else
linkok = -1;
@@ -141,6 +170,8 @@ _rl_print_color_indicator (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)
+ colored_filetype = C_ORPHAN; /* dangling symlink */
else if(stat_ok != 0)
{
static enum indicator_no filetype_indicator[] = FILETYPE_INDICATORS;
@@ -181,10 +212,7 @@ _rl_print_color_indicator (char *f)
#endif
}
else if (S_ISLNK (mode))
- colored_filetype = ((linkok == 0
- && (!strncmp (_rl_color_indicator[C_LINK].string, "target", 6)
- || _rl_color_indicator[C_ORPHAN].string))
- ? C_ORPHAN : C_LINK);
+ colored_filetype = C_LINK;
else if (S_ISFIFO (mode))
colored_filetype = C_FIFO;
else if (S_ISSOCK (mode))
diff --git a/colors.h b/colors.h
index fc926e5..6561ad9 100644
--- a/colors.h
+++ b/colors.h
@@ -2,8 +2,8 @@
Modified by Chet Ramey for Readline.
- Copyright (C) 1985, 1988, 1990-1991, 1995-2010, 2012 Free Software Foundation,
- Inc.
+ Copyright (C) 1985, 1988, 1990-1991, 1995-2010, 2012, 2015
+ 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
@@ -114,9 +114,13 @@ enum filetype
arg_directory
};
+/* Prefix color, currently same as socket */
+#define C_PREFIX C_SOCK
+
extern void _rl_put_indicator (const struct bin_str *ind);
extern void _rl_set_normal_color (void);
-extern bool _rl_print_color_indicator (char *f);
+extern bool _rl_print_prefix_color (void);
+extern bool _rl_print_color_indicator (const char *f);
extern void _rl_prep_non_filename_text (void);
#endif /* !_COLORS_H_ */
diff --git a/complete.c b/complete.c
index cd9aebe..0a81129 100644
--- a/complete.c
+++ b/complete.c
@@ -1,6 +1,6 @@
/* complete.c -- filename completion for readline. */
-/* Copyright (C) 1987-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2015 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.
@@ -111,8 +111,10 @@ static int stat_char PARAMS((char *));
#endif
#if defined (COLOR_SUPPORT)
-static int colored_stat_start PARAMS((char *));
+static int colored_stat_start PARAMS((const char *));
static void colored_stat_end PARAMS((void));
+static int colored_prefix_start PARAMS((void));
+static void colored_prefix_end PARAMS((void));
#endif
static int path_isdir PARAMS((const char *));
@@ -126,7 +128,7 @@ static int get_y_or_n PARAMS((int));
static int _rl_internal_pager PARAMS((int));
static char *printable_part PARAMS((char *));
static int fnwidth PARAMS((const char *));
-static int fnprint PARAMS((const char *, int));
+static int fnprint PARAMS((const char *, int, const char *));
static int print_filename PARAMS((char *, char *, int));
static char **gen_completion_matches PARAMS((char *, int, int, rl_compentry_func_t *, int, int));
@@ -172,7 +174,7 @@ int _rl_complete_mark_symlink_dirs = 0;
int _rl_print_completions_horizontally;
/* Non-zero means that case is not significant in filename completion. */
-#if defined (__MSDOS__) && !defined (__DJGPP__)
+#if (defined (__MSDOS__) && !defined (__DJGPP__)) || (defined (_WIN32) && !defined (__CYGWIN__))
int _rl_completion_case_fold = 1;
#else
int _rl_completion_case_fold = 0;
@@ -209,6 +211,10 @@ int rl_visible_stats = 0;
/* Non-zero means to use colors to indicate file type when listing possible
completions. The colors used are taken from $LS_COLORS, if set. */
int _rl_colored_stats = 0;
+
+/* Non-zero means to use a color (currently magenta) to indicate the common
+ prefix of a set of possible word completions. */
+int _rl_colored_completion_prefix = 0;
#endif
/* If non-zero, when completing in the middle of a word, don't insert
@@ -404,6 +410,8 @@ static int completion_changed_buffer;
/* The result of the query to the user about displaying completion matches */
static int completion_y_or_n;
+static int _rl_complete_display_matches_interrupt = 0;
+
/*************************************/
/* */
/* Bindable completion functions */
@@ -487,7 +495,10 @@ _rl_complete_sigcleanup (sig, ptr)
void *ptr;
{
if (sig == SIGINT) /* XXX - for now */
- _rl_free_match_list ((char **)ptr);
+ {
+ _rl_free_match_list ((char **)ptr);
+ _rl_complete_display_matches_interrupt = 1;
+ }
}
/* Set default values for readline word completion. These are the variables
@@ -505,6 +516,9 @@ set_completion_defaults (what_to_do)
/* The completion entry function may optionally change this. */
rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
+
+ /* Reset private state. */
+ _rl_complete_display_matches_interrupt = 0;
}
/* The user must press "y" or "n". Non-zero return means "y" pressed. */
@@ -638,11 +652,23 @@ stat_char (filename)
#endif
else if (S_ISREG (finfo.st_mode))
{
+#if defined (_WIN32) && !defined (__CYGWIN__)
+ char *ext;
+
+ /* Windows doesn't do access and X_OK; check file extension instead */
+ ext = strrchr (fn, '.');
+ if (ext && (_rl_stricmp (ext, ".exe") == 0 ||
+ _rl_stricmp (ext, ".cmd") == 0 ||
+ _rl_stricmp (ext, ".bat") == 0 ||
+ _rl_stricmp (ext, ".com") == 0))
+ character = '*';
+#else
if (access (filename, X_OK) == 0)
character = '*';
+#endif
}
- free (f);
+ xfree (f);
return (character);
}
#endif /* VISIBLE_STATS */
@@ -650,7 +676,7 @@ stat_char (filename)
#if defined (COLOR_SUPPORT)
static int
colored_stat_start (filename)
- char *filename;
+ const char *filename;
{
_rl_set_normal_color ();
return (_rl_print_color_indicator (filename));
@@ -662,6 +688,19 @@ colored_stat_end ()
_rl_prep_non_filename_text ();
_rl_put_indicator (&_rl_color_indicator[C_CLR_TO_EOL]);
}
+
+static int
+colored_prefix_start ()
+{
+ _rl_set_normal_color ();
+ return (_rl_print_prefix_color ());
+}
+
+static void
+colored_prefix_end ()
+{
+ colored_stat_end (); /* for now */
+}
#endif
/* Return the portion of PATHNAME that should be output when listing
@@ -682,13 +721,15 @@ printable_part (pathname)
return (pathname);
temp = strrchr (pathname, '/');
-#if defined (__MSDOS__)
+#if defined (__MSDOS__) || defined (_WIN32)
if (temp == 0 && ISALPHA ((unsigned char)pathname[0]) && pathname[1] == ':')
temp = pathname + 1;
#endif
if (temp == 0 || *temp == '\0')
return (pathname);
+ else if (temp[1] == 0 && temp == pathname)
+ return (pathname);
/* If the basename is NULL, we might have a pathname like '/usr/src/'.
Look for a previous slash and, if one is found, return the portion
following that slash. If there's no previous slash, just return the
@@ -759,12 +800,14 @@ fnwidth (string)
#define ELLIPSIS_LEN 3
static int
-fnprint (to_print, prefix_bytes)
+fnprint (to_print, prefix_bytes, real_pathname)
const char *to_print;
int prefix_bytes;
+ const char *real_pathname;
{
int printed_len, w;
const char *s;
+ int common_prefix_len, print_len;
#if defined (HANDLE_MULTIBYTE)
mbstate_t ps;
const char *end;
@@ -772,18 +815,26 @@ fnprint (to_print, prefix_bytes)
int width;
wchar_t wc;
- end = to_print + strlen (to_print) + 1;
+ print_len = strlen (to_print);
+ end = to_print + print_len + 1;
memset (&ps, 0, sizeof (mbstate_t));
#endif
- printed_len = 0;
+ printed_len = common_prefix_len = 0;
/* Don't print only the ellipsis if the common prefix is one of the
- possible completions */
- if (to_print[prefix_bytes] == '\0')
+ possible completions. Only cut off prefix_bytes if we're going to be
+ printing the ellipsis, which takes precedence over coloring the
+ completion prefix (see print_filename() below). */
+ if (_rl_completion_prefix_display_length > 0 && prefix_bytes >= print_len)
prefix_bytes = 0;
- if (prefix_bytes)
+#if defined (COLOR_SUPPORT)
+ if (_rl_colored_stats && (prefix_bytes == 0 || _rl_colored_completion_prefix <= 0))
+ colored_stat_start (real_pathname);
+#endif
+
+ if (prefix_bytes && _rl_completion_prefix_display_length > 0)
{
char ellipsis;
@@ -792,6 +843,15 @@ fnprint (to_print, prefix_bytes)
putc (ellipsis, rl_outstream);
printed_len = ELLIPSIS_LEN;
}
+#if defined (COLOR_SUPPORT)
+ else if (prefix_bytes && _rl_colored_completion_prefix > 0)
+ {
+ common_prefix_len = prefix_bytes;
+ prefix_bytes = 0;
+ /* XXX - print color indicator start here */
+ colored_prefix_start ();
+ }
+#endif
s = to_print + prefix_bytes;
while (*s)
@@ -842,8 +902,25 @@ fnprint (to_print, prefix_bytes)
printed_len++;
#endif
}
+ if (common_prefix_len > 0 && (s - to_print) >= common_prefix_len)
+ {
+#if defined (COLOR_SUPPORT)
+ /* printed bytes = s - to_print */
+ /* printed bytes should never be > but check for paranoia's sake */
+ colored_prefix_end ();
+ if (_rl_colored_stats)
+ colored_stat_start (real_pathname); /* XXX - experiment */
+#endif
+ common_prefix_len = 0;
+ }
}
+#if defined (COLOR_SUPPORT)
+ /* XXX - unconditional for now */
+ if (_rl_colored_stats)
+ colored_stat_end ();
+#endif
+
return printed_len;
}
@@ -864,7 +941,7 @@ print_filename (to_print, full_pathname, prefix_bytes)
/* Defer printing if we want to prefix with a color indicator */
if (_rl_colored_stats == 0 || rl_filename_completion_desired == 0)
#endif
- printed_len = fnprint (to_print, prefix_bytes);
+ printed_len = fnprint (to_print, prefix_bytes, to_print);
if (rl_filename_completion_desired && (
#if defined (VISIBLE_STATS)
@@ -926,20 +1003,17 @@ print_filename (to_print, full_pathname, prefix_bytes)
{
dn = savestring (new_full_pathname);
(*rl_filename_stat_hook) (&dn);
- free (new_full_pathname);
+ xfree (new_full_pathname);
new_full_pathname = dn;
}
if (path_isdir (new_full_pathname))
extension_char = '/';
}
+ /* Move colored-stats code inside fnprint() */
#if defined (COLOR_SUPPORT)
if (_rl_colored_stats)
- {
- colored_stat_start (new_full_pathname);
- printed_len = fnprint (to_print, prefix_bytes);
- colored_stat_end ();
- }
+ printed_len = fnprint (to_print, prefix_bytes, new_full_pathname);
#endif
xfree (new_full_pathname);
@@ -956,15 +1030,11 @@ print_filename (to_print, full_pathname, prefix_bytes)
if (_rl_complete_mark_directories && path_isdir (s))
extension_char = '/';
+ /* Move colored-stats code inside fnprint() */
#if defined (COLOR_SUPPORT)
if (_rl_colored_stats)
- {
- colored_stat_start (s);
- printed_len = fnprint (to_print, prefix_bytes);
- colored_stat_end ();
- }
+ printed_len = fnprint (to_print, prefix_bytes, s);
#endif
-
}
xfree (s);
@@ -1502,15 +1572,29 @@ rl_display_match_list (matches, len, max)
if (_rl_completion_prefix_display_length > 0)
{
t = printable_part (matches[0]);
- temp = strrchr (t, '/');
+ /* check again in case of /usr/src/ */
+ temp = rl_filename_completion_desired ? strrchr (t, '/') : 0;
common_length = temp ? fnwidth (temp) : fnwidth (t);
sind = temp ? strlen (temp) : strlen (t);
+ if (common_length > max || sind > max)
+ common_length = sind = 0;
if (common_length > _rl_completion_prefix_display_length && common_length > ELLIPSIS_LEN)
max -= common_length - ELLIPSIS_LEN;
else
common_length = sind = 0;
}
+#if defined (COLOR_SUPPORT)
+ else if (_rl_colored_completion_prefix > 0)
+ {
+ t = printable_part (matches[0]);
+ temp = rl_filename_completion_desired ? strrchr (t, '/') : 0;
+ common_length = temp ? fnwidth (temp) : fnwidth (t);
+ sind = temp ? RL_STRLEN (temp+1) : RL_STRLEN (t); /* want portion after final slash */
+ if (common_length > max || sind > max)
+ common_length = sind = 0;
+ }
+#endif
/* How many items of MAX length can we fit in the screen window? */
cols = complete_get_screenwidth ();
@@ -1557,12 +1641,23 @@ rl_display_match_list (matches, len, max)
printed_len = print_filename (temp, matches[l], sind);
if (j + 1 < limit)
- for (k = 0; k < max - printed_len; k++)
- putc (' ', rl_outstream);
+ {
+ if (max <= printed_len)
+ putc (' ', rl_outstream);
+ else
+ for (k = 0; k < max - printed_len; k++)
+ putc (' ', rl_outstream);
+ }
}
l += count;
}
rl_crlf ();
+#if defined (SIGWINCH)
+ if (RL_SIG_RECEIVED () && RL_SIGWINCH_RECEIVED() == 0)
+#else
+ if (RL_SIG_RECEIVED ())
+#endif
+ return;
lines++;
if (_rl_page_completions && lines >= (_rl_screenheight - 1) && i < count)
{
@@ -1580,6 +1675,12 @@ rl_display_match_list (matches, len, max)
temp = printable_part (matches[i]);
printed_len = print_filename (temp, matches[i], sind);
/* Have we reached the end of this line? */
+#if defined (SIGWINCH)
+ if (RL_SIG_RECEIVED () && RL_SIGWINCH_RECEIVED() == 0)
+#else
+ if (RL_SIG_RECEIVED ())
+#endif
+ return;
if (matches[i+1])
{
if (limit == 1 || (i && (limit > 1) && (i % limit) == 0))
@@ -1593,6 +1694,8 @@ rl_display_match_list (matches, len, max)
return;
}
}
+ else if (max <= printed_len)
+ putc (' ', rl_outstream);
else
for (k = 0; k < max - printed_len; k++)
putc (' ', rl_outstream);
@@ -2044,8 +2147,16 @@ rl_complete_internal (what_to_do)
{
_rl_sigcleanup = _rl_complete_sigcleanup;
_rl_sigcleanarg = matches;
+ _rl_complete_display_matches_interrupt = 0;
}
display_matches (matches);
+ if (_rl_complete_display_matches_interrupt)
+ {
+ matches = 0; /* already freed by rl_complete_sigcleanup */
+ _rl_complete_display_matches_interrupt = 0;
+ if (rl_signal_event_hook)
+ (*rl_signal_event_hook) (); /* XXX */
+ }
_rl_sigcleanup = 0;
_rl_sigcleanarg = 0;
break;
@@ -2071,6 +2182,8 @@ rl_complete_internal (what_to_do)
RL_UNSETSTATE(RL_STATE_COMPLETING);
_rl_reset_completion_state ();
+
+ RL_CHECK_SIGNALS ();
return 0;
}
@@ -2370,6 +2483,7 @@ rl_filename_completion_function (text, state)
static int filename_len;
char *temp, *dentry, *convfn;
int dirlen, dentlen, convlen;
+ int tilde_dirname;
struct dirent *entry;
/* If we don't have any state, then do some initialization. */
@@ -2393,7 +2507,7 @@ rl_filename_completion_function (text, state)
temp = strrchr (dirname, '/');
-#if defined (__MSDOS__)
+#if defined (__MSDOS__) || defined (_WIN32)
/* special hack for //X/... */
if (dirname[0] == '/' && dirname[1] == '/' && ISALPHA ((unsigned char)dirname[2]) && dirname[3] == '/')
temp = strrchr (dirname + 3, '/');
@@ -2404,7 +2518,7 @@ rl_filename_completion_function (text, state)
strcpy (filename, ++temp);
*temp = '\0';
}
-#if defined (__MSDOS__)
+#if defined (__MSDOS__) || (defined (_WIN32) && !defined (__CYGWIN__))
/* searches from current directory on the drive */
else if (ISALPHA ((unsigned char)dirname[0]) && dirname[1] == ':')
{
@@ -2427,11 +2541,13 @@ rl_filename_completion_function (text, state)
else
users_dirname = savestring (dirname);
+ tilde_dirname = 0;
if (*dirname == '~')
{
temp = tilde_expand (dirname);
xfree (dirname);
dirname = temp;
+ tilde_dirname = 1;
}
/* We have saved the possibly-dequoted version of the directory name
@@ -2450,7 +2566,7 @@ rl_filename_completion_function (text, state)
xfree (users_dirname);
users_dirname = savestring (dirname);
}
- else if (rl_completion_found_quote && rl_filename_dequoting_function)
+ else if (tilde_dirname == 0 && rl_completion_found_quote && rl_filename_dequoting_function)
{
/* delete single and double quotes */
xfree (dirname);
diff --git a/config.h.in b/config.h.in
index a67e43e..d03ebe0 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1,14 +1,21 @@
/* config.h.in. Maintained by hand. */
+/* Template definitions for autoconf */
+#undef __EXTENSIONS__
+#undef _ALL_SOURCE
+#undef _GNU_SOURCE
+#undef _POSIX_SOURCE
+#undef _POSIX_1_SOURCE
+#undef _POSIX_PTHREAD_SEMANTICS
+#undef _TANDEM_SOURCE
+#undef _MINIX
+
/* Define NO_MULTIBYTE_SUPPORT to not compile in support for multibyte
characters, even if the OS supports them. */
#undef NO_MULTIBYTE_SUPPORT
#undef _FILE_OFFSET_BITS
-/* Define if on MINIX. */
-#undef _MINIX
-
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
@@ -26,12 +33,16 @@
#undef volatile
#undef PROTOTYPES
+#undef __PROTOTYPES
#undef __CHAR_UNSIGNED__
/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly. */
#undef STAT_MACROS_BROKEN
+/* Define if you have the chown function. */
+#undef HAVE_CHOWN
+
/* Define if you have the fcntl function. */
#undef HAVE_FCNTL
@@ -77,9 +88,15 @@
/* Define if you have the memmove function. */
#undef HAVE_MEMMOVE
+/* Define if you have the pselect function. */
+#undef HAVE_PSELECT
+
/* Define if you have the putenv function. */
#undef HAVE_PUTENV
+/* Define if you have the readlink function. */
+#undef HAVE_READLINK
+
/* Define if you have the select function. */
#undef HAVE_SELECT
@@ -138,6 +155,9 @@
/* Define if you have the <langinfo.h> header file. */
#undef HAVE_LANGINFO_H
+/* Define if you have the <libaudit.h> header file. */
+#undef HAVE_LIBAUDIT_H
+
/* Define if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
@@ -150,6 +170,9 @@
/* Define if you have the <ndir.h> header file. */
#undef HAVE_NDIR_H
+/* Define if you have the <ncurses/termcap.h> header file. */
+#undef HAVE_NCURSES_TERMCAP_H
+
/* Define if you have the <pwd.h> header file. */
#undef HAVE_PWD_H
@@ -174,6 +197,9 @@
/* Define if you have the <sys/file.h> header file. */
#undef HAVE_SYS_FILE_H
+/* Define if you have the <sys/ioctl.h> header file. */
+#undef HAVE_SYS_IOCTL_H
+
/* Define if you have the <sys/ndir.h> header file. */
#undef HAVE_SYS_NDIR_H
@@ -244,9 +270,11 @@
#undef HAVE_GETPW_DECLS
-#undef STRUCT_DIRENT_HAS_D_INO
+#undef HAVE_STRUCT_DIRENT_D_INO
+
+#undef HAVE_STRUCT_DIRENT_D_FILENO
-#undef STRUCT_DIRENT_HAS_D_FILENO
+#undef HAVE_STRUCT_DIRENT_D_NAMLEN
#undef HAVE_BSD_SIGNALS
diff --git a/configure b/configure
index f11ee25..aa98bce 100755
--- a/configure
+++ b/configure
@@ -1,14 +1,12 @@
#! /bin/sh
-# From configure.ac for Readline 6.3, version 2.73.
+# From configure.ac for Readline 7.0, version 2.81.
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for readline 6.3.
+# Generated by GNU Autoconf 2.69 for readline 7.0.
#
# Report bugs to <bug-readline@gnu.org>.
#
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -137,6 +135,31 @@ export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
@@ -170,7 +193,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -215,21 +239,25 @@ IFS=$as_save_IFS
if test "x$CONFIG_SHELL" != x; then :
- # We cannot yet assume a decent shell, so we have to provide a
- # neutralization value for shells without unset; and this also
- # works around shells that cannot unset nonexistent variables.
- # Preserve -v and -x to the replacement shell.
- BASH_ENV=/dev/null
- ENV=/dev/null
- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
- export CONFIG_SHELL
- case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
- esac
- exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
if test x$as_have_required = xno; then :
@@ -332,6 +360,14 @@ $as_echo X"$as_dir" |
} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -453,6 +489,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
@@ -487,16 +527,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -508,28 +548,8 @@ else
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -561,8 +581,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='readline'
PACKAGE_TARNAME='readline'
-PACKAGE_VERSION='6.3'
-PACKAGE_STRING='readline 6.3'
+PACKAGE_VERSION='7.0'
+PACKAGE_STRING='readline 7.0'
PACKAGE_BUGREPORT='bug-readline@gnu.org'
PACKAGE_URL=''
@@ -611,7 +631,6 @@ LOCAL_DEFS
LOCAL_LDFLAGS
LOCAL_CFLAGS
BUILD_DIR
-PURIFY
SHARED_INSTALL_TARGET
STATIC_INSTALL_TARGET
SHARED_TARGET
@@ -702,7 +721,6 @@ ac_subst_files=''
ac_user_opts='
enable_option_checking
with_curses
-with_purify
enable_multibyte
enable_shared
enable_static
@@ -1172,8 +1190,6 @@ target=$target_alias
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used" >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1259,7 +1275,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 6.3 to adapt to many kinds of systems.
+\`configure' configures readline 7.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1324,7 +1340,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of readline 6.3:";;
+ short | recursive ) echo "Configuration of readline 7.0:";;
esac
cat <<\_ACEOF
@@ -1342,7 +1358,6 @@ Optional Packages:
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-curses use the curses library instead of the termcap
library
- --with-purify configure to postprocess with purify
Some influential environment variables:
CC C compiler command
@@ -1420,10 +1435,10 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-readline configure 6.3
-generated by GNU Autoconf 2.68
+readline configure 7.0
+generated by GNU Autoconf 2.69
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1754,7 +1769,7 @@ $as_echo "$ac_try_echo"; } >&5
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
+ test -x conftest$ac_exeext
}; then :
ac_retval=0
else
@@ -1889,8 +1904,8 @@ 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 6.3, which was
-generated by GNU Autoconf 2.68. Invocation command line was
+It was created by readline $as_me 7.0, which was
+generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2273,7 +2288,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
ac_config_headers="$ac_config_headers config.h"
-LIBVERSION=6.3
+LIBVERSION=7.0
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
@@ -2349,7 +2364,6 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
opt_curses=no
-opt_purify=no
# Check whether --with-curses was given.
@@ -2358,22 +2372,10 @@ if test "${with_curses+set}" = set; then :
fi
-# Check whether --with-purify was given.
-if test "${with_purify+set}" = set; then :
- withval=$with_purify; opt_purify=$withval
-fi
-
-
if test "$opt_curses" = "yes"; then
prefer_curses=yes
fi
-if test "$opt_purify" = yes; then
- PURIFY="purify"
-else
- PURIFY=
-fi
-
opt_multibyte=yes
opt_static_libs=yes
opt_shared_libs=yes
@@ -2485,7 +2487,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2525,7 +2527,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2578,7 +2580,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2619,7 +2621,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
@@ -2677,7 +2679,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2721,7 +2723,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3167,8 +3169,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3408,7 +3409,7 @@ do
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+ as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
@@ -3474,7 +3475,7 @@ do
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
@@ -3681,8 +3682,8 @@ else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-# define __EXTENSIONS__ 1
- $ac_includes_default
+# define __EXTENSIONS__ 1
+ $ac_includes_default
int
main ()
{
@@ -3796,7 +3797,7 @@ case $as_dir/ in #((
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
@@ -3869,7 +3870,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="${ac_tool_prefix}ar"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3909,7 +3910,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="ar"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3962,7 +3963,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4002,7 +4003,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4052,11 +4053,11 @@ else
int
main ()
{
-/* FIXME: Include the comments suggested by Paul. */
+
#ifndef __cplusplus
- /* Ultrix mips cc rejects this. */
+ /* Ultrix mips cc rejects this sort of thing. */
typedef int charset[2];
- const charset cs;
+ const charset cs = { 0, 0 };
/* SunOS 4.1.1 cc rejects this. */
char const *const *pcpcc;
char **ppc;
@@ -4073,8 +4074,9 @@ main ()
++pcpcc;
ppc = (char**) pcpcc;
pcpcc = (char const *const *) ppc;
- { /* SCO 3.2v4 cc rejects this. */
- char *t;
+ { /* SCO 3.2v4 cc rejects this sort of thing. */
+ char tx;
+ char *t = &tx;
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
@@ -4090,10 +4092,10 @@ main ()
iptr p = 0;
++p;
}
- { /* AIX XL C 1.02.0.0 rejects this saying
+ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
+ struct s { int j; const int *ap[3]; } bx;
+ struct s *b = &bx; b->j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
@@ -4149,7 +4151,8 @@ int
main ()
{
static int test_array [1 - 2 * !(((char) -1) < 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -4575,7 +4578,7 @@ fi
fi
-for ac_func in fcntl kill lstat
+for ac_func in fcntl kill lstat readlink
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -4587,7 +4590,7 @@ _ACEOF
fi
done
-for ac_func in memmove putenv select setenv setlocale \
+for ac_func in memmove pselect putenv select setenv setlocale \
strcasecmp strpbrk tcgetattr vsnprintf
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
@@ -4625,6 +4628,101 @@ fi
done
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
+$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
+if ${ac_cv_type_uid_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "uid_t" >/dev/null 2>&1; then :
+ ac_cv_type_uid_t=yes
+else
+ ac_cv_type_uid_t=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
+$as_echo "$ac_cv_type_uid_t" >&6; }
+if test $ac_cv_type_uid_t = no; then
+
+$as_echo "#define uid_t int" >>confdefs.h
+
+
+$as_echo "#define gid_t int" >>confdefs.h
+
+fi
+
+for ac_header in unistd.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_UNISTD_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5
+$as_echo_n "checking for working chown... " >&6; }
+if ${ac_cv_func_chown_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_chown_works=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+#include <fcntl.h>
+
+int
+main ()
+{
+ char *f = "conftest.chown";
+ struct stat before, after;
+
+ if (creat (f, 0600) < 0)
+ return 1;
+ if (stat (f, &before) < 0)
+ return 1;
+ if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
+ return 1;
+ if (stat (f, &after) < 0)
+ return 1;
+ return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_chown_works=yes
+else
+ ac_cv_func_chown_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+rm -f conftest.chown
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5
+$as_echo "$ac_cv_func_chown_works" >&6; }
+if test $ac_cv_func_chown_works = yes; then
+
+$as_echo "#define HAVE_CHOWN 1" >>confdefs.h
+
+fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strcoll" >&5
$as_echo_n "checking for working strcoll... " >&6; }
if ${ac_cv_func_strcoll_works+:} false; then :
@@ -4680,7 +4778,7 @@ fi
done
-for ac_header in sys/pte.h sys/stream.h sys/select.h sys/file.h
+for ac_header in sys/ioctl.h sys/pte.h sys/stream.h sys/select.h sys/file.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -4908,6 +5006,8 @@ _ACEOF
esac
rm -rf conftest*
fi
+
+
fi
@@ -5762,6 +5862,18 @@ $as_echo "#define HAVE_STRUCT_DIRENT_D_FILENO 1" >>confdefs.h
fi
+for ac_header in libaudit.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "libaudit.h" "ac_cv_header_libaudit_h" "$ac_includes_default"
+if test "x$ac_cv_header_libaudit_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBAUDIT_H 1
+_ACEOF
+
+fi
+
+done
+
ac_fn_c_check_decl "$LINENO" "AUDIT_USER_TTY" "ac_cv_have_decl_AUDIT_USER_TTY" "#include <linux/audit.h>
"
if test "x$ac_cv_have_decl_AUDIT_USER_TTY" = xyes; then :
@@ -5996,6 +6108,21 @@ if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
TERMCAP_LIB=-ltermcap #default
fi
fi
+# Windows ncurses installation
+if test "$TERMCAP_LIB" = "-lncurses"; then
+ for ac_header in ncurses/termcap.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "ncurses/termcap.h" "ac_cv_header_ncurses_termcap_h" "$ac_includes_default"
+if test "x$ac_cv_header_ncurses_termcap_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_NCURSES_TERMCAP_H 1
+_ACEOF
+
+fi
+
+done
+
+fi
for ac_header in wctype.h
@@ -6035,6 +6162,19 @@ fi
done
+for ac_header in mbstr.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "mbstr.h" "ac_cv_header_mbstr_h" "$ac_includes_default"
+if test "x$ac_cv_header_mbstr_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_MBSTR_H 1
+_ACEOF
+
+fi
+
+done
+
+
ac_fn_c_check_func "$LINENO" "mbrlen" "ac_cv_func_mbrlen"
if test "x$ac_cv_func_mbrlen" = xyes; then :
$as_echo "#define HAVE_MBRLEN 1" >>confdefs.h
@@ -6322,10 +6462,7 @@ if ${bash_cv_wcwidth_broken+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
+ bash_cv_wcwidth_broken=no
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -6352,7 +6489,7 @@ _ACEOF
if ac_fn_c_try_run "$LINENO"; then :
bash_cv_wcwidth_broken=yes
else
- bash_cv_wcwdith_broken=no
+ bash_cv_wcwidth_broken=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
@@ -6369,7 +6506,7 @@ fi
if test "$am_cv_func_iconv" = yes; then
OLDLIBS="$LIBS"
- LIBS="$LIBS $LIBICONV"
+ LIBS="$LIBS $LIBINTL $LIBICONV"
for ac_func in locale_charset
do :
ac_fn_c_check_func "$LINENO" "locale_charset" "ac_cv_func_locale_charset"
@@ -6483,8 +6620,7 @@ esac
-
-ac_config_files="$ac_config_files Makefile doc/Makefile examples/Makefile shlib/Makefile"
+ac_config_files="$ac_config_files Makefile doc/Makefile examples/Makefile shlib/Makefile readline.pc"
ac_config_commands="$ac_config_commands default"
@@ -6895,16 +7031,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -6964,28 +7100,16 @@ else
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -7006,8 +7130,8 @@ 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 6.3, which was
-generated by GNU Autoconf 2.68. Invocation command line was
+This file was extended by readline $as_me 7.0, which was
+generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -7072,11 +7196,11 @@ _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 6.3
-configured by $0, generated by GNU Autoconf 2.68,
+readline config.status 7.0
+configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -7165,7 +7289,7 @@ fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
@@ -7199,6 +7323,7 @@ do
"doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
"examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
"shlib/Makefile") CONFIG_FILES="$CONFIG_FILES shlib/Makefile" ;;
+ "readline.pc") CONFIG_FILES="$CONFIG_FILES readline.pc" ;;
"default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
diff --git a/configure.ac b/configure.ac
index cea8f91..f81809b 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-2014 Free Software Foundation, Inc.
+# Copyright (C) 1987-2016 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 6.3, version 2.73])
+AC_REVISION([for Readline 7.0, version 2.81])
-AC_INIT(readline, 6.3, bug-readline@gnu.org)
+AC_INIT(readline, 7.0, bug-readline@gnu.org)
dnl make sure we are using a recent autoconf version
AC_PREREQ(2.50)
@@ -32,29 +32,21 @@ 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=6.3
+LIBVERSION=7.0
AC_CANONICAL_HOST
AC_CANONICAL_BUILD
dnl configure defaults
opt_curses=no
-opt_purify=no
dnl arguments to configure
AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
-AC_ARG_WITH(purify, AC_HELP_STRING([--with-purify], [configure to postprocess with purify]), opt_purify=$withval)
if test "$opt_curses" = "yes"; then
prefer_curses=yes
fi
-if test "$opt_purify" = yes; then
- PURIFY="purify"
-else
- PURIFY=
-fi
-
dnl option parsing for optional features
opt_multibyte=yes
opt_static_libs=yes
@@ -139,18 +131,19 @@ AC_HEADER_STDC
AC_HEADER_STAT
AC_HEADER_DIRENT
-AC_CHECK_FUNCS(fcntl kill lstat)
-AC_CHECK_FUNCS(memmove putenv select setenv setlocale \
+AC_CHECK_FUNCS(fcntl kill lstat readlink)
+AC_CHECK_FUNCS(memmove pselect putenv select setenv setlocale \
strcasecmp strpbrk tcgetattr vsnprintf)
AC_CHECK_FUNCS(isascii isxdigit)
AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
+AC_FUNC_CHOWN
AC_FUNC_STRCOLL
AC_CHECK_HEADERS(fcntl.h unistd.h stdlib.h varargs.h stdarg.h stdbool.h \
string.h strings.h \
limits.h locale.h pwd.h memory.h termcap.h termios.h termio.h)
-AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h)
+AC_CHECK_HEADERS(sys/ioctl.h sys/pte.h sys/stream.h sys/select.h sys/file.h)
AC_CHECK_HEADERS(sys/ptem.h,,,
[[
@@ -183,6 +176,7 @@ BASH_STRUCT_WINSIZE
BASH_STRUCT_DIRENT_D_INO
BASH_STRUCT_DIRENT_D_FILENO
+AC_CHECK_HEADERS(libaudit.h)
AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
dnl yuck
@@ -197,6 +191,10 @@ if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
TERMCAP_LIB=-ltermcap #default
fi
fi
+# Windows ncurses installation
+if test "$TERMCAP_LIB" = "-lncurses"; then
+ AC_CHECK_HEADERS(ncurses/termcap.h)
+fi
BASH_CHECK_MULTIBYTE
@@ -278,7 +276,6 @@ case "$BUILD_DIR" in
*) ;;
esac
-AC_SUBST(PURIFY)
AC_SUBST(BUILD_DIR)
AC_SUBST(CFLAGS)
@@ -296,7 +293,7 @@ AC_SUBST(LIBVERSION)
AC_SUBST(TERMCAP_LIB)
-AC_OUTPUT([Makefile doc/Makefile examples/Makefile shlib/Makefile],
+AC_OUTPUT([Makefile doc/Makefile examples/Makefile shlib/Makefile readline.pc],
[
# Makefile uses this timestamp file to record whether config.h is up to date.
echo > stamp-h
diff --git a/display.c b/display.c
index 4df1f73..41fb053 100644
--- a/display.c
+++ b/display.c
@@ -1,6 +1,6 @@
/* display.c -- readline redisplay facility. */
-/* Copyright (C) 1987-2013 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2015 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.
@@ -69,6 +69,12 @@ 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 *));
+
+/* Values for FLAGS */
+#define PMT_MULTILINE 0x01
+
+static char *expand_prompt PARAMS((char *, int, int *, int *, int *, int *));
/* State of visible and invisible lines. */
struct line_state
@@ -77,8 +83,8 @@ struct line_state
int *lbreaks;
int lbsize;
#if defined (HANDLE_MULTIBYTE)
- int *wrapped_line;
int wbsize;
+ int *wrapped_line;
#endif
};
@@ -113,6 +119,8 @@ static int _rl_col_width PARAMS((const char *, int, int, int));
buffer index in others. This macro is used when deciding whether the
current cursor position is in the middle of a prompt string containing
invisible characters. XXX - might need to take `modmark' into account. */
+/* XXX - only valid when tested against _rl_last_c_pos; buffer indices need
+ 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)
@@ -158,6 +166,16 @@ int _rl_want_redisplay = 0;
This is usually pointing to rl_prompt. */
char *rl_display_prompt = (char *)NULL;
+/* Variables used to include the editing mode in the prompt. */
+char *_rl_emacs_mode_str;
+int _rl_emacs_modestr_len;
+
+char *_rl_vi_ins_mode_str;
+int _rl_vi_ins_modestr_len;
+
+char *_rl_vi_cmd_mode_str;
+int _rl_vi_cmd_modestr_len;
+
/* Pseudo-global variables declared here. */
/* The visible cursor position. If you print some text, adjust this. */
@@ -176,6 +194,8 @@ static int prompt_multibyte_chars;
/* Number of lines currently on screen minus 1. */
int _rl_vis_botlin = 0;
+static int _rl_inv_botlin = 0;
+
/* Variables used only in this file. */
/* The last left edge of text that was displayed. This is used when
doing horizontal scrolling. It shifts in thirds of a screenwidth. */
@@ -239,16 +259,30 @@ static int saved_local_length;
static int saved_invis_chars_first_line;
static int saved_physical_chars;
-/* Return a character indicating the editing mode, for use in the prompt. */
-static int
-prompt_modechar ()
+/* Return a string indicating the editing mode, for use in the prompt. */
+
+static char *
+prompt_modestr (lenp)
+ int *lenp;
{
if (rl_editing_mode == emacs_mode)
- return '@';
+ {
+ if (lenp)
+ *lenp = _rl_emacs_mode_str ? _rl_emacs_modestr_len : RL_EMACS_MODESTR_DEFLEN;
+ return _rl_emacs_mode_str ? _rl_emacs_mode_str : RL_EMACS_MODESTR_DEFAULT;
+ }
else if (_rl_keymap == vi_insertion_keymap)
- return '+'; /* vi insert mode */
+ {
+ if (lenp)
+ *lenp = _rl_vi_ins_mode_str ? _rl_vi_ins_modestr_len : RL_VI_INS_MODESTR_DEFLEN;
+ return _rl_vi_ins_mode_str ? _rl_vi_ins_mode_str : RL_VI_INS_MODESTR_DEFAULT; /* vi insert mode */
+ }
else
- return ':'; /* vi command mode */
+ {
+ if (lenp)
+ *lenp = _rl_vi_cmd_mode_str ? _rl_vi_cmd_modestr_len : RL_VI_CMD_MODESTR_DEFLEN;
+ return _rl_vi_cmd_mode_str ? _rl_vi_cmd_mode_str : RL_VI_CMD_MODESTR_DEFAULT; /* vi command mode */
+ }
}
/* Expand the prompt string S and return the number of visible
@@ -266,26 +300,37 @@ prompt_modechar ()
the returned string; all characters except those between \001 and
\002 are assumed to be `visible'. */
+/* Possible values for FLAGS:
+ PMT_MULTILINE caller indicates that this is part of a multiline prompt
+*/
+
static char *
-expand_prompt (pmt, lp, lip, niflp, vlp)
+expand_prompt (pmt, flags, lp, lip, niflp, vlp)
char *pmt;
+ int flags;
int *lp, *lip, *niflp, *vlp;
{
- char *r, *ret, *p, *igstart;
+ char *r, *ret, *p, *igstart, *nprompt, *ms;
int l, rl, last, ignoring, ninvis, invfl, invflset, ind, pind, physchars;
+ int mlen;
+
+ /* We only expand the mode string for the last line of a multiline prompt
+ (a prompt with embedded newlines). */
+ ms = (((pmt == rl_prompt) ^ (flags & PMT_MULTILINE)) && _rl_show_mode_in_prompt) ? prompt_modestr (&mlen) : 0;
+ if (ms)
+ {
+ l = strlen (pmt);
+ nprompt = (char *)xmalloc (l + mlen + 1);
+ memcpy (nprompt, ms, mlen);
+ strcpy (nprompt + mlen, pmt);
+ }
+ else
+ nprompt = pmt;
/* Short-circuit if we can. */
- if ((MB_CUR_MAX <= 1 || rl_byte_oriented) && strchr (pmt, RL_PROMPT_START_IGNORE) == 0)
- {
- if (pmt == rl_prompt && _rl_show_mode_in_prompt)
- {
- l = strlen (pmt);
- r = (char *)xmalloc (l + 2);
- r[0] = prompt_modechar ();
- strcpy (r + 1, pmt);
- }
- else
- r = savestring (pmt);
+ if ((MB_CUR_MAX <= 1 || rl_byte_oriented) && strchr (nprompt, RL_PROMPT_START_IGNORE) == 0)
+ {
+ r = (nprompt == pmt) ? savestring (pmt) : nprompt;
if (lp)
*lp = strlen (r);
@@ -298,21 +343,15 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
return r;
}
- l = strlen (pmt);
- r = ret = (char *)xmalloc (l + 2);
-
- rl = physchars = 0; /* move up here so mode show can set them */
- if (pmt == rl_prompt && _rl_show_mode_in_prompt)
- {
- *r++ = prompt_modechar ();
- rl = physchars = 1;
- }
+ l = strlen (nprompt); /* XXX */
+ r = ret = (char *)xmalloc (l + 1);
+ rl = physchars = 0; /* mode string now part of nprompt */
invfl = 0; /* invisible chars in first line of prompt */
invflset = 0; /* we only want to set invfl once */
-
igstart = 0;
- for (ignoring = last = ninvis = 0, p = pmt; p && *p; p++)
+
+ for (ignoring = last = ninvis = 0, p = nprompt; p && *p; p++)
{
/* This code strips the invisible character string markers
RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE */
@@ -334,8 +373,8 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
- pind = p - pmt;
- ind = _rl_find_next_mbchar (pmt, pind, 1, MB_FIND_NONZERO);
+ pind = p - nprompt;
+ ind = _rl_find_next_mbchar (nprompt, pind, 1, MB_FIND_NONZERO);
l = ind - pind;
while (l--)
*r++ = *p++;
@@ -347,7 +386,7 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
not be the same as the number of physical characters
on the screen in the presence of multibyte characters */
rl += ind - pind;
- physchars += _rl_col_width (pmt, pind, ind, 0);
+ physchars += _rl_col_width (nprompt, pind, ind, 0);
}
else
ninvis += ind - pind;
@@ -386,6 +425,10 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
*niflp = invfl;
if (vlp)
*vlp = physchars;
+
+ if (nprompt != pmt)
+ free (nprompt);
+
return ret;
}
@@ -397,7 +440,7 @@ _rl_strip_prompt (pmt)
{
char *ret;
- ret = expand_prompt (pmt, (int *)NULL, (int *)NULL, (int *)NULL, (int *)NULL);
+ ret = expand_prompt (pmt, 0, (int *)NULL, (int *)NULL, (int *)NULL, (int *)NULL);
return ret;
}
@@ -444,13 +487,13 @@ rl_expand_prompt (prompt)
return (0);
p = strrchr (prompt, '\n');
- if (!p)
+ if (p == 0)
{
/* The prompt is only one logical line, though it might wrap. */
- local_prompt = expand_prompt (prompt, &prompt_visible_length,
- &prompt_last_invisible,
- &prompt_invis_chars_first_line,
- &prompt_physical_chars);
+ local_prompt = expand_prompt (prompt, 0, &prompt_visible_length,
+ &prompt_last_invisible,
+ &prompt_invis_chars_first_line,
+ &prompt_physical_chars);
local_prompt_prefix = (char *)0;
local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
return (prompt_visible_length);
@@ -459,14 +502,16 @@ rl_expand_prompt (prompt)
{
/* The prompt spans multiple lines. */
t = ++p;
- local_prompt = expand_prompt (p, &prompt_visible_length,
+ 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. */
- local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
+ local_prompt_prefix = expand_prompt (prompt, PMT_MULTILINE,
+ &prompt_prefix_length,
(int *)NULL,
(int *)NULL,
(int *)NULL);
@@ -539,6 +584,7 @@ rl_redisplay ()
int inv_botlin, lb_botlin, lb_linenum, o_cpos;
int newlines, lpos, temp, n0, num, prompt_lines_estimate;
char *prompt_this_line;
+ int mb_cur_max = MB_CUR_MAX;
#if defined (HANDLE_MULTIBYTE)
wchar_t wc;
size_t wc_bytes;
@@ -695,6 +741,8 @@ rl_redisplay ()
/* inv_lbreaks[i] is where line i starts in the buffer. */
inv_lbreaks[newlines = 0] = 0;
+ /* lpos is a physical cursor position, so it needs to be adjusted by the
+ number of invisible characters in the prompt, per line */
lpos = prompt_physical_chars + modmark;
#if defined (HANDLE_MULTIBYTE)
@@ -714,7 +762,17 @@ rl_redisplay ()
contents of the command line? */
while (lpos >= _rl_screenwidth)
{
- int z;
+ int z, p;
+ int nocorrect, wadjust;
+
+ nocorrect = 0;
+ /* Adjust depending on the invisible characters in the line. We use a
+ heuristic based on experience: invisible characters nearly always
+ appear in the first and last lines of the prompt */
+ wadjust = (newlines == 0)
+ ? prompt_invis_chars_first_line
+ : ((newlines == prompt_lines_estimate) ? wrap_offset : prompt_invis_chars_first_line);
+
/* fix from Darin Johnson <darin@acuson.com> for prompt string with
invisible characters that is longer than the screen width. The
prompt_invis_chars_first_line variable could be made into an array
@@ -723,20 +781,31 @@ rl_redisplay ()
prompts that exceed two physical lines?
Additional logic fix from Edward Catmur <ed@catmur.co.uk> */
#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0 && prompt_multibyte_chars > 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0 && prompt_multibyte_chars > 0)
{
+ nocorrect = 1;
n0 = num;
temp = local_prompt_len;
while (num < temp)
{
- z = _rl_col_width (local_prompt, n0, num, 1);
+ /* This has to take invisible characters in the prompt into
+ account. */
+ z = _rl_col_width (local_prompt, n0, num, 1) - wadjust;
if (z > _rl_screenwidth)
{
num = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY);
break;
}
else if (z == _rl_screenwidth)
- break;
+ {
+ /* If we are in the middle or at the end of a multibyte
+ character, we want to move to the start, then find out
+ where it ends so we know where to insert the newline.
+ If this isn't a multibyte character, its the same as num++ */
+ p = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY);
+ num = _rl_find_next_mbchar (local_prompt, p, 1, MB_FIND_ANY);
+ break;
+ }
num++;
}
temp = num;
@@ -748,16 +817,18 @@ rl_redisplay ()
/* Now account for invisible characters in the current line. */
/* XXX - this assumes that the invisible characters may be split, but only
between the first and the last lines. */
- temp += (newlines == 0) ? prompt_invis_chars_first_line
- : ((newlines == prompt_lines_estimate) ? wrap_offset : prompt_invis_chars_first_line);
+ if (nocorrect == 0)
+ temp += wadjust;
inv_lbreaks[++newlines] = temp;
#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0 && prompt_multibyte_chars > 0)
- lpos -= _rl_col_width (local_prompt, n0, num, 1);
+ /* lpos is a physical cursor position, so it needs to take the invisible
+ characters into account. */
+ if (mb_cur_max > 1 && rl_byte_oriented == 0 && prompt_multibyte_chars > 0)
+ lpos -= _rl_col_width (local_prompt, n0, num, 1) - wadjust;
else
#endif
- lpos -= _rl_screenwidth;
+ lpos -= _rl_screenwidth; /* all physical cursor positions */
}
prompt_last_screen_line = newlines;
@@ -770,7 +841,7 @@ rl_redisplay ()
lb_linenum = 0;
#if defined (HANDLE_MULTIBYTE)
in = 0;
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
memset (&ps, 0, sizeof (mbstate_t));
/* XXX - what if wc_bytes ends up <= 0? check for MB_INVALIDCH */
@@ -786,7 +857,7 @@ rl_redisplay ()
c = (unsigned char)rl_line_buffer[in];
#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
if (MB_INVALIDCH (wc_bytes))
{
@@ -895,7 +966,7 @@ rl_redisplay ()
else
{
#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
register int i;
@@ -931,7 +1002,7 @@ rl_redisplay ()
}
#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
in += wc_bytes;
/* XXX - what if wc_bytes ends up <= 0? check for MB_INVALIDCH */
@@ -949,7 +1020,7 @@ rl_redisplay ()
lb_linenum = newlines;
}
- inv_botlin = lb_botlin = newlines;
+ inv_botlin = lb_botlin = _rl_inv_botlin = newlines;
CHECK_INV_LBREAKS ();
inv_lbreaks[newlines+1] = out;
cursor_linenum = lb_linenum;
@@ -979,9 +1050,11 @@ rl_redisplay ()
not the first. */
if (out >= _rl_screenchars)
{
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+#if defined (HANDLE_MULTIBYTE)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
out = _rl_find_prev_mbchar (line, _rl_screenchars, MB_FIND_ANY);
else
+#endif
out = _rl_screenchars - 1;
}
@@ -1027,15 +1100,15 @@ rl_redisplay ()
time update_line is called, then we can assume in our
calculations that o_cpos does not need to be adjusted by
wrap_offset. */
- if (linenum == 0 && (MB_CUR_MAX > 1 && rl_byte_oriented == 0) && OLD_CPOS_IN_PROMPT())
+ if (linenum == 0 && (mb_cur_max > 1 && rl_byte_oriented == 0) && OLD_CPOS_IN_PROMPT())
_rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */
else if (linenum == prompt_last_screen_line && prompt_physical_chars > _rl_screenwidth &&
- (MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
+ (mb_cur_max > 1 && rl_byte_oriented == 0) &&
cpos_adjusted == 0 &&
_rl_last_c_pos != o_cpos &&
_rl_last_c_pos > (prompt_last_invisible - _rl_screenwidth - prompt_invis_chars_first_line))
_rl_last_c_pos -= (wrap_offset-prompt_invis_chars_first_line);
-
+
/* If this is the line with the prompt, we might need to
compensate for invisible characters in the new line. Do
this only if there is not more than one new line (which
@@ -1047,7 +1120,7 @@ rl_redisplay ()
(wrap_offset > visible_wrap_offset) &&
(_rl_last_c_pos < visible_first_line_len))
{
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ 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;
@@ -1099,7 +1172,7 @@ rl_redisplay ()
the physical cursor position on the screen stays the same,
but the buffer position needs to be adjusted to account
for invisible characters. */
- if ((MB_CUR_MAX == 1 || rl_byte_oriented) && cursor_linenum == 0 && wrap_offset)
+ if ((mb_cur_max == 1 || rl_byte_oriented) && cursor_linenum == 0 && wrap_offset)
_rl_last_c_pos += wrap_offset;
}
@@ -1126,7 +1199,7 @@ rl_redisplay ()
_rl_output_some_chars ("*", 1);
_rl_output_some_chars (local_prompt, nleft);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
_rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft, 1) - wrap_offset + modmark;
else
_rl_last_c_pos = nleft + modmark;
@@ -1150,7 +1223,7 @@ rl_redisplay ()
if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos)
{
/* TX == new physical cursor position in multibyte locale. */
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
tx = _rl_col_width (&visible_line[pos], 0, nleft, 1) - visible_wrap_offset;
else
tx = nleft;
@@ -1165,7 +1238,7 @@ rl_redisplay ()
_rl_last_c_pos as an absolute cursor position, but moving to a
point specified by a buffer position (NLEFT) that doesn't take
invisible characters into account. */
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
_rl_move_cursor_relative (nleft, &invisible_line[pos]);
else if (nleft != _rl_last_c_pos)
_rl_move_cursor_relative (nleft, &invisible_line[pos]);
@@ -1246,7 +1319,7 @@ rl_redisplay ()
_rl_screenwidth + (lmargin ? 0 : wrap_offset),
0);
- if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
+ if ((mb_cur_max > 1 && rl_byte_oriented == 0) &&
displaying_prompt_first_line && OLD_CPOS_IN_PROMPT())
_rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */
@@ -1318,6 +1391,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
int current_invis_chars;
int col_lendiff, col_temp;
int bytes_to_insert;
+ int mb_cur_max = MB_CUR_MAX;
#if defined (HANDLE_MULTIBYTE)
mbstate_t ps_new, ps_old;
int new_offset, old_offset;
@@ -1328,7 +1402,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
the exact cursor position and cut-and-paste with certain terminal
emulators. In this calculation, TEMP is the physical screen
position of the cursor. */
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
temp = _rl_last_c_pos;
else
temp = _rl_last_c_pos - WRAP_OFFSET (_rl_last_v_pos, visible_wrap_offset);
@@ -1336,7 +1410,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
&& _rl_last_v_pos == current_line - 1)
{
#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
wchar_t wc;
mbstate_t ps;
@@ -1350,7 +1424,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
_rl_clear_to_eol (line_state_visible->wrapped_line[current_line]);
memset (&ps, 0, sizeof (mbstate_t));
- ret = mbrtowc (&wc, new, MB_CUR_MAX, &ps);
+ ret = mbrtowc (&wc, new, mb_cur_max, &ps);
if (MB_INVALIDCH (ret))
{
tempwidth = 1;
@@ -1370,7 +1444,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
_rl_last_c_pos = tempwidth;
_rl_last_v_pos++;
memset (&ps, 0, sizeof (mbstate_t));
- ret = mbrtowc (&wc, old, MB_CUR_MAX, &ps);
+ ret = mbrtowc (&wc, old, mb_cur_max, &ps);
if (ret != 0 && bytes != 0)
{
if (MB_INVALIDCH (ret))
@@ -1409,7 +1483,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
/* Find first difference. */
#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
/* See if the old line is a subset of the new line, so that the
only change is adding characters. */
@@ -1466,7 +1540,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
return;
#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_utf8locale)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0 && _rl_utf8locale)
{
wchar_t wc;
mbstate_t ps = { 0 };
@@ -1475,7 +1549,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
/* If the first character in the difference is a zero-width character,
assume it's a combining character and back one up so the two base
characters no longer compare equivalently. */
- t = mbrtowc (&wc, ofd, MB_CUR_MAX, &ps);
+ t = mbrtowc (&wc, ofd, mb_cur_max, &ps);
if (t > 0 && UNICODE_COMBINING_CHAR (wc) && WCWIDTH (wc) == 0)
{
old_offset = _rl_find_prev_mbchar (old, ofd - old, MB_FIND_ANY);
@@ -1489,7 +1563,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
wsatend = 1; /* flag for trailing whitespace */
#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
ols = old + _rl_find_prev_mbchar (old, oe - old, MB_FIND_ANY);
nls = new + _rl_find_prev_mbchar (new, ne - new, MB_FIND_ANY);
@@ -1547,14 +1621,14 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
{
if (*ols) /* don't step past the NUL */
{
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
ols = old + _rl_find_next_mbchar (old, ols - old, 1, MB_FIND_ANY);
else
ols++;
}
if (*nls)
{
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
nls = new + _rl_find_next_mbchar (new, nls - new, 1, MB_FIND_ANY);
else
nls++;
@@ -1566,7 +1640,12 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
if (_rl_last_v_pos != current_line)
{
_rl_move_vert (current_line);
- if ((MB_CUR_MAX == 1 || rl_byte_oriented) && current_line == 0 && visible_wrap_offset)
+ /* We have moved up to a new screen line. This line may or may not have
+ invisible characters on it, but we do our best to recalculate
+ visible_wrap_offset based on what we know. */
+ if (current_line == 0)
+ visible_wrap_offset = prompt_invis_chars_first_line; /* XXX */
+ if ((mb_cur_max == 1 || rl_byte_oriented) && current_line == 0 && visible_wrap_offset)
_rl_last_c_pos += visible_wrap_offset;
}
@@ -1577,16 +1656,31 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
string, then redraw the entire prompt string. We can only do this
reliably if the terminal supports a `cr' capability.
+ This can also happen if the prompt string has changed, and the first
+ difference in the line is in the middle of the prompt string, after a
+ sequence of invisible characters (worst case) and before the end of
+ the prompt. In this case, we have to redraw the entire prompt string
+ so that the entire sequence of invisible characters is drawn. We need
+ to handle the worst case, when the difference is after (or in the middle
+ of) a sequence of invisible characters that changes the text color and
+ before the sequence that restores the text color to normal. Then we have
+ to make sure that the lines still differ -- if they don't, we can
+ return immediately.
+
This is not an efficiency hack -- there is a problem with redrawing
portions of the prompt string if they contain terminal escape
sequences (like drawing the `unbold' sequence without a corresponding
`bold') that manifests itself on certain terminals. */
lendiff = local_prompt_len;
+ if (lendiff > nmax)
+ lendiff = nmax;
od = ofd - old; /* index of first difference in visible line */
+ nd = nfd - new; /* nd, od are buffer indexes */
if (current_line == 0 && !_rl_horizontal_scroll_mode &&
_rl_term_cr && lendiff > prompt_visible_length && _rl_last_c_pos > 0 &&
- od >= lendiff && _rl_last_c_pos < PROMPT_ENDING_INDEX)
+ (((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);
@@ -1596,7 +1690,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
if (modmark)
_rl_output_some_chars ("*", 1);
_rl_output_some_chars (local_prompt, lendiff);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ 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. */
@@ -1605,6 +1699,43 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
}
else
_rl_last_c_pos = lendiff + modmark;
+
+ /* Now if we have printed the prompt string because the first difference
+ was within the prompt, see if we need to recompute where the lines
+ differ. Check whether where we are now is past the last place where
+ the old and new lines are the same and short-circuit now if we are. */
+ if ((od <= prompt_last_invisible || nd <= prompt_last_invisible) &&
+ omax == nmax &&
+ lendiff > (ols-old) && lendiff > (nls-new))
+ return;
+
+ /* XXX - we need to fix up our calculations if we are now past the
+ old ofd/nfd and the prompt length (or line length) has changed.
+ We punt on the problem and do a dumb update. We'd like to be able
+ 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. */
+ if ((od <= prompt_last_invisible || nd <= prompt_last_invisible))
+ {
+ nfd = new + lendiff; /* number of characters we output above */
+ nd = lendiff;
+
+ /* Do a dumb update and return */
+ temp = ne - nfd;
+ if (temp > 0)
+ {
+ _rl_output_some_chars (nfd, temp);
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
+ _rl_last_c_pos += _rl_col_width (new, nd, ne - new, 1);
+ else
+ _rl_last_c_pos += temp;
+ }
+ if (nmax < omax)
+ goto clear_rest_of_line; /* XXX */
+ else
+ return;
+ }
}
o_cpos = _rl_last_c_pos;
@@ -1618,7 +1749,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
/* We need to indicate that the cursor position is correct in the presence of
invisible characters in the prompt string. Let's see if setting this when
we make sure we're at the end of the drawn prompt string works. */
- if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 &&
+ if (current_line == 0 && mb_cur_max > 1 && rl_byte_oriented == 0 &&
(_rl_last_c_pos > 0 || o_cpos > 0) &&
_rl_last_c_pos == prompt_physical_chars)
cpos_adjusted = 1;
@@ -1629,7 +1760,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
col_lendiff == difference on screen (columns)
When not using multibyte characters, these are equal */
lendiff = (nls - nfd) - (ols - ofd);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ 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);
else
col_lendiff = lendiff;
@@ -1640,7 +1771,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */
current_invis_chars != visible_wrap_offset)
{
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
lendiff += visible_wrap_offset - current_invis_chars;
col_lendiff += visible_wrap_offset - current_invis_chars;
@@ -1658,7 +1789,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
and writes TEMP bytes. */
/* Insert (diff (len (old), len (new)) ch. */
temp = ne - nfd;
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
col_temp = _rl_col_width (new, nfd - new, ne - new, 1);
else
col_temp = temp;
@@ -1709,7 +1840,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
_rl_last_c_pos == 0 &&
lendiff > prompt_visible_length &&
current_invis_chars > 0) == 0) &&
- (((MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
+ (((mb_cur_max > 1 && rl_byte_oriented == 0) &&
current_line == 0 && wrap_offset &&
((nfd - new) <= prompt_last_invisible) &&
(col_lendiff < prompt_visible_length)) == 0) &&
@@ -1717,12 +1848,12 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
{
open_some_spaces (col_lendiff);
_rl_output_some_chars (nfd, bytes_to_insert);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
_rl_last_c_pos += _rl_col_width (nfd, 0, bytes_to_insert, 1);
else
_rl_last_c_pos += bytes_to_insert;
}
- else if ((MB_CUR_MAX == 1 || rl_byte_oriented != 0) && *ols == 0 && lendiff > 0)
+ else if ((mb_cur_max == 1 || rl_byte_oriented != 0) && *ols == 0 && lendiff > 0)
{
/* At the end of a line the characters do not have to
be "inserted". They can just be placed on the screen. */
@@ -1737,7 +1868,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
/* 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))
+ 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;
cpos_adjusted = 1;
@@ -1750,7 +1881,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
/* 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))
+ 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;
cpos_adjusted = 1;
@@ -1766,11 +1897,15 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
char in the current line (which implies we just output some invisible
characters) we need to adjust _rl_last_c_pos, since it represents
a physical character position. */
- if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
+ /* The current_line*rl_screenwidth+prompt_invis_chars_first_line is a
+ crude attempt to compute how far into the new line buffer we are.
+ It doesn't work well in the face of multibyte characters and needs
+ to be rethought. XXX */
+ if ((mb_cur_max > 1 && rl_byte_oriented == 0) &&
current_line == prompt_last_screen_line && wrap_offset &&
displaying_prompt_first_line &&
wrap_offset != prompt_invis_chars_first_line &&
- ((nfd-new) < (prompt_last_invisible-(current_line*_rl_screenwidth))))
+ ((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;
@@ -1810,7 +1945,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
in a multibyte locale to account for the wrap offset and
set cpos_adjusted accordingly. */
_rl_output_some_chars (nfd, bytes_to_insert);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
_rl_last_c_pos += _rl_col_width (nfd, 0, bytes_to_insert, 1);
if (current_line == 0 && wrap_offset &&
@@ -1845,7 +1980,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
set cpos_adjusted accordingly. */
_rl_output_some_chars (nfd, temp);
_rl_last_c_pos += col_temp; /* XXX */
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
if (current_line == 0 && wrap_offset &&
displaying_prompt_first_line &&
@@ -1859,7 +1994,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
}
clear_rest_of_line:
lendiff = (oe - old) - (ne - new);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
col_lendiff = _rl_col_width (old, 0, oe - old, 1) - _rl_col_width (new, 0, ne - new, 1);
else
col_lendiff = lendiff;
@@ -1869,7 +2004,7 @@ clear_rest_of_line:
space_to_eol will insert too many spaces. XXX - maybe we should
adjust col_lendiff based on the difference between _rl_last_c_pos
and _rl_screenwidth */
- if (col_lendiff && ((MB_CUR_MAX == 1 || rl_byte_oriented) || (_rl_last_c_pos < _rl_screenwidth)))
+ if (col_lendiff && ((mb_cur_max == 1 || rl_byte_oriented) || (_rl_last_c_pos < _rl_screenwidth)))
{
if (_rl_term_autowrap && current_line < inv_botlin)
space_to_eol (col_lendiff);
@@ -1895,6 +2030,34 @@ rl_on_new_line ()
return 0;
}
+/* Clear all screen lines occupied by the current readline line buffer
+ (visible line) */
+int
+rl_clear_visible_line ()
+{
+ 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_last_c_pos = 0;
+
+ /* Move to the last screen line of the current visible line */
+ _rl_move_vert (_rl_vis_botlin);
+
+ /* And erase screen lines going up to line 0 (first visible line) */
+ for (curr_line = _rl_last_v_pos; curr_line >= 0; curr_line--)
+ {
+ _rl_move_vert (curr_line);
+ _rl_clear_to_eol (0);
+ }
+
+ return 0;
+}
+
/* Tell the update routines that we have moved onto a new line with the
prompt already displayed. Code originally from the version of readline
distributed with CLISP. rl_expand_prompt must have already been called
@@ -1972,11 +2135,25 @@ rl_forced_update_display ()
return 0;
}
+/* Redraw only the last line of a multi-line prompt. */
+void
+rl_redraw_prompt_last_line ()
+{
+ char *t;
+
+ t = strrchr (rl_display_prompt, '\n');
+ if (t)
+ redraw_prompt (++t);
+ else
+ rl_forced_update_display ();
+}
+
/* Move the cursor from _rl_last_c_pos to NEW, which are buffer indices.
(Well, when we don't have multibyte characters, _rl_last_c_pos is a
buffer index.)
DATA is the contents of the screen line of interest; i.e., where
- the movement is being done. */
+ the movement is being done.
+ DATA is always the visible line or the invisible line */
void
_rl_move_cursor_relative (new, data)
int new;
@@ -1986,6 +2163,8 @@ _rl_move_cursor_relative (new, data)
int woff; /* number of invisible chars on current line */
int cpos, dpos; /* current and desired cursor positions */
int adjust;
+ int in_invisline;
+ int mb_cur_max = MB_CUR_MAX;
woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset);
cpos = _rl_last_c_pos;
@@ -1999,7 +2178,7 @@ _rl_move_cursor_relative (new, data)
this case, NEW's display position is not obvious and must be
calculated. We need to account for invisible characters in this line,
as long as we are past them and they are counted by _rl_col_width. */
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
adjust = 1;
/* Try to short-circuit common cases and eliminate a bunch of multibyte
@@ -2024,14 +2203,28 @@ _rl_move_cursor_relative (new, data)
if (displaying_prompt_first_line == 0)
adjust = 0;
+ /* yet another special case: printing the last line of a prompt with
+ multibyte characters and invisible characters whose printable length
+ exceeds the screen width with the last invisible character
+ (prompt_last_invisible) in the last line. IN_INVISLINE is the
+ offset of DATA in invisible_line */
+ in_invisline = 0;
+ if (data > invisible_line && data < invisible_line+inv_lbreaks[_rl_inv_botlin+1])
+ in_invisline = data - invisible_line;
+
/* Use NEW when comparing against the last invisible character in the
prompt string, since they're both buffer indices and DPOS is a
desired display position. */
+ /* NEW is relative to the current displayed line, while
+ PROMPT_LAST_INVISIBLE is relative to the entire (wrapped) line.
+ Need a way to reconcile these two variables by turning NEW into a
+ buffer position relative to the start of the line */
if (adjust && ((new > prompt_last_invisible) || /* XXX - don't use woff here */
- (prompt_physical_chars >= _rl_screenwidth &&
+ (new+in_invisline > prompt_last_invisible) || /* invisible line */
+ (prompt_physical_chars >= _rl_screenwidth && /* visible line */
_rl_last_v_pos == prompt_last_screen_line &&
wrap_offset >= woff && dpos >= woff &&
- new > (prompt_last_invisible-(_rl_screenwidth*_rl_last_v_pos)-wrap_offset))))
+ new > (prompt_last_invisible-(vis_lbreaks[_rl_last_v_pos])-wrap_offset))))
/* XXX last comparison might need to be >= */
{
dpos -= woff;
@@ -2053,7 +2246,7 @@ _rl_move_cursor_relative (new, data)
of moving backwards. */
/* i == current physical cursor position. */
#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
i = _rl_last_c_pos;
else
#endif
@@ -2088,7 +2281,7 @@ _rl_move_cursor_relative (new, data)
in the buffer and we have to go back to the beginning of the screen
line. In this case, we can use the terminal sequence to move forward
if it's available. */
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ if (mb_cur_max > 1 && rl_byte_oriented == 0)
{
if (_rl_term_forward_char)
{
@@ -2246,7 +2439,7 @@ rl_message (va_alist)
msg_buf = xmalloc (msg_bufsiz = 128);
#if defined (HAVE_VSNPRINTF)
- bneed = vsnprintf (msg_buf, msg_bufsiz - 1, format, args);
+ bneed = vsnprintf (msg_buf, msg_bufsiz, format, args);
if (bneed >= msg_bufsiz - 1)
{
msg_bufsiz = bneed + 1;
@@ -2279,10 +2472,10 @@ rl_message (va_alist)
local_prompt = (char *)NULL;
}
rl_display_prompt = msg_buf;
- local_prompt = expand_prompt (msg_buf, &prompt_visible_length,
- &prompt_last_invisible,
- &prompt_invis_chars_first_line,
- &prompt_physical_chars);
+ local_prompt = expand_prompt (msg_buf, 0, &prompt_visible_length,
+ &prompt_last_invisible,
+ &prompt_invis_chars_first_line,
+ &prompt_physical_chars);
local_prompt_prefix = (char *)NULL;
local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
(*rl_redisplay_function) ();
@@ -2312,10 +2505,10 @@ rl_message (format, arg1, arg2)
FREE (local_prompt_prefix);
local_prompt = (char *)NULL;
}
- local_prompt = expand_prompt (msg_buf, &prompt_visible_length,
- &prompt_last_invisible,
- &prompt_invis_chars_first_line,
- &prompt_physical_chars);
+ local_prompt = expand_prompt (msg_buf, 0, &prompt_visible_length,
+ &prompt_last_invisible,
+ &prompt_invis_chars_first_line,
+ &prompt_physical_chars);
local_prompt_prefix = (char *)NULL;
local_prompt_len = local_prompt ? strlen (local_prompt) : 0;
(*rl_redisplay_function) ();
@@ -2502,7 +2695,7 @@ static void
open_some_spaces (col)
int col;
{
-#if !defined (__MSDOS__) && !defined (__MINGW32__)
+#if !defined (__MSDOS__) && (!defined (__MINGW32__) || defined (NCURSES_VERSION))
char *buffer;
register int i;
@@ -2531,7 +2724,7 @@ open_some_spaces (col)
for (i = col; i--; )
tputs (_rl_term_ic, 1, _rl_output_character_function);
}
-#endif /* !__MSDOS__ && !__MINGW32__ */
+#endif /* !__MSDOS__ && (!__MINGW32__ || NCURSES_VERSION)*/
}
/* Delete COUNT characters from the display line. */
@@ -2542,7 +2735,7 @@ delete_chars (count)
if (count > _rl_screenwidth) /* XXX */
return;
-#if !defined (__MSDOS__) && !defined (__MINGW32__)
+#if !defined (__MSDOS__) && (!defined (__MINGW32__) || defined (NCURSES_VERSION))
if (_rl_term_DC && *_rl_term_DC)
{
char *buffer;
@@ -2555,7 +2748,7 @@ delete_chars (count)
while (count--)
tputs (_rl_term_dc, 1, _rl_output_character_function);
}
-#endif /* !__MSDOS__ && !__MINGW32__ */
+#endif /* !__MSDOS__ && (!__MINGW32__ || NCURSES_VERSION)*/
}
void
@@ -2618,7 +2811,8 @@ redraw_prompt (t)
rl_save_prompt ();
rl_display_prompt = t;
- local_prompt = expand_prompt (t, &prompt_visible_length,
+ local_prompt = expand_prompt (t, PMT_MULTILINE,
+ &prompt_visible_length,
&prompt_last_invisible,
&prompt_invis_chars_first_line,
&prompt_physical_chars);
@@ -2699,6 +2893,12 @@ _rl_erase_entire_line ()
fflush (rl_outstream);
}
+void
+_rl_ttyflush ()
+{
+ fflush (rl_outstream);
+}
+
/* return the `current display line' of the cursor -- the number of lines to
move up to get to the first screen line of the current readline line. */
int
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 72b7985..a38bc9e 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -59,6 +59,8 @@ QUIETPS = #set this to -q to shut up dvips
PAPERSIZE = letter
PSDPI = 600
DVIPS = dvips -D ${PSDPI} $(QUIETPS) -t ${PAPERSIZE} -o $@ # tricky
+# experimental; uses external texi2dvi for now; this needs pdftex to be present
+TEXI2PDF = texi2dvi --pdf
# These tools might not be available; they're not required
DVIPDF = dvipdfm -o $@ -p ${PAPERSIZE}
@@ -101,6 +103,10 @@ DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ) $(INFOOBJ) $(TEXTOBJ) $(PDFOBJ)
$(RM) $@
-${DVIPDF} $<
+#.texi.pdf:
+# $(RM) $@
+# -${TEXI2PDF} $<
+
all: info dvi html ps text pdf
nodvi: info html text
@@ -170,9 +176,15 @@ history_3.ps: $(srcdir)/history.3
${RM} $@
${GROFF} -man < $(srcdir)/history.3 > $@
-readline.pdf: readline.dvi
-history.pdf: history.dvi
-rluserman.pdf: rluserman.dvi
+readline.pdf: $(RLSRC)
+ TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2PDF) $(srcdir)/rlman.texi
+ mv rlman.pdf $@
+
+history.pdf: $(HISTSRC)
+ TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2PDF) $(srcdir)/history.texi
+
+rluserman.pdf: $(RLSRC)
+ TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2PDF) $(srcdir)/rluserman.texi
clean:
$(RM) *.aux *.bak *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps \
diff --git a/doc/history.0 b/doc/history.0
index 22c4f47..e3cba11 100644
--- a/doc/history.0
+++ b/doc/history.0
@@ -1,24 +1,23 @@
-HISTORY(3) HISTORY(3)
+HISTORY(3) Library Functions Manual HISTORY(3)
-NNAAMMEE
+NAME
history - GNU History Library
-CCOOPPYYRRIIGGHHTT
- The GNU History Library is Copyright (C) 1989-2011 by the Free Software
+COPYRIGHT
+ The GNU History Library is Copyright (C) 1989-2014 by the Free Software
Foundation, Inc.
-DDEESSCCRRIIPPTTIIOONN
+DESCRIPTION
Many programs read input from the user a line at a time. The GNU His-
tory 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.
-
-HHIISSTTOORRYY EEXXPPAANNSSIIOONN
+HISTORY EXPANSION
The history library supports a history expansion feature that is iden-
- tical to the history expansion in bbaasshh.. This section describes what
+ tical to the history expansion in bash. This section describes what
syntax features are available.
History expansions introduce words from the history list into the input
@@ -30,104 +29,104 @@ HHIISSTTOORRYY EEXXPPAANNSSIIOONN
line is read. It takes place in two parts. The first is to determine
which line from the history list to use during substitution. The sec-
ond is to select portions of that line for inclusion into the current
- one. The line selected from the history is the _e_v_e_n_t, and the portions
- of that line that are acted upon are _w_o_r_d_s. Various _m_o_d_i_f_i_e_r_s are
+ one. The line selected from the history is the event, and the portions
+ of that line that are acted upon are words. Various modifiers are
available to manipulate the selected words. The line is broken into
- words in the same fashion as bbaasshh does when reading input, so that sev-
+ words in the same fashion as bash does when reading input, so that sev-
eral words that would otherwise be separated are considered one word
- when surrounded by quotes (see the description of hhiissttoorryy__ttookkeenniizzee(())
+ when surrounded by quotes (see the description of history_tokenize()
below). History expansions are introduced by the appearance of the
- history expansion character, which is !! by default. Only backslash (\\)
+ history expansion character, which is ! by default. Only backslash (\)
and single quotes can quote the history expansion character.
- EEvveenntt DDeessiiggnnaattoorrss
+ Event Designators
An event designator is a reference to a command line entry in the his-
tory list. Unless the reference is absolute, events are relative to
the current position in the history list.
- !! Start a history substitution, except when followed by a bbllaannkk,
+ ! Start a history substitution, except when followed by a blank,
newline, = or (.
- !!_n Refer to command line _n.
- !!--_n Refer to the current command minus _n.
- !!!! Refer to the previous command. This is a synonym for `!-1'.
- !!_s_t_r_i_n_g
+ !n Refer to command line n.
+ !-n Refer to the current command minus n.
+ !! Refer to the previous command. This is a synonym for `!-1'.
+ !string
Refer to the most recent command preceding the current position
- in the history list starting with _s_t_r_i_n_g.
- !!??_s_t_r_i_n_g[[??]]
+ in the history list starting with string.
+ !?string[?]
Refer to the most recent command preceding the current position
- in the history list containing _s_t_r_i_n_g. The trailing ?? may be
- omitted if _s_t_r_i_n_g is followed immediately by a newline.
- ^^_s_t_r_i_n_g_1^^_s_t_r_i_n_g_2^^
- Quick substitution. Repeat the last command, replacing _s_t_r_i_n_g_1
- with _s_t_r_i_n_g_2. Equivalent to ``!!:s/_s_t_r_i_n_g_1/_s_t_r_i_n_g_2/'' (see MMoodd--
- iiffiieerrss below).
- !!## The entire command line typed so far.
-
- WWoorrdd DDeessiiggnnaattoorrss
- Word designators are used to select desired words from the event. A ::
+ in the history list containing string. The trailing ? may be
+ omitted if string is followed immediately by a newline.
+ ^string1^string2^
+ Quick substitution. Repeat the last command, replacing string1
+ with string2. Equivalent to ``!!:s/string1/string2/'' (see Mod-
+ ifiers below).
+ !# The entire command line typed so far.
+
+ Word Designators
+ Word designators are used to select desired words from the event. A :
separates the event specification from the word designator. It may be
- omitted if the word designator begins with a ^^, $$, **, --, or %%. Words
+ omitted if the word designator begins with a ^, $, *, -, or %. Words
are numbered from the beginning of the line, with the first word being
denoted by 0 (zero). Words are inserted into the current line sepa-
rated by single spaces.
- 00 ((zzeerroo))
+ 0 (zero)
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
+ 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 `?_s_t_r_i_n_g?' search.
- _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
+ % The word matched by the most recent `?string?' search.
+ 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.
- xx** Abbreviates _x_-_$.
- xx-- Abbreviates _x_-_$ like xx**, but omits the last word.
+ x* Abbreviates x-$.
+ x- Abbreviates x-$ like x*, but omits the last word.
- 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.
- MMooddiiffiieerrss
- After the optional word designator, there may appear a sequence of one
+ Modifiers
+ After the optional word designator, there may appear a sequence of one
or more of the following modifiers, each preceded by a `:'.
- hh Remove a trailing file name component, leaving only the head.
- tt Remove all leading file name components, leaving the tail.
- rr Remove a trailing suffix of the form _._x_x_x, leaving the basename.
- ee Remove all but the trailing suffix.
- pp Print the new command but do not execute it.
- qq Quote the substituted words, escaping further substitutions.
- xx Quote the substituted words as with qq, but break into words at
- bbllaannkkss and newlines.
- ss//_o_l_d//_n_e_w//
- Substitute _n_e_w for the first occurrence of _o_l_d in the event
+ h Remove a trailing file name component, leaving only the head.
+ t Remove all leading file name components, leaving the tail.
+ r Remove a trailing suffix of the form .xxx, leaving the basename.
+ e Remove all but the trailing suffix.
+ 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.
+ 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 _o_l_d and _n_e_w with a single
- backslash. If & appears in _n_e_w, it is replaced by _o_l_d. A sin-
- gle backslash will quote the &. If _o_l_d is null, it is set to
- the last _o_l_d substituted, or, if no previous history substitu-
- tions took place, the last _s_t_r_i_n_g in a !!??_s_t_r_i_n_g[[??]] search.
- && Repeat the previous substitution.
- gg Cause changes to be applied over the entire event line. This is
- used in conjunction with `::ss' (e.g., `::ggss//_o_l_d//_n_e_w//') or `::&&'.
- If used with `::ss', any delimiter can be used in place of /, and
+ 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.
+ & 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 aa may be used as a synonym for gg.
- GG Apply the following `ss' modifier once to each word in the event
+ 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.
-PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNCCTTIIOONNSS
+PROGRAMMING WITH HISTORY FUNCTIONS
This section describes how to use the History library in other pro-
grams.
- IInnttrroodduuccttiioonn ttoo HHiissttoorryy
+ Introduction to History
The programmer using the History library has available functions for
remembering lines on a history list, associating arbitrary data with a
line, removing lines from the list, searching through the list for a
line containing an arbitrary text string, and referencing any line in
- the list directly. In addition, a history _e_x_p_a_n_s_i_o_n function is avail-
+ the list directly. In addition, a history expansion function is avail-
able which provides for a consistent user interface across different
programs.
@@ -135,7 +134,7 @@ PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNC
fit of a consistent user interface with a set of well-known commands
for manipulating the text of previous lines and using that text in new
commands. The basic history manipulation commands are identical to the
- history substitution provided by bbaasshh.
+ 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-
@@ -143,17 +142,17 @@ PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNC
Before declaring any functions using any functionality the History
library provides in other code, an application writer should include
- the file _<_r_e_a_d_l_i_n_e_/_h_i_s_t_o_r_y_._h_> in any file that uses the History
+ 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.
- HHiissttoorryy SSttoorraaggee
+ History Storage
The history list is an array of history entries. A history entry is
declared as follows:
- _t_y_p_e_d_e_f _v_o_i_d _* hhiissttddaattaa__tt;;
+ typedef void * histdata_t;
typedef struct _hist_entry {
char *line;
@@ -163,7 +162,7 @@ PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNC
The history list itself might therefore be declared as
- _H_I_S_T___E_N_T_R_Y _*_* tthhee__hhiissttoorryy__lliisstt;;
+ HIST_ENTRY ** the_history_list;
The state of the History library is encapsulated into a single struc-
ture:
@@ -179,192 +178,193 @@ PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNC
int flags;
} HISTORY_STATE;
- If the flags member includes HHSS__SSTTIIFFLLEEDD, the history has been stifled.
+ If the flags member includes HS_STIFLED, the history has been stifled.
-HHiissttoorryy FFuunnccttiioonnss
- This section describes the calling sequence for the various functions
+History Functions
+ This section describes the calling sequence for the various functions
exported by the GNU History library.
- IInniittiiaalliizziinngg HHiissttoorryy aanndd SSttaattee MMaannaaggeemmeenntt
- This section describes functions used to initialize and manage the
+ Initializing History and State Management
+ This section describes functions used to initialize and manage the
state of the History library when you want to use the history functions
in your program.
- _v_o_i_d uussiinngg__hhiissttoorryy (_v_o_i_d)
- Begin a session in which the history functions might be used. This
+ void using_history (void)
+ Begin a session in which the history functions might be used. This
initializes the interactive variables.
- _H_I_S_T_O_R_Y___S_T_A_T_E _* hhiissttoorryy__ggeett__hhiissttoorryy__ssttaattee (_v_o_i_d)
+ HISTORY_STATE * history_get_history_state (void)
Return a structure describing the current state of the input history.
- _v_o_i_d hhiissttoorryy__sseett__hhiissttoorryy__ssttaattee (_H_I_S_T_O_R_Y___S_T_A_T_E _*_s_t_a_t_e)
- Set the state of the history list according to _s_t_a_t_e.
+ void history_set_history_state (HISTORY_STATE *state)
+ Set the state of the history list according to state.
- HHiissttoorryy LLiisstt MMaannaaggeemmeenntt
- These functions manage individual entries on the history list, or set
+ History List Management
+ These functions manage individual entries on the history list, or set
parameters managing the list itself.
- _v_o_i_d aadddd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g)
- Place _s_t_r_i_n_g at the end of the history list. The associated data field
- (if any) is set to NNUULLLL.
+ void add_history (const char *string)
+ Place string at the end of the history list. The associated data field
+ (if any) is set to NULL.
- _v_o_i_d aadddd__hhiissttoorryy__ttiimmee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g)
- Change the time stamp associated with the most recent history entry to
- _s_t_r_i_n_g.
+ void add_history_time (const char *string)
+ Change the time stamp associated with the most recent history entry to
+ string.
- _H_I_S_T___E_N_T_R_Y _* rreemmoovvee__hhiissttoorryy (_i_n_t _w_h_i_c_h)
- Remove history entry at offset _w_h_i_c_h from the history. The removed
- element is returned so you can free the line, data, and containing
+ 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.
- _h_i_s_t_d_a_t_a___t ffrreeee__hhiissttoorryy__eennttrryy (_H_I_S_T___E_N_T_R_Y _*_h_i_s_t_e_n_t)
- Free the history entry _h_i_s_t_e_n_t and any history library private data
- associated with it. Returns the application-specific data so the
- caller can dispose of it.
+ 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.
- _H_I_S_T___E_N_T_R_Y _* rreeppllaaccee__hhiissttoorryy__eennttrryy (_i_n_t _w_h_i_c_h_, _c_o_n_s_t _c_h_a_r _*_l_i_n_e_, _h_i_s_t_-
- _d_a_t_a___t _d_a_t_a)
- Make the history entry at offset _w_h_i_c_h have _l_i_n_e and _d_a_t_a. This
+ 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 _w_h_i_c_h, a NNUULLLL pointer is
+ cific data. In the case of an invalid which, a NULL pointer is
returned.
- _v_o_i_d cclleeaarr__hhiissttoorryy (_v_o_i_d)
+ void clear_history (void)
Clear the history list by deleting all the entries.
- _v_o_i_d ssttiiffllee__hhiissttoorryy (_i_n_t _m_a_x)
- Stifle the history list, remembering only the last _m_a_x entries.
+ void stifle_history (int max)
+ Stifle the history list, remembering only the last max entries.
- _i_n_t uunnssttiiffllee__hhiissttoorryy (_v_o_i_d)
- Stop stifling the history. This returns the previously-set maximum
- number of history entries (as set by ssttiiffllee__hhiissttoorryy(())). history was
+ int unstifle_history (void)
+ Stop stifling the history. This returns the previously-set maximum
+ number of history entries (as set by stifle_history()). history was
stifled. The value is positive if the history was stifled, negative if
it wasn't.
- _i_n_t hhiissttoorryy__iiss__ssttiifflleedd (_v_o_i_d)
+ int history_is_stifled (void)
Returns non-zero if the history is stifled, zero if it is not.
- IInnffoorrmmaattiioonn AAbboouutt tthhee HHiissttoorryy LLiisstt
- These functions return information about the entire history list or
+ Information About the History List
+ These functions return information about the entire history list or
individual list entries.
- _H_I_S_T___E_N_T_R_Y _*_* hhiissttoorryy__lliisstt (_v_o_i_d)
- Return a NNUULLLL terminated array of _H_I_S_T___E_N_T_R_Y _* which is the current
- input history. Element 0 of this list is the beginning of time. If
- there is no history, return NNUULLLL.
+ 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
+ there is no history, return NULL.
- _i_n_t wwhheerree__hhiissttoorryy (_v_o_i_d)
+ int where_history (void)
Returns the offset of the current history element.
- _H_I_S_T___E_N_T_R_Y _* ccuurrrreenntt__hhiissttoorryy (_v_o_i_d)
- Return the history entry at the current position, as determined by
- wwhheerree__hhiissttoorryy(()). If there is no entry there, return a NNUULLLL pointer.
+ HIST_ENTRY * current_history (void)
+ Return the history entry at the current position, as determined by
+ where_history(). If there is no entry there, return a NULL pointer.
- _H_I_S_T___E_N_T_R_Y _* hhiissttoorryy__ggeett (_i_n_t _o_f_f_s_e_t)
- Return the history entry at position _o_f_f_s_e_t, starting from hhiiss--
- ttoorryy__bbaassee. If there is no entry there, or if _o_f_f_s_e_t is greater than
- the history length, return a NNUULLLL pointer.
+ HIST_ENTRY * history_get (int offset)
+ Return the history entry at position offset, starting from his-
+ tory_base. If there is no entry there, or if offset is greater than
+ the history length, return a NULL pointer.
- _t_i_m_e___t hhiissttoorryy__ggeett__ttiimmee (_H_I_S_T___E_N_T_R_Y _*)
- Return the time stamp associated with the history entry passed as the
+ time_t history_get_time (HIST_ENTRY *)
+ Return the time stamp associated with the history entry passed as the
argument.
- _i_n_t hhiissttoorryy__ttoottaall__bbyytteess (_v_o_i_d)
- Return the number of bytes that the primary history entries are using.
- This function returns the sum of the lengths of all the lines in the
+ int history_total_bytes (void)
+ Return the number of bytes that the primary history entries are using.
+ This function returns the sum of the lengths of all the lines in the
history.
- MMoovviinngg AArroouunndd tthhee HHiissttoorryy LLiisstt
+ Moving Around the History List
These functions allow the current index into the history list to be set
or changed.
- _i_n_t hhiissttoorryy__sseett__ppooss (_i_n_t _p_o_s)
- Set the current history offset to _p_o_s, an absolute index into the list.
- Returns 1 on success, 0 if _p_o_s is less than zero or greater than the
+ int history_set_pos (int pos)
+ Set the current history offset to pos, an absolute index into the list.
+ Returns 1 on success, 0 if pos is less than zero or greater than the
number of history entries.
- _H_I_S_T___E_N_T_R_Y _* pprreevviioouuss__hhiissttoorryy (_v_o_i_d)
- Back up the current history offset to the previous history entry, and
- return a pointer to that entry. If there is no previous entry, return
- a NNUULLLL pointer.
+ HIST_ENTRY * previous_history (void)
+ Back up the current history offset to the previous history entry, and
+ return a pointer to that entry. If there is no previous entry, return
+ a NULL pointer.
- _H_I_S_T___E_N_T_R_Y _* nneexxtt__hhiissttoorryy (_v_o_i_d)
- Move the current history offset forward to the next history entry, and
- return the a pointer to that entry. If there is no next entry, return
- a NNUULLLL pointer.
+ HIST_ENTRY * next_history (void)
+ If the current history offset refers to a valid history entry, incre-
+ ment the current history offset. If the possibly-incremented history
+ offset refers to a valid history entry, return a pointer to that entry;
+ otherwise, return a NULL pointer.
- SSeeaarrcchhiinngg tthhee HHiissttoorryy LLiisstt
+ 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
- _a_n_c_h_o_r_e_d, meaning that the string must match at the beginning of the
+ anchored, meaning that the string must match at the beginning of the
history entry.
- _i_n_t hhiissttoorryy__sseeaarrcchh (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n)
- Search the history for _s_t_r_i_n_g, starting at the current history offset.
- If _d_i_r_e_c_t_i_o_n is less than 0, then the search is through previous
- entries, otherwise through subsequent entries. If _s_t_r_i_n_g is found,
+ 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 _s_t_r_i_n_g was
+ value returned is the offset in the line of the entry where string was
found. Otherwise, nothing is changed, and a -1 is returned.
- _i_n_t hhiissttoorryy__sseeaarrcchh__pprreeffiixx (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n)
- Search the history for _s_t_r_i_n_g, starting at the current history offset.
- The search is anchored: matching lines must begin with _s_t_r_i_n_g. If
- _d_i_r_e_c_t_i_o_n is less than 0, then the search is through previous entries,
- otherwise through subsequent entries. If _s_t_r_i_n_g is found, then the
+ 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,
+ 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.
- _i_n_t hhiissttoorryy__sseeaarrcchh__ppooss (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n_, _i_n_t _p_o_s)
- Search for _s_t_r_i_n_g in the history list, starting at _p_o_s, an absolute
- index into the list. If _d_i_r_e_c_t_i_o_n is negative, the search proceeds
- backward from _p_o_s, otherwise forward. Returns the absolute index of
- the history element where _s_t_r_i_n_g was found, or -1 otherwise.
+ 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.
- MMaannaaggiinngg tthhee HHiissttoorryy FFiillee
+ Managing the History File
The History library can read the history from and write it to a file.
This section documents the functions for managing a history file.
- _i_n_t rreeaadd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e)
- Add the contents of _f_i_l_e_n_a_m_e to the history list, a line at a time. If
- _f_i_l_e_n_a_m_e is NNUULLLL, then read from _~_/_._h_i_s_t_o_r_y. Returns 0 if successful,
- or eerrrrnnoo if not.
+ int read_history (const char *filename)
+ Add the contents of filename to the history list, a line at a time. If
+ filename is NULL, then read from ~/.history. Returns 0 if successful,
+ or errno if not.
- _i_n_t rreeaadd__hhiissttoorryy__rraannggee (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e_, _i_n_t _f_r_o_m_, _i_n_t _t_o)
- Read a range of lines from _f_i_l_e_n_a_m_e, adding them to the history list.
- Start reading at line _f_r_o_m and end at _t_o. If _f_r_o_m is zero, start at
- the beginning. If _t_o is less than _f_r_o_m, then read until the end of the
- file. If _f_i_l_e_n_a_m_e is NNUULLLL, then read from _~_/_._h_i_s_t_o_r_y. Returns 0 if
- successful, or eerrrrnnoo if not.
+ int read_history_range (const char *filename, int from, int to)
+ Read a range of lines from filename, adding them to the history list.
+ Start reading at line from and end at to. If from is zero, start at
+ the beginning. If to is less than from, then read until the end of the
+ file. If filename is NULL, then read from ~/.history. Returns 0 if
+ successful, or errno if not.
- _i_n_t wwrriittee__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e)
- Write the current history to _f_i_l_e_n_a_m_e, overwriting _f_i_l_e_n_a_m_e if neces-
- sary. If _f_i_l_e_n_a_m_e is NNUULLLL, then write the history list to _~_/_._h_i_s_t_o_r_y.
- Returns 0 on success, or eerrrrnnoo on a read or write error.
+ int write_history (const char *filename)
+ Write the current history to filename, overwriting filename if neces-
+ sary. If filename is NULL, then write the history list to ~/.history.
+ Returns 0 on success, or errno on a read or write error.
- _i_n_t aappppeenndd__hhiissttoorryy (_i_n_t _n_e_l_e_m_e_n_t_s_, _c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e)
- Append the last _n_e_l_e_m_e_n_t_s of the history list to _f_i_l_e_n_a_m_e. If _f_i_l_e_n_a_m_e
- is NNUULLLL, then append to _~_/_._h_i_s_t_o_r_y. Returns 0 on success, or eerrrrnnoo on
+ int append_history (int nelements, const char *filename)
+ Append the last nelements of the history list to filename. If filename
+ is NULL, then append to ~/.history. Returns 0 on success, or errno on
a read or write error.
- _i_n_t hhiissttoorryy__ttrruunnccaattee__ffiillee (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e_, _i_n_t _n_l_i_n_e_s)
- Truncate the history file _f_i_l_e_n_a_m_e, leaving only the last _n_l_i_n_e_s lines.
- If _f_i_l_e_n_a_m_e is NNUULLLL, then _~_/_._h_i_s_t_o_r_y is truncated. Returns 0 on suc-
- cess, or eerrrrnnoo on failure.
+ int history_truncate_file (const char *filename, int nlines)
+ Truncate the history file filename, leaving only the last nlines lines.
+ If filename is NULL, then ~/.history is truncated. Returns 0 on suc-
+ cess, or errno on failure.
- HHiissttoorryy EExxppaannssiioonn
+ History Expansion
These functions implement history expansion.
- _i_n_t hhiissttoorryy__eexxppaanndd (_c_h_a_r _*_s_t_r_i_n_g_, _c_h_a_r _*_*_o_u_t_p_u_t)
- Expand _s_t_r_i_n_g, placing the result into _o_u_t_p_u_t, a pointer to a string.
+ int history_expand (char *string, char **output)
+ Expand string, placing the result into output, a pointer to a string.
Returns:
0 If no expansions took place (or, if the only change in
the text was the removal of escape characters preceding
@@ -372,123 +372,124 @@ HHiissttoorryy FFuunnccttiioonnss
1 if expansions did take place;
-1 if there was an error in expansion;
2 if the returned line should be displayed, but not exe-
- cuted, as with the ::pp modifier.
- If an error ocurred in expansion, then _o_u_t_p_u_t contains a descriptive
+ cuted, as with the :p modifier.
+ If an error ocurred in expansion, then output contains a descriptive
error message.
- _c_h_a_r _* ggeett__hhiissttoorryy__eevveenntt (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _*_c_i_n_d_e_x_, _i_n_t _q_c_h_a_r)
- Returns the text of the history event beginning at _s_t_r_i_n_g + _*_c_i_n_d_e_x.
- _*_c_i_n_d_e_x is modified to point to after the event specifier. At function
- entry, _c_i_n_d_e_x points to the index into _s_t_r_i_n_g where the history event
- specification begins. _q_c_h_a_r is a character that is allowed to end the
+ char * get_history_event (const char *string, int *cindex, int qchar)
+ Returns the text of the history event beginning at string + *cindex.
+ *cindex is modified to point to after the event specifier. At function
+ entry, cindex points to the index into string where the history event
+ specification begins. qchar is a character that is allowed to end the
event specification in addition to the ``normal'' terminating charac-
ters.
- _c_h_a_r _*_* hhiissttoorryy__ttookkeenniizzee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g)
- Return an array of tokens parsed out of _s_t_r_i_n_g, much as the shell
- might. The tokens are split on the characters in the hhiiss--
- ttoorryy__wwoorrdd__ddeelliimmiitteerrss variable, and shell quoting conventions are
+ 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.
- _c_h_a_r _* hhiissttoorryy__aarrgg__eexxttrraacctt (_i_n_t _f_i_r_s_t_, _i_n_t _l_a_s_t_, _c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g)
- Extract a string segment consisting of the _f_i_r_s_t through _l_a_s_t arguments
- present in _s_t_r_i_n_g. Arguments are split using hhiissttoorryy__ttookkeenniizzee(()).
+ char * history_arg_extract (int first, int last, const char *string)
+ Extract a string segment consisting of the first through last arguments
+ present in string. Arguments are split using history_tokenize().
- HHiissttoorryy VVaarriiaabblleess
+ History Variables
This section describes the externally-visible variables exported by the
GNU History Library.
- _i_n_t hhiissttoorryy__bbaassee
+ int history_base
The logical offset of the first entry in the history list.
- _i_n_t hhiissttoorryy__lleennggtthh
+ int history_length
The number of entries currently stored in the history list.
- _i_n_t hhiissttoorryy__mmaaxx__eennttrriieess
- The maximum number of history entries. This must be changed using ssttii--
- ffllee__hhiissttoorryy(()).
+ int history_max_entries
+ The maximum number of history entries. This must be changed using sti-
+ fle_history().
- _i_n_t hhiissttoorryy__wwiittee__ttiimmeessttaammppss
+ int history_wite_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
- _h_i_s_t_o_r_y___c_o_m_m_e_n_t___c_h_a_r to delimit timestamp entries in the history file.
+ 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.
- _c_h_a_r hhiissttoorryy__eexxppaannssiioonn__cchhaarr
- The character that introduces a history event. The default is !!. Set-
+ char history_expansion_char
+ The character that introduces a history event. The default is !. Set-
ting this to 0 inhibits history expansion.
- _c_h_a_r hhiissttoorryy__ssuubbsstt__cchhaarr
+ char history_subst_char
The character that invokes word substitution if found at the start of a
- line. The default is ^^.
+ line. The default is ^.
- _c_h_a_r hhiissttoorryy__ccoommmmeenntt__cchhaarr
+ char history_comment_char
During tokenization, if this character is seen as the first character
of a word, then it and all subsequent characters up to a newline are
ignored, suppressing history expansion for the remainder of the line.
This is disabled by default.
- _c_h_a_r _* hhiissttoorryy__wwoorrdd__ddeelliimmiitteerrss
- The characters that separate tokens for hhiissttoorryy__ttookkeenniizzee(()). The
- default value is "" \\tt\\nn(())<<>>;;&&||"".
+ char * history_word_delimiters
+ The characters that separate tokens for history_tokenize(). The
+ default value is " \t\n()<>;&|".
- _c_h_a_r _* hhiissttoorryy__nnoo__eexxppaanndd__cchhaarrss
+ char * history_no_expand_chars
The list of characters which inhibit history expansion if found immedi-
- ately following hhiissttoorryy__eexxppaannssiioonn__cchhaarr. The default is space, tab,
- newline, \\rr, and ==.
+ ately following history_expansion_char. The default is space, tab,
+ newline, \r, and =.
- _c_h_a_r _* hhiissttoorryy__sseeaarrcchh__ddeelliimmiitteerr__cchhaarrss
+ 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
+ string, in addition to space, tab, : and ? in the case of a substring
search. The default is empty.
- _i_n_t hhiissttoorryy__qquuootteess__iinnhhiibbiitt__eexxppaannssiioonn
- If non-zero, single-quoted words are not scanned for the history expan-
- sion character. The default value is 0.
-
- _r_l___l_i_n_e_b_u_f___f_u_n_c___t _* hhiissttoorryy__iinnhhiibbiitt__eexxppaannssiioonn__ffuunnccttiioonn
- This should be set to the address of a function that takes two argu-
- ments: a cchhaarr ** (_s_t_r_i_n_g) and an iinntt index into that string (_i). It
- should return a non-zero value if the history expansion starting at
- _s_t_r_i_n_g_[_i_] should not be performed; zero if the expansion should be
- done. It is intended for use by applications like bbaasshh that use the
- history expansion character for additional purposes. By default, this
- variable is set to NNUULLLL.
-
-FFIILLEESS
- _~_/_._h_i_s_t_o_r_y
+ 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
+ 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
+ variable is set to NULL.
+
+FILES
+ ~/.history
Default filename for reading and writing saved history
-SSEEEE AALLSSOO
- _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _b_a_s_h(1)
- _r_e_a_d_l_i_n_e(3)
+SEE ALSO
+ The Gnu Readline Library, Brian Fox and Chet Ramey
+ The Gnu History Library, Brian Fox and Chet Ramey
+ bash(1)
+ readline(3)
-AAUUTTHHOORRSS
+AUTHORS
Brian Fox, Free Software Foundation
bfox@gnu.org
Chet Ramey, Case Western Reserve University
chet.ramey@case.edu
-BBUUGG RREEPPOORRTTSS
- If you find a bug in the hhiissttoorryy 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 hhiissttoorryy library that you have.
+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 _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g. If you have a fix, you are welcome to mail
- that as well! Suggestions and `philosophical' bug reports may be
- mailed to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g or posted to the Usenet newsgroup
- ggnnuu..bbaasshh..bbuugg.
+ 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
- to _c_h_e_t_._r_a_m_e_y_@_c_a_s_e_._e_d_u.
+ to chet.ramey@case.edu.
-GNU History 6.3 2013 June 27 HISTORY(3)
+GNU History 6.3 2015 May 24 HISTORY(3)
diff --git a/doc/history.3 b/doc/history.3
index ada9a38..7ddc26a 100644
--- a/doc/history.3
+++ b/doc/history.3
@@ -6,9 +6,9 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
-.\" Last Change: Thu Thu Jun 27 10:34:44 EDT 2013
+.\" Last Change: Sun May 24 18:01:17 EDT 2015
.\"
-.TH HISTORY 3 "2013 June 27" "GNU History 6.3"
+.TH HISTORY 3 "2015 May 24" "GNU History 6.3"
.\"
.\" 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-2011 by the Free Software Foundation, Inc.
-.if n The GNU History Library is Copyright (C) 1989-2011 by the Free Software Foundation, Inc.
+.if t The GNU History Library is Copyright \(co 1989-2014 by the Free Software Foundation, Inc.
+.if n The GNU History Library is Copyright (C) 1989-2014 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
@@ -134,7 +134,7 @@ The entire command line typed so far.
.SS Word Designators
.PP
Word designators are used to select desired words from the event.
-A
+A
.B :
separates the event specification from the word designator.
It may be omitted if the word designator begins with a
@@ -441,9 +441,11 @@ return a pointer to that entry. If there is no previous entry, return
a \fBNULL\fP pointer.
.Fn1 "HIST_ENTRY *" next_history "void"
-Move the current history offset forward to the next history entry, and
-return the a pointer to that entry. If there is no next entry, return
-a \fBNULL\fP pointer.
+If the current history offset refers to a valid history entry,
+increment the current history offset.
+If the possibly-incremented history offset refers to a valid history
+entry, return a pointer to that entry;
+otherwise, return a \fBNULL\fP pointer.
.SS Searching the History List
@@ -613,8 +615,8 @@ string, in addition to space, tab, \fI:\fP and \fI?\fP in the case of
a substring search. The default is empty.
.Vb int history_quotes_inhibit_expansion
-If non-zero, single-quoted words are not scanned for the history expansion
-character. The default value is 0.
+If non-zero, double-quoted words are not scanned for the history expansion
+character or the history comment character. The default value is 0.
.Vb "rl_linebuf_func_t *" history_inhibit_expansion_function
This should be set to the address of a function that takes two arguments:
diff --git a/doc/history.dvi b/doc/history.dvi
index 2316eae..cc7924c 100644
--- a/doc/history.dvi
+++ b/doc/history.dvi
Binary files differ
diff --git a/doc/history.html b/doc/history.html
index 0753504..6af5600 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 February, 11 2014 by texi2html 1.64 -->
+<!-- Created on September, 7 2016 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -751,6 +751,7 @@ is greater than the history length, return a <CODE>NULL</CODE> pointer.
<DL>
<DT><U>Function:</U> time_t <B>history_get_time</B> <I>(HIST_ENTRY *entry)</I>
<DD>Return the time stamp associated with the history entry <VAR>entry</VAR>.
+If the timestamp is missing or invalid, return 0.
</DL>
</P><P>
@@ -807,9 +808,11 @@ a <CODE>NULL</CODE> pointer.
<A NAME="IDX22"></A>
<DL>
<DT><U>Function:</U> HIST_ENTRY * <B>next_history</B> <I>(void)</I>
-<DD>Move the current history offset forward to the next history entry, and
-return the a pointer to that entry. If there is no next entry, return
-a <CODE>NULL</CODE> pointer.
+<DD>If the current history offset refers to a valid history entry,
+increment the current history offset.
+If the possibly-incremented history offset refers to a valid history
+entry, return a pointer to that entry;
+otherwise, return a <CODE>BNULL</CODE> pointer.
</DL>
</P><P>
@@ -1138,8 +1141,8 @@ carriage return, and <SAMP>`='</SAMP>.
<A NAME="IDX46"></A>
<DL>
<DT><U>Variable:</U> int <B>history_quotes_inhibit_expansion</B>
-<DD>If non-zero, single-quoted words are not scanned for the history expansion
-character. The default value is 0.
+<DD>If non-zero, double-quoted words are not scanned for the history expansion
+character or the history comment character. The default value is 0.
</DL>
</P><P>
@@ -2127,7 +2130,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>February, 11 2014</I>
+This document was generated by <I>chet</I> on <I>September, 7 2016</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -2289,7 +2292,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>February, 11 2014</I>
+by <I>chet</I> on <I>September, 7 2016</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 2d4c785..e23efc3 100644
--- a/doc/history.info
+++ b/doc/history.info
@@ -1,11 +1,11 @@
-This is history.info, produced by makeinfo version 4.13 from
-/usr/homes/chet/src/bash/readline-src/doc/history.texi.
+This is history.info, produced by makeinfo version 6.1 from
+history.texi.
-This document describes the GNU History library (version 6.3, 6 January
-2014), a programming tool that provides a consistent user interface for
+This document describes the GNU History library (version 7.0, 16 July
+2016), a programming tool that provides a consistent user interface for
recalling lines of previously typed input.
- Copyright (C) 1988-2014 Free Software Foundation, Inc.
+ Copyright (C) 1988-2016 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -14,7 +14,6 @@ recalling lines of previously typed input.
no Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License".
-
INFO-DIR-SECTION Libraries
START-INFO-DIR-ENTRY
* History: (history). The GNU history library API.
@@ -47,8 +46,8 @@ File: history.info, Node: Using History Interactively, Next: Programming with
This chapter describes how to use the GNU History Library interactively,
from a user's standpoint. It should be considered a user's guide. For
-information on using the GNU History Library in your own programs,
-*note Programming with GNU History::.
+information on using the GNU History Library in your own programs, *note
+Programming with GNU History::.
* Menu:
@@ -61,12 +60,12 @@ File: history.info, Node: History Interaction, Up: Using History Interactively
=====================
The History library provides a history expansion feature that is similar
-to the history expansion provided by `csh'. This section describes the
+to the history expansion provided by 'csh'. This section describes the
syntax used to manipulate the history information.
History expansions introduce words from the history list into the
-input stream, making it easy to repeat commands, insert the arguments
-to a previous command into the current input line, or fix errors in
+input stream, making it easy to repeat commands, insert the arguments to
+a previous command into the current input line, or fix errors in
previous commands quickly.
History expansion takes place in two parts. The first is to
@@ -74,11 +73,11 @@ determine which line from the history list should be used during
substitution. The second is to select portions of that line for
inclusion into the current one. The line selected from the history is
called the "event", and the portions of that line that are acted upon
-are called "words". Various "modifiers" are available to manipulate
-the selected words. The line is broken into words in the same fashion
-that Bash does, so that several words surrounded by quotes are
-considered one word. History expansions are introduced by the
-appearance of the history expansion character, which is `!' by default.
+are called "words". Various "modifiers" are available to manipulate the
+selected words. The line is broken into words in the same fashion that
+Bash does, so that several words surrounded by quotes are considered one
+word. History expansions are introduced by the appearance of the
+history expansion character, which is '!' by default.
* Menu:
@@ -94,96 +93,94 @@ File: history.info, Node: Event Designators, Next: Word Designators, Up: Hist
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 position in the history list.
+the current position in the history list.
-`!'
+'!'
Start a history substitution, except when followed by a space, tab,
- the end of the line, or `='.
+ the end of the line, or '='.
-`!N'
+'!N'
Refer to command line N.
-`!-N'
+'!-N'
Refer to the command N lines back.
-`!!'
- Refer to the previous command. This is a synonym for `!-1'.
+'!!'
+ Refer to the previous command. This is a synonym for '!-1'.
-`!STRING'
+'!STRING'
Refer to the most recent command preceding the current position in
the history list starting with STRING.
-`!?STRING[?]'
+'!?STRING[?]'
Refer to the most recent command preceding the current position in
- the history list containing STRING. The trailing `?' may be
+ the history list containing STRING. The trailing '?' may be
omitted if the STRING is followed immediately by a newline.
-`^STRING1^STRING2^'
+'^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.
-

File: history.info, Node: Word Designators, Next: Modifiers, Prev: Event Designators, Up: History Interaction
1.1.2 Word Designators
----------------------
-Word designators are used to select desired words from the event. A
-`:' separates the event specification from the word designator. It may
-be omitted if the word designator begins with a `^', `$', `*', `-', or
-`%'. Words are numbered from the beginning of the line, with the first
-word being denoted by 0 (zero). Words are inserted into the current
-line separated by single spaces.
+Word designators are used to select desired words from the event. A ':'
+separates the event specification from the word designator. It may be
+omitted if the word designator begins with a '^', '$', '*', '-', or '%'.
+Words are numbered from the beginning of the line, with the first word
+being denoted by 0 (zero). Words are inserted into the current line
+separated by single spaces.
For example,
-`!!'
+'!!'
designates the preceding command. When you type this, the
preceding command is repeated in toto.
-`!!:$'
+'!!:$'
designates the last argument of the preceding command. This may be
- shortened to `!$'.
+ shortened to '!$'.
-`!fi:2'
+'!fi:2'
designates the second argument of the most recent command starting
- with the letters `fi'.
+ with the letters 'fi'.
Here are the word designators:
-`0 (zero)'
- The `0'th word. For many applications, this is the command word.
+'0 (zero)'
+ The '0'th word. For many applications, this is the command word.
-`N'
+'N'
The Nth word.
-`^'
+'^'
The first argument; that is, word 1.
-`$'
+'$'
The last argument.
-`%'
- The word matched by the most recent `?STRING?' search.
+'%'
+ The word matched by the most recent '?STRING?' search.
-`X-Y'
- A range of words; `-Y' abbreviates `0-Y'.
+'X-Y'
+ A range of words; '-Y' abbreviates '0-Y'.
-`*'
- All of the words, except the `0'th. This is a synonym for `1-$'.
- It is not an error to use `*' if there is just one word in the
+'*'
+ All of the words, except the '0'th. 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-$'
+'X-'
+ Abbreviates 'X-$' like 'X*', but omits the last word.
If a word designator is supplied without an event specification, the
previous command is used as the event.
@@ -195,43 +192,42 @@ 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 ':'.
-`h'
+'h'
Remove a trailing pathname component, leaving only the head.
-`t'
+'t'
Remove all leading pathname components, leaving the tail.
-`r'
- Remove a trailing suffix of the form `.SUFFIX', leaving the
+'r'
+ Remove a trailing suffix of the form '.SUFFIX', leaving the
basename.
-`e'
+'e'
Remove all but the trailing suffix.
-`p'
+'p'
Print the new command but do not execute it.
-`s/OLD/NEW/'
+'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 delimiter may be used in place of '/'. The delimiter may be
+ quoted in OLD and NEW with a single backslash. If '&' appears in
+ NEW, it is replaced by OLD. A single backslash will quote the '&'.
+ The final delimiter is optional if it is the last character on the
+ input line.
-`&'
+'&'
Repeat the previous substitution.
-`g'
-`a'
+'g'
+'a'
Cause changes to be applied over the entire event line. Used in
- conjunction with `s', as in `gs/OLD/NEW/', or with `&'.
-
-`G'
- Apply the following `s' modifier once to each word in the event.
+ conjunction with 's', as in 'gs/OLD/NEW/', or with '&'.
+'G'
+ Apply the following 's' 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
@@ -239,10 +235,10 @@ File: history.info, Node: Programming with GNU History, Next: GNU Free Documen
2 Programming with GNU History
******************************
-This chapter describes how to interface programs that you write with
-the GNU History Library. It should be considered a technical guide.
-For information on the interactive use of GNU History, *note Using
-History Interactively::.
+This chapter describes how to interface programs that you write with the
+GNU History Library. It should be considered a technical guide. For
+information on the interactive use of GNU History, *note Using History
+Interactively::.
* Menu:
@@ -272,21 +268,21 @@ available which provides for a consistent user interface across
different programs.
The user using programs written with the History library has the
-benefit of a consistent user interface with a set of well-known
-commands for manipulating the text of previous lines and using that text
-in new commands. The basic history manipulation commands are similar to
-the history substitution provided by `csh'.
+benefit of a consistent user interface with a set of well-known commands
+for manipulating the text of previous lines and using that text in new
+commands. The basic history manipulation commands are similar to the
+history substitution provided by 'csh'.
If the programmer desires, he can use the Readline library, which
includes some history manipulation by default, and has the added
advantage of command line editing.
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
-public data structures.
+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 public data
+structures.

File: history.info, Node: History Storage, Next: History Functions, Prev: Introduction to History, Up: Programming with GNU History
@@ -323,7 +319,7 @@ structure:
int flags;
} HISTORY_STATE;
- If the flags member includes `HS_STIFLED', the history has been
+ If the flags member includes 'HS_STIFLED', the history has been
stifled.

@@ -359,9 +355,9 @@ File: history.info, Node: Initializing History and State Management, Next: His
2.3.1 Initializing History and State Management
-----------------------------------------------
-This section describes functions used to initialize and manage the
-state of the History library when you want to use the history functions
-in your program.
+This section describes functions used to initialize and manage the state
+of the History library when you want to use the history functions in
+your program.
-- Function: void using_history (void)
Begin a session in which the history functions might be used. This
@@ -385,28 +381,28 @@ parameters managing the list itself.
-- Function: void add_history (const char *string)
Place STRING at the end of the history list. The associated data
- field (if any) is set to `NULL'.
+ field (if any) is set to 'NULL'.
-- Function: void add_history_time (const char *string)
- Change the time stamp associated with the most recent history
- entry to STRING.
+ Change the time stamp associated with the most recent history entry
+ to STRING.
-- Function: HIST_ENTRY * remove_history (int which)
- Remove history entry at offset WHICH from the history. The
- removed element is returned so you can free the line, data, and
- containing structure.
+ Remove history entry at offset WHICH from the history. The removed
+ element is returned so you can free the line, data, and containing
+ structure.
-- Function: 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 caller can dispose of it.
+ Free the history entry HISTENT and any history library private data
+ associated with it. Returns the application-specific data so the
+ caller can dispose of it.
-- Function: HIST_ENTRY * replace_history_entry (int which, const char
*line, histdata_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-specific data. In the case of an invalid WHICH, a
- `NULL' pointer is returned.
+ 'NULL' pointer is returned.
-- Function: void clear_history (void)
Clear the history list by deleting all the entries.
@@ -415,9 +411,9 @@ parameters managing the list itself.
Stifle the history list, remembering only the last MAX entries.
-- Function: int unstifle_history (void)
- Stop stifling the history. This returns the previously-set
- maximum number of history entries (as set by `stifle_history()').
- The value is positive if the history was stifled, negative if it
+ Stop stifling the history. This returns the previously-set maximum
+ number of history entries (as set by 'stifle_history()'). The
+ value is positive if the history was stifled, negative if it
wasn't.
-- Function: int history_is_stifled (void)
@@ -433,26 +429,27 @@ These functions return information about the entire history list or
individual list entries.
-- Function: HIST_ENTRY ** history_list (void)
- Return a `NULL' terminated array of `HIST_ENTRY *' which is the
+ Return a 'NULL' terminated array of 'HIST_ENTRY *' which is the
current input history. Element 0 of this list is the beginning of
- time. If there is no history, return `NULL'.
+ time. If there is no history, return 'NULL'.
-- Function: int where_history (void)
Returns the offset of the current history element.
-- Function: HIST_ENTRY * current_history (void)
Return the history entry at the current position, as determined by
- `where_history()'. If there is no entry there, return a `NULL'
+ 'where_history()'. If there is no entry there, return a 'NULL'
pointer.
-- Function: HIST_ENTRY * history_get (int offset)
Return the history entry at position OFFSET, starting from
- `history_base' (*note History Variables::). If there is no entry
+ 'history_base' (*note History Variables::). If there is no entry
there, or if OFFSET is greater than the history length, return a
- `NULL' pointer.
+ 'NULL' pointer.
-- Function: time_t history_get_time (HIST_ENTRY *entry)
- Return the time stamp associated with the history entry ENTRY.
+ Return the time stamp associated with the history entry ENTRY. If
+ the timestamp is missing or invalid, return 0.
-- Function: int history_total_bytes (void)
Return the number of bytes that the primary history entries are
@@ -475,13 +472,14 @@ or changed.
-- Function: HIST_ENTRY * previous_history (void)
Back up the current history offset to the previous history entry,
- and return a pointer to that entry. If there is no previous
- entry, return a `NULL' pointer.
+ and return a pointer to that entry. If there is no previous entry,
+ return a 'NULL' pointer.
-- Function: HIST_ENTRY * next_history (void)
- Move the current history offset forward to the next history entry,
- and return the a pointer to that entry. If there is no next
- entry, return a `NULL' pointer.
+ If the current history offset refers to a valid history entry,
+ increment the current history offset. If the possibly-incremented
+ history offset refers to a valid history entry, return a pointer to
+ that entry; otherwise, return a 'BNULL' pointer.

File: history.info, Node: Searching the History List, Next: Managing the History File, Prev: Moving Around the History List, Up: History Functions
@@ -493,7 +491,7 @@ These functions allow searching of the history list for entries
containing a specific string. Searching may be performed both forward
and backward from the current history position. The search may be
"anchored", meaning that the string must match at the beginning of the
-history entry.
+history entry.
-- Function: int history_search (const char *string, int direction)
Search the history for STRING, starting at the current history
@@ -501,8 +499,8 @@ history entry.
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.
+ entry where STRING was found. Otherwise, nothing is changed, and a
+ -1 is returned.
-- Function: int history_search_prefix (const char *string, int
direction)
@@ -514,13 +512,12 @@ history entry.
the return value is 0. Otherwise, nothing is changed, and a -1 is
returned.
- -- Function: 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.
+ -- Function: 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.

File: history.info, Node: Managing the History File, Next: History Expansion, Prev: Searching the History List, Up: History Functions
@@ -533,33 +530,33 @@ This section documents the functions for managing a history file.
-- Function: int read_history (const char *filename)
Add the contents of FILENAME to the history list, a line at a time.
- If FILENAME is `NULL', then read from `~/.history'. Returns 0 if
- successful, or `errno' if not.
+ If FILENAME is 'NULL', then read from '~/.history'. Returns 0 if
+ successful, or 'errno' if not.
-- Function: int read_history_range (const char *filename, int from,
int to)
Read a range of lines from FILENAME, adding them to the history
list. Start reading at line FROM and end at TO. If FROM is zero,
start at the beginning. If TO is less than FROM, then read until
- the end of the file. If FILENAME is `NULL', then read from
- `~/.history'. Returns 0 if successful, or `errno' if not.
+ the end of the file. If FILENAME is 'NULL', then read from
+ '~/.history'. Returns 0 if successful, or 'errno' if not.
-- Function: int write_history (const char *filename)
Write the current history to FILENAME, overwriting FILENAME if
- necessary. If FILENAME is `NULL', then write the history list to
- `~/.history'. Returns 0 on success, or `errno' on a read or write
+ necessary. If FILENAME is 'NULL', then write the history list to
+ '~/.history'. Returns 0 on success, or 'errno' on a read or write
error.
-- Function: int append_history (int nelements, const char *filename)
Append the last NELEMENTS of the history list to FILENAME. If
- FILENAME is `NULL', then append to `~/.history'. Returns 0 on
- success, or `errno' on a read or write error.
+ FILENAME is 'NULL', then append to '~/.history'. Returns 0 on
+ success, or 'errno' on a read or write error.
-- Function: int history_truncate_file (const char *filename, int
nlines)
Truncate the history file FILENAME, leaving only the last NLINES
- lines. If FILENAME is `NULL', then `~/.history' is truncated.
- Returns 0 on success, or `errno' on failure.
+ lines. If FILENAME is 'NULL', then '~/.history' is truncated.
+ Returns 0 on success, or 'errno' on failure.

File: history.info, Node: History Expansion, Prev: Managing the History File, Up: History Functions
@@ -572,26 +569,23 @@ These functions implement history expansion.
-- Function: int history_expand (char *string, char **output)
Expand STRING, placing the result into OUTPUT, a pointer to a
string (*note History Interaction::). Returns:
- `0'
+ '0'
If no expansions took place (or, if the only change in the
text was the removal of escape characters preceding the
history expansion character);
-
- `1'
+ '1'
if expansions did take place;
-
- `-1'
+ '-1'
if there was an error in expansion;
-
- `2'
- if the returned line should be displayed, but not executed,
- as with the `:p' modifier (*note Modifiers::).
+ '2'
+ if the returned line should be displayed, but not executed, as
+ with the ':p' modifier (*note Modifiers::).
If an error occurred in expansion, then OUTPUT contains a
descriptive error message.
- -- Function: char * get_history_event (const char *string, int
- *cindex, int qchar)
+ -- Function: char * get_history_event (const char *string, int *cindex,
+ int qchar)
Returns the text of the history event beginning at STRING +
*CINDEX. *CINDEX is modified to point to after the event
specifier. At function entry, CINDEX points to the index into
@@ -602,14 +596,14 @@ These functions implement history expansion.
-- Function: 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
- HISTORY_WORD_DELIMITERS variable, and shell quoting conventions
- are obeyed.
+ HISTORY_WORD_DELIMITERS variable, and shell quoting conventions are
+ obeyed.
-- Function: char * history_arg_extract (int first, int last, const
char *string)
Extract a string segment consisting of the FIRST through LAST
arguments present in STRING. Arguments are split using
- `history_tokenize'.
+ 'history_tokenize'.

File: history.info, Node: History Variables, Next: History Programming Example, Prev: History Functions, Up: Programming with GNU History
@@ -628,25 +622,25 @@ GNU History Library.
-- Variable: int history_max_entries
The maximum number of history entries. This must be changed using
- `stifle_history()'.
+ 'stifle_history()'.
-- Variable: 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.
+ can be preserved between sessions. The default value is 0, meaning
+ that timestamps 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.
+ to delimit timestamp entries in the history file. If that variable
+ does not have a value (the default), timestamps will not be
+ written.
-- Variable: char history_expansion_char
- The character that introduces a history event. The default is `!'.
+ The character that introduces a history event. The default is '!'.
Setting this to 0 inhibits history expansion.
-- Variable: char history_subst_char
The character that invokes word substitution if found at the start
- of a line. The default is `^'.
+ of a line. The default is '^'.
-- Variable: char history_comment_char
During tokenization, if this character is seen as the first
@@ -655,31 +649,32 @@ GNU History Library.
remainder of the line. This is disabled by default.
-- Variable: 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
+ default value is '" \t\n()<>;&|"'.
-- Variable: 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
+ search string, in addition to space, TAB, ':' and '?' in the case
of a substring search. The default is empty.
-- Variable: char * history_no_expand_chars
The list of characters which inhibit history expansion if found
immediately following HISTORY_EXPANSION_CHAR. The default is
- space, tab, newline, carriage return, and `='.
+ space, tab, newline, carriage return, and '='.
-- Variable: int history_quotes_inhibit_expansion
- If non-zero, single-quoted words are not scanned for the history
- expansion character. The default value is 0.
+ If non-zero, double-quoted words are not scanned for the history
+ expansion character or the history comment character. The default
+ value is 0.
-- Variable: rl_linebuf_func_t * history_inhibit_expansion_function
This should be set to the address of a function that takes two
- arguments: a `char *' (STRING) and an `int' index into that string
+ arguments: 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'.
+ purposes. By default, this variable is set to 'NULL'.

File: history.info, Node: History Programming Example, Prev: History Variables, Up: Programming with GNU History
@@ -785,7 +780,7 @@ Appendix A GNU Free Documentation License
Version 1.3, 3 November 2008
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
- `http://fsf.org/'
+ <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -810,21 +805,21 @@ Appendix A GNU Free Documentation License
free program should come with manuals providing the same freedoms
that the software does. But this License is not limited to
software manuals; it can be used for any textual work, regardless
- of subject matter or whether it is published as a printed book.
- We recommend this License principally for works whose purpose is
+ of subject matter or whether it is published as a printed book. We
+ recommend this License principally for works whose purpose is
instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium,
- that contains a notice placed by the copyright holder saying it
- can be distributed under the terms of this License. Such a notice
+ that contains a notice placed by the copyright holder saying it can
+ be distributed under the terms of this License. Such a notice
grants a world-wide, royalty-free license, unlimited in duration,
to use that work under the conditions stated herein. The
"Document", below, refers to any such manual or work. Any member
- of the public is a licensee, and is addressed as "you". You
- accept the license if you copy, modify or distribute the work in a
- way requiring permission under copyright law.
+ of the public is a licensee, and is addressed as "you". You accept
+ the license if you copy, modify or distribute the work in a way
+ requiring permission under copyright law.
A "Modified Version" of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
@@ -842,12 +837,12 @@ Appendix A GNU Free Documentation License
regarding them.
The "Invariant Sections" are certain Secondary Sections whose
- titles are designated, as being those of Invariant Sections, in
- the notice that says that the Document is released under this
- License. If a section does not fit the above definition of
- Secondary then it is not allowed to be designated as Invariant.
- The Document may contain zero Invariant Sections. If the Document
- does not identify any Invariant Sections then there are none.
+ titles are designated, as being those of Invariant Sections, in the
+ notice that says that the Document is released under this License.
+ If a section does not fit the above definition of Secondary then it
+ is not allowed to be designated as Invariant. The Document may
+ contain zero Invariant Sections. If the Document does not identify
+ any Invariant Sections then there are none.
The "Cover Texts" are certain short passages of text that are
listed, as Front-Cover Texts or Back-Cover Texts, in the notice
@@ -858,27 +853,27 @@ Appendix A GNU Free Documentation License
A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, that is suitable for revising the document
- straightforwardly with generic text editors or (for images
- composed of pixels) generic paint programs or (for drawings) some
- widely available drawing editor, and that is suitable for input to
- text formatters or for automatic translation to a variety of
- formats suitable for input to text formatters. A copy made in an
- otherwise Transparent file format whose markup, or absence of
- markup, has been arranged to thwart or discourage subsequent
- modification by readers is not Transparent. An image format is
- not Transparent if used for any substantial amount of text. A
- copy that is not "Transparent" is called "Opaque".
+ straightforwardly with generic text editors or (for images composed
+ of pixels) generic paint programs or (for drawings) some widely
+ available drawing editor, and that is suitable for input to text
+ formatters or for automatic translation to a variety of formats
+ suitable for input to text formatters. A copy made in an otherwise
+ Transparent file format whose markup, or absence of markup, has
+ been arranged to thwart or discourage subsequent modification by
+ readers is not Transparent. An image format is not Transparent if
+ used for any substantial amount of text. A copy that is not
+ "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain
ASCII without markup, Texinfo input format, LaTeX input format,
- SGML or XML using a publicly available DTD, and
- standard-conforming simple HTML, PostScript or PDF designed for
- human modification. Examples of transparent image formats include
- PNG, XCF and JPG. Opaque formats include proprietary formats that
- can be read and edited only by proprietary word processors, SGML or
- XML for which the DTD and/or processing tools are not generally
- available, and the machine-generated HTML, PostScript or PDF
- produced by some word processors for output purposes only.
+ SGML or XML using a publicly available DTD, and standard-conforming
+ simple HTML, PostScript or PDF designed for human modification.
+ Examples of transparent image formats include PNG, XCF and JPG.
+ Opaque formats include proprietary formats that can be read and
+ edited only by proprietary word processors, SGML or XML for which
+ the DTD and/or processing tools are not generally available, and
+ the machine-generated HTML, PostScript or PDF produced by some word
+ processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the
@@ -916,8 +911,8 @@ Appendix A GNU Free Documentation License
may not use technical measures to obstruct or control the reading
or further copying of the copies you make or distribute. However,
you may accept compensation in exchange for copies. If you
- distribute a large enough number of copies you must also follow
- the conditions in section 3.
+ distribute a large enough number of copies you must also follow the
+ conditions in section 3.
You may also lend copies, under the same conditions stated above,
and you may publicly display copies.
@@ -931,12 +926,11 @@ Appendix A GNU Free Documentation License
these Cover Texts: Front-Cover Texts on the front cover, and
Back-Cover Texts on the back cover. Both covers must also clearly
and legibly identify you as the publisher of these copies. The
- front cover must present the full title with all words of the
- title equally prominent and visible. You may add other material
- on the covers in addition. Copying with changes limited to the
- covers, as long as they preserve the title of the Document and
- satisfy these conditions, can be treated as verbatim copying in
- other respects.
+ front cover must present the full title with all words of the title
+ equally prominent and visible. You may add other material on the
+ covers in addition. Copying with changes limited to the covers, as
+ long as they preserve the title of the Document and satisfy these
+ conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
@@ -944,40 +938,39 @@ Appendix A GNU Free Documentation License
adjacent pages.
If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a
- machine-readable Transparent copy along with each Opaque copy, or
- state in or with each Opaque copy a computer-network location from
- which the general network-using public has access to download
- using public-standard network protocols a complete Transparent
- copy of the Document, free of added material. If you use the
- latter option, you must take reasonably prudent steps, when you
- begin distribution of Opaque copies in quantity, to ensure that
- this Transparent copy will remain thus accessible at the stated
- location until at least one year after the last time you
- distribute an Opaque copy (directly or through your agents or
- retailers) of that edition to the public.
+ numbering more than 100, you must either include a machine-readable
+ Transparent copy along with each Opaque copy, or state in or with
+ each Opaque copy a computer-network location from which the general
+ network-using public has access to download using public-standard
+ network protocols a complete Transparent copy of the Document, free
+ of added material. If you use the latter option, you must take
+ reasonably prudent steps, when you begin distribution of Opaque
+ copies in quantity, to ensure that this Transparent copy will
+ remain thus accessible at the stated location until at least one
+ year after the last time you distribute an Opaque copy (directly or
+ through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of
- the Document well before redistributing any large number of
- copies, to give them a chance to provide you with an updated
- version of the Document.
+ the Document well before redistributing any large number of copies,
+ to give them a chance to provide you with an updated version of the
+ Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document
under the conditions of sections 2 and 3 above, provided that you
- release the Modified Version under precisely this License, with
- the Modified Version filling the role of the Document, thus
- licensing distribution and modification of the Modified Version to
- whoever possesses a copy of it. In addition, you must do these
- things in the Modified Version:
+ release the Modified Version under precisely this License, with the
+ Modified Version filling the role of the Document, thus licensing
+ distribution and modification of the Modified Version to whoever
+ possesses a copy of it. In addition, you must do these things in
+ the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title
- distinct from that of the Document, and from those of
- previous versions (which should, if there were any, be listed
- in the History section of the Document). You may use the
- same title as a previous version if the original publisher of
- that version gives permission.
+ distinct from that of the Document, and from those of previous
+ versions (which should, if there were any, be listed in the
+ History section of the Document). You may use the same title
+ as a previous version if the original publisher of that
+ version gives permission.
B. List on the Title Page, as authors, one or more persons or
entities responsible for authorship of the modifications in
@@ -1007,31 +1000,30 @@ Appendix A GNU Free Documentation License
I. Preserve the section Entitled "History", Preserve its Title,
and add to it an item stating at least the title, year, new
- authors, and publisher of the Modified Version as given on
- the Title Page. If there is no section Entitled "History" in
- the Document, create one stating the title, year, authors,
- and publisher of the Document as given on its Title Page,
- then add an item describing the Modified Version as stated in
- the previous sentence.
+ authors, and publisher of the Modified Version as given on the
+ Title Page. If there is no section Entitled "History" in the
+ Document, create one stating the title, year, authors, and
+ publisher of the Document as given on its Title Page, then add
+ an item describing the Modified Version as stated in the
+ previous sentence.
J. Preserve the network location, if any, given in the Document
for public access to a Transparent copy of the Document, and
likewise the network locations given in the Document for
- previous versions it was based on. These may be placed in
- the "History" section. You may omit a network location for a
- work that was published at least four years before the
- Document itself, or if the original publisher of the version
- it refers to gives permission.
+ previous versions it was based on. These may be placed in the
+ "History" section. You may omit a network location for a work
+ that was published at least four years before the Document
+ itself, or if the original publisher of the version it refers
+ to gives permission.
K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the
- section all the substance and tone of each of the contributor
+ Preserve the Title of the section, and preserve in the section
+ all the substance and tone of each of the contributor
acknowledgements and/or dedications given therein.
- L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section
- titles.
+ L. Preserve all the Invariant Sections of the Document, unaltered
+ in their text and in their titles. Section numbers or the
+ equivalent are not considered part of the section titles.
M. Delete any section Entitled "Endorsements". Such a section
may not be included in the Modified Version.
@@ -1044,11 +1036,11 @@ Appendix A GNU Free Documentation License
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option
- designate some or all of these sections as invariant. To do this,
- add their titles to the list of Invariant Sections in the Modified
- Version's license notice. These titles must be distinct from any
- other section titles.
+ material copied from the Document, you may at your option designate
+ some or all of these sections as invariant. To do this, add their
+ titles to the list of Invariant Sections in the Modified Version's
+ license notice. These titles must be distinct from any other
+ section titles.
You may add a section Entitled "Endorsements", provided it contains
nothing but endorsements of your Modified Version by various
@@ -1057,15 +1049,15 @@ Appendix A GNU Free Documentation License
definition of a standard.
You may add a passage of up to five words as a Front-Cover Text,
- and a passage of up to 25 words as a Back-Cover Text, to the end
- of the list of Cover Texts in the Modified Version. Only one
- passage of Front-Cover Text and one of Back-Cover Text may be
- added by (or through arrangements made by) any one entity. If the
- Document already includes a cover text for the same cover,
- previously added by you or by arrangement made by the same entity
- you are acting on behalf of, you may not add another; but you may
- replace the old one, on explicit permission from the previous
- publisher that added the old one.
+ and a passage of up to 25 words as a Back-Cover Text, to the end of
+ the list of Cover Texts in the Modified Version. Only one passage
+ of Front-Cover Text and one of Back-Cover Text may be added by (or
+ through arrangements made by) any one entity. If the Document
+ already includes a cover text for the same cover, previously added
+ by you or by arrangement made by the same entity you are acting on
+ behalf of, you may not add another; but you may replace the old
+ one, on explicit permission from the previous publisher that added
+ the old one.
The author(s) and publisher(s) of the Document do not by this
License give permission to use their names for publicity for or to
@@ -1075,8 +1067,8 @@ Appendix A GNU Free Documentation License
You may combine the Document with other documents released under
this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination
- all of the Invariant Sections of all of the original documents,
+ modified versions, provided that you include in the combination all
+ of the Invariant Sections of all of the original documents,
unmodified, and list them all as Invariant Sections of your
combined work in its license notice, and that you preserve all
their Warranty Disclaimers.
@@ -1103,20 +1095,20 @@ Appendix A GNU Free Documentation License
documents released under this License, and replace the individual
copies of this License in the various documents with a single copy
that is included in the collection, provided that you follow the
- rules of this License for verbatim copying of each of the
- documents in all other respects.
+ rules of this License for verbatim copying of each of the documents
+ in all other respects.
You may extract a single document from such a collection, and
distribute it individually under this License, provided you insert
- a copy of this License into the extracted document, and follow
- this License in all other respects regarding verbatim copying of
- that document.
+ a copy of this License into the extracted document, and follow this
+ License in all other respects regarding verbatim copying of that
+ document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume of
- a storage or distribution medium, is called an "aggregate" if the
+ separate and independent documents or works, in or on a volume of a
+ storage or distribution medium, is called an "aggregate" if the
copyright resulting from the compilation is not used to limit the
legal rights of the compilation's users beyond what the individual
works permit. When the Document is included in an aggregate, this
@@ -1161,8 +1153,8 @@ Appendix A GNU Free Documentation License
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
- provisionally, unless and until the copyright holder explicitly
- and finally terminates your license, and (b) permanently, if the
+ provisionally, unless and until the copyright holder explicitly and
+ finally terminates your license, and (b) permanently, if the
copyright holder fails to notify you of the violation by some
reasonable means prior to 60 days after the cessation.
@@ -1174,33 +1166,33 @@ Appendix A GNU Free Documentation License
after your receipt of the notice.
Termination of your rights under this section does not terminate
- the licenses of parties who have received copies or rights from
- you under this License. If your rights have been terminated and
- not permanently reinstated, receipt of a copy of some or all of
- the same material does not give you any rights to use it.
+ the licenses of parties who have received copies or rights from you
+ under this License. If your rights have been terminated and not
+ permanently reinstated, receipt of a copy of some or all of the
+ same material does not give you any rights to use it.
- 10. FUTURE REVISIONS OF THIS LICENSE
+ 10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of
the GNU Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
- `http://www.gnu.org/copyleft/'.
+ <http://www.gnu.org/copyleft/>.
Each version of the License is given a distinguishing version
number. If the Document specifies that a particular numbered
version of this License "or any later version" applies to it, you
have the option of following the terms and conditions either of
that specified version or of any later version that has been
- published (not as a draft) by the Free Software Foundation. If
- the Document does not specify a version number of this License,
- you may choose any version ever published (not as a draft) by the
- Free Software Foundation. If the Document specifies that a proxy
- can decide which future versions of this License can be used, that
+ published (not as a draft) by the Free Software Foundation. If the
+ Document does not specify a version number of this License, you may
+ choose any version ever published (not as a draft) by the Free
+ Software Foundation. If the Document specifies that a proxy can
+ decide which future versions of this License can be used, that
proxy's public statement of acceptance of a version permanently
authorizes you to choose that version for the Document.
- 11. RELICENSING
+ 11. RELICENSING
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
World Wide Web server that publishes copyrightable works and also
@@ -1230,7 +1222,6 @@ Appendix A GNU Free Documentation License
site under CC-BY-SA on the same site at any time before August 1,
2009, provided the MMC is eligible for relicensing.
-
ADDENDUM: How to use this License for your documents
====================================================
@@ -1247,7 +1238,7 @@ notices just after the title page:
Free Documentation License''.
If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
+Texts, replace the "with...Texts." line with this:
with the Invariant Sections being LIST THEIR TITLES, with
the Front-Cover Texts being LIST, and with the Back-Cover Texts
@@ -1258,9 +1249,9 @@ combination of the three, merge those two alternatives to suit the
situation.
If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
+recommend releasing these examples in parallel under your choice of free
+software license, such as the GNU General Public License, to permit
+their use in free software.

File: history.info, Node: Concept Index, Next: Function and Variable Index, Prev: GNU Free Documentation License, Up: Top
@@ -1289,104 +1280,104 @@ Appendix C Function and Variable Index
* Menu:
* add_history: History List Management.
- (line 10)
+ (line 9)
* add_history_time: History List Management.
- (line 14)
+ (line 13)
* append_history: Managing the History File.
- (line 29)
+ (line 28)
* clear_history: History List Management.
- (line 35)
+ (line 34)
* current_history: Information About the History List.
- (line 18)
+ (line 17)
* free_history_entry: History List Management.
- (line 23)
-* get_history_event: History Expansion. (line 31)
-* history_arg_extract: History Expansion. (line 46)
-* history_base: History Variables. (line 10)
-* history_comment_char: History Variables. (line 38)
-* history_expand: History Expansion. (line 9)
-* history_expansion_char: History Variables. (line 30)
+ (line 22)
+* get_history_event: History Expansion. (line 26)
+* history_arg_extract: History Expansion. (line 41)
+* history_base: History Variables. (line 9)
+* history_comment_char: History Variables. (line 37)
+* history_expand: History Expansion. (line 8)
+* history_expansion_char: History Variables. (line 29)
* history_get: Information About the History List.
- (line 23)
+ (line 22)
* history_get_history_state: Initializing History and State Management.
- (line 15)
+ (line 14)
* history_get_time: Information About the History List.
- (line 29)
+ (line 28)
* history_inhibit_expansion_function: History Variables. (line 62)
* history_is_stifled: History List Management.
- (line 47)
-* history_length: History Variables. (line 13)
+ (line 46)
+* history_length: History Variables. (line 12)
* history_list: Information About the History List.
- (line 10)
-* history_max_entries: History Variables. (line 16)
-* history_no_expand_chars: History Variables. (line 53)
-* history_quotes_inhibit_expansion: History Variables. (line 58)
+ (line 9)
+* history_max_entries: History Variables. (line 15)
+* history_no_expand_chars: History Variables. (line 52)
+* history_quotes_inhibit_expansion: History Variables. (line 57)
* history_search: Searching the History List.
- (line 13)
-* history_search_delimiter_chars: History Variables. (line 48)
+ (line 12)
+* history_search_delimiter_chars: History Variables. (line 47)
* history_search_pos: Searching the History List.
- (line 33)
+ (line 31)
* history_search_prefix: Searching the History List.
- (line 23)
+ (line 21)
* history_set_history_state: Initializing History and State Management.
- (line 19)
+ (line 18)
* history_set_pos: Moving Around the History List.
- (line 10)
-* history_subst_char: History Variables. (line 34)
-* history_tokenize: History Expansion. (line 39)
+ (line 9)
+* history_subst_char: History Variables. (line 33)
+* history_tokenize: History Expansion. (line 35)
* history_total_bytes: Information About the History List.
(line 32)
* history_truncate_file: Managing the History File.
- (line 35)
-* history_word_delimiters: History Variables. (line 44)
-* history_write_timestamps: History Variables. (line 20)
+ (line 33)
+* history_word_delimiters: History Variables. (line 43)
+* history_write_timestamps: History Variables. (line 19)
* next_history: Moving Around the History List.
- (line 20)
+ (line 19)
* previous_history: Moving Around the History List.
- (line 15)
+ (line 14)
* read_history: Managing the History File.
- (line 10)
+ (line 9)
* read_history_range: Managing the History File.
- (line 16)
+ (line 14)
* remove_history: History List Management.
- (line 18)
+ (line 17)
* replace_history_entry: History List Management.
- (line 29)
+ (line 27)
* stifle_history: History List Management.
- (line 38)
+ (line 37)
* unstifle_history: History List Management.
- (line 41)
+ (line 40)
* using_history: Initializing History and State Management.
- (line 11)
+ (line 10)
* where_history: Information About the History List.
- (line 15)
+ (line 14)
* write_history: Managing the History File.
- (line 23)
+ (line 22)

Tag Table:
-Node: Top891
-Node: Using History Interactively1536
-Node: History Interaction2044
-Node: Event Designators3468
-Node: Word Designators4610
-Node: Modifiers6249
-Node: Programming with GNU History7474
-Node: Introduction to History8217
-Node: History Storage9907
-Node: History Functions11042
-Node: Initializing History and State Management12031
-Node: History List Management12843
-Node: Information About the History List14875
-Node: Moving Around the History List16372
-Node: Searching the History List17373
-Node: Managing the History File19305
-Node: History Expansion21125
-Node: History Variables23034
-Node: History Programming Example26066
-Node: GNU Free Documentation License28743
-Node: Concept Index53934
-Node: Function and Variable Index54639
+Node: Top845
+Node: Using History Interactively1490
+Node: History Interaction1998
+Node: Event Designators3422
+Node: Word Designators4561
+Node: Modifiers6198
+Node: Programming with GNU History7421
+Node: Introduction to History8165
+Node: History Storage9855
+Node: History Functions10990
+Node: Initializing History and State Management11979
+Node: History List Management12791
+Node: Information About the History List14824
+Node: Moving Around the History List16377
+Node: Searching the History List17470
+Node: Managing the History File19395
+Node: History Expansion21215
+Node: History Variables23125
+Node: History Programming Example26195
+Node: GNU Free Documentation License28872
+Node: Concept Index54044
+Node: Function and Variable Index54749

End Tag Table
diff --git a/doc/history.pdf b/doc/history.pdf
index 4007bef..7ca4dd2 100644
--- a/doc/history.pdf
+++ b/doc/history.pdf
Binary files differ
diff --git a/doc/history.ps b/doc/history.ps
index 8133625..98d2d96 100644
--- a/doc/history.ps
+++ b/doc/history.ps
@@ -1,18 +1,18 @@
%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.991 Copyright 2011 Radical Eye Software
+%%Creator: dvips(k) 5.996 Copyright 2016 Radical Eye Software
%%Title: history.dvi
-%%CreationDate: Tue Feb 11 16:57:26 2014
+%%CreationDate: Wed Sep 7 17:16:25 2016
%%Pages: 24
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
-%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSY10 CMMI12 CMMI10 CMCSC10 CMSL10
-%%+ CMSLTT10 CMSS10 CMTT9 CMR9 CMMI9
+%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSY10 CMCSC10 CMSL10 CMSLTT10
+%%+ CMSS10 CMTT9 CMR9 CMMI9
%%DocumentPaperSizes: Letter
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o history.ps history.dvi
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2014.02.11:1657
+%DVIPSSource: TeX output 2016.09.07:1716
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -98,7 +98,6 @@ FontDirectory/CMMI9 known{/CMMI9 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMMI9 def
/FontBBox {-29 -250 1075 750 }readonly def
-/UniqueID 5087384 def
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
@@ -334,7 +333,6 @@ FontDirectory/CMR9 known{/CMR9 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMR9 def
/FontBBox {-39 -250 1036 750 }readonly def
-/UniqueID 5000792 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -350,8 +348,6 @@ end readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 49 /one put
-dup 53 /five put
-dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
@@ -558,181 +554,168 @@ E346171058EC303E62B84EA810FCEBB2905DC186B95AFC6AD4127429E71BFC7B
EFEA3CC6F0872C28108F7EBBF5BF770C0BA6C712275E1239FA44736247CBAAD5
B856D7BD6E5E186AC4C3913293D99529B8F9EAC85FE548406DE5D90A058F1106
F98799495DBB3A05C04BD649053FD29380E217942F71F70C30735423F6F13DC7
-F5015DA9043FA42C173D55CAF2F4419B78FF473EA32F1D9CBF39A8FE95BCC238
-18762B74BB01E3C1A16BA03D8ACAF3911F4540B0380C71A587A3935D91E28F1A
-726585BD5B7DBE7EDFA7AEF1C229A6B641DE844681E630F99516B2597A017D31
-D37090CE6BB8078645068614985C5B2F0BABADF22F895E198BCC15CE58596999
-BAD4143D84939903284508FAB20269A4CEF627F5498EE70D41B0F123880B680F
-B004DDC927339C58FA023E7859D68CDF0BDC80C682B27F74034B1504F242B6F8
-1920A9ED6566B7B423242B4CC75114C0128EBF99E5609DA559E0BC5463506624
-A7833CD5A834C6C082D797940090B12CAD35B2AAE796B0550FD7BCCF142DF000
-14433A1D8E062D5207D5E38FC52F40EEB801924DC4B86318921169C7F112991F
-DA63181543D42A274390AF57791BD9AB85DE31338F5131E0F8E914B126EF5B2B
-FEDF4CEFCB3FAB423EE2021A2D8761ACD1B59B8A9BB23D4218042307E484EFC0
-157825F1BD6E1D523CE620E159D1A91B4EF0DBFAC9967E6C64960E96045A86A6
-B2AFCF21664A704661344F2B8EDE6F118DA3489F03F9BA2DF35DE06DC843B544
-6A9665CD685F3EA8125501337D3D039A7A20A69945319C2F6F3FC4F44DA78EAA
-73C8BD090AA8C9D2AE858A1B9980375150B6AEB708E365D92A33CFB8F642626A
-AF74411CE1DFA7A9B62EF1CD2DAC4E5575DAE436A65A71B1418AC11E31ABD7AB
-F79F18CC4063D04D629A1A05A5DAB4C473CC5665A315BF1B163C9BB372A846BF
-0AA1C997ECD15A231C3BD4FD5EBD0F3EE4BCC573C891636572A75314282E4770
-738C4CD4E71230409EA873F16CF1D79BF8B9D6A91FC2B10112958F65E77DAD5A
-6698A5F4EAA1305634F6B5F4FCFB4ED01074CCFE4A716660BFAACF18B72289E1
-2A17630A94699E2A1BD960438C77F7F10BA883CB2046E89C63D99A32A2457E35
-182EB3D5EB81841AE33E7203015795FA97DCB17BB6C4BE1C39B7DAE297CD9ED4
-A59FE7A1E816B04DAD86E4A3D0F951A9357BEC5619407EEF700397636C1228B9
-B2F296281350C23CEE1D869C4B895055CA53823F4F7EDDA13852C352BE7DCD8F
-F3A61799D445E7D7D297D4CBAD7F8FE89BCABE2D909D8880D76CE3FAA6B253C0
-F50F4755B4CB54F6664369DCBA5155F6786FFBB998359BDA06D7C9347A8F04A5
-7DC778A5E2BF9E46CBE6493F71BA1590EFF98DA779BC4F16A0E3C65300075109
-EE0D26E453BD84D8DB29F008BA36A2EF07B89FEF779E5A5B5853AA7B9B772ADE
-E9B6A00B0AC7F31A39DEF7A9D6454D0F598F0BF61BA6E5F2E03B2F14E95B0822
-D8FD612178B079E347C4A450E35876E64BAAAA1DFCC4C9FF1C6FCAB22732A826
-C8C1B277C4778AF880731746DEB1D6B13BEC1C0302469AA73DB6FA641CA5E18C
-E69694439509E39668443555D82D48982CDBF1CDF03816478F4DD0385F607B2E
-5DCBE14CD2862B98D50272A90500929A29FC28C5082714DC267DAE4473D7364C
-E7811D0AF5DDE878E238A3AD7D5443B4F00F21ED24500CEBD0B151B6F0BA2438
-370EF5A8CE6E7831AA484B4D1B5B7A81EC2EA6097583C0BD5A7EEA6053E92356
-A40D995C1D5645DA2A09820F481FA138F53833A66AE99895A9742DC5470C03C1
-3D173F63839B6621E7C31A5EAE998A8DC48AABE64E88C4E9B2508B4F0E99CD92
-529CE2D03F2F81F93AA3B9AF63A2DDD311FAA11FBF9BE796C32DDDBAAB62BE9C
-28EE2F7DD5E19A37F5827E75EF663BCA362A7EEBE5A0EA4A9E439E2D984C6D9C
-91064251634647EE73B9B64FF9D4582CFB4CF50A28D45B4048131FD9F44E3343
-0B33961F25DC7A3699CFE9C6D0B53FED7CDA1D360824AD00E38C1523120A5DE2
-8F1147C45F72B4DF23C28A17550430AC498252B325F677CE0A5FAA5F161F5DC1
-89A0BF14074AB50827E4BF106FBC2DD43B1FEBBE54E3957E1D7061C174BE9377
-1F6BBD30784F58DA5D2B3FBD83183E2B068CB76FE7C2418EEB63B7E32E3434BE
-5A5C4AD422D2E318279A852A3342621E4B5144714B8DBC3884F71696B0F0D077
-769D265281874C1C8FE0735534968B9FDF4BBAD71EAE9CED26F3CE9ABE551DA5
-ABE186B6714528F6A0A4778B1B40BC5E002629EB57DCA82BE5B78F0C62C0C348
-6D0ACF7CCE2C86F7E95C001887FCEE5705717C0091725C749D0925F25DA3ED5A
-007EA1B516141490873FE59D98D7F675A1CE88677A4D60A4935BFF205976E3A2
-4AB183DC8CE6BA6EEFDAC1A9CF8AFB8F1D7C149649233A0B3B1029BFC68FC0BB
-6DDB38A35BB57C11213542C9FEF471B5E534316D4758279135435F94956D6F96
-2A3FC58287046368CDD9A702027BC1EECA0ED3E9A193B5B5884520EEE6EBD6C1
-831289A3D59F528C571BA2BC4CF48961747BC5DAE646F4FAF597992149A836D3
-2729D399F25BD0797C2AC6EB1AE699B32A33F0473069E93939A764B0A4EE04CF
-179E3D99F05FAFB15536C12FBAC1AEA67BFA14066CB75F5E31D49D98D58C3093
-C305082867C632753BE5934925D668589D7228E3264D28347014DAEFBB9B1525
-26B812D07A3A26C3A3743EAB6D3BEF4C95CA337D9EE2EFAB61B3DB4ADED6F8E6
-E3F2B5DEAA52520859106369FABB1296A8F0EE110947AC99CF23759F114D0C39
-1FC7207B0558CBEFB9728C76DA4E415851D843C568DD513ABB62827EBF4549E8
-6CDAD8F188EB40A2DD4F9A2F65907A40B6FA144CDE6783DF345707C81AAD30FA
-9DCE1EBF7546127868731D78E42C9ED2EE38F457D8F46314527B547EDD5B7599
-B41DBE7B2EA465605A77D28C64450D2A5FB03BB394F6B4F64B19BD6912EF2F3E
-1C741F20850731AFC9A0522261989BDBDEFF4E8900D7C95772EF37EF9498EBD9
-019E8727D57B7EA83C91030D7E1AC11579525763417730CECABDA5E7DB8612E8
-A52CEA8B3DB8C6B8523FBD6D66D33B3ABE53B079F609315FC8353C21CD4039FB
-31CF443F5DC600CAD9A5E71666A0C75A65F0D419A0C15CF7229C291E7FE165A6
-5EE33E97D2A634D6C032F79BCE3C2805BD9B4D5C1AC257FF84D2BAB0FD3AA650
-5CD776C77E31A42595E05861A21EB576B8D011DA7A9CD6BE2C936127A2A53080
-0A4985B2993E887D1A102ABFF6D8256141C609A7C1EC0CE0117F552658D447D0
-20F22F401E828DDC2F021AB0746F9725B1D5830E54A87CDA8B587D34D3B29D4F
-1A423821CE6869EEFC900E23098B8FA08C859B1068BFB0782E41C966167A1354
-87F9D93588BC44957D374DD379C681FC1176804ECFD862E17A7327CEF06F8AE1
-F9F9D1925081EC834F796046453C9EB521C8B1C698D84EB79C028A299AC1A2F7
-B100CD9A47E543D607556CBE5A5FF7AACAB7940B72232D8EF35EA7446747CC09
-015A94D27EBB6EAC17D8CA55CF38E7666A079B26DF6A0BE875A1F7842ACF8373
-61566F41BC0C1299CF3718AE15E134891C8558A53524C8F5DB8059F9D8FF1A8D
-D82E318B7150643A06D2C80774553D4C2304A4B3AEC55FD925E786F3A66225EB
-3604AF69E905667B1758CD3389EC8885C20BB52DE35D8C1B278F2EB1303E788F
-21A511C1454F87837A881C9792B45C40D11A13B7098BD0B6F64CF5E3FDAC55D2
-A714F7640D6B06B478DECF45AFD52889B9DEF8382DCF1EE772E9CB017184658A
-4E7A7453DB9AF243913A16F0C070C4B18D5BFA472910904DB558FCA985B7A736
-9BE39DC1B3243D4590382F831FE37D18018810B3CC1F9B1C423A80EB89D27AAF
-CD36773E0685D37CBDD85A21593330984D922ACB83382D4BD9C6A8E211150546
-45FD89E96BF623167F5810E647FD7DCEC31DF1EE3E56B7480AE7C89FEEDF7437
-31605633742CF0B3CEA5C9ABCAAC619595710550CBEC15DEBD4C8E856E4D67CE
-61958B5C07E803DF29129DB3E22CB7B44ECC460902FE007AE0EB00BD40F82019
-A49EABAF85C7E924FF5E86F4213FB27D13D7C8F42A3ACCAE2B128B7BB80A25DC
-8D92A3BD5A141972AEF7109C9195BD575C11B09D0F0331588DF55D0F5D60A3CE
-02BFCF3CE21541359B661E382013B4AF90FA5DCD62A89957AD8F5360DE680AE9
-5DA8AAE4A6F8B014A728C20B0AC74AC27BED3ACC7FCDB1C68B8F8DF366E9A36E
-DD93A05D8492B9A8B0FB802FE1A565196CA99FA13414D31C6FB973646EEE0AB5
-2DABA1E971CECE0E73E91564ACA84D820F04A1B9BB26DA23A6C9C72BE9080BCE
-BC6215C814B0DD42560A4698926E1D690DED244ECE4C6FBA0EB382768430CEE3
-C177DF89DCA9366A9B7CA0E20AAFA9AF212B7276F59162B8C17E320FB90305BD
-5170B906C1ED3919B05B1F5A53A568A6386B58BCE199866661CBE1A0987B7DD8
-2324A14ED46E8188F1F0923AAF31262E810258AEA306D5D1F69BE45838BB628F
-76F06EBC9C1E6AC7D79751B9CF754B357F3BE729B4E2DF79B8CDAAC20B9025A8
-028B9BD70AC9F99703BB98F10C1078120A61EB88F9D5C28A18525BEA63320AFC
-9E47683FCE5D25FCCAE1DE61B8FC1A07410930A9C727FE0508E5BA44E88AFEF6
-EEC310AAD6108D35474A6630E1C46DD554C863037C5AD8A30A0CB5A4BC253761
-73ABAA059099A509332E7AE9322E238917BEE64568F25D8D86A7E701DB05C26D
-23B198F113E5D5DA82B73D761039EA0D875882A81C7D01153C2BB5199E734A4C
-6E1ED3792206DC26E3E5B9F07DD32EDBCC5858802FE37AF59C1389B3F1584906
-3E6B654BAF5F2ECF1B46CFB191A71A474D2FF0079C04984101F28D14B9E02598
-051C970501305764635FBB7B430183A6DBD1148C44F4A72E038B91279644CDC9
-6FE5F66685DF70965070F07B2A6FDB9513A3F043C6B4A2C994938ACFB5FE28E9
-EFB9C29764D389A24AB87AB2F3DEEC12B5366709379DF99701B806F55C9C1363
-F4E15C65E9FFFF0E34B41851D55E64617DAC2A4A1995BFDE0B8A6731A7D6FA1B
-A8E8454B75550D126DAB2504427DC6271E7C28E1819F82FB8F1E8187C263E1D5
-D1D0B5FFC753DFFE8E89AFDC8877EC86B065F6E0DA28C0B1AB4641B6E7489DDC
-510E61285FB5F86D41EBB00E910A4366AC1032D6C3A25AE9475F9D3E471EA2C4
-CFC8AF583E8FD32A343DB232D62E4B74B1324D954898E62E0F78BC9242B6A987
-8CC59BC0D782B43D1413ECF446E96A3F01D2417B8824045B88C5088BA527654C
-B91FE8DCA8A3F496183F09DF6DBD82F838544FF3F0629017D1C66F17F95E9354
-74262F963D7628C34B8C611EFD8562E2EF4CC046F3A76F947175DD5BA4512571
-554C97FF31FBDA97D43878C1F25FE8B7FF39072FC5AED9D4915D422F2123EBCC
-5166D067E22BD4DFEC3B6E900DF26360BCED7B19C93E9A2F8840F8D2AEC81319
-5A89E68D2A058DFF7739A26EA3AC51ABC4EC64E8FE3D048904EA84F8157250A5
-2E15EE3DFFF6F7EB09B7E9F5588F3972FB237E9D2C9B21313B395C5BEF3DC9F6
-1A1A6427A8B3073DE01BC97BAB5E4EECF579ABA2BC1C5CFA1595D84644C1E878
-5F43039E33720474549DA92981179E57A5F1863E5E4AEE339B1D17BEA23F4179
-BB99C81D0F0C03C7570AF9D1A449C429A1CB1CEF96593B9A96DADB85EF029054
-6A447C0C7248B93CC89279777A7F13FA1DFDC2AA8D15DACF142564F775918344
-06EE270BB9C547A8B42F39A4935E10F1A8EA693886E260AE4892183939A74856
-6350ED2C30CB64D6D8C93C1FB50FC422531BB8EAF0D14035C68A5E57D8B63540
-E2BA0FA8F85181C14509D681F26BFB2C3B743FE3BCA00815451316A048921FFE
-3D1D9A3A3965EFAC0674D04D2277AD29872ABFEA2DCACCF96CB82EDC82EC69B0
-801B6978E72C99952C47C550FBB02D8E94207DD447F49FE64A9F5E901E0E468F
-4577E7D4D60B27E5759EF294AB176792134256FC15EEF6BC7AC4C3BCFD6785D2
-C1A0EFB848D460B6514016CDF5E8B71448B4DDE0D284A3BCD092FCA2CD74A775
-323E459AC86A80B28095FB9BC6DA2BDA3FEDAACC0200FE06C5F06A72316B081B
-912204EEF94EF4058A5EC1A03C8D93FC2538C7D10F21F251C3AB960FCA92CD6E
-AF30FFD61A99BA9A71B1C5C3CAD50DB5030779FCB1A08EC63E618D37C268C6BB
-20D3A28842D0691BC06A3AB8EEED418349484EC7A59D138896A25B96C28809C9
-0EBCC502554C43D32EF03B0FFBB60E4FB8DF595F9ED1B22CAB3E64A00E1DD989
-D99FF3D9F4FA909160953B21DEFB2304F1BA6670C0B4682BA3DAFC72D6D099B5
-E99EA8FE6C0EBDC55538BA3A640A6629B8FD2176614F0DA0F18F38D9C45277DA
-6740C92A79DF260F7BAC06624A0A234E9469325651B78EB1225E80B16E0BD886
-F51AF93935A7C3A89D53C843175D5A1F203711A6CA3B274A7C701CD0C220C2E9
-97269E4303F7A0A0BDD6152853F3AF6706A2131E03049CDBA341AE64B471096E
-D9F137DF915F647433457E21039254ADD4AB7151D10DAAF847F7C2F944E37109
-6A96944FD625921097D50747CB3FF83F63D20AFF8DB8E41A09291C1EC88D203D
-3E14E4399F99FA2418ED6123B4F10AB77C5BF70865F724154DE8C865AE961311
-339384697B5EF13A2AB683C61BE6A1DBD398D658E3AAD218D7215A54C9EBC6CB
-3B871F31B92C54DD21C949D92156F5CCEDA66B011B897E6FC35280E265EE85CB
-1F4C2A9986D66EB0DF6F7964746660AA9C33ADA1EC442F58EA0395F191E4D5CB
-1AC70CA61217ED3CDE65FE557B65609D2341A285A0A4839DE7B18D0FBB613A01
-EA65695AF6670F966383AA9F7CE593E1F3F5D6166EB9428BAAA28A23C97E9A0D
-F94EB513F606EE7820624A30E8F649FBD0575B9154DF540B552B468B2EA04AEF
-F6988F7738E03B7874B6D3F559C27450986317C6AA14FDAFBCC02ABC67654294
-00DD505D2F43ECED8B66CBDFFAD7F2B6BC7A6274A2357B8788C5AB7247C4B1B9
-CA86A93FDE5929F55591356DF98D8639D5377F95E905C9405D7B3FDB6AB0B544
-AC1D25EE715175AB14D3A744FC162B17D77AB78CEA2D77D40F8C51F3D81DD7D7
-C739085563C4AE733983955162C3BC0FFE1786895DAD7D74B8182D24B0EC5A3F
-1BE40E4AA7D1B6AC054521E4866C33295DB285B46E60EDFF6FA713DE9B898B2B
-77F28006E0B0CF79735C5DC43DFA7CD12CF97F5088C3E1B6D03FE6E0C6FA2117
-D04D3461B5BE775E42459EF5B575D103CE04C81BFDAB13DF159B57E185CE3820
-826237956BD1DB20DC1050C7B5FE5952C5969C23287133C916FD1F7C118144F2
-245C3DFDAAE1F894A316E509DDF8791ABD3184308979425D8F2111FED08AA1A6
-B04DCF4C55C97A6D88BE68B894A320C4C076F6FFE08061D5A3C948BABF51A203
-021A9A44AD02FB503721B2A1774DD40BCC58703589BB5BB12F61ACC2C2436787
-7C6F29B020E6DDE82A63B151CAF36614ABB824AE419D7CB40BF13EE125E79AF7
-02341AAE559D60B7C4A04E6670BC98BD77C42D64EDFE41A627152A7DD2003505
-DE4C76D7B8C81A3026E997E813DFF174DE463D25BD6E0B16AA31925ADD94C833
-D97840E6769F89A78C17ACEE219A53E43178C0DE73E2E788ABEE172D57263E82
-F3D410B0C8379CFCB8C8B9221112FD0105D71BDF413E9BFDCD9663D25EFABC20
-9F08D3CF23F02E5A5A59DEC8CA302DC74EC2EB8E0BFCEF3ED01F780BC0014EAD
-B19082BE83A0950764B2FBE500ADD51CADFE1CE5841B7B50ADF05395066BEC82
-ADD6BC011F6A6307212D32B34E6B18C777B80E69B1E080A0CD32BEC890506FFB
-3EC595E5CA6998459702E6D63583D2C19BD5014BB715322469B59BC9CB4401B9
-9D3CBB92E68702A96130575FEFADF62F4D5AD8C72A46DDAD10095F11559DC2A5
-7A959BD8FF401A02178431C47EF1A7AB7C01ABFE023D54E3AB9B5F70337A4EDE
-49DCE9AEC1387D4438F6EC6F0C8A7951404730385BE0F063662732EBC81000F1
-5DBBFA0C9FB29D09AB4A5A1B88DE884F26B43509B1A5112B010953AD98BC9BB1
-880523106EAD24FCD78EEE1211AB56AD9EC5B78A45CA152EC72D
+F5015DA9043FA42C1045FD7E0F586CBF2D967E468B2E8E763415D60AEBA2BE7A
+BC199BFE58FA66F52AD7C5ED80B4481C08EC8162D88EC52D2695B95EF03F1876
+AC9810734E1170855B512185F1E45E61CAC2221E950F5714EA9DF794371055BF
+78851B835E6E730E396BCBF73F5318AC157E3885B8EBDC35B42948DA8A6566CB
+91770EC786E92873F356524D6E3279555FD1300570D2DB5A69B436E316D1600D
+7F622135601C1318824C0E0CFD58F90452F7D584CD8675A3ADD544D9569A32C2
+2A44C7F7F35FFE5F8B3C783D071BFACD74B1477B93807D36B8C8B29B24B3EDEB
+B76579FE5427A4E670588B703A9000F3EE635D22642493AAB21B7733EEA50010
+2E39529212B65E7565AC5AF02340A8A15EE28E5772676DF8F2F603F3442EE12E
+1998A90868C39500AAA7F469E6533983CDB9C1772CA11F9DE5E533A30B97B735
+B1A91FC71909D220C7917389BCA4BAFAB242B26455E4B7FC1882D68E408D25E6
+F6BAD98F84664993901FB2969C4996A0D326D478B77B433C225A6B9A2EEE56C7
+44DF603A25947377A93A92566FF2547760227C5341B4D49238C74A49D0B13EEC
+603D7D071A726F9C6592605A2060CDE6759F7BFC3AA4471093516DDCDF6ED4AC
+5B1BAF7B8885AF7C01A2B72C2207B66C15430AD9390B592058557DF0E0356382
+226C92B9537DF8C4F37383902B4E1666689E85822C8A5A6AF3CF47CA12DD24CB
+847FE32E805AA98B3D6A16622A05CD8D0028621906425BC18C4B451A43766C89
+5E1163433DE64437A88DB138B0F2C9A5BEA6DF789662C3CF926E47886163DD18
+5B9F3417B3A9F7012AE2CABED179A20E9AB4E6CBE842A2159F2B9C8553313CA6
+893456631FCDBBBB70B1B167EE5942B49EB55122727406AE71B298953C01ADE8
+0BA8733B658176A881B33381A8A917587C9F2B88639153CE90DEDCC822B75C8D
+BB2F8F03639A13E6F3845521A3F159DF384FCF569CA71C0498117EE72EE057EC
+FDEE060EB580E8B7B48ECA10C3B9FD2498D84BAC4D6494E29F972442300CBA46
+3409FAF6702F99DCEE4EC5CF909042CBF6BBDD15A822138A17ED1EC002BC8288
+F04C3B656605946035533D25767E39EA6A0B2D2AD88FA8326EB1A2B451142445
+E53F1AAD06EF339B64B8E7A5E197DE9923679488F8672E8184C3562FD546F1E5
+0BFD41261815597158D89312F84726037763E7AD7B54E9FF4F5CB020AE75542D
+71A58857864D6CE66005928BD0882690B48342CBB2EDDBB054C53634B2CC6133
+8AB295BA408D5DAB41EA92DCB6A7E0D00876544B886DE6859A7D237EC785AA43
+C8697A8DE30554471E819A3E56B07BFD0D4ED8AB7EC6DEC31397338605F49C34
+9ADEA23D85498859140F30BED171CB7B15EE3A219CB005BB4C6B01495CCE1239
+F406E4F7E9F5841710CFB152E86B4A799AB159E16A848F8FEF7A13CE20C001C4
+1EB2BBEE086AC5CD6B4E69D1A26A9F33528AA0D878E715ED91610B773DF0861E
+4D5C6B74289BE02C99A2436FB52ADF8D6075EBFDB3457D1F47AF297AD01A6ADA
+27EF7645D470343E54A9DA9EC009876C4A2724C2F829BAD63257802ABCA948AA
+E532CB4BF794863380718A125CC162CFDBF0790B4021C80912E23698A8A37BF1
+F9C5C0BAD7D5BB4F642581097F297E0D46B536754E408108D84B05C8942FBA21
+BD8A8D9865DC739E89710B770ADFF369E0494FDD2BC8A5FFFFA48C58268A401C
+FF0633ACD4D4B11D0139D3D2EE212789BB96EA732CA519D548B8A5276CBAD81B
+41BBEEB2BF708CFF62CB02512BA2E0D208573E8F1763C9D074804808C980CFC1
+10A94039F2AFB2AFB8345DEED4F6023CBD3BDC0AB624502958705893327F23AC
+5691F98E44F59700CC30C983BF9BF750B95282441C5C3DE6F424E95FC8EAF3AD
+62D6B488A7003326C78437D973C478F880ECD5320F8B6F8147B34D6A19390D9F
+54F5579BFCDD05E9CAF808A8A15F4267204349016F6C129721EA4F4404CF882E
+C7FD593BB1C9128B0938D27D49CA8DF644A4930EDE2CA73D756C92F94CBB55FC
+A7617F9A94B26421BE596C97E3C476232C566E5128B5CE25899C3C8919E49821
+48F27D5D50B4D3AEFD4FE6B04147FD3866ED46C4F95F0A08B5F4675F72D17DBB
+77CC6DE774B2D2D896514D039BC0F5F2D6168A058A7225A0BE39F3814C32B1AB
+FEF343268195E2685C7B71E15A719480511FA763680C62C441F121C1F2F62ADB
+EE0615C2868B9ABF3C704BD1140112C944C79C1AB82E25E7A344C8CEA0D46FD1
+5783F80C7C11DD39ACDF8B2EECE08FF8160E8B729C73F31F45940017E93CD600
+2CB347E2B4FC92713FDCDCBCCA009EC506F399177FC5A0F8D01754256B2CF7E0
+55E2F4A3B152E0ACA549FC3D982F6A89C9C616A0FC24D96BA1C04A536AFE5D7F
+FDF5C951BB79A1405F41A2FB509AE5B105333C29E3F1C6CC4FE578373EBC50C6
+BCCB4300230143828062A77F90F08DCC3F602A7E8F6A086F988A1D4059FB9CD3
+0AEC529D64D6761E641E49354B9A9E6518121D606DA1DA14D404427367C38709
+B984BDC423BB4CC58469DBC4F9B7CE8E57F766DD524CD00724EF31C8572C0EB6
+3F813B564FC18F0AB8DC5432082088C053A75C4A731A6B8D73CE1B7CA3C8ABDF
+514055CB3A70AF2A96D63E98BC88960143A6832D7A87E96BCB410ABF78018D94
+39806824612C45C0B934E7AF984FEAA181C12C05D34DFABA37C3E337C5B6FBB3
+4DF64167C63459FE744746B59DCBA94790D8E356903F6C5EC28CC90362468ECD
+93FA69239B7A90EC28CAEF102994732F6F4876B2C32FCC9717E47918FADC747B
+1F101711F779FD5DF45C8B1A4E441865AB1D87E80A3024CC9EBB2D7F8290B6A4
+E270B71696A68BFDF9D1C93B79C6C609F67B340098C658BAC16A5EE1EA1AEF21
+D6E085F2B4DBEB8766D245C997111A92B9AB165FC30632CA1D2BE76AF0273E0F
+D8FF941C7FABF16DF2ADBE453E47AE9A1509309119749993F549F88ACBC2D99A
+898FB252F0A88BB96EA8EF9BFB743ABA1E42B50459DD427175A7827DF703FBB5
+8E7939A3916BD6186A56F37BB142C332764B3BF8B92F61774648E4EC13BEDFF9
+709D3CB1F54DDD881C35869FB133CDB4646A05037277824C7A59311D04AA3D0C
+15D5D96F14C8DA0BD589BE22991B2ADAD8761701565B1B9AF9C71D8D17DF553D
+1B267FF9F75E0D6C7ACC49FFEBF0526684668DD1B3A060DB398992F9C7522F99
+9417384E4AB2FEB323FB3B8D1FA2041CE3BCCB92E6549786813F39346F915682
+67F6A312A33E62F2748832616BF17B30F06A9BE8ED61F7962FEC47885CFC93E8
+A3487DFE3C97A539259CDF60B1A4C41D5CA938F23F6C9B798016D53EE94DF128
+E4E73A7B0F01FB6B722968162D5A82D5DCFD06DFC635A085AA797F1AE249386A
+B42DCC3D621482BCF99AADCF55677F1DEB22E0A260426BE41BCC1B963DFC1D7F
+5B398D4C8018A420520AB2F1313BA4D25FE28C2DD586053B1FD62A2630436256
+E0C0B4DC7754568B0064738D940A12C580343B8CF45DB56E83283189CB9EFCAC
+4267C82C3605BB700E5ADB99093D1DDA033F261217921F85C4DABEF290E79095
+2FE9796EAFEF4890B4AD4E173075EC4534DD5CBABA373EB3D1BBF24CD3587660
+FD7D006BB84C1E8A97F5E47BF084DDCB905ED833E2A2ECFD3C399F29ADB6B306
+AFBABA185852E4FFD6988CB290FA8E40B80B2E7130DB1146B5CE35E060AECF28
+187DBA804CDF12A0B82654B7F2E836FBD6EC4303D5AD26BFF7327AB45CA4E741
+DE4731C7707DD305AFC2694A6E64A51DCB4839E9C62EDAB3351EF93990371FAA
+7B2245281E2038A36BDFCFFB40E3866F84CBE04283F4BCA5D04E57609428F4C2
+892CB93DEA53B4B1303968E0477139619E93E1EAC69B49E7CCE0E169DC7940B2
+2F6D8AA883F3A23AA7B85631D5AF2ED347E636DB8CE83C7F14E5C901353E3FDF
+697C060BC582E78E3E62C0BCAD1050B26551D21B67072F86D7D801E5210474D2
+6850E3202B67873F5A83527DD88D7EA37EF9995947A0A570BD7E6EBD07BEBD64
+630D3B0BA39C74BDF84F34D6AB254798A815A5E9525C7926ED2F57E4328907BE
+3537348976E30AE5E7663C939DEBB3C9B18A85F52C002CC0EF494678B8031C0D
+0D0FE220B7A9ADCD2E69500D6344B946CE04F636EBC451678DE5C40AEF97C382
+BA41C2FEB0D13E237BFEE8ED7599FC698C895969C0737C4233C4F973B3F63E09
+BA4B70659BE66CE6A34E1D833C0F60F34D60504132CDC5E4F2A1957737D219A4
+E2C41A70C5FB47DD7AE4F471294003B6EFE1AA402AFC090E01A872113DD64137
+982FBF23DFFB39B1D7FFA6C8E2905085168AB6A562E0FC6789EC59B0714B76FD
+42D025EC4B5B46A22E9B7D414B3FCAA3B7C6004576E031BA7E6555679C080CA3
+2BF40C855B35684CB9D8D6CFA2C36B1C04F0C2EBE3E91B21018069F22B617B5A
+06F1951FE45FF83575661E42FDED91584B239C9EBC96E932F3CA8109F7BCBFC7
+130FD5A3FE2C735843B4CFE5C60EE5F7DEF09F937900A795A781B69627D0CEFB
+483695744758CB55E7C68311F5094BF928666F805D47CD30AAFDF4D9B3D899DE
+B7A5FEA16ECE4B9F34C64DA16EA56BC0D570D1A6DCAD13A348D5B14165DDF06A
+2532900442348D65C506734E33035B0159267E882B0444628B8A68A3CD273EA6
+96BE26B957BD00F56C8F905185C0F94AFD2F7D266EF13D18FE46D55AD7D0CDF6
+A25ECAA6CC0519167FD9585B2A7CC7C49032FF93E06F53B131E0FF8CB56A96DD
+A8735A20199CBF4D6B5EB194CC7EF59865AFCAEDDF0F820878AAFEFEE6FAC059
+526F5788FC824D330BABF29F28C3CC3634C60E3F7BE16F03DEC298EAA13F7012
+443DABD55069737C9BBF454DCF01BCF18A77FCB84FE818F6A007763491FC6C6A
+F078717E42B1369FCD4F8ABFFA0A7C5752DF27E31DEC70A28B169AC0B2D47ADE
+9C8A60A78D3A571C1CF36E1281B6D688150CFB8FFCC0569C9AF619BAFC14ABA2
+81A4BE84A42B32247BB1D7D92CB59510F7A6E8CA3EA0EF4CCBC044E06406AEE0
+0382182D14343C18A9585812E09163812403D668A21EE37603F7B50998B76104
+7E9819C576F67CF4701736E3916C128A7B548B816FB58945F672684E1F7F74F4
+A597270B8A42DB7783A4B58BC4B0406CDAAD64C7BD98825D6C913D79D80F2600
+6DA05A97C518E2DA6D26A37041D7DC1A946CD56AD0CB8C6DF58D0819C09D219A
+8411E0594FED8A00BE066A83A99BDA43A6EB6DB7BAE07259029BC157FA5BB0D8
+3099756B42A2F3FCAC397B6C6AA474E0D67F17BFD95CEAB82ED12AF02020A505
+B70131B326A639137258A58FCC444D3426FE0587A408521297F47579A97A0DA1
+56E7F304EA883B99E560AC0FA811E0A2FE2EB7EFB19907775992D4448FB0A0DE
+4AD04DD37CC82487E81F71A5EB07B8E3F3E4C3E2A04DE71401EE8488638DDE69
+E24652941D99D6DE77554F9BF4044CF33E917A57DCE21070E4E88C7DE8DDC312
+9FF4B7645961D392AC2E03D295FA6420B0190AD5E7CEFE7A8FB8B40A943C6FEC
+E895F72E1929160D0EE7163CB8BA46AB9F46AE362596F011C297457B10D47BF9
+051BC41B259E77A466EE08C66610B0450187B270FEA9AEB9A51057461AC3167E
+55F6558D1281BF559CC09668B7069CFA2C9917F00ED029BC36D003E183E805A7
+A4130DB6DB057234704E9735408F8659CAF3519F1C314FAA472EC3BE153A0992
+258497B38A4F16B67961844E7CF1E4B0637E38E1031D99AF838FB1157855CCCA
+0A6A82DD423BC09F6EC30223365A89F6336AEBCCCC471376C4E74A5E7529FEFE
+570C08B37B2E960264032693E2FD76F644435BE1155C2A3FAB40A4F69BDAAD77
+378A0777BE02DB97BF6200A3423F663202908E88FAFA2C6178B7ED65D182D4DD
+B9BB636A8D6D1727C304F2F36C5F1C50DBAEA96BA7079D20D84B4FFC26A1E631
+4ACB088FD858AB301359D555D6560900806E2633DC41EFF903FA2574F603926C
+47B74A598B04A03E03CF6FBDE8ADFD4AB480CA8835FF84AC77D5708999470CA5
+6B723737C43D56AF8DEC794EAD4B43069AE408BBE843622E488C0E2FA1926709
+F4E1390FC739FCA366B552F1F7126889FA3FD02303E7410F3E8504A79F18D410
+806D1E20E7241B7759237FDE279ACC56EE7FB3D7D6B3AFBEA5ED8066FC526090
+B3C1E7D8123E1B939B6330852B69980910C84D57D58640B7481CDB75496C8040
+7F863A3FA81362CE2E8522E1857455697CDD15E7C4EDFFB3435562A957526E9E
+C5E076A27819B108417CFDFDD52864984BFEB8D96136B3EFEA4A1E57B84AA29B
+08E7BE55EA267A7D613FF38D8BDDDD07FA43BF3BDBFA3995FC8FAC30BD8BEF67
+F8B572E7E972AA1DE1058E2BCAF6A6A155F451AA398436AA5798A13B95963EAD
+66A75A37C72215CB172ADA573E1F24D27312355E452879C21586CBA30161AD1B
+6468AECDD9D0E2293123293C80227527B3B0F830B1ACDF3536961AAA5601A353
+EB1E35BB1D0A93D13309B4ED3C2E269E7F9371F2F7AA34197E4516D43EDA99C7
+E79A7DCD24C15B469E95677A74CF034FCAE91D016918E752875E25575A6878BF
+63AA29C377C6EF3717E7D5B7408A44FAA1CB8B630B5BA17E2F7E552779AED502
+6714A8740BDE5646C08323607EC198D04F6E265AB93C67F4AEA44515226F10D3
+2E93D3A2729185DE41E00278115565D092529569F7DDBF97C00CE386AB6E1738
+A1C197E40BCB26E73AF481770AE523B8DBED366E9AA68849087D5217631359BE
+127B595DE2CBD9AC588289ADBD7EC6293EF82B2E6DDE4950BBE74A5CB5647B26
+CA37AFC8E4E2C2D518A1E8D56228568259704779356C9FD4DC48D53FC28C32FC
+3C97E6833AE3C9EE7AD45CB38CEB19653A94B85131343EAB8CEEC01B77730D58
+075C925CF28D86E65B8A07DA41E18D4CAC0D77E695BEBD34893E84CBB7269F2E
+B422F7C060CA005582DF02CF49F69C962F34F545FD7EC1F33290C39145119750
+3292DE1361F09BAC7F2A55506940C2816E71335FDBA538C68104B73E0FF4697E
+FA7D65FF1D691B96BE382AF92E6DF45D3D2374C7568076FF76F9C23AE3DF4D8B
+A7B2F416AAC3FC524063E7C9A4B49BD303B19F33D1DE4B6AE7EABD510908AD6F
+A8E0A18294E5C46FD41193DF4656F30DE28F08D81903CE40D467637694E1B383
+1C4B1B0CA895F8413B6E686CFFAEAF61C6B7DCD846DB8A4E715307A7356DBD59
+86D5619610EE086A39478AE985F33D170426508AF1EA81343CF615EF3E117E2D
+4DBCA2B03C4355A59F3AD6F27EA0A5C05B10CDCE8DB7CE7771FAAD248F59C2E7
+62474CC2C16928DD36590E4CA3695003BB960FD5
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -764,7 +747,6 @@ FontDirectory/CMSLTT10 known{/CMSLTT10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMSLTT10 def
/FontBBox {-20 -233 617 696 }readonly def
-/UniqueID 5000800 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -1124,7 +1106,6 @@ FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMR10 def
/FontBBox {-40 -250 1009 750 }readonly def
-/UniqueID 5000793 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -1984,7 +1965,6 @@ FontDirectory/CMTT9 known{/CMTT9 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMTT9 def
/FontBBox {-6 -233 542 698 }readonly def
-/UniqueID 5000831 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -2609,6 +2589,548 @@ D06186B6AF02B84B0FE903B99ABF0C8C595D951458
cleartomark
{restore}if
%%EndFont
+%%BeginFont: CMSL10
+%!PS-AdobeFont-1.0: CMSL10 003.002
+%%Title: CMSL10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSL10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSL10 known{/CMSL10 findfont dup/UniqueID known{dup
+/UniqueID get 5000798 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSL10 def
+/FontBBox {-62 -250 1123 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSL10.) readonly def
+/FullName (CMSL10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -9.46 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 11 /ff put
+dup 12 /fi put
+dup 42 /asterisk put
+dup 44 /comma put
+dup 49 /one put
+dup 50 /two put
+dup 65 /A put
+dup 69 /E put
+dup 72 /H put
+dup 73 /I put
+dup 78 /N put
+dup 79 /O put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 89 /Y put
+dup 91 /bracketleft put
+dup 93 /bracketright put
+dup 97 /a put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7
+5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99
+8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716
+EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C
+02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D
+46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A
+4B60D020D325E4C2450F3BCF59223103D20DB6943DE1BA6FC8D4362C3CE32E0D
+DCE118A7394CB72B56624142B74A3863C1D054C7CB14F89CBAFF08A4162FC384
+7FEDA760DD8E09028C461D7C8C765390E13667DD233EA2E20063634941F668C0
+C14657504A30C0C298F341B0EC9D1247E084CC760B7D4F27874744CDC5D76814
+25E2367955EA15B0B5CD2C4A0B21F3653FCC70D32D6AC6E28FB470EB246D6ED5
+7872201EF784EE43930DC4801FC99043C93D789F5ED9A09946EC104C430B5581
+299CB76590919D5538B16837F966CF6B213D6E40238F55B4E0F715DBD2A8B8B8
+80A4B633D128EB01BB783569E827F83AF61665C0510C7EA8E6FC89A30B0BC0EB
+5A53E5E67EF62D8855F6606E421BD351916549C569C7368AAFB714E22A023584
+8B1D6B52FC6F635E44058690002C6BA02CEC21C54CC8875B408A8BB84F445894
+5D6B3E4841CA20AF852A660FE9C832F773691DC6F7197FF3DEAEE97418A5ED2F
+F2AE65300416227CD3BB03C29003C770CD7D2A7A2E4C1DCA193651C2CDDBF93B
+966938788694BFB562AB0010268955FC3555E5984CCAB0A9B7590C77C9BC713E
+A29E5BD7193A4E971D1752DDD0F0AA4648E7E87BBCE66A1E836C715C408B07A5
+9EB56BEFD4596706CF839BA4CFA90CAD4038C1E006B51913279A2C31FBEE5BD4
+A7D74F9103CE6124F5B439CB860987DF44FE17EF88EF1BF62C67060D25696BCD
+94ADF08F04E349CEBDF9D3389D870D94CC05E393B3F4362A13A6A672EE5E8F5A
+DFE7046AFE3EBAEA58FFEBA4A47BF61F92E2003756DA643CCF2C9DFCCAB62669
+E3C2A18D690B64D907F50BCA155A85E47C3A6954C6FF7ACA36D8DFCE777B7929
+5F5D5F787B9C247ABF13D6D7B4A8F06BA25CCB342F8A5071325CDA86AD71BA23
+8A9695C7D1D50D0AAC267AB7CDBA7AAF46A264B7B081B7E79AD937FEE4969FD5
+155A99E652461EFFB4BD010E5885631E2B2497D6B8C43CE77D7D47FE201DD46E
+4482FFDCE150A1183C22C004A0AF0E1F42AA6804E038E1DFC8B0A3CE26B52038
+44D2E7F759DA5C252489E5525963D68BC27C82247BEB18818C7D4CF0BC5CC97D
+8C701034B8DF798DD4CE36C3F8B1FD40B2DA14EA75583852875031AF8C909EE0
+04495FDCD04B05A5EFEBA56A8CAC1F57F1B8AB91FB25C81CD51EE69D6E0F52CC
+A0E12CF7E3187D67DF71A599FFD895FAA7BF80E2E6B96592BE77AE96905BAF0F
+F547355A36C443797DDA7C414AA606CF9153E03450B77D1BA4088D739DF55F07
+111B9E11AF37F45B6EDE6D7AC126E05886A57C83886DA87761BE600DEECD1344
+8A82BD652BE7ABFE6A0F50ED7C6F4EE12CDFD80CA7A5518692F267C51C3FE76C
+567BB8DDBE09A2AF901F79AD02B435287CB8057B3D5EE6655071F67B00438728
+C4C3EBD648BAF650993AFE5E2B29074A99ED0FB725D9B8CE8B0292B08A280214
+C3AF252BEEAD30C88F72E322FAC3E9D78A1038F5DFC41F7BF1AE3744A0677094
+51B77C2D630B67853FE5E975A395C06A4D4DA744040B272C2B88D8B7ED3A2C01
+66F503C9DFD3C7DDAC865900D2A4F2CDF517F449851DB1963468D0266D7A3E58
+9F6B2A1843E6444274F16A9930302DACD8D2BC4588765099A86BCCD8A31DF0E6
+2853114DFF2D19F812F19AE6C2E419D7AC1BC024D1195074FD0C6717BFB389A4
+4D5428E7BB2E4F9E9FDEDED7BDCBDD3460805AEA0B5F6460C2FDF19273CE5BA7
+5D3AAE0DB94C6AFA8339646191C23B0149E7CBF136FC4C844E025A38935DF256
+0A0A6466A45EE8B9B23B6A055856FB084F87C73BA28F1883E3B184CD813C72F9
+233B78CA4E125ABD26F29B92CD9DF39D6FDC2A217E2B6B45D9B0A4D536790A5D
+BC0903069565A442FA7466414D948AC432C6B75D8D0E1DBB217CA3DC38A52DEF
+62E9D5AE9E753956C13819D93148C7683BE4F71B80BC066D8C19FC807FB1C086
+B49215DCF56A91A42089F0D063B9981925691F7DDE3237403AC714F5CC3ACA88
+DB2F1DD205578C00472FD70C8BA4F752E3923ACF3164D442A6B639902ED060D0
+C5777BC20F9A3BDA60FA3BC986C38136FBD2E8F910E32EF36377C9CC187F4AFA
+CCEC423DB925B378522B748BDF12D523804CABA83CB5A7ED69FAB9AAB75EE8FC
+38D9866E3754C4E2F2B9AEFA804044D878DED0E114EA0E9682FCF38F6628E63D
+FE1C1B5615E54FAE8684566EDC4B616F76EEFD6207E0386F06D3BFFA26425F24
+303CC7C8A8D7021E7D09B202616988287838C3DBCE3179B4FB5C726E603A47F2
+8248CB508F327D1291CF3F08F7C88298DC2D0F778D24304EFCF6E074182BF5B1
+8E6551811FD6991971692108E289B61053D6DCBA2925B3903E8916EBD09D97A2
+C6D08E89DE4C0CDF7185E1E00DF456B249F0BFC686E04FDAAD2772DC2C39DD53
+9C23A41471267F53A87E5C2B8CBCDB66CE0B9844BC506428E6150B48D2FA6363
+4FDB2CEDFBAE0B7DBCE4D83E29B2955F8966272CB865EDB360C8A8C19EC62A29
+03066483E4083524A1E8D80FE3867BC1AA91753C26ACBE8489AB0E3330206212
+93E07ED473DBF457EB8489E66FB4B8ED8A9EA8911CF9308CFE3E6D6F36810EE8
+91CCB11BD548617B2C683C354452B9229E7C9E68828BBEC324420DF7C188CCE0
+FBB514547553A7E9B38AC265783891F42DA472388569C8E7594F7E8810895A27
+06E456902A8D9F65CA808F1FD475D011C4572F8A654BA01D67942226A663D179
+95149FFF41A9F55AE84EEB9A6A39C017D7E4FD6EFEEE7FF3CE847CDB064A4954
+9DCD273B810E0F259501BA4003A3EC1ABA6E13D24C0B57FF82D6DF077833B6A2
+7EA54801BA81DB961C261689C0887FAD83771E55D3D137AFBB21779397E11972
+6C6CA922F45AFA5C0526863A5AD8B9C0775CCBA17FFD37A44CED4710884DBC31
+5C9D3F5441595B86CF7CA2EEE42AE87896E9E60EBF5F35C2B7FDBF9A9CDAE262
+3F48396F0F741E9DDF1D4FEF75E68AFB020D06CC29B3A7B2ED819D1AABC12B91
+CA2A65F1AFDDA2F3FB322E0268DBBA024663E49EFF076455338FE31A16B04EC1
+797EAB0B49AFFB906A0690A1E8E2F5314773E1CCFFF43E6FB3875AC907F0C5D0
+DCB9BCC127014D472463560CA0CB1C2CE614D94177C7A52A5B089316689C8112
+CA57E35D716D956DBF9013B1E5B9626456B1433C8C15FA906458F957133B9E19
+8D46DC3AC015F7602538C2AE3927C6DDBACF38E59220C2F5AF36B68DE9117C51
+04CF7DF32B1AF55B87D1D8A5F4BCFEC66F63B32B6548DEDA3AAB06C5310E4757
+78AFF947DA22809B360FE535506A554DDDE5A6F2411246653710ECE5CD3185BE
+730520A766C47E1ED01890059882BE1432586864E1A86A7F586438C8DD35C00F
+021A741ED47E0F16DB6070ED0C50038632CA4AC2975578A8372A080CC0447C79
+CEABDF2BCD5E78564247B0F0025F556DA8FB62125227849EACFB724A4AE3EF57
+90C07A5B27D2E59425F56BF8AD84C5F5310FEB1BC73D536339FC2E6A5BE2DAFD
+97FC835E0D52F680F80ACA37DB498AACF152B9B44626CD89E3302C3EE1623EE0
+F998FA78305960AAB9F483F731F5F67A8C963C23DB8E48FB804EF8B86FAFE7F9
+4C09641915FA7E3930AC922682313408BC1607C76751CEEAFD660206A39CF394
+40ABE2A313AB7D5FD6444E219DC5C26734D322BA268D330AC17959A390D6C8E7
+3A155095BDD66516DAD5D65519A7FB871ECDA77061EFB21F359158B4470EF79B
+362C35C06B85C9A9505C8361939C6AC013F2CFE8EEF46FD8CB4452AAB3EF1FA7
+DC066557BADC2ADDDF7DDC2A0E1DD4A357E27A2073427EACF9B9035DA5272136
+7DF37E26D96ED4B2ACD60596E039BCB15E259C72FEB3344E3EEE3D4F17DF4233
+04C1416BCADE80BD483DD8C9AF979E1C7D50C4CF015870703F88B92C4FE46AB8
+DE6717B55C460C805B391B84333097E116F4A51F631FAFAB34CFC925BEE8B72B
+C9FD5F5A79D8F2295FBFAE649DC6AB47794AC7D73431FFE5BE992F2B5AC67049
+B5208251C0E442385A9FACF25E3A98D7F5D4C2A1ABDC600AABE84769CA83350F
+9B87F71CEAD3600E02FF9AC03C1B5C21C84F911511A0CF0111BAC7605EE31229
+3C526A79D943D92E1CC3C38ABE82D560CFD4172F318030852A5FCC0534B8B3FE
+D7365987C8B48A072907B26CDC2108130A33233E8E0BB5FDF14FB55098A10EA2
+B51AD9EFB119F82B08D256D396D3263FBD9DBF172D43A90ACD1A31F3E89E8571
+74BE98B9560E2CD661A2F93C69FEA3FF26B00772AE2C2C24B98D3D122EA2AA8A
+44652CCDF4EF4F01CA7D62A976E23E8A86291F43BFAF38FD9C325E70F9C36CB5
+A181DAD30156E98339E6A0498D3420B7BB3B4E651A9090D4A17604AE386273A8
+3D4AE8CC18345E6E19DF06BA848F203F74B161D6A8882991CBA7385F308696A1
+BEEB0130D938A764B98A2001A38489B1334025EA848CA44A116D64926D460D64
+01159E77EA7ED9ECE7BA77635BE564A4ED89315BDFF54ACE6AA1A26591D13CD4
+6D6425CA7933769B842192858D10998509396829263290A3A7CFEBBDA3EE6CDD
+DF1E492AECDFF7941B53573F01F623CA0A5ECC9D05A3D0954F7AE8CE94AC3B2A
+CD4E27519B2E16F033EB732AA024BBAF74626DB55DC74B1FDDB07FAE98B4AC5C
+683CFD8744F361838D343B657EBF52DEEE7AEA7565C5BEEFE455DDDBC4DCCA7D
+87D6D769C5ECCF14118A14A85A86865777C8E28F953160D5E82844AE54D541DF
+550D5F1519E183E0C42BE88F0458CE8087F2CD4B1B49A8E9E3D127C4A4CB74A6
+2E73BF4CC317781D03FF04BC36AC0E4AF99E2ACAD20F6F8029DE8A035DAB40DB
+17D237850BCDD05931FF4B0FE2D0B79EC5A88FE0236271CCB075BD194AA25AFB
+3FB93A5206F61A14602E4EB6F1C31C654527CE0C02D04314DF9AFD710D0EBB9E
+F8721B97F5FB18E27507E1F800B5509A58A1A8296C72B7B73F99B6CFE42E9C2F
+B63B3555475E562672645CD374BCDE937A9B05A157FB3E74C8297507253E957B
+1A9DC421946734CEFA3D5EE357DAC7E9DE17A5BDDEF6B2D2A740BC58128FC514
+61154664412BA1C05209EC992A77B7CA45AB7C0EEBF590A5B5652866008CDEF7
+124A3003AE6A7CF9DF3C72750CBD281358CD2FF25B162B78CBB971DB3477F8D2
+ECA3EE9CBC90323B2C236E375337EA0848CD7CB5781A2B0A42DE7E4D99DB2746
+0B26796CEE129D23C76794B7CE21C13C7D4A998B752C8CF43A4821B736EBE246
+D2A2BD7BA3351FBCD1B0A501EC1EAABE60D06DA2FE39BE1F0AD629769FDDC933
+F9D02F9686EC8C2D7455C26AF4DD3F6860B2289E3A30E1C254AD17D731CB73B2
+BF4DFE90CAEECE3ED0CD3FB4C8F4C7BE1C056AB4E9B95781A8968E3CC1010003
+75DFBC4AB9F6B27C5A9AD88D94441A8ADF09EB275E5F0E5E6F3BFEA0FA8C308A
+8593ABA0645ECA8FDC3F0E264B35D4B0DDB86B93CD8A047FC409E18196B501C3
+B003622999C47BAC04FD1ABD8AD359C977766E9643EF3BD6385306B08EE3E13E
+7DA5A06AE33D17A3D574C6390DB6E9429754B210F0C349C359559C7EAA2350BD
+F61D4D8A92B1AF697BC620FA0351E67E0D9F41A95A47EE0BF210C2C48691901F
+F905F65693DCB85BE412F097480F6A7266AE0A928729DA0F691CBFFF3B276EA7
+322BCD2206D96E3DAFDFB992CA8F2955F0E8B882729DFF840569D12E4DA1775E
+523AA734552AAB6F2F16B89B39F1A3FF0E07EA08D13E612F201716C67F327017
+6C041760DA30374434808273062C1FFA2C47B3FB578807BC26537F542040FF77
+66C995EF3E8B08B09FCD3EE89C30F157158A739606D2CEAA26694A4F1CEA6633
+B54933141CB85C60AB262E2D4E824A3B85C2BEF810DD774F296AB37D0BAE7182
+5648CD18556ACB124246A75474B232D712C2358908B5D9A76F82C626BFDE01A1
+093B8FA6AA0B32F2CDEF737B28BC0448FF816DDB5812131DA0DD5979D77C3838
+B978CC3F6778A4BFCE9A7087EFB19749285AE4C92B99A6649DA349A2E0889D72
+6D4FC664522F06C8C4D86D30BA43ED4E42211217D01636A4E17E2A132D26F394
+EC34EA12D84594AED9C6CDBBC0908860F39B240FA7D7B3003DB10322498691CF
+A294C0FC7ACC0BAD1EED3E9D60AAE3F7429695892D1A21CEBF062C6129B33966
+8B2EF6E932F9891DE6028B81C5E9B23278D35B7F0D83989BCBA25E20E9D503DE
+144DC485F09A4EFA1268AC5E4B551C5B2F1D51E9B9B9C0FEE585204F869D0BE0
+7287D7570A12940A47C1F51AC6134F03B415C30E147C49F89228855D093EE55F
+172711F37776E97A99CC4B36E2F10713E36FB279FD3FA5A0EB9F3938F42E2BB9
+254EB8F0C0F30391735019E02BFDA21D9813C6A22279B898EAF01AA892B14DC6
+5912B9275167AB46EBC420836CC1A5F38A4EB47C039A7BCA62BC3FCE4199FC71
+011DD6E5FFA0F3D7F04AC02AF91B9249B9F993AE346572329DA852115BEF8460
+B94690E790003586F473F37EAB5AC2922F5F663EE2C3C0C336A8DB71650631AC
+0A923A389AC911CB215EC2EC7D50CF8AEFD59EBFFA53A9F1FFB7E6215F17093E
+3975F186FE23BB5FA5474C11408FABD223E1E6F62035B5A5C1AEFD8899F00FFB
+E729C2D5FD551E80716CEA4E8281660286A802AAE8D5834F37F2EAC46297E57E
+993B09251DD7789D3467417E393B7DEABD06676B96241B0E43ED1A1A9FC3B12E
+0D34B2B0792B79AA648FE9450C3B209FB6D7D91F50C52A5DAB0BC81A8B698BD9
+18946EFF691912D7348D48FE68CD876FC6F71F81165D0C3272DA1A992308D9E0
+ED6D0A4DAD679AF495F62B78D462B463BD4A40931172290C615B3B3B6B47E45F
+CEBB85E0A6AB6832067CA6D403C239530D07F199788AA4DD52553836851C5228
+1072406F6D7323A334E7A7FCA588897C4FBA6D4F7DEB65525EFB74E539C988C3
+A685A98752F7198E77E456A545F0D23A1BEF81EF58B02D289CF980A3F17BEC8A
+6F83DD90C4A917EB0E5E2B444A608E2E9D2FF80620E16AC1D7775C0A10C1299B
+BEE0E1AB24C50647E5CA1DA65CFF3B2C295F0644CA7826E1DC6FADEA93D66A20
+DE852F20AD224D28DB900519EB1569837139C833F24B799F7EBE3FDC14235323
+1D0BCD4991C861F38DF413A5A5588B73AEC3BBFDB885CE17BB3E97B4E6A79761
+93EC8418C2BC4725CD61B5E30C07352F647C3FD50083878C13CFAC241DDCB082
+E53703D182068727F9EB6FACEC25F6D901D7309ED7370867E34E267519E22D62
+4FC7093448BD0D6B1C43D318A3E14C92032325C132AE0FF7ED707E1FA4A955FB
+F5224BE0045CB14ECC321D0F333FE24EEFCC504F7C756451D7693C3E6CA87526
+4912E1B6DB935BDE76FBFAFCA4ED473F1D2618812CFF25A6859C626A216603C1
+361BE3E071FCFEC2D4BF2FEBDE07DBD56A1BFF8303901168FA06488BA6B76F36
+95B0A90D7724E9ADB567C2ADC65CF3482CF47FD1D16F70AA19A97D0F9EFC611C
+AEA5E1ACCDA7FB2DF05E9480936281484BC329F0B771775E73F7FD72FE3F45F0
+50ADBD03932B38F37A8F0A66B2F739EA3AC8811C8F514E68C5643E4AFF485C81
+88475A523D7FCCA5C8809BD49846C77795A38DC6406082000236A4D2628B5932
+AB7916D44EC2210CB941B83BC0F1C097792CFFE7112D039CF77EAE73CB4E02BF
+60F5C3F629F7BC5A27C207D70DE63FBE0E023452097D5B7AA5B2CAC668D4D075
+1A0F70683E96AE35A6BA0B59619C215A7012568991AFC0C35789DD0ECE45C649
+F44580845F0FA422868CFCC8029513235C0286B76196E350498845EA934DF289
+1D0C954B079BD2977384B96D8460B4F50EE635A4C8F7A3B6866F93CA641F3F2C
+C93ECCD6BBCD792189A12FC9366BA7134EFD67A22B4FD62465250E0BA6B7C627
+73E8F50E379328B7FABA341B0D50F9A2CFB055E01DDF6BBCF6FE4114BC36C10B
+E581D76A84EA12995506C33DAE9035683FBD5F54AA1545992B94B8ED946E5866
+2F2CF263CBDE3B77E12E7D863F0A87788D89A93707CFEB6A5EA14C8BAC433C65
+56730E3E8985960FC4D00F2B821A9218A20F11EEC2D6A153C403EC4BCD0B7573
+5BA5398D8A252EA71E8928674FAB4CFC6C2FC36E7CB12136830849198CB0B249
+74C07C83EC06B2E0A5323E3320ED056D02B614EAD64E0F8F083F5892BC3881A7
+A9279ED632967D7F5BBA2B7CA37F7BE21987D8BD349C3DADF4682D4088DDBB35
+D6F8F74749063C4F59AF41B9AC950E6E588B3856C7F7AA1C9030B9AEE3D70321
+2DA63309EA56951A6E077EE1FEB9BA112BA69982E9EDCFC5A3B462FCA9D16A5B
+951C2128F30DAFEAB3007F0DC4F16F3D38371618A2F4848A9D0D59062E63CBD4
+E4E0F337CEEA736493E344617B5F1EBC96096B66ADEFD26110B4A59C69FC619F
+4CBB9FAC2C9314C831A6399B611D597F4F817603450983BEEE834691DD492844
+A222BFBD54593B70F18BBEF4D0969B1EA062F7DC61DB08F88E988B58EF871C3E
+EE1F380B98FBA95CA4E524DFC9DB291A5222D9792B9AE3A1F64E868B1BA4B5EA
+E2BC7C68C837776B01738FD3B8D41A3091D8B9A27050E56E0AA39F8F3AE52AC6
+42D30C4363786477D1C2D2FD832C7E2418A7B1E24FAEA7AB5AD1B99E319E3319
+BA790965EFBEDC46D4E7699CD4FA57A28ABCF8D4C05D4C7618C133ED3180C465
+80FAD466CB46D5FD53216F0F15EB9776562B7B6F808A9D8D9F4DE099D7C99C9D
+06588071FA8C36F774B05C0D65259DD0514539030DCDBAB67D6E1A19B2A6A547
+3BACEF7DCCA65B35BF4FCA3531D08DC5A301E0C112FAE9D9173B7B47E7F7C531
+3103B70633AA09E4F87D64CF5E3B7FEC94276E910FAED3C4B30C32C3743A5C39
+B5FBFB0D16C2B1998F53A0C3CB48DF19B4FA9E98BA3D503F5B82EDC2EFCD8521
+8C9006735D194CCCB8DEDF3D465F2C057E1F8F2D35B362EF9D084D429BB71584
+62AE48163478E7FB8AD99F01600BAA8B77C6F98DB7DCBE7E0C46B917EDD2CFA1
+F209D9A01CC283B773BC469257401809BFAAACC0C9980C497DEEA796A60B992E
+39F098D4218AC55FF0ECE7BE1CA314F586AE82CE5B71E4AE1D768BB52FDAA949
+AD21F4FBFC0EF3CDD44FE8D92EB97776F618AD9E38553BD0492149B3BACD7FBD
+7440BB8786D93167C8E4FCF61AC3D360B06C4424F4D46FA91B862D7A27BCEEE6
+C3ADEAB1CD0F8A8752EFCCB3E592162C57933169DA1DAEBFC2C866C10A5F7840
+5447A38BD856996DDD56BCAFDFDA2979FBA4AB6D4FB7E70E20B76F5A2AA3442A
+4EEF4B1CDBCB3278A1F55C99C7C4F7F34C81B063F8255348553E00D3CD5F5A33
+C7FA5E4FFF58B2D19B9D04915B1A33903ECD61512AEEFB41E67535D32AAFA528
+10FA9F87F68EF03DE847AD8BE921CF3D20D06098BE223F66DED6AD3BBA11F79F
+CE8F4EC2A83A6264406B36A48FF893E972BBD98613C6BA7C27804BCF2FD5A4CA
+D8DAA8D54F14C21A361CD594B9F76822908797D78288D86EBF0E627CC4C8F79C
+CBED3B764D2CA0D05BEDABDBAC5E09E2080CE815A76245D0E0F13314ADCE77A8
+6656CFD4C2460601ACED80939C44F600BCA055BB0332198CC80ABD2A7E361E26
+2AE4C41F97E34A97897586C5D79FFB57F5BEF34EC91CFEF1FF1F64F7D1FE945F
+F0DA4CCA520C5941F83318E765966FF0B9729FAED847F59264E7C5752AEB8AB1
+77426AFF9CE3AF2C1A3FC8F8EFC4B6E74A2201B08036FAEE8F74D6E74A0D397C
+7A7CE3E2D1F9BC1CDC1FDBE1647CA8FDD2AD012EBA5D8D4DBBA99BCF9ED3EEA8
+E8773C09545D482E30653D9FBCC67B925D48363D75B11A0E402D9585C2D5D053
+EBF046430962FA0D514308B0E9DCC14CFB51C0F9836B2244650E77777826DC35
+B5480DF48F8D9A9D731D50FAE55365BAACBE23E7FD0F4F6E22EE8B17F1CB806E
+3FA29E94280B973A85EB8CB57C047605811637076E0D98C349353BD4207FCA1D
+A11094D4DCDBB76B4AF79BBBC627ED1D176D82FE6CF34A24EF452B1F26F543ED
+2193C75C0C003B6B3C030BD9AC90C312698C4EEEF07D64753999E7E45C326DE9
+D5F1F3717D94E94E4B27F809444E1E474358D138DFABCBD6FC00E5DF2B6628F9
+89CC2B4821E8486147E9EB9CC942809FD4514C3FFCB1A9DEAEFF56EF66277F41
+8E3F7CB7997BDFAAC4429B1FBE3CEDC59DB54BA0A335AF065DE6A9981D9CB365
+86B48861A11FE0AC44C1C6CC9EFE479427C4CC328AC44D3C4312EA23A04F6D82
+A9A0062AB6D412C5A1A8CB99E7527C3B37FF79343AB8ACD53B6090341960823C
+D6F5B332A2EA6C19E5B237FED411F3C088AFFB94F1AE2E4EBCD67885214C1333
+3644DA63A8BAD52C9408C0E34AF8ED898422A0A2A4B8E9698142B53D76462200
+36CF4D53F66C51AFE6336651AC3CE180B9C382998331BFB6A86B973955D28045
+E5106EF370EBD1B57300A0EC9EAF11BA81A19131076A75D6364556F0CCB5FBA3
+872299EBC8A91563904119DA00450E360B5B7C5B6A6EEA87C10DE6B911109D46
+FBF66B637688E63AFBA42D647637A654D7D16F5A85382EBF72A7103359CB5899
+AFA4C0217EF645D765BA796BC00788DB7590F64EF066F5DEB3321090F544FFA6
+1F2185AE24C9C6051D625C2FF4D0CE0A476178E9DEE5A1A76E2139419AC8C875
+CABCCB25A1A1D18E4422015C6B8BB9EAC87F01E6DC4B5C194A0AFDAFADCABC1A
+14F9B80BC7CF2B18E2C9140ECB160CE260278344E3168A17DFB3612E8336800D
+FF3A13DBE3EDA20852D38D89CAA2B692EAF9E380302C7587C5ABE01A862FD37C
+1BD1315ECE39E266FEF9D847FD2A45DDD7A3E662C4182233EF90573138EEE323
+F64817AA1398052715686BCF461D29AAB9957671EF40869821CD6D5D499C0862
+17951DC682C529CBE8E8C0D49A5E6FA0956B2BD29EF5870CC2A2AF06EC743EAE
+6D9530AE87BF2018CEF6408BC4D97086451A0124A841A094C34F2A6FEAA97D68
+7F60A45619136B914439B1B12326314B821BEC74CC70ACB09953F287C5A0932B
+FF84B72200A20FFCC7F0038B44A5A0E9958490F023D786EB9E2C7C88D95C1EB5
+570424C0A458E89B31F2E681B99CEEC4F6A72E7BC4B7E6F159C84268138AE583
+138484A95D42F3743423480678BC749D90B1E0233071693B87E9277F3A1D9D43
+1A0CCAC46EB872FD71CE75BFE106580A89DE930211125CC6255361FAAF2DAF57
+9F4A86FB8F1FD6BFF647488691B113F5F4621614E87502EC3AD9C70B8770755F
+ECEC384171BE34CB185439F8B1CA228A0E1E2FA02D38FC2E6B1A1B1BDDA7648E
+C39306D18013CDF6F9FE27861C172CC1E5EBCA0F9395DA7C363799EB6476A573
+CC95218E4B1387908DD37C402C5E14DB7E1236B1BC094407906120EFCE4D620B
+6D8279BA52D64C5C3BE3D6E162975B61D1B8630C10A5F342D4244C9793C6651B
+10B0B67CB877E7BBD8190FDB646C044734EDA86407D9E3414404E392EF366FCD
+C7461F6E08AB2B09B4FCC7C98C97E4ED4CDFBFF8AC9EE7E97C1A7B3A0DDAA3C2
+F9849E4003A8F043BA005D297E5A292982CBB759439F9011B3261433C8EB3F92
+E3AE95248806CB2665DCDF4B3759A48E1EE84BB1B8693AE805F4631974522203
+3F467FDC225087213BF2D79B8B148A47D96DCF3F22F3005FF5541898F95B54C5
+07B931899E8EA1BD0F4F46457F63D64E57CE355BBA9EC53AC8257B1B37ABF0EB
+3429392E1427A120FEFAA66D1FDDED3F1D26439168690F10CA3C48C8921735D7
+E059470DF5C64F1EA4A20857EBFB70FD768C2DF77B90FD83D907268269F2D233
+D603056697E13F1B46DE86C3153A92A619912D6E5316E0D1DD7F5DD8C7FF1B5F
+F2FB39A652F6536A5BAD407AB9A5C9D93CA5A6284A9FAB4D353D54C5CE177C95
+C2C3E5918524DA01F22BDC2E60FD35D43C46686877A088099F000C632412562B
+D30BFA5DA02A94740A250DA5F130E3ADCDC390F2BDB1192DC7C5A7E4D7D908AE
+2E2D50846BBD1191FA262B2E38416B5F99EF71510530CD803DA1303CEA9CD053
+24ED32D8F992521D8F3B358A56B42D89EC455210D052023EEFC35FBD2CEE6A76
+A9F715D6A19BAACB7A6E56E4DF72F516C4F9354024800017E30C3D97EF968CF0
+07992318D1C9B8DC96AA1639B0B0F460D679D6306B34CE67203A97C9A2043AC3
+671DA26BFA89B90E564C29089000CE852D7E76776ED7BB562036B78CC746FD2A
+B45880E09EEF0F7BF4BEB7FD573382968226E4AD9094D801F07B16E63B83850E
+88111A93497978E539051BD0176D51E8888C1CB09AB7B64333C87C5574772010
+A74416F6D539634394B1BFFAED30DA7F67B36781606366C11D722A8C712638E9
+0341CBA1A31CF39EA1EFDECD7969DC31B06538765A2E1C8C7267737847BDFEF8
+971FBBFF86F375979CF48E6A34FC82FA9E2A934764DC72035324577A84225BE3
+D0BB79BA56D8EAB0DDCB541E50A2DBB501D7CB45D8FE16C9655ADA08BFFCC38B
+3077D05BA9ADC17F6EFE5F85125AE6A8935B00856BD588BDF0562E5224A4A4F5
+3A863355F6067AC8BD4ADBAAC72A99F351D82404292DBE2EFAC89921EE4B4784
+28661DEB2AF55AE6EEEAF6FB1C7483135D0D15ABFCA646FF3D64EC992ABA0FD5
+A8FCFDBA5080ADC60FC4B93CF4A84FC30E122C67D92DB0DA18DFDCB0D6BA9FD9
+E0F8C0286FF73E9129F37A863033C1E933896E2D47785B8FEE054EBAB376D670
+3346EFE8319B56827B4448429C5CD70ED1138B209FE7CE20CB3CF16612657665
+73856F9D127751D0F82A61FA10A366060746C0A627E39ADBB3B6A3056998D623
+1A08E7F86E6CB07B00AF5781F287BB62B553BB1490CE885BEBB92C9240F1EFF2
+CD6B893C8CF63B600B2FC17BC96AFB51C0BCE68427D843E5F98851B5AF735302
+EB6EC9BE8DE93BC5C6F48B309CEC0006D15506538F01AE8773F457CDB07D8A98
+EE767B499D60D9F115A692949754FF4983B95599F4DE322CA7F9DFAAC1658C36
+C2268D5569835DCE35DB6E40030CB28B30E31AD16AC8395F66F39F5D9DCC0E5A
+273E3111A4DD69ADE07B9FA18C7A7EA669164C6851A72EFFFFEA3E18B5B87D7F
+9A5331599ECC82C362A2103DD50E9D8825898D360C73A7E1E4E9ED66130746F8
+3BF5542959DC2210652383EFF1857D9657C67984629BC1E14570EB254C3D5043
+1E8A0347F9ED66FBF17BDA2C713CD7DC0F5347F06B3432967D1D0C4F7211B5B5
+CCD61164D5C9F01A0BA207D6EA2724F67F84BA845A28F1DCFB5E59D4DC57BFE1
+50864ADC1A703DBA46EF00F2F4ACA298EC1C1DCD26D647014806CECCC8A93E87
+158F2982A72C2B7167A87207D637B92826AFE261D9763A456F90E735DDFDBD09
+1C176B0C0D1774D9FAA5462C2943715E71F3C8CCB0BEF0AEBB5D00812E64CFEE
+282505EE165C6777C37A0CB2B7066F4CCF84B1578DC1A1165D1C60324CFA0263
+08FD152E9D3BC399CF45036466B70C54DF463A19923356834E49FBAA86250899
+4F1DA6637091255FB9B16BFC9DB377AC505FBBD1DAF88233EFCE65F1F91D7428
+10BAFF60705AFB67647EF947A26D86E868681A18E60CBBB552B96FD411100658
+1EF8A14F2E4373667B2879ABCB2D13D97A7084B345EDFEBC6B329CFF8F828330
+8DAA4AE60B8B3BBE78C05ACD0DC43A6907EC875605F84716A4E95FB406A4EC1E
+C5DA35309A932CAB84F62A9045A2D391A7728D51B18ACB5CA1FD1AE58976FDA8
+1F8D86E3052DA3A64360E1DF8B9407979E583F2EB2752C8317B255F73A2F87DF
+8BB2B5FE9464B360868C02DC6182C634140D9D51206B57DA40198D911CEF0691
+9EC2165F4BC87618D1177D281B5AD42F39FB0B76F678BAB0A757130078135EAA
+BB8A0260B772B9A748752D281FA0568790E80AFCBB1340C5E6DC160471802D8D
+D754FEE5FBA6532EAF51163DF21702C81E315834EE88F771CC9CF1D33E20F561
+1E3E661D89EC5C535FF486DDD590AD7F072B432EB842C7A6CE4C52C2A5C1B80B
+EBBC113C933400A257B2E16888290B16DC53991FDC668B304842C8600B9313E9
+08D29D7F02375F216DEE47DFD6E1D3C04F2D50977387457AF1A7FEA816D34427
+0278A675204C264FFE5C0EE3A21CD6BE7FB3A025CD33D6FB112BB0D0D20A416B
+EBCF0FCDD560A5E0983019CC7AF66D92B52C881153E8E12AD300571ACB5BAE05
+17C00671628B1E76E899D116B9A140BDD9CBCCDA64600402E6341305E77B1A7F
+418E108F85A4427F425784705844344B6F405352259DC6DE7584C7E0E5E2D22B
+6BA08FDA205B0DB705E8FBC9C917A0CE1C4AE14C17A0E98042CCAD0D2279BC79
+FB504AD1E264015F95B5DECD45332947C70C69FA10CE0B5FE6C933960B4866DA
+43E4B1283ADC307D18ABDFE9A8A2B10E862C5A771B346896C7FACE788569E483
+FE26378F52AF1D05FF2CF8C09119F7250D4EDB175CB7B958A8013CF68483A2FF
+93A39E2D0C51D4DEBC50E275869570686EA784F7F13401D7CD2619FC435F1344
+320D875C32319F796E494F75604B326CBACA2D5E16F37DF3E0BE72A649BA7562
+7EE30478DC8DE07D32A0FF5C7072D0A4C4CF36CD9E3E1DD20BD28B90776865E3
+16334B2A74EBFA0185FA602445ED88AC4FC8ABD184BD0FEB2713A6DEF4CA992C
+FED715F768F9D9842BB6DBF76B201A04D23055193A9C93CCD0717A2045A7E0B9
+0D6466D1B7FCBFDA58AB8F758593FA72A067C5C627C52EF12587397C6D626AE1
+28C12AE56AA1ED22573AC2897FBB7CF56EBD98BFBE369545F66FE6B4350EE538
+A419F9F61A592B7A54179B1CD577380DECBA2465B62EB9662BF2B82EB64279F5
+728D63F13B123102FD0727CCB312918FF43FF5543BDF8A0B01A7881E71F4D05A
+531BE4A89EA6809F2BB681A9DE9F53E37FA6E2E710086DFBD2FB8A7EC5060864
+9DB12C1E043A0C0FDB3EA5EDC78F400753FDA077EAD9EFB407EFF4A4ACDC3BC1
+0A149991A58B908EEB75581D2E2EF47E64EF9145485F652379E9A3C01117EDA2
+281D91D363E8D7588F24794AD2CF2590995A3339C7430364163AEC6E31529CEF
+EDE730EFB5FBC05DFB61BC9BC79367E9FBDCA34A4A537F78AF4F141DF5291A77
+A2225E7B7EA8DE8048F644DBEA4A47DDD8F275A462452E5737F8EFC04EF2D779
+25BD61881D197873B097172331B61256D45FFB8447D6774AB3BD150CEF43E0BD
+043C86D3C7427A3D521D2C484715E4A48693D647DE2D84003B48AED1A96FF440
+4A586D53BA76A434AC33BA6F9C6F4B443135F1F35FB197B0FC92080ACEBB2DAC
+A46B38126DC5B87DB7E1E83C7DE21AE5C7156CA18005ED6AD02B4CDF99E1B21F
+978FAFC5954EEDE6E394FEB95CC559A6DABF05ACDC0796DA6A39DD25A7BC9477
+C4795C728928C1A9EE1672205D07B1EFAA8F4BB2BB413D45738E8D474CDE2299
+552B37BF12EE136DC692F5E742D809DFE6D18BF866909A87A2C62C526BCE085E
+FE8C7ACCAF4A4B9561E3E3BE14A8633B885B86EC57C0D8095751536548C74963
+054189593A7BDE80B28F6642190AA560ED47BFA85FBA91557627D3EE2BA2E851
+DE2E17EFDEC23189CB308311FA623EF6F86EC34E231304DEEDF5E9C6BF964126
+F79D5EBB5F22C70CA5EE66991CB1FAEEF95E7E14BD5D25E2871CBD2163DA990C
+FFDA3D174140C7635710C1B3B927989111A6D37C8749EED67FBDD93D0A45E873
+E7398025B1DE7F4238A118977749B489923B4E6AE60162B6105F5E1FA02ABA5C
+84C1B26EFA27D1A5F58822A1897A374F73EECCE0422CC1D0177505F132DD4C55
+6AC7783729BB7B6A1CD33FC430A264F229D0C5A69DCF9F804FD1F01D575E77E2
+67FC00F6ECF7B3F592A7A49E410E8314BE48BDC95560401700C11A15DFEB6B2C
+189646F7FE7CAA7F938227F0B232BABE8865E8D3B764AFE6EB635ACAC6BA7C40
+CBFD610D215D07209EDB7B60807FD3DEA51E9DB40968DA07248168B6DD4C3003
+F5402EE2695D212B4DC983CC2EF4FC5BD59320EB462C88F2F4B62CEB6E22A726
+09961D7E4F09260BD5711713C32FCE1689E2CC03BB005EBAEA2A942AF20E3635
+D99B2D1C6E349EE350C923EFB6815F8BBA40D947E2619D62053E72601EAB54ED
+5F20652B03C8E7E1D65896252B7D436B77D3692C115D114F5042605050C3E06B
+2637DA6F0CC97AF4D51242D59D335491D67E95B7149C3D323BEAD304478F4196
+7E473D7DD7C9B6E1E8EEDFDA487697286F939A445B5ECE89437FEBD59AF5836A
+0FC41F7AEBCEC8EAC56D827587843055E19629E6BA0644DA586493763589549B
+C39EE3725E9C20692F2023862A3D29C4116F875DCF7D2BB4E79BFD54991A4FD9
+A7E852BBD7CDB42B624C969FA6A7DA55CD2E92AADC4243ADFD124D941152C53F
+E3764D1EAD5A6623D94036E1A88C37791DD21C59727E6ED28FC5F644B6CEE4E4
+9132042DF830F9DE1E6B78EC16EBF7687C4A4D07DF3ED52554F76996D88E40E8
+C30572AD06D64FCD20532C2B6BE71E65136EAAF008638C9EF102EB32243FA5E7
+1DDA1FEBF85FD71337C818C953219F592640A6171229F0D8E1447C4AB0E6622B
+5124945199A32EDB5125FAD3C022FF2D0AE256749223A16829FB4E1A0B60590F
+4268047D9DF9CCC59D3562D5E44E29E0F066F23AEEE045707647A75811D0351D
+AA4CC0841BDB7A63EA0BA675E4CE4CDE08975FA95C99A9CBA60817A52B5E6417
+199173813190A6151058DB86852F2C1BE4DDD1266F911F2882B5376B60C9C38C
+95B39F8511CAEB1E3003C279A4CA1FC38FF69C833DCCB586FDFE22BBB49D263C
+6444EF2C6CB9979D0CF54FC8EB7BB49EB3569DDFCB71D0966D0F0D2CD69698DB
+3862AA0B9B3D90FDE9B4BB39726EC682E8974AF9075539D975CE0CF5803EDD6F
+9F9ED36969486CD805C96E5DAE2D50F1246F36E95A974327579DAA83A63AF308
+7BFCFF42022C2D949B430C14B7536CA6AA82930B14112F87E9854AC8D6185267
+0528A7107D396A034E337A4B73BFCC2F323D5768A1E987A2BF2C8F2306404EB1
+26B3D2070A0CCE97065387D57FD9F733FD66997BE2E407F100E5E4021BAA9410
+E07A7128B51C9D320BA607C06C7F184BC27E0B7002C0B4F19685B4A08E2DF900
+16E82D6CDB0885F9260DFCE170996D78E8869A19125249AF59BF153D71E5F00E
+433DCE51F0D8065D54B605A30D0A6108C34F4EB8E56D33ECB111BD38EC94ABB5
+732AB831EF6CEE8B863D6C7CA4B95C2A154B94A16ED47B4A144153ABCDD8D206
+7CDC3843F264A5B786AE843CE7D83B2DACDD82E09D38FDC0FCC56F0D8B91D8AC
+51CF7E1DF59B11B4C5981C25E3C081E27866A3AD792C58C11C05B9EEC61AA9E5
+BC923F96864DD5A754205EEEDEDA4B63E8DFE69C2478905CE7E277EC00EEE7BB
+C2B1765F00DA731BCEBE209D595FC9E0F89F1AE7260D59375B89F88641E9C697
+E7766ACD81AE325EA386137FA6712FE56A3D4074BEEC88D76076E31C96838A2D
+7C6BF02DCC26F98A18C4206B33ABF6E6CB0D36E21735B89C64964CF4E1B9A8B5
+DDD1097309B975DD6D75824FB2D6C92EA2D010AA792228FC89B079771322BFF3
+E91B92AFAFE64D84CF391236A83524B3D4957B1A2C78ABE1EA4312FC347D1430
+43EEAD380C9ADDF5F459AFCC91682F8318DD22606240DF454E445491F07DA7EF
+58D0C679D9E887ECB473520581DEF2DE4B2A04B5B849BAC43A414E11AA3A5B41
+A7EAA9691400A3E935D922374043C8528394883DE9D7C98F9F7C814CFE8C7A46
+D52353B0AE2461F404503C38D956ED7C9EB65E3A0058F9A26333B034B7C0A97D
+28B8AD14F4DBB4D12122055E08FF3BC08D4709447D1C7A1CDE89AB45435DC837
+ACD2B64D368CB767F9B1D06D720E3271EBC715D0E2711D6C343F09039033A82D
+6716650CFDA57CEFCF25E8B86E243E77B4364B04BCA2D3BFA335C55FBB2ABA8B
+98CC06C87794FC020E7E0041CFAA75A6EEE43F6A5CB49E75EDA9D28AC1310D58
+DB1E938AEC9700C3F5102BAA6434D528C1C388BF13126C9E38173A1593895140
+42B9C08F98BE436EB5AB4B41B5B7422D853F982A5A1993FF9C03CB7A2068FA75
+F8E261E683E6F183EBEEEE8F407BF7024C6C66B0DF0379FD4A636F0EAF3940A5
+F48A71B8DB7473892474063353CEDAE734B034D9F7CC60FF1FF349F9C073B88B
+66E84AFCDE225BF8603C28BC8114DA9E9713C0246B4791AB5E55E0EA415D0163
+CEB21A1007D6F060E4DFB0902980B806E8476149241CF2388A4F3A75DC92CBEC
+303CA5829ED4BDE069F7FD3986D51D8A0BC0C7B6DE0FD5023A0B90075DEBAA48
+F5A62FC091642A061800CEC50FDD9BB3BD9E016391DBE31871B6EF431BC14A0D
+486D3827016B5A68A223117D416E86064A90A4B3B447977C0A681DBD07FCDC53
+90D92DEFF3BBAE3404AF40A5D357AD532BF82A67293799A1223A0D4B21A7C590
+D38CB008D97C51A2F2A64B35658795EF6CD44186263539760637F9C8DC75CC3E
+0F5F14E7B46302816ABAD623C664CE96B237E61EDBFE55DC5D00D858B75C8F25
+D33E2ED4643AE95E2470AE34CDFDA6C2B6D88AB81370F0C6A52E734164FB7611
+54414E4FF7B929DF6C3774EC50D769E41EFA98A21277ACF2C9F23F042F74BDD6
+B83A3156141787EBBAC8443CC276DEC97AFB922E5F4FFB16B79F913B874D29E4
+E88768568C31B1E14F081CDBBCF94D7DC3F16FDCA2918B8D1193BF99D756EFE1
+49BD3C3A0CE71BD20D416E0DCB6F83E8C3B9B4050A25DCF54962BB07865E3F24
+EDD4946718F7210D839E1EF0445D68D10D8926470541CFC9F5A336363BF66E5C
+9AEBCFFFB906E377ABE9025662729660B5AE961DFF59B4B11656295F0487E01D
+0E9DA65A913F371EBEC1D8C89154D739423F6BDCF53437BB665DF3D17BEF6F3F
+59D532D76B53A6240DEE8D68EDF71700AA468CC3E0CDD8DD50C3051608119713
+F4D5E13CA685FD48D03E71726BCB26A4C885B025179C6C7BCBBB669EC6CA544E
+16BE90184A5DF4A9532277C765CB25678D798E3E6BAFCCC1B0B31880526BFFFC
+B707D24FD48BC2DFB593285989EB1135D47FD2E30330943C5424550C4C17934D
+2CC69FB31F81916BCB774D27AE711B0754E25655927429C626799846240E7AE7
+5F662E4851322F94A14A73BB355C6DEEEB0809B730812B0798A4E0CDE08A0594
+1D8C3FC7E055BCC948D74DDD4AFB62533B78BE85310B9BCCF61F1038BFFE4A3E
+7B982D1756B58331F924D67A55F86CDB5BB347DD4EB04271D0FD2D25D3EF6682
+2EEE955197ED008219F386F41539875CD8DD847499F9E56545DE11C43036CD5C
+E5C5262A59EE74E0CD303056D37C61F555DEEFC997CC80B06C47F90A3C46D097
+610A281CF632C8E2F7B0D2F84A434BD575B49A795EA04CA3CA5AA86B299E9F77
+78FC4C37568A66996722B764000A7915EED0B05CEC2942FF564B7C784B2A68A2
+8CAFC810C16DE4691C98A7C99ECBB03BC1A16C7AA61931FEDE0E139AA1E294AF
+9D0A84607DEEEC4DD4C35D5C9798655960A8F335FFF479D061EEC26555110D4C
+5877552A318CACE59A4561BEE79F36E292C427F36EBCAEDCFDE161707FFA98F2
+C87E128FC6998F2241E4A62C4860BBF4C6496DBB4F218D5FC94C2A40523B20A4
+5A5C9FF7E16C377EFDEDD5B018D40AB01F26815275529D1359B60658FA1B7BAB
+FDF854786A00D61E1122C91C3DDFB2D8B66CC9E523CA09404A885256AC627FB4
+E41918676F3E2B7762A1AF4DD985A4E133EED84E239E38BF4A737E2719409464
+6A368163AE86C54CCBFAAE1B512103E458B2ACEB514D0C3227242B0969FD8F29
+9DB6568F5EA741F84395753D67E291D1B08401574E79FB07969ADECF750D3FAD
+C12CAA382468F626D5D541C6A9BE2657A4C2504AFE6672F60DC3B3CF1A7F74BC
+3B0157D9F19709623D01E657890A40C85B10868DAF4BF1D37C8FCD5D7D3E86AA
+02A5FF16B3487240D84AFA03354B666C20D144D59AA23A265DA4E1D0AED3A934
+C64F4C0738F8B1315BE988949C371284E5299E6BE88AF64E94DEE15E43EBDB03
+AD261E1DC736BB5F413437F4CAA0C586AAF9801A041347627DE8DE18927C2CC6
+A47653C740D5EAE722D730E17951E481DB07F3A0DBDFC4E3B7272F9FEF143A65
+B18E766CEF8E256DDC5409DBE5CC46009BEF3195BEF390F8E2AD6D972B62A0E6
+91D73A39FB27D355DC79BD514F9AC5B38FB6196CDA5DEC54E5A044661BD66975
+2777FC133B8AC7A4B56A21F018079320A3F5F5997855117658B1DF49F5D259FC
+80FF80DAAF9723E2A85467CD60861DAA5A8C80CDB1FDAEDEC2C603D44EBE2789
+91800C4D327350CA005467F8E4941F1DD74B61C5BC8885D73FD4C68EF69FAE01
+2C87B96DC09B516B2250C7E6A1F640D61A557F471C7CE4837317F885F94E7DC5
+C561168BB8C390AECB871C6A782B1C82C1AFAB46C339ACF9B4C411C9CE0437EB
+
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
%%BeginFont: CMSS10
%!PS-AdobeFont-1.0: CMSS10 003.002
%%Title: CMSS10
@@ -2629,7 +3151,6 @@ FontDirectory/CMSS10 known{/CMSS10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMSS10 def
/FontBBox {-61 -250 999 759 }readonly def
-/UniqueID 5000803 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -2871,7 +3392,6 @@ FontDirectory/CMTT10 known{/CMTT10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMTT10 def
/FontBBox {-4 -233 537 696 }readonly def
-/UniqueID 5000832 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -2909,6 +3429,7 @@ dup 61 /equal put
dup 62 /greater put
dup 63 /question put
dup 65 /A put
+dup 66 /B put
dup 68 /D put
dup 69 /E put
dup 70 /F put
@@ -3163,357 +3684,362 @@ D74B5E4EF480988AA30EAC8CD07D10E5195B7199058C8B8EFBA9F66BBECEA137
6D3A59FCCE098512A2B17ACB186BBCB369B984A363525211D9B83BA91C2B1EA4
3133C3CB489173988833DF780EBFFB461090B51E5C6454E4ACEFD98F22E80F8A
23ECAE2A7803B9200043E29AE21F7EDB5D73EC2BC7EFEC3468C239A1E1C5A2F3
-B6A3D13C41A83DEBED0BAB636582D103823BEAC6FE0A2813A3537BA69283ED3F
-0C0341FEDDAA7255D53B115D445AE19E95D61E5F1946460795E0B5A94924ADA7
-7EBD05D099BBA699CADC3B92D7A33916E7DA8A03DEDE4BA2E2353BA2E00C2846
-4EC20BB3F5FF353BA66C3FC64D1CB02A75801D725C68FBB83A3ABE8B6705CF4B
-7FDC6D666CD1F6050A1331B67D29ECD0A841759F877B05413C8CF054B8F7EA6D
-A6CA92792B6306666422E24544F41569DAEB20C9780998392E7CC944A387138A
-1BAF65D7929BE4A78FCB9B17DD352F102CA273C3777B1DE7FFF9453F98FF18D1
-469FEBE75A8F761380506431C98690BD9A8263ED21C33B62E4392600C67408DE
-17270857F718726F499E15088B9DFB573C2544D85B24A7DADAA627B67F74CA60
-6671CE34FB84E0E5054D332ECD422011A3968D9FCAC28875B34AB841C9465B68
-94E0C3580377428346B9A6E413A2FE50268147B5372D57AD11EAF6846BF8CBCC
-06AA85312B32DEF5E050E7F5707B70D7A941C0C5128D1CB937EF1B8922BE637F
-B99B74C08A63016F79C7D0E3BB00B59E4DFC3BEC0A5752A55C30BB96EF977EF1
-3D74F26B49F38B008AA278CE7A17C1064CB861B8DDF46D3F976E9A138108F567
-73611D99EA92C45C2AF926328E572CC81BF847A9649BB287AC03A02FC39172D9
-A3B4D22C3552E70D0778DF32050E21EA7C1024164E8BCF21453F5740BC8CE2D9
-5FA1D83DFF03AA11A3F41A52AD8A869A943E10D3B88AE27872DC1A111A2CC5D0
-D22DDE2211A1768768D62E30EA2A6F04A885E1179E5D7D631553464D8E7F1244
-B20AB73C8E70D8028B8EFB5DA46757D6B2CC8B9DC7A715CF4D65DB212C75CF11
-9B035A561C37646509147A62C56CA67AFD7379E9A64C0A173BA6ECB5262A3DA6
-2F773F744861352351811FFA1C2C67672B1D07496159EDB2A507BF576787E3C9
-19E2D2EA67D014FBEA508DB893617833CB27ACEE2C68FF726EB83685DD343ABE
-7F1DD74D8FB8B3BBEBC6AF7B9E7376FF7C80634400F3019797803D15F7C2717D
-782B4A8F898E5CBDE7B1BE081D84FF3E1C152FD1DD1AED48BBF2B65F5D053BC0
-D4E4F6BDDE8C69ED7F226EBF7B015035ACDF873345295B95C0C2692DFE5FEB74
-75E396C85116AEDC3450CD36F6027A26FF421B7C76846FEA3F150920EDE891E3
-64C4018C941D00F3908FEC9886FE82D95D666A1DB9213C2142AE6A0DD538EE95
-B00ACDFB8AE654BA77DF6B4B1ED161ECA048A22AAF0790A3A4335C6936A302FF
-29D70D2DF8C4540D8F2931F7C9DDEAC00BC5F1703A6A87A538EEB1A68DE6E3D2
-647E7B96753F04AA9CC6B5DD5E845AE299DC558E640A87AD74EF10629CF54972
-B337D52BA0C29171B40EDB5D83BADDE664E20C3EFE02F98191F59BC909790849
-4C50597F58D1AB3B9AA6F64D2E64AB21C48283E4F6ABA118427C2B1B922A8755
-FF7C343D1FF764ED045DE992420B6E41E04B3165928EC4FE4412B62D0B208379
-F9A590E9A6F018794E1E12FE6F8C7D46453D48CE166A0E4EE6272EC17DCE6378
-8A7F2D6F4C8A91A4B090ACD28CDE453EF7A4E09DF6BF945907D0DB5F68F2D8B5
-AE507293CC89CF93CE7DFCE01084364EB7B77185936FC36C4B81E9A422773DE7
-5726823F4E8813BBE9220E47A90CF0AB516D27B71056D018CA5CDFEF040E4E7C
-9AC97CCD001D3278CEDB46CE3B822A3A31B497EACE560837EF3B38F974D988A3
-297D145E05A846700E91F93CE58D2958FC25DFF5A41D1A27253CC8C46BCFF335
-C364E2694522E7DC91D4F8B7800A0522414A4B87236FE7C631F88A6AF329A924
-C24FEA8A983EBFF4DAFD090B5DF8F39618E4F5728198D28B61407DC8BC95BCDC
-6E60808A0DDD1A32AF2875AEA46513E5374748D1F6460310429B46221987A70C
-B1E2F46212BC84A663DBE4E3FE7203C192530F70366086C933F2B0E30FD08BBF
-113B2ECCC7E8DC1671007D16FE6CDCE1CB0E8D031B7CE9B48C79779A8D3A589C
-1D7597C8DAC7BE2803411D65A70EAA178D11BE7F34711A204432DA217576D987
-1BBFF285951D7C999B88588E3B5BC7D230724D020383312F0BBFBF534E0FAB6B
-3BF6A55CC895EE51D20A0B4E1A01D812B578C4992EA47CC711D8E3EA8D9DEA3C
-0DBCF7C3AE7C980298636BF4DC2C542897FB1A6CC655E017F4F84E7F2A384055
-FD37C57572642B097C7E0EDBD2BA7C8586E9F9FD8153E82AB6763FDDF2AD9E3B
-36834ECAE17B59D7826E1531AAC0EDEBCF4AE7800A377ACC1BFB05E63EAF8CE3
-2BAFD896869475E53AC2AB7524E61DD2942AD43C860C2E7ADE428E0F49509EC2
-0731E2045B788212A7A9B35C18321E48945878C65790FF090C3356FC56235751
-61086B3E6093C28D1C4A05C67C67443E183694A297E8871E3D2D2317427C3B3D
-BA222A6844CE57354F98EEA5105C5B9E8138A8207EBC396DAAB6B82565BCCDFD
-0AB8D0EC87B7E48F2AAC5410506F65F0B339C8039D734E331645C3CD95832187
-0F411DD65626C26D1DD0760142E421422A6AA0D1B3427F5CAF18F94F8B675A26
-DE2FD9DA5DA035B2D10A9A4FAD6ED283525245231B713BA8E7380A2E1640E7EC
-B71D5B5834FDB10EAF87B09A7AF097E459942104838C99D694C577F0E09A4377
-3BE3DE7A29FD7532F91A9C62497077AB3F324B25C81A36715087158259D02F0C
-8D585658938CC0F8B571B1E1995E42181F975546F35E4AAC66919B353D8057E3
-524C971B275173C6290D3195584997D65503C782FE89EB0BAAA455AAA18ED251
-FA5C69588262BB9E2455F1CB84E3CF354A675FC804077E8877617E4AF3ED8CCC
-18D370DC068C202728AE1221D729EBF16A3BCADDEF7C42C2C238301818A70AAD
-83533334D81BCB61F40FE6EDB0342D81AC5FAB607DD62BC6662EE893FB21DE13
-063B0B40B5A024A9312952A5714BCA85FE11E8B6D09441415DECAA00DE3FB459
-406F5D9A8092E19E741CA2424948EA7BA566C947DAB9D28B98AA77D94AEB0D7F
-7E559E5D14B957AB6CD3FD83C2A4AE51F3DED2E513B55DFBF200B3B3670BDE96
-AD79AEC65ABC45CACCC6702EE62E2102F731059CC6166D463D2520A8FE6F2AF5
-B8435F3183478991DD7B6070D4AA2B33E0E72E94703A101ED59219678FB9957C
-3815AD69C3773FCA071963523513DFEEAB6FADF7A20C240385A988D023C97DE7
-09DB24A38B449780E6043E654B4B4832908D618E8CB4E36CB918A84AB2BF7ECB
-9AE457FDD2A5D781FA1815A34FF56AE74AFBF4CB7B2601A2108B8F1EC81A58D2
-EBDF651CE36FFFC300A584272A885A57D0845304511A9667218DBC8A006B6F09
-C26FF3F067A35A3E4D6104C38505F2F5E5B0103A0248FAA450090BD92805FDF4
-956D00B6C65A1F6F8EF6CBF055DE9B8C3DA401309E9D1A5F8D5B9C42E381A9F2
-28DD10EDD1FF09BA1D93E77B72C4FEF856C8FC9B3D92DDA6F2D8ECABE36EAFA5
-B8A1E8A4E4089EACC7AE8F9047C5FFAC46B0CF34B6EEC9B722C2A8C620F9C763
-70DD8470CF5E59897BAF1B7CDB58D466939A23D7A7D526FE1F651134A759F66B
-F1976E1AA94CC23F591C35DAD1318AC66ABC583FAF26296173DC7C6A224CB9F4
-24C14A8A6E8D9F089A71E2521328AB021845DACE36C28E1AA24FAFE37D97B3CE
-7C8AE13BDDBB8B1FE58872D3DF56EDD7BE1EDDA7DB79C3028BB2F198BB21862E
-DCDABBC23CD2E06E6D9AF543CE46DB6AA68109B74D99684BD18F865B2C9AF712
-7DE56C139D84970D597581E20D48CB129A9967903DA8926B8366801B78120C53
-2A841722C41D413BC0BB84E7BBC73B21BBA3B43CE9C7CB147A073EE1EC78FF1E
-BDBC3B94302421D3C8D9F089DE08A37FC7B12A57D02E45B86631AA21BFCDC7F5
-6138D4C8AEB7ECDC02797AE47E051D86ADCF3ABC86C9A6F2F0618C34FF81971F
-5BDAAAC37F365F08D95B51D6CD33C7DEF81E249A1CD8BF3315BBB79E8283707E
-139A775794EBBF6BB125CFFC5D6A18502A4F13F66CA144D3F656D3709D1BFDE2
-A1FC44B07134247E80BF210457173EFE017E4A14C915ECA8A4FD6C0DEBD7C06D
-5F972EEA32C544A00237F6F3DF78FADE7F7D2840D0A61265DBBE995202A4ED16
-1ECA174F5816C5D4B4B783C95AF5738783BF26F5D4B9378B7E6D447B7E98070E
-8CDFE7361DBAD5CAFAF58CBA1560AADE44FFDCBDE273152AA2613C814F503335
-3839E6CA04DDAF325D9C77F07CECDFB57D7FAEE159725480EAB33F1BCD394FD0
-0F15F0305A3E18EEBD47148FDB94CDB1B7D7DB8E025A980F601874DC6D71D184
-6F90DC32C602B958FB9BE1D3F4B1CB4B305A6E7269C9BFD855E633B7B94471E5
-56FEE2A16E20FF8FE9E2AE3240A144FEE1C0F114E78AFF93F84F716AAF1B8A4F
-9F11521AB3F53C5863EBED83030D195ECC09C4390FEB02DDDA3EF0BD7C0C4438
-A253C0C699303ECAF1C7382D337A5B9687F9E6011DC78E196FE2B18A3B38EADC
-468E33C629D3D405DE7D41FBB12CFF132CC6D9802D70C04F54B628A8E9D41210
-3CE8C6862843A8E083EE10D7CF9A120FBC4B69AE6C8380EB4DFB5507663ED3A6
-9C2EE8750CB9A9AD22A1BF9186B8220D8B00B019B63C2B7C92E164AA60EC4DA1
-02B3DE588DC27099DC81743D9805326F6B42CA06B677E7D4AED20EB63AEE3B89
-BDAF1E8372CE1884FBA89E7C83A21808545270C76ED1649F89A610D9C3189A7A
-F2AEE8664D6AD2292F0672B3C89C06150762B0A4A93543DFF3FA2DB1962FE0AB
-48586F6AD09E6A04C04CF8879A65088C734F4837A7DDE145660A6BF36CB51162
-C8BC7BB28D64C64E64F862A44A12AF7E385B67CC99A445F7C000107DC9A56E9E
-D49369C558C02E96A3379922221AC791E09C06F19FD7DC64046726E70CF9B505
-365BB9BA797CDEFA19A71E23EEE381884D257DD7D8027F5EC90069EB8ED1BB95
-B7255BAFDFC93CEC8E6929F7C0EF9672008D9714BEDD9FF1FDFBF0E080F39ACC
-3F80ADEDD55F3B6886206228C2D8E2F35064F743BD93BCA569C747225DB89170
-8B5EA309F0926C8B32814734F7B7C2DEF626D71AE7A754E49795D8B75F9CB234
-CF70DDAD4AF5822533E1EB542CA6BB99DD66F0775350E1F31131A31852F51282
-040761383E23C17C964585749E9B2EF0EF5EA748DE4934730AE43447E0710955
-51275B6F9C1A612C6604D0B1D09B26A9FD62C9E9520B704D434B2B16DE427127
-3CF39110004626B8E65C44A7119633E1C94DF3C6BF0BA540D46D66C9C8CA72C0
-294122048FDB3E7D50F908F5AC104D7EED52E81090122BDCAC47894634F2A92A
-338EEB3504228A6683D44B68FCEA9DCEF44421D9B8E1933B64C065D728823DFB
-5DF70DE1D62376BC15C4B6231A021D48D84AB753809BDAD72E532EF43246D1F2
-88EAA7B4A577894983E2747B0DD70A427D6A2EF4B42E3A977B6A7D20CEAE6AFB
-21FFF39F1F2A2B2816714AA333DCA04FBAD1DF20503F4EB6E30CEAD47A346E3A
-69D74D4BD0C51B54B5C76F605744C65942B1488E56C7182774DD7B873C091DA8
-907DDC326CC361D6735C5C0256FC2581381DC4EBC4AEBD8A340735E0C7D3F2C4
-59956D4D1BB973F1DB6D590BA9B942A7AA5D6310397A58F79507103371198F7C
-F0ADDD6B002669EF881F2BBE64931622054448851FB5B5A0E20357B73343BFF2
-200944A9EB6AFA5A9198FD434D039CDEE4BE3A5F90C3B3C9C61BB9D7559B3DA1
-FAB002498CCEEDAC579EF01AF9F3A58504C9866DD6FE78F3C745B28C3EE58781
-B59626ED00F0C64B051D830D54CA9B206614ED68AECCF02E259FA03FBE3ACD54
-17ABA540FC8C16D20FE9B4282440B61E60BA0FB686DC3E307C59E4616A2E9B4C
-62CAE7530030837DB88807406851D67B374C09EE1F90AAF3A78D6D4A4492FA91
-C03B19304629F180A3D7E8EA917D5EB749331ECE83A0D6679955D12D46C9DB1D
-E0E4EF9C3FF4E1B6AE4A22F7C759A8A16B3080FF201120F1B09244D9C61620DD
-645DA04D43142261E58D3A4E684B0D3AAEB46A0FB28C17455CCB6FE9ECCB18E4
-457A388BA0E9C9466DAB3F62DF10A36A7C95FD2F0D8E84DC97D4CBAD7F8FE89B
-88263B87A9C04523E02B97D7C3FCD336345A87BF9A147E4FA218F5F18D0F3960
-D957FB484159D578CDCF9E21F257DF6DB79D6FCDD3D00F6314F3BF77D449A278
-AAFE344806DCAED6B9F512920977BE229E81F8FE22B64F8EFAED62766B8406CC
-EE84C8AE16894C9EA54E66D32259F956C74A25AAFF389346BE698E6A75A698C5
-7558B5F25F8D98492AEE1EAEDFEC5E053483FCC43B40694D0B259663C5531E95
-7F82B715E9B12F112576B30FDB8B57155DA438B145FE2671307D0592B303E523
-43A4D6725C26086D10AF33E002134B0DE92FA5C6DEE4982D3DAC7091CAF54265
-6AE560EE3384DC844913162E0D81185C1BD361883B1C337AB58DF4FAFB3C6306
-9BCB8027578E528D56A6FBE9F300BB6488DA83AEE916EC945D7CD774142580A6
-41C27A736CAC86BEBD5219BD2B40B410A9714C0C91B1881269B76AEC48D5741B
-A9DF610416EAF037FE96CA7B93776C88A5D93CC9B55E7079F2430D89AFA44C1B
-E71A7854FE3B7DCF1D7BE6D54BD8262055FB34817B67CB91B5961C260C49AE68
-27775133A08D6B341D7B75B64A0D260C351F7343B7FBE0EB0122FC9D3AE73FD1
-C1C5756428C11CDBF394DC0FCFA3B72BA473F12E574C98A9C8144417A1CBA749
-2C0154C5AF36AF937E6EB3E471D9712DFC5314836B9F9B4C4A4400490290E06C
-D0AE99CB7C6184FDBA152E3270124E37EDBA3F4CE0479AE06A07D6D1027F3257
-6CC288D34AE33576F354A66710A4CBC322E84F2FFABFFFDE0060278930BFE762
-ADA6491F26CD942CC271A40E951A115A4A7D8388AFDD7784C6FCBE80D247F43D
-DF6337F61FFE758B82718300E425E31F46CBB6215696D82B1221FA9DD0248B67
-611A86380C0A94B886E4DB890A43CEDF5D6A64C527F895BFAD8BB63A5A558B2E
-85512CDC3BD8B9DB521B98E698A3E1FFA444CF16EB6039C42E949B78B813586F
-207536B44DB02F130F16BDE54971521A3283068574B0ADE05569DA0EBF4CC461
-A26FECBD8AD5CEEAB3B2B8287150B29F7A4EA4B928D2F1C9BD5BAA085732DA96
-AE1AB11D5FDA1BAE8A983BBBC07B9F76A76685BEDC0665E48556F058235DC523
-CCD37A78508A116822E9C8A2A7502D4E62198E188018FF1D85151C1967C4374E
-F86AA8B4FFFA3BAD27ECF9354C651233AF6093EA2D694A81FF985BBFC01F0A47
-679796500067E65955ACD37EF34175696139AE4A7509BD62DC3493E8BF497A57
-0E7239F7AD462E888CFAFB967F6C562CC971B0166E6653CC1387F94FFAD25F4B
-2EFC280CEB1BD4ECFE160A581777226F51E7767A10F4C686C51299D6B8C6FC4B
-BBEBA44534FFC12BE42AC28F203656A25696D1B58C3A73CCE75BA3C5DA2A9F0A
-336189612F25D0B9F8E838CF810CCC1DEF50B050DFFA0BA45220D5FFB6B49943
-3CB0FF60137E1F3D12673789EBBE48D72DA84F1254847CB5233B91708CF001EF
-C4EB320B4DF2E0834DBAA6440E04AB68B7B21E4B974E0C2CCB03CFB954147330
-F38A532869452FE640874B33E1A72049F253B874E475C9EEBB68A81E61F41AAC
-83F58B0066FEA92F31F246EC0CE2C5F1B0B251478B56CE35E812EDB26DD3F813
-7BE1CF2475F98620CD35239226E358E33461464B9DBCB2F3527638BC61BE2ED3
-109E5E4B0A624B69DC91AF1D00F77127285F72C28C349EC6759B0D6F18629B2F
-1ED6D58D9D0B2BB2A90288CFE30B93CCE8DCC297FC7C13A1C7C11F20E4658793
-243BD703CCB29BB09393911017A123EE58686994600BE9C927F944E584D4D771
-0356AF0E564686957D974ED8A3C86432473C775592B0FC05878824AE290576E6
-F0BDFE8A8F16DCE952D2B291168CD986856699267AD6FCECDC074413CB047015
-AF21BA8DBB3ED19B5AAA9AC81BCBC2332E22ACDCF110A34EB0EB16907FC7C234
-C234B42A33ADE4181F000DBEA4AF06BA5F2E78FF5AC28FF8E98A4B3C055C014A
-2D60D69EDEDE71B002B3B7B8A27A2BECCA54D654B87CD27A8E0E96B86A4FBE8E
-1579E0831A07D887017AC0BB39BB026FE08497F1D65E9AE6607AC517F2F17B97
-8F8F1523FF7F1EF2548A0FABC85CFF53ACC7D41E5C69708582428CB991A9F535
-44148E7AF8F1D14B074F134D9D33441B87314523FB71F46102B51AE79B94020D
-AFBB7F8F669995DC67E3B208B44C48FBBB7BBDBF0A2D7B3AC69261234D6EEEA0
-588B84EC1B72420133BA048C85E23BA487EBBC77AFB91321996A89156F93F5F6
-28A08FC606C5EB27975D4781610834943953D8BF31AD04F1C9E395A0ECD31B54
-CDC8106E47AC89ACD96ABB0414B5DD6D7ED1B31088F145EB322D386BEB9DA692
-19AA4F2C6CF43F6EF99D8D23AADBE6AF8DF13BFB98766C7FEFB79557EFACB387
-402B922526AB45367269CCA302034B5949E7C65202BF9D0DCD4047867DBBF367
-A6F1FF8BA687566E58C6647EDBC4CB37558267A0C5C381D44C7EA8921E74D38E
-17E10166EA6F512E190B2C91D3C630080464F1CF2F12FA57121E0A1B2681A16D
-7D607765A122D5D8846BCE69FC58625C75B493E86713333379E37697B2D94D3E
-42FD8D599AAAECCDA5E48A9B42A830A7D279369D1DA857A0B15168F018C7BB83
-6BC1D4537324016A60C69568E29057A6F0EC9994414083F4BFEBD2AFD91EF38D
-CBCAA59690ACA669827D419F216123088168C5EB51AC08ACDA82B519906D92EE
-938266B44A8240843D780E7EBB9ED86C8ABACEBA34A31B187E2979ABD14DCA1A
-5E0BF40AAFDB924DC5FC80910FD7205639A8BA0819237BF3BED500FB9F3EA43C
-5E6AD3AB5A37E02C2F2C98633C98E7B2E3437737D42ABF3D96F04F66186C1775
-01453C7DBBEABBB1068D030B6956326AB66B9CF7978313544892E2B2C5F3AF08
-47A1A068756CDB0585D9A0C5B6EFE85EA1361ABE902D3D216387E03283FAC255
-C1091BD8F7A945C1DDEF7A35C40DDA9C13E30FB7FEF134A874FD5E1E96AC5DE4
-8A85FC57335DEE136B20D7FAAFEE8D0A6BC4386ABB41BE77E249546AEADF4B1C
-2887ACCF8AE1BEB2DDCC9778678B58741D0E0A580579AE8199A341CFFD2B41C1
-6E1A3C0318BA1A3409AF672B5287FA20AFC13E656CB4D8FDFE2EE61528F6465A
-61AF81CBB8263AB33F47C08FA9E4D9E17A780A5139D18019FD8CA2011E667E82
-8959B30FAB048457F5AF43F2BB98470C94FDE464B6618CD94CE466C1FC3E4FF9
-C3E845754F4B64681B56DD4863746094BF86049823A59520E33A898F04BA6AC4
-5E3D7ECFE988CE5AD4C8F663C5368B8CCD01050557A7D7E00278A9FE0A15A87C
-3462C3F79DD9A8E40F49982468371A39B5FF7FB34E8CDDE2699F68F0FE2A03AE
-F0688D3524A4DEECBF2CA481F4432C1FDFFAF0D1E1E3466C97DEB6311A2ACC09
-8925F52CA7091A4AFEF40BD9C5A8652C95D8BBDF28AD0A55227E71E8317D0722
-9AD2325F7DE173123FB29DBA2F72D2B9CCFD98B70106F265BB7B63871B6EA903
-2D1898FB0C30619CD89B977CA658B93BC9F4D9ACD0BC4BC6851B84FF187314D7
-2B0E93C31616AB69F3BF0575F55652CABBDD48C5C8B4448D0A428A8614B9E18F
-10037663D57B362B78084F043C915B3246F03B532BC0565F05239C84E798E8A6
-449F4E74DBFB36339ABDA18B8C6560B23710AD64C828165E9876F97D8F848163
-85CB50410BDBEDF24E134372ED5FDD71D031264611284572775097788AFA6B5A
-71A5E46A24C42A2A7910F323971BF7FDF5631050EFADCAAB2F358ADBFD599D8F
-5D6733B5DCEBB1DDB342AF44E409478E619792EFBDFC2093B8D8C9F82136AAA1
-C54F2F501AA172E127061D1673D9BA9F85CBE9A960E850F6B16A918A3D253FF0
-F5F6AE49470234ABC0C0D800422112C9FC319E359578B2006EA138138093DDFA
-C2D233EBBD58C5D77BADF9E2289845B1FB3F47FEB6198B0A085BD4959848E9C5
-3C63E166ED3E465592A03E1FDB511D4BA371EE1591F4F0FBB45206656B9BD7B7
-B65FF730A2821612654D99466614F2BA8BC75D30E26C077F4F9FCD668E42D5DC
-A0BB9D7BB444A1E06210927D7662CE4066614FA8B7CA773C6EC17745CDFF825B
-7A333A53117940951B41965FC92126868E88120744C3E87534680DDE99C18FA5
-9D2BF62D96897ED220092B1318649937563ACE23605F129BF334B7EA44D321BF
-216766AF7A808D7DFC1B633BEE30C1FCFAEC7A448FCAB915236CC36626F8A505
-677610C3FC80276F4BDF14531E2F508B9FF66D78D738FA1931EA3167B390F000
-E6396C45BF79635590E561621859C86ED3F0D454E1474A646EC23C8164E86652
-4B33D79670B203A70B3F8BF31ECF6EA3CB9F8754C302DFDD8C77A96803AEA2D7
-F317C56C176B7315553BD594269F807509AF586E92379220DA095B6428736A4D
-7A0539F6383791D95320E2AAC66412F1D6DCE02BC76B734C494B02447B6A7667
-F7AC2CE8B45D0E182DEE296FED3F4AC8F7781024F0E9DD3F27519DF6CA7728EE
-0D6E0DDD80345FB565BBB020131C253BEB04CFEC1574E14F9F18C8F32A847E51
-E7FDD96B03B7A5D865EA49BC12F902146B2A7546E4B183DD2D4DC0A5E061136E
-8D7D508BCF6743C363068F5F4C66945706F8DDB2C45ED3B1314A9227283FCF3E
-C7ED1158DFBBF384BAC2DAD5965DE5299BCE4CDD007411F5F59F0AD9A2F87425
-B69F51BF50135C6A204BE25BAE93E669898E75C96840E24DB31D038CD86F760D
-FF81D1E902DF84D34C9CBDD6122ACC7AA28D7650BB7A775C3CCB2F153FC3BC22
-BE131A9428464FFC0EAF8C7F57EBFA2C29D635AAFFFF19AC53755D470FF4B7DD
-73C415FC1D778781F40217D3F2F5DC7DBCA79D094D560B81F0D242218F9D2A38
-4FDAFE428BB8FAA7DBC855F52BC0EFBA0DC01C83873E60B2F3C7FD91DC777D7C
-F5F283BF2B5B734868AC1DA079289C6155EF99C4D8E1D34C5BFAEC9CE9FA9333
-D1D8AF4B0DBC9D59A5590CE44AC9261F36A6DD2DD0881D9D50007F4B0894CF3B
-8C8272D0C4B3A39A80CCCAC27109818B5DEFA81C1C2B7E0A573B9B48838ACE55
-EF5161515282833E8150DEE8788B8D8B00AE4F8307D5F1D5246647C07F29424D
-5F0DBD2C03E3C343D5396F35C661939A7030EF2106A83DD3BFA4AA4CA658B9AB
-0D4A2AFDD3AD28BB125AE06FF20C75007F00EF8330EE3D8C2C78E3B7841FF4A7
-F3C4C9018C48E5AAC348541316BD645E277CD0B2BE8CF60CCC906A125C676875
-FE02665D04194838B7CA13F8A626ED8BF7C87F37B840676B29519BB8975D82E8
-FC0114B2A353E7CB529D48EB9F68D149A62012BFF52622286A27E8312A37A671
-F4CD76CEDAA937210F23D8BB98F9023ECA41D96E1A2F5D029233FD55AE298A4B
-D59A81EC7938973B7CAF060566C2C0AFEA4B59EDBA72528811AD64D8A13E36FD
-3F548BA5560FE471AD96043264DD1C23462DE73BC897B99D78E046BE1748D1E9
-5CDAEE3A435F4912D9E9B8CA93D797B1D2915CD76969E5BCA245A43F908DC4D0
-DAC6FA6A373DDFC7A08DB6A6AC588B7EFFCDCA3E1BDF0520C56754B733DD9905
-041A09FFB1EFBC3B3FFA6050B9332B1204653A14F6571253374AE33DA528524D
-31381899DFA1B2CF3D72C9B6BEDB29241634137990361EBA4CD5BCDB62DC21B4
-D5FC2B9A21CAF382C11DBE86BA81741F8BFF1766D22D57AB5F24A962B5DB12EF
-C7F42D88A0FF60C870BA009CB3BCDC651AF7B5A4BCA196798F6C605422D029CC
-EE491C2E183C9F2491BAD7BD1F2CD702EDC0DAA53B8E0D4A6B7BD8145B843F40
-FE06393577CF85554BF6ACABF57716476728E4ADBD5038A1085127A94C3B934A
-C68749266A7194963871D47AE608C69EB7EBAFFD11AA858662DB0F1E9E61464A
-9B0790E15B0BB16FC74A17BB6680117F4569D03738114ADC9C23CE8953D7CF05
-74EB3755333CF89A7B8D5B2DC855366BBFCC6E20DD0E32CF7389318C6C88D550
-67D148436DD3712469468D74304C04ED39C0D7A3F9FAA7821BE32C97A3AF6E3F
-1D8D4BABB4B3D170C275B93F054A1C2286F09FD5BF96674A3CA023AD072DA2DB
-CF505AF5D0B0525E44A212B0F74A48471A1F07BA8780D08E28EDF7B1A9EB1867
-725F569CCD4B09BDC0A547B3F0AA0D66743E29EE219972EF32D14C3E04098EC2
-8928BFBF73E85DA163D4F388A57A7F3C8F1CA1EBBCF18A5610381B5E02324142
-85C2F6FA9BAF812D1FB5C1F15292AEF35FF62A03CC28EB59D3894C60E539C39B
-A5613031A6238D169875846511ADF80FAC8DFE63CA7D74160D29593666B58DA3
-0B5294AF4C2D1135F843762AB3C422DE92ED98F877BCB00CDE1CA9CD5D8B7CB3
-036446C65D702EC1C23C309B0F337806F7DDED771449B3A9EA20B755A333EDF5
-F89B696A9B03BB9413517D90C39A9E95C9CB769F2BD50C8D5FD32507F8B56D11
-61CAF14D5E8868B61135D98F372B7D2186E3DFA3835FE62D8262E789A8FAF0C8
-0FFBB593FD31EF404E658912A53BD4064C497CB120B5FA0A6DD080BD11C9409C
-D77EB713284F74F51636DBD9CAD1B9E7711FBD335B77A848B05AC7DC960E1F13
-3E77B2F11F0E54E4AA803B3D7F1F78306A76497D04294884AD6416118340E12C
-45FD06D28DEE7C1BEF415FCD58DF2E318B41923E45503B0629CB3006EED8FAC6
-C210F4BD5A4413353CA9F51285DE8363E5F638EEDFE47FBFEBCBFD465323DA87
-108E47A4CF84EEC3A85FBC10B5D45138AC9FAB37FA441AAF83FBF7982EBE5634
-E6A4A48BCA7DF5DCF6967ACB622EA0701460B561C2E6D92A6ED930055B824182
-D5A5FD2764F1E752201F4FD676D12CD27DF1DF1CB27F45305D2D330AFE94FA4C
-DBC7EA3BFA40D03DDE69821DD4A92958AD74D36315852E7EBF2D219CD7C9AED0
-EAB86D5F25E476B803B7BB93BA7FCBE1D11AA2FBC9A220D80765C3472C790778
-260CE446D86425C94D42578A277FC4D2AFCE76595361E30EE9C1955C07199388
-8BA8C12AB248B94692CB459DA11AEF914DE16BF149DBA606E24EC7B043AE62D8
-91DBB757EDEE69943594C7A6DAF8BFD5851D2B00F5464CCDCAD5CBCE5ADBDBE9
-6DE74BEA23B1B2D90FDB104FB328260D4A5B0C6B0DD6151DD69349FFAC753C8F
-7CBABBE0CF9194AE7DFD56F9C89B40697626F34601A2A9E148CBE608C4D897F9
-6632004CD3F88A8F802A3CE75A6D61D8CE55C28BC9176D589593420DA9A46344
-8549E71A35AB21EA5668C5642D8003CDDC145D62568F9EAA95DA3291B04B61BF
-360A837AFE7605188059BF61DE89589435E91221973A8DB7DCFCB0B18085053D
-26B172DC3E0B5AEF7D57C374F2EE77CFC61EA4198C7E5EC4B6E52A7491F806DB
-D625F136163DDF0D713AC99967591E635BEE7E50B1E971F3C4BC29FABBE32243
-B14550980DFAC4CCF36444B7AFA3E7352B633ED8BEB673AF5338E5A8C3282CC2
-C8FFEC954097D154E710C15F575A756B8F39B378AC55EDDFD55E5781DDBAB59E
-C43BD669013A274D7F76FC2ACA7FEC49DD5109E849B2D05126EAFB31C504D7C3
-3627D1342C4684AAC4FA858706E55226A7769A7BBF82BF73FF7D7CDCBA51AC97
-CD83AC15C80515D9CB1D677979EFB4C2552F7A2EB7471EB89A957E42C985F2E6
-B947AA0F0FC3B55572A1AAF1952D53CEC9F8FD27914856241EBF3E8AE29ABE5A
-0DCF265F1BB5D6DAD6198F48BE57F7F8F2C87CD40CBF8A15BE7BDD93DDFBE583
-EE94DB22B55515275FB32806BA1B9521396F41CEC7535EAAE04A9820B12498DE
-C97696FD05CC175280FBE13452DF7D477FA3C45301FE490C1BFADF83BF021253
-6E7BE0FCF9C5F3718FFD75E8FA931F2B952915B8E67FDF9D84B128F1DDB49AAC
-9AC6554B5DB294D0E453E89BDD1D9248FE0FC8053FCC529C2C83667F6420ED84
-6030488FD33AD5C4239A962C5F33FDD4FBE3C86A3633D8DB63F7160B9FA5AE10
-8BED8D48DC0A58F81A1A215F70C5475A68E4A077D02D125BBBC61941009C8027
-46A031B3FE7E5226947CE3644A5DE1671557ECF31FDFB298F5647555566E75C6
-928BE4D1BCDFF932053C1801B41EDDBE228D86925AEE137B228AF7ACF7BD9F87
-DC811BD378144014E05253A2B58E2AD79CDCBCB42884F4A39F7F116EACD630BD
-D520E476AB1532414904AE1007F2C6E5002F5041274E9AEC93E94772C09587AB
-BD39259DDC3E244D5CED0B46B96F673C36B647063863BA92028954ED46302AE7
-77651DB98422583FCE400F75FBEF8D1F8A3CC55C9B67AD761B4CC811E05C5904
-1E34AE480252075C0CB3AC1EB7B9B5378082CE02191E98D4430DBAEBAAE8FEFA
-F433E966A37409A80370F4C4B6B2A874EA4EFFF46EB59BF0199AFDBECE698B2D
-7F379F3A5E84EB8DFE148B9CEE8D107D6B13491C79AC3F1392B133755A403A35
-6974207D3928131427E69DAACC415F093BD90CC32B74060B99FC9BBDE3F6968A
-2B4AC8C29DEED24B1F7BBEB290280348A462A22CB8BA0BB639EFB004155DCA7E
-60840178BD7258D5390C1FDB89F15D06142E9274A9347AC0945404F9C014F850
-9CAF4FC3A6564D78F735B5421A471F533304C7D782B9D7E3206AA9AA3072E4A0
-6E748AF4045A94662555380DD4AAFB16696B3D4D27AD309EA426D6A1BE398FDC
-1B8ECF56073465C3098121A7976A82306343AA7CAF1474E3AA4F559CADD70285
-1214957BEC602D40B5C8632A074A34BD030A56202932E3C6C6A686EA5244718F
-AF3CE79700C6A9B13A88A3681C92D169945F8BA473661C3DBE3101692D53FF95
-04373C2B1E34F266C201AD52070351F3AC5AF2E93C763404854BA1F9096C7132
-A2245EECC1F7B3A8B92E7CC25EC89295BF53B6852C6C9741162F4955CCFAE324
-8F8F260C0207A8DD28723E634AA2D67EF68FFB08DD1B4BA2BD8700AA609FEA69
-4C08E47D3413A300D91D5C841143F7A01164DF73DB9A3FFD9A844522C08B14B8
-831C2351D62E63E77E594A14BF5392C5529099C34ACA6A0D77C6F20E0C0E09EB
-2699988D25751DD4F57BCD2A0909C0C2F726575BCDDBF65926930AA987BBB02B
-0613013035A6177A660BDE2DA1E73E5BC00779F4A1A9318C09C86A3CB6C0B985
-A842D6DF4CD9F3CD34C480219CB42A61E7C81734E5DB7EAC5DEB55FC887660F5
-DDDEF3A7AB149E7FC78961F9A6402A091AFCA068BF043C240E2F9F3F88C16C39
-F59EBB4DD51B4E3FD2054ADEF7ECE3D5E17702C4BF9DF301A30ABA4D3F525890
-51EE7C7CF2B9ED1F3E01D8F7D66DE3667D9757514C7284222EE658F38E80479A
-5F9B3CA56830739556F6619EDBF160909A518218A45D4A55177626DE15797BF0
-7A3A0A0DB2316B7C849AC401DE506937E8286EFCB629980E587F55A00846E04F
-1B8601D655C7471E23278582002838C5F504BD777459F6FE349FC93BCC1FE8FD
-DCD897BA751C1687BB8C208C8A850C4C6EBBA17D00210685645324BD9943448E
-E663A34251A58CBC865F0E0CD8379D842F4DADC69C9118AE18BC3D1F0C781160
-B1ABB8CBFE42180966B4B97AD90B7FF8211200FD048C5B28278F4629BE0A8933
-FB48A6737A8FC484A9B5508F6F393F8762E2AD6FFA1DEE11879440887323A32B
-5BB35A63E0476AE21D53CE319D1D075823CEB48C405C0062AF76CF200A71BF9F
-85D86D86783B2351BB0CBD444CFF67BB4E038223B7A6E4F095DACBBBFD906B10
-2BA943AE53EAFA56551DCE7237A238E17CC0B6025E13976D653302A1289419B3
-943BBCDDBA7958283D81E28C9D6FF72FDA6805DA5B49599B7A6A8B66405F9B8C
-B30244636D2C57C514BE99A51EB980D5959C9404DFEFE2F2B7F28AF6AE0D2945
-C90A2F1286CBF3D5165ACBED0FA764ACA2A25C59C27EC136F9CBC8CFCCD88610
-405C9B53E8D59079E93379B3D49AEACDA613AE6E0C438224075C43FADC28385A
-5B4E53D0D98AAC983B2BC2B0C59ED2775C94E7CFD7CB60EA0BB3F2A41CEB982E
-
+B6A3D13C41A83DECA870ADAA461BAE73B44B9CBD7D9FC1D8BA7F096402CED6D3
+0C0D5640646143431C318824FC397E06BA888D966E976366613AE3075D3ADF08
+7E1730EFF0C108B268253AD90C929A8F9CE53FA3344692B4F2C8EE88C508D30C
+7D3713DFBF78CB79AD34CFA007500B8D1EFB46C3902B183CE019A4656F585B91
+337C8FB23A923689F96FA3FA862ACDB4DFCC63C202DEE6D52253A210F7FE163E
+BF0466BFC1104F859AC97006C5DAC76B68FBBBA1E86D352FF8299D5D94B6111C
+4E4961C13C1980ED85E5BABDBC25E26BD2611CF9644C28F3F783C91FB71E6511
+3305932CDB949C97E3C994AA9DE2E3069DB02FC5D1A7B552291D4FC01BD06992
+7BB266B91E315382D3FBEE6578EF6BC38C8AC5D27C8075C3C6C90E1133DEABA2
+600409713AABEDFB90A7D59DE9B1C55D5BF69E81500342759F8EAB102276AE4C
+62226488BE3548335C8B5DF636318A758825ED631CC7897D81D8DB5E1BDC5FA5
+472B07CAF20A93B34EE07C1F1B35CCE504BD00584F0AC929F8D276FBE1A906DA
+76508D83491CE04DFA2D053CC70BD6F6D4F4FC37AE9574F0427F56D04FB60C65
+40CD0C4F9D4B202B68C573C3883AF97D3679B67A9750ED2F7FA8C39E69967DA9
+2D0BCBB592BB6DA1C14CFE5AE55BD8E1EF4D4D5CAD9543A3ADB8346D4F0372E7
+7BAFCFBDBD48211C061927D955929DF620C0B3F9C5C62E8C2EBCB8C31065CC45
+36857F4A093AE79BEBA97AE481ADCA3F806C26D1C407AC716C6CD1680E4FB711
+EB5837E62986F81259FDD4BB7EF510B5A8068E167B6E9F79A85EAE7933D0593F
+E2E47F110DA4F91FE1D1C9EBAEA7AC1EE47C32B850413D2F151439B2CE1CADB4
+7D369343F4FE7A23FE7225240EE5BB2EAD003B791E184C05E16E5B1237336108
+42E036A6736612F2D560738B460C36B7D6BC9ACC66DDC5835744F58900D88F88
+32F5A49330101FE11A2DCC0E1BE4BB40B798C0B17F06E93373736FF86328A280
+439E9293434FEDB5174FB34CABE580EE7389CAF1DABBA6A053D514BE0C3F9CF0
+F3B9E5D971C3E42711FE1426DD84C2A1462CE67A7E9CDA86B3581FE979B06C4B
+E02A9FC63EB240C890DDA668C586795961871B93E01E80D140B1D3E84DC0A522
+86CE9CF8612A35940CF0DC3BFACCDAC376BDBB3A4B063E64C59C61CEDB570B32
+315481B2D8127B9B6462C898A7FA5037DA8D88EFBCBE60B4A803C0E5D4722760
+2FEDD14E231C6377F18BAC84FC907E25108902B9353CA450AFA7A2B028395D93
+C547ACC959FC5F66D49CAFBF6090C67CA7CE8267C80C7AC2BD031CEA01EDE032
+D124162800A144E00AF57B0F7683630F58A223111D278B122D39F1040A35A543
+E850DA1DC3B6C24B1D0FDFD347427E1E0C089F7AF6F499B6DDC5D184EF6C3C22
+2E4BC5A1E7741BD398A43D47BC25601671460EC39CEE52C9A63F03E014100CA3
+9107C794F2A7EB2B5F75EBB0D1ADDBADBE84A42B32247BB1F48A1EA537D9B93A
+9BE5CAEC478D7AAB59D92F1F96A76025C2EBBAB8480A7E7D1DA3C64540ACF041
+1FF7A968795CD24C3B6302C9B95EE6AF47BF5B6F6AD4103A229AECD3B8D6F6F5
+08EC913E120825E699EE78D8CD1202D2F57E2F7FF64AA7BC0B3A947FB07A149E
+59A402E894363FE848DF9B84029A1CB228B5DCD030B86DAF7D7032AA640FA603
+E7B28A4703D4D84D1B7BC417562B51DDEFAD015AF7A25409DF2DA380590D680C
+5E9EC71AC9372D3EFDA6667CFD495C86E4233A490B9C4C72666174B0D320AFCA
+66543CFB72EC10CE2E1E7625D2616C2571B6B2E33430E28BCED3FF154726E618
+14F68511ECD14AC32539B0BEE272A1FD7BDD577A27C6D3BAE6AE3A25A924B50F
+95A815EBAD7947FCB8C58C70A83181B8AA858A70D10F396AE89524407EB2ED07
+68EA77EE29E32F040655EEC1FE51069E22329FCA0F3FD24DD2431A46634AD6D5
+F242F5ED8508E7E1F2E6F8261558B2DB9CC40ABA2FA86E8C9F6D1112AA3EF18D
+0D5BFB642F77D4DD7FC8D3CD74C6434DD634FCA744B58D80D76D446922068DD2
+EB47C42C2EE8C96CC501699E50BB54274133348ECE59A563B4BE5B7CE1DED13F
+0047C7A6B6CB384C8444936BD165B9C6A43EC34FB1BA55E7D63BBD9ACEA2F622
+CF42EED2C3557519B5473BA4B765C75A66369389FC5B07B79B87015A90D2BEBB
+E91BDDA7F6DE559E13D6DB081965B83B050F97BEA2BA3FE20B1C80DB18388C0D
+2FAE933C71CE4123BA815A50D93D97C29698C0C0C96838271AFAB4FF2BC830E6
+184087C68A05C6ADCF9D87F949AC5667C0D2F8538D8D7A0862C62EDEB58CE413
+3AD8C8280432E93ED5DD49EB1C47818D8EDE3B6BA4CD8D21EDD7071FB490ED10
+C910F5399547FBF372840036E3D167CE36B7DA6E3EE3975934FD51A1B77FC8EB
+E576AC8AF5D3A9DE883BDD29FE161F0FD1FE61BAAC76E47CC4E4403A947ED8A0
+36BE4184200F11DE0975421241E77D372C9FCCF8305F9E4679E87E7D0C9311E5
+7CE314162DC520519578434AFC3E6694FC3C907BE36C433FEA335F47BC2332C4
+E8AB9E715BB21D8016162429932C527FEC90A076BADCE3F14E6A8BB84B85F640
+BE5CCB23E63C3334A84E606D014AFA5D22189E5F6697AE6958C6E4A9B14A1EA7
+8A3C53174BE2458BA347038C3C67A8215EEB9909833F1973860F73C3C8E1BDB7
+B3A4830A7A82BCAE2574C9662D9B79F7C9209F388EB655655268240DB3E87310
+966464371A5F1C833894978FF20B2DED89C69ED956DDAB5B3B10A121D49DAC62
+D56399106138052C66D44439EFFB6BA49FAD8823EFE66850FD534A86074C5EE6
+141351C5319252D5DCF7FB36F0F868BA5BE6469BAAC008ADB1FFC72E4BEC7C57
+6DB7B4B8BB56F2990E8A5F8368A67FAEBE4FF86FFFC5F914396E9D4536E3BFF0
+32FF663883563606D288E4F747853EC60A535E19ECB75D4661F1967B55A7535F
+E6E214BA61CE6D84BC6F7D78FA0F7DA7E20B4DD668D016CD47C81E1E832F9D19
+4CC0907B9A1CDD2C241A672A025EABF26DEEAF4074289CF072CDF858B4E61536
+819A7B6A9F51F9EF82AA614FCF4C3C373E77A5B0413856EADE27601CF60EEBC6
+0FE89D9A1D11129AC54B76C6215EE2DD0076C187D039351A8289809783D3FDE8
+70F11D780FA6412CFA96D04798EF3209A1B6F81B14F283D5B3C8F118897F7D05
+9FE1769DA0CB6048672F61B429FEE444967B4279B24C20890EE7B159132DCC36
+DACCE06AFB113A96D8395BF21AE603D578C46E70012AD1E73448E306006DDE55
+AF7EC201895FC7C241549CA800439276011BFFB3C8FAB1DE36C1108DCBE67B71
+56CD9CAD7F14A6BEF3CC4B5E8711BA4ECF0ACAFBE613D5B96EECC0794FF10999
+9EFCC16247FC0F4A09BF9BDB5F840EC4BB48DA4D8B5995FF535B45FB134DD2FE
+F2CBD655AC6F137EDAC2113F8E0C180E069C359B294B2F4C0055A06742D6AACF
+35A519D3922F28C867ADA92F4961CA18A3D104BCA99E0B6452111DA91D39489B
+DBA169A25988765832AAE78B7263C2FED70309078F0EF08AC8614F475A0C5258
+E68536E981EB9270B22D2B94D2892C1D6E447AF65EA74CB0A90A620CF61F1CE5
+FC70CC7E6723171DB1E20AB4BC2AEFA9389F598222025D691E8525A478DCF513
+6C72364F2666AB46677197399C3D68B4CF1F4F87F430A5806E2FD9E798D7AC5C
+977D23EE3000795422818868AADCCC0AFA560830FB9E33D5D8B7C5E4A714FECC
+7EF122247BB79641B10008EBE4AF583E7B89C97821C05075F46208FBA9F88B24
+EBB4E80F0D93999670A3AA0BB5B7B5B72C35D317D27DF658382D849CFBED8D3F
+64D88411ED621ADAD8948E9AC5A874837387E435C19EA34F010B27A0279036D0
+0927647212F62332627582F78239539D7332B563CB823437958240F278E6CC47
+BA53C09452990A4453F5119221D998B69C370EEB7FBB5EC946A2667805EDDE1C
+FCCEDF03BF98C2104673D26A09A249D57690B135537625E48258392840A73967
+B967BE08B211837E50410E273B27B856F66772430F326E9BD0E619D70AF5190A
+D70D7497AA36C39A7579AA36BB89BE2CBBEB16DFB15042C9C2F37FF83E7DF8A5
+36AC3F8AA0D7A78D430B643B6ED36DCA486A81B06951777335704851651CB4F0
+5AFAE9EB706E9A3F8E4F7F131D9F24AD2ACD0F05144FE7CF8B09046628788B6C
+FAFB39E3709836C7B514C2FA8C9CA76A6CAE796E9D52AA6A0EF7260A10B429FF
+F91B1AE060E64B6E61A87484137BF6BA7709730C694015AE6DEEB97C9509C929
+4CAB68E161E10FCF6E84D76C391343E4FA361B1E9F88AA2889B1684803269963
+82BD49E653DD8D19247EA3074E60ABA1ED612C056B4F18962DE3086EA2283B43
+9FD66FC6C08DBC5AC5DBBEBC7998D0EC16805E4080DF1C7F587FE226D9F76290
+11B51364BB712DE2A413FF159C357534005A20CA77AC8F3437D7BCA1C2BE92DC
+FD81A74C007BDA36766FFBAD0AF3EFC3B60E24B2FC23E6E71FC11365B2E3022C
+2C04E123D06919429FCD9F938F5ABB037B7C03061B9E7D883D953C20CE325C61
+8944BF344D96FCB68BE7B872BA1FA3616D43C7C375A0845B5A0B469A091E4D59
+676D53E592DD776AA99EF8196D1D1485AAC1D0EEAE079F0627DFD3B8F5D96E86
+92BB272BF1A20FC52C709B4F9DF4805671082013007D6338185B6BA6AC572AA5
+53CDD41F0CD270EE38ADC8FAA95AA16B68768DCDB552DEA2D6825EAE1B9038B4
+48CEADED7C157695843FD9CF8D6B17D3B1B2F08DA18EA57CB90F47C8D2DC9F0B
+EC8AC42A758E812A549294FC224188F68B6894B08FDBB5EF274E41ADE95680AF
+133B6D6CA99E90B527DE9B15F0C21FA640861E82F83327CEF9B0D4F6E689D1F1
+6A92852DBEFD22B6F8DFBA577E173DD275621BA99E3BFF9C4F8FCD7420DE5810
+A851488A5B968401A3CD8197DB19746EFC0331125B0A7016A9B8F84B0F8C7DC3
+60FBA1201BE6645E37BB02824B2D712BBFB4442215E19D44084D066DA95D75BA
+4446DB751955EA3C4BA900CE491EFC809EA1F8161175F282098ED54778DE77A9
+598AD316C3C7BC26B301B7A12F1A82DA58D466939A23D7A786C9201930E4B750
+AD10988EC2E5B461A2286CC39695B6A5A05B151BDB13066720F467C67EA9744B
+944AB6261D889C365DB55E03334B29679A5F0FC301AA6FC0870B84B8263B1392
+DDD3153B380FE80463ECDEF1318E838BB899D2F420D6C4F99A56D64A5D618E99
+C86CA73DB8BCD3E76A869864DB0A7276F47EF594690C3CAE6E1C47C11887DA03
+22B6F2E6E97A7338221E38AEF20726C9687D1B8280EACE8E8B0B842EDDFBC123
+A6A090B89D5AD42C312418FDD834FD4F354AAAD5002ECC573FCA75E359B52C48
+3ED5A6944A4B5CA3E6EE7FE01C70F8E059B986D7F54D003858569C207F6D4E21
+51572D716A821B7FF136B2FC6649809599F77990E1935842AA0B34DD9AC288DD
+C7A08C49F96C99D716E17E84BF3B622D3DA4ABD0F7C2CD9247F84FF0A0CE3CD0
+54A635725EB0A9B2BE2F6D421DF42C12A8F83CE4964A184D4CD2CC13056004FF
+2654106BD9C6767094C7162231201C4E1FA16D5926BDA3B7467CA4937CA4319E
+3C96B6C0E0043BED230592B06E18C7A1319A778DE99FFD8D9E4C75400CE635F1
+85EF89D9BF91A246F4CBA5FF0C62748C958E3EE1F71CDE61E4C919CE74AB7E3F
+5E5D26C498C7DEE52EA37F00A94F28A7ECF0F0A9EACC292A03E3F107A6C5F6F8
+1EAA1ACADE655FD7A0A67D8682478F68B317EDAEFFF7B7461E0771DFAB0A948A
+28E05549C7575588FD72FE2DD72FD72ECAF8D81CE40A818A655875C0B4894C23
+C3A2E904FEE3ED5473091A41D3A209B818A91D6F1B41BF8E92A270FCAE2D7A0F
+FD60F2294DFCC98D65E33AD49E462599908E4DE5ED7E10BCCEAD3CD5A0B380B3
+E2EB703723E4DF58B08F92BA0293BD16FACB5C78B9A1729E78BA2B7A89572709
+9BD8806875F67C87CC1141E0ECC1C6A4897BD31556C81FA3E2F1E7A568531E6B
+81CBD2DAB4B86410D615E8641F8064FF925171E54E165F33DCFA5113AFAB1E11
+C0678CE2689C7CFCCCA3EAF5D84E715307EDBC68FE1703BC6601E0BDFD4D181A
+C6D7355D4D5A6509777D97F21834D834D905F58303433A49AA135FB8C7E7320C
+24552D6F7E26065CAF3EC1BE08D14C539CB5787D6F119875F18ABBEC5B02D9BF
+CBBE4C315C7773DA59178EBBE098919CDB2B93A3DA0113CF5E4553EEACD7D937
+D092CEF9DB58D3F69D577CA9C3415C710CE46E35D6B252186EF35D59BB97492D
+496192F8D8BCA202442791B0B0A7149AE9BCE292AC6FC53B71D5F8349FF82C81
+91684F71BF4CB9C72FA83B1E6549FADF452B3CE23C6DD3E788538AD9A02E702B
+54BD07B019930E70D793BCE8E83475566B418C27352E1B7947F9E46BC0E5290B
+7AC28B606FB74834085DB3ACE48669824239C4C85AE31C385C4A747E91EA352F
+E6CF035FDC13E146F78A06CF3D1DD83DCED5B0D10760E3A7273AE3172B4455CD
+3BD17AE58B6E2B2D143AED816423A5DCDAFE0532E1A5E7E8CCCA0F3D4D3B98D2
+C3AB43FD353E11C880917EE3189DDE2C1EF5B0E613303BCBB31183DAE43E06B2
+9E8975C9CFEF26E225D83D6161C80FA6B142A3CBECEFFD2355AF6A2F9C590EB1
+8FD3320F35150EFE4F96991345A1D430BCA481C86EC5993915FA62731A551E5D
+B680D4BA1BD02388006737C078F4D104D6F4D38F67F60EEA66C8AF2CBD5CC158
+B342D6E992518A73CF14856DA38EA231FB26A6BB6D0222F5089712B721C80E73
+02051D4DC608B394B2712362EEE267B5FEDCA41425981F8A746C31998132FA2A
+11DBC1F88FD70E24ED19816541549859749854AC92E7000EEBEFD20FFD090D4A
+88F4F27FB18D9E951827E39837B26B12A6C042B60257CFFC9195B371A1AF8E09
+32C39E5B183DB4207C4FA28BA0861A0C4E81C6378F575D56AE2642F46E33F460
+A6293898DF193C8AA496E3800FC23AE3B69463FE9DC9D8776A83F2086DFF16E4
+D5C41FB0C09F1DD405193DFBB68A5EA027E034C69036D40C7BECBE1C6EBB13A5
+1AC11FB6075C973A0A50DA0BDF3E371F4451915C23FC1B1DCAD3085717E6F190
+088A6406038C39B1D8E5AC6C510CFA62222E079A5F94DB168104F4AD2D97253D
+7EDFD74115F05048D4A02AF14202CAAFE8F24BAC11281B4896AFA52058BAF641
+2645E49EE964530DEDDA4FD27FC52ADB572722E1E8CCF51EC924213FF00EF0A8
+0BDD64D37B8A6D5EEEFE09DBA2E131A6EF79625983D31717CFC77C1B8B26EC15
+83ED97C8543A876B22D31EFB2A33F7E6FD2ECD86FF9D428C800E761E49AC8A42
+39BCA596FC08EF4F36E1167B1E9A4391E74E38EF571A2C302AF4C249A54A8297
+C4FD21781920A37057A39B11114EA01A605D249726A950AB9CA13742904614EB
+90EA7993298FF3759BFDE6697E3527036C4B8F37EE3D77BF6DC844E3FFE37161
+C48ED17D1376ED07B8CDBA21F5FF282E1960C5F28219D8B0BC110E7BA3E19C3A
+52F42215A32A050A9E7479065B1FDB644FC88F615877D6A78353945121DC3552
+3F821B76B49A45B668120CC59C1EF57BE66CC57CD0311D57DDDC160872E598C0
+3DC70F7294FFB2C3FFFC14B05934008892DCC197128D644E77767AA88D86FAD1
+51AC3093BE3D8B801C36F94444B23EC3152C3DE0208D109BBE9DB2C632C4A425
+5E49049D29785AD20C3FB106CF1AC5322F33177F4BAA9B5D4C86BBBB5374649F
+83E7565448E89FBAF449922313E96A0C7C0AA2279DED3EED0CF58101DEE159C5
+92DBDAD0A4EDB2FEA9A8CF30E41A12E1E426A92743C7BBDE0EBC948C9CF07AB7
+FA41FC082F303281BEE558A79E3E77B31C752B2840298222F218D813CA7263F4
+51488CFD1A57D7B00FCF5F246CFA7B6438CC0A0071148424D3A7114A358F36B3
+71CB463BB9212F29A5289D0EFC07DE6A4536A030DA9096148ECE837611D1AC32
+66FE24CE590349E3ED0B7DAF61EBE669689B7EA383BB8396A0662C6B7DB61B09
+844EC6A4D0ECA6F09E1D7B3C0C194EC7203DD92D563CD5E4578112B5977C9B1E
+ACD4DA7A6388C0835D021838CB190C1C4A0C43AB7DB4F53A511165201BD8DEF5
+CDB21DCEE81240FE961ED84FAC75E1A0C834D0F07D22D0A30F12126222E51C31
+950433A6EA3DE6438E09724BCB18D6E54CEF6B8B058D1E43409736B7B6BD7D99
+1E2390FAD64F6693F6F1DEBCF5AEFC0DEAC1800CFD326C61A5DD28C269F29F84
+54A07482A7D3F57B789D5597FE88BC127420CB07B3B926EF18D385A7A326A2B0
+87ADE9EDE8EF8887421E66924001C11325535E66EE4C351CC07F878550B5BB7D
+6F3FF0178E710D1AB430A2EFE9ACAF098834059E52D687036ADFB3118F20A78A
+28C559EF84C6CB99087FC344888536F3992571426A9D9F41C26D46B9AE842A7B
+DB9C9160D33BE70543B73BEC74D164E780EE98052D76C2AC8984D0DA790F775E
+6D65AE5C896E2D1A9DBC6F1B9BDA40D6F610E32B4BC21AC198E9F5CA5FFBD93D
+AE97C90881FF85E9E12961B57FDD3103B1EEB05AB42507EA5240A9D3A45714E2
+F79C63CA55E414218EDFEDEE8B782BA3E5D66350AC0F17882486C577DB57BA58
+9B1024388912484C6BF9A0AC48AD306AF2034E7260B35DD6CBB70D48AD716529
+5742DCA4C092EB0E1C420934E7317F0BED25F7F5E190FB708F2CE4AE0D14565C
+D1A77BAF88C75FCC37BDF41010F5D3510121B92338FCA01F4464B178391B5C95
+5F1DB500644C369A7E678F2BAC5FC1124DC7D457376F955351C060D66B75297C
+3D0EBB38119D5F9A930E1063B7DCA33208194907197635F839DE10D98A5A61BA
+6638ACC396C609DF13BEEA0264D39E3D4FEBB8598ADEEF96B0B1BC242ACF137A
+F18B6363ADB7CB53BA96EB2076C7387F1A70C6550A5631B398392DA54EA178FE
+DDF58D0D1ED403F88489AFFBB86C7847DBF7F21BE25847B82DBCC87B46477839
+BCC43986721734097461B8C6B9D0BF2B6EF3C15D44885433D2842A5EE41F2075
+DE45DBBDDA19BB853D41142E1F55B2245ABEC6C01F3254357593397EACBE6A3D
+4956A31982B83A688E0CF2F7426FA7C48DF17DEABC4D213DD5DEC551EFDC7218
+28A68B9EB46AF707919FA0C06451FCFDED1ADD901032B2D403B20D6E8F63E43E
+35591142FBBA5F13299E1C17D38A36AD3B0B89EE2A3DD3BBF875FFFEED310D68
+FB7734479D284B2C0EB236E23202E1BA84A243593E213112286C032D6BE17238
+0C078B117E4B25AC190D251C1ACB6B933C387BF6F02F2DFD8E7B237B52A1AA01
+8E826235AFA451E3CC27B40D67931869C8C0EA92D1E08FC9C546C24F60895113
+E9218BBCB58BF09F9220FFBBDD1B1CBB060B5BB3AE83501A79A78BB15D62B87C
+031435CF68E4CC06593B3B3C5078251F615EF33FEF992E75F84E4D0B6769F73E
+E045A2A6B868AB740A5DDF2FEB58BD2FD74278F9C551522D7E5C722C9CEE6EEE
+D00182BF7E5E2C96058D5FB62D08AE837C727A147DA3A72B7C5487AE97C908AB
+9BD6FFB71D1F69C903FDAD725BEABFD77E775A451B7EEC6881D18D5748E81EC3
+54BC98BBB1FD5BA0E0189445CD489C32BF42884E7964A44054A656921857A2B9
+7A04681CB650B641E19CB6709F10815537F88C9BDA1B55D77648643E2915D2A7
+F46A6E9CBB8874EC1240EBE59C91A99D484DEBEBA60A760DACB8C4BD004547C5
+97FB6384AFC98CD9BB053F335A28A11061CB3C6331B61A9AD32286D360D0DCCF
+4ADE09AE98C56962017816C3563BC9D98C38CC09B1C11A36C17EF18E9C8FCD55
+BE0FD8965DE846D2AF3025861CA5A7C19C2E80CB74F86CD53E8CC9DE6BE3BC10
+386D56410A624BD602018985FA9C49730F20D19ED91BD77F29BAC81CA59ACDA6
+CF14046FB202FF5D7A20D3A46FA47D7D7B85B87B18353FDB263983D9501F49B1
+7A6938C305280A288A18B896725FB13CF0CDC435ECAE7B83428E5D60B6252082
+38EBBC2930019564CA04B7AC91B949ED72EC204BAFB469F56A69A3C1C4326999
+E300C14341F9E836005CF3F1D73C67A459D83832300ED1E6C3E027B828F39C86
+53EB935D1D8D8222144EFBED18CE0548FC8B0996B192D92A69001A8CF42F5391
+7DC08F94FB9DE42AFB9468F27A1B6013E86510A8570DE5743B07B069FBA9A38C
+F923D368622DB5A489A7B7E988BF8A7367B6E713FEA38726CBFE1A3A716B9BFB
+6079389DE1341CC21795033C8AF45ACFEA4D61EB463CC92E543EB7150B5C009A
+6DEF0A41CED12566968B60527F925ADDCE4C13F2046DC05F20201D9F5BE85564
+BD91E07D49C8EBD39BFD36CE3D25B3823FEFAF33783150B23CB4546E81BE7921
+7E7F3988BA130605D007BA0D32C76F4182628AE9C77F5BCE45BE41ABF426FDEE
+276CF14DCD5DB2FF86757BA0FD92C09D343C20E2D28C90FE748C49B5112F34BF
+A7698C19D54FA504F6DDD3861F9199E9093051851212C61071BD7007E43A3190
+844B5DEC290B844ECF3723DA15F60E49D9BEC8B2D1C4B757A35819001FEB97A9
+EC1CDB6E0A5C047EBD0E58118C1F4AC99ABB99926068E157367D91D2D45B580C
+D969FC8F66C4B195084888D50E99A1813BCC3B2E137FA09BB94C96F3CABA8A31
+8DEAE7E321FBA6BBF275E7FDCB0A9EBCCAC180BBFB8278854047284F3B4AA610
+D8D6C8B944BA4E336D68E3FAFC62367EC250213DCFCE27E0B88EA9E85CE24281
+BDC1FD6101E5C1D85F6C16A6F76A529EE35B53CA3B49F612C005AC54DB9DB8FB
+B1376B9DA3B5EF2616A005C012112C7C10DA19B9378A506027E493480D441493
+764D48AD4C8E3CC115279F3687E89D87156E3FB7C062411360B8F7BFA4FEFD03
+6310B69D83D8322DB0E5AA6218A96BBA3DEB66FB67C22587FCB01779F21B9EDE
+2902AE0DDD9FF27D9AC17D5A6D0967A02A20CEA11EBB416B9C2C91D1F70C485A
+39D7816D9B1E573C3BE6D6D002378C5A220CFA7ADB2DC09D9C4A1DD38D06BE06
+AC204C44772FC9BA8CB5A7AC8E927A152BB4EDDF4528FA2D36436CAB54182D33
+6205FAAB5932FC8FA1EC3DD1252A4C947405B72330C4418216D136C4B20B96CF
+22CA8E2B471325B294C61C59FD32E7D2C148F8565DBBCD90B66FA40A83D4AC60
+AC9F8DA1CB5D4E222C27767543EA86D83C3C66C8604A4FBBEA67B6833065E014
+04DEF898EBAC3CD067C2E706E7D1C68F3A236EAE478040B730CE590ED38FE340
+52EA7C1844C49B8911621046AB717AE6FBF3719F7941EC91235F21855B7FBF90
+62C8F23BC153B74FA398F7ECE19CB38A490E534700F97E64984366C1061BEDBA
+6358B94BD318574792A1D00851943BC899B60AB66FF8C64AC97E925AACF493CA
+CF1E2BDAC575E9EA58F82878A5C531CDFA79329DAF07A5D1FEEDBF771C205DB0
+8F7FF003D0D4D382F175CE5DB7BD66FC2D4025FF06C96B99F37683D32B76D83C
+4E4EA738FF8B368AD737273A5B5270C705D8D1824D1D21A8AF0ED7EB23619FB8
+177A61E80C32CFCFD788B203F05B3B3B49F76FAFF5650CBB65FE0FA2FB5D5282
+172A2835ADBAF0B9BC69CDF82AFB639285A250ED1340182F0B8A7CD3EB6E481F
+B1479530461DDAF09C567BF3A814A2B96F4681FB1ECF0FAE7D75EC91643AA71D
+6A129F07276A8C7BACA7D0468CE0386D7667DFE04B09677D502A05C3874586AA
+DAAA13ABD2FB93B8F92F72CA2F38AF9D643F0C1A7786A15DEC80F3F13DC2EB0A
+956A5DC1211D02E732476EFB7D999C63CE53B27759D7D93B47383DB234C4C384
+E5E664206B8C833335CA6A89730543071E483CB92DA30755A982E25E1A268AE6
+D1355E15CA20BFD7B9EA1F89C3C07F0EEDFDEA65F8A82C39BE3AE22E727D22F7
+C8DD4788497AF3E6D9AF79471F575F989158977D3277AB36597BE0EC8347DD33
+BF0D93288549C90642004A9F969893798F93C1EF3C7A6CAB9CADEBB6787C18CC
+2232972AFD6BBC6317FA46765FA74DBD6F1FFD5491E0E6335F0D08605883DA1D
+9E3A80097856D540B61473D573A9AF12B79AD066F09B2BAAEC9E46CBFD1046A9
+1C07FD78B5C98E0F9847157361293ABBAE194FA860141A43482C7CA75F781351
+E762FC9E3F892735C496DFB7045E86C7943775D96ACCF2DFA451089EBD4BA12B
+DDE24237724CA3ABB3AA061213185206F058C2CAFDF35535C1AB6EB38065CDFD
+E57123DB9B0C933C6796B59DB405093C8E429A0511B6A23D2A6FEE64DAF67F99
+0A4B3772003EAC01BE1ED68FBA87079D0100BFBE054A3EAE2CAE8B01971FF85E
+352F86A1A29ED975D4D69C748D244345E7486974F0D402ACED2B7DAD1E1C53FB
+A029DF4E5CBFD64C694B1D911E53900A38DFA5FBE785D35A2595BA71D5209E3F
+803726BC42832EF1FFB227F6BC5691B2DD989BD48CAE99B4B69807E55DEEE2E6
+1C2E43A3F90F08DA4049A65C2EBB68AB37CE0AF7C4ED41B27BDAFE3D37E982B5
+17CD994BA4F8C064FBB1C4D477E177371D0589C4078CE74A1DC6BFBD2C76C8C4
+4DF12316FC2294A8C834A2A1AB1271A7C3CAF90507679280F4BD0C6FF1121BA7
+45ADFA2BAF226982DB7781A96434FA8495F971BB17475C7CDDD134AA6E87946E
+EC2BA6AE663F4317DB621CE3D2644A5B3B5F577DEBB33407D13D5BDB873A9622
+5E0F138FF5EED620E4ECDCFC4BC8D43E46BC62FD90F59B06938D1405DD8F92AC
+7985F4DBE35AB0AD927A7AA1AED8A3FCC9992B89D9CF9EFE02517A602C10CAA4
+44C9FABBBF210F406B358DF144827E04540B47B01AA6631DF583A36A10944787
+AF2F517BE8D6B8B43C4A97F49132467F0243735AAD44908C4FB05137A7374EC2
+BBF2CA497924F050E7902E06785CD6BE7550360283D231BD53628F576B92B6C7
+3A67EDB5366C3DD053660561D5EC2C7D7337E4A89AE89EE9F2ADF4D99A75ED5B
+78C496422AA1B58B8ABC81F5AF8BDA7A3C65D221977FC6EDBAA2E98F26358788
+29E0DC0A30527D64CBC82F2CCAE18ACCC1B2A64DF31030F0F14F233B5306D623
+DCB30263BD18592A089CE4C2D0390126741EE14F7558ED949D13DDC9EEF0AB4A
+3166F740E41EDA16F729F76E42DC1D18B2EC06D694781851E9C9ADDD139F7768
+627A1D4BD88C1505F31911B1BF4AA76BF6866EF658F607EA4272095480CDF526
+DD9FCE4FBD76AB86C887FEBD791AC89EE99AB5A2903FC1D4ECDBBC4AED1E2568
+DC74937B487A36FDEFD62C230258B15372F25FDEF0B59A482A6FA149248743EB
+ADFCCAF718FD9D6B8576F8DC7DBBB96DD1FD3AD502F6F9FDEACDABD1A9D54290
+C3417857F1818AB3AB34C1BAC6BD65D7A1A5B3480921E9E48546BB99D41FC796
+D2D373042F1F4A796F8FA1AD43F1BCD937534ABB4BEE3F1BE7592C158885353A
+C2DF29E4E95EE1D526A064B5EBB9C5A53DF45876AF31DEABCEADCB5E4000497F
+7A0CE6E11077A22DA49AE3416E9B3EA88F151CA288979D90D1F5B9CEC9F1B36A
+7D5546E3B317556F0CBB4375AD06D7834A2B16B0F4A2BC18B3775EF4817CCB4B
+51C75736D8E5CEE393965FBEDB98568BACC0CE59D39E0DB30D4D735566681A7A
+D7F39C19B682DC7B98B87772E9FDFF1A9848463EF22C76724B4FBFB5765DE1FE
+E57B45C65CCA8150A80DEA255943EADA2DD043C239AFFB5FCFB187B763A3BB27
+CC0BC3936F5E9F833A745B3FD079BC7489104F77880229227F07B294BB9B14D7
+62909E582CFC20A5C57CB42D90863F4B7A2BC6EFFE6CB02490D1E1953C5C5B77
+BD5A751FA40E2E681D55AD39F5FEC3D1B564BD77899552874802D7E7C1236388
+07E672122D3C4591E895B2792DB4E265AC250D2511AD07E43490004486C43471
+38FB164E23466689B3CBD57555E84337B5D7F0B809B9524CA5AF7D1406F80EAB
+C72BFC9987447C62D70B4D88A54A6B8BED5F7200A00F59432CAEBD1120BC882E
+82CA6223D0F60FE03319260659263AAAFA9A309D6B87A926821520FBA6B269CB
+C0245426B25DB5B5C9202AF788D8CE53F20EA1F18BB16EE5373AB5593AF0BDA4
+D0BCF44B51AB29CEF3295C3CDE1A112043AB47F05812A5FBABEC2FBBF404C331
+BE74B93237561CBFB1627AC5883F56EAD46A8B2132E352EAEFF95D79A9C36731
+EF7DE5EC66671E4231A6784977C2883AC1597C73E047FFCF49D0E16E4355A8B6
+60EA0698EDE972C32F0FD19754134B5D83C3FDB82D4F8904DDA62E22E2743A89
+E79421A43FCAB3E6FF90C36E5A5B4F2FA2FEA6D0EE41AA3C44B727AF545A3B45
+2D931C1BB522CE068979A7DED0470409E7999EEBD6C58A1F1909CDD00ED2180D
+44A271811E80B3950222BA531719FC4B0ADB6255BAA63787774E2947CCA6519D
+E51D71A2ABD77B282CC8B4F8BAD57ADFED6818B3C24ABE0E668AB63CF2F17731
+2F7C7A492A47EB38DBFAC5A36BBA799375A4EDDF6A0122789BF6F58F8EC9F0C1
+49CF01C136A792BE4C6118DCDC0675459ECCCA754ECDA9D170708CE58A230DB7
+D753C45E7434FFE711AA5DA45393DCA8B5C8920A95C94F3B89776C23B53F70BA
+B6D217CA58C551206918303DB33B6081E3391F10DDC5F58B1790028AA2150AFB
+085185754358891D30992FFA2C23DB2A04521107101C2B52A1A168E2CE7C85FC
+37D32B44FD1DC3BE4B28BBA9A9F91229C79997F5184F5E7143C838FDC8196C52
+0B33A375B320A025180846736F0649DCA8FC61EBB6CC1974A4134EA26E6F5E5C
+A73992547B9A4E6BDA10FF2B41C9215F2F9AC755DB11C1CDAF34396E4B92DB64
+83034FC2023D846B33DC7CD297527F183540456192DCF23BCB4A1DBBB7A2ECBB
+D938F9F3C03AA46A1893059A722AE7FA05CE716AC8D446D7F038D6C72C172A5F
+05F91CB5FD5427E6C156F126F6B2014F97F5792F77CCDA6A802CD7E3405FA66B
+E32EECF53CA9071D1EE20AAFA9AF3DBF4CBD250650870F0B9A3923BC4484F349
+EB072F3244C98AB39B6F708A4A52C0EA243DEB4DD77BBCE573A2E56323A18A0F
+504EE24F90A29AFC5FD3002749E953E1E1E6E6E8989A029BADA9CA0A261884EB
+C6BC3BDE99849D6F05D8D1ABAF82A452EE116463444BE4D3DE38F63938BF69BD
+10EEA7C68AA8077F412060D185E4187120926B4B209A74497A3C9065F1BAE8A3
+C5DF1A6A01349D7E8D215FAA03677C682022A26D3179CABD03A0C4BC6B303BFF
+BC7B3FAF26B96747A840C12EF14E16A2DEC76B243519B53E04038D3FB13A2C24
+B531C3147B51A8C3623F4C161B4097364608D5871A29006F7ACDE5ADA1F82C11
+11BD9E2AAEA52D352D70FA4C94809422ED65C03C4A72DBE2FBF26F4CEACE9DDA
+F6D895413EC28F2F61F40D67AB8798DF36773780B292455A689B4B70F03D18E1
+EEDF66F3C5823D47156B6B2D1A1006C513FCCA31D101DEBD474E72B49B664F35
+86EBB75BDCCB5F4AF8B583B835449F7CAEE5E97A819AC9ECEDDD6AB2E7B326D2
+A92F7568D8301B1F1485F234B32632E8725F8B637EEFA1397FF031342A03B602
+815005BE674B52CD4744E20CCD2DB8F7F58D0717FCDF04001101A51B0926D53B
+BFF990D7B01091B64F85C9397DBE3F48A17BD2584141B3229CEAAA3F0546EC6A
+4B9FBD4EED3EB6F78F8FE6D342B13F5BEEB210E4A527D83B9354A085AC87B359
+4E5DB704BF8363E95FF526A56182093FBC89926FA47D90178A91CAA8D5A73F2A
+E38BFCF454444A79EB4AAA502292C08166EC7CBC37014DC7DCEB4DDDFF7B9A29
+75A5DC4C86D19B4E9901464C7E81F251DD00CEB0A87C6DC15EDE276E8976DC6E
+77642A3B502A160CA2AE5EF55BEFC154602E96F496F7A4D2F3D345F51B28543C
+DE2412AE9C332C5141F664C9B5BA61806420359A29A473E0BCA4FC49853F6622
+A6EF486456683FF69DFE32EA117216FF797E3CFD8C4FE436CA7E1AF5F91DFDD0
+408876DFC19DB1CD9EB2CE9AE76EEEE3E73E0F37BDBF4010B581C510B3DB0CA2
+C340B265B989E1E682B4FF9EE3CF10B9166604FA8262B123C7333E91CEEC975C
+80D73B4DE4F9A065B1D86A040B69197EDDFC955054AEBED3B93C9EE76A139D91
+D8F1967EC2579F6E111AFCA78FDCA67DC154D4DB3CAD540024BDCAC2A28537F4
+51BCBD448C87549379CE17DC363254735D586FC39A5BBCB4EFE907F37B4E9842
+12BFA21977D0D519B0628AA31C58EF538A78402BC7611FFC01B6049A8437D319
+9A9A1375578B7D36F14F6A31E2717F1DB8A55CB0624BD9BB4ACFEF4594715AD3
+BEB006D593E3D0FB36A82813A39AA70E
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -3545,7 +4071,6 @@ FontDirectory/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMBX12 def
/FontBBox {-53 -251 1139 750 }readonly def
-/UniqueID 5000769 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -3563,7 +4088,6 @@ end readonly def
dup 12 /fi put
dup 44 /comma put
dup 46 /period put
-dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
@@ -3805,845 +4329,297 @@ E75FE714FFF3D54D09C9747ACA01CEFD260985C6E87477C9C7843343C7E9E3F4
CE2731FDDF7FCF2AEF7CC2B1EE7095F480B3B27932ADC486BD9CC130D94BBD05
43872FEBA04FB8866ABCB4D379696E73B84BBE98FBC4A16CFF22F8A7AF754624
2912C228030FF7EF23D51DD61BEB5171AD31E2B630475E16B6E0F3C78D44AC30
-712D165DB6598B1DA7014496E3367E39C2B1263ECDA94AF1363599B3B91E3345
-35E38C1FAA3A2254373D2EFC8A090D9EEC1B9890886F53064FEBF025DEFF64DD
-727DDCCE1946D6268F7C1BA2A29C4D2EEAF3464C06966889A2A9474A48C998B7
-9FD37B0F77BEC0938C8A4F7DC2F30D810934DD9074A0D4913252219B1705CBAC
-670A7070241F1EFF0C74823ACAD9FA869819B991B6D673547E7AA858675FEC15
-4E4790AEF4FB6FA3F8A300812A9E42A84A1E5FA0C32CDF7432717B1B7A7A483E
-D8C59D0AF0A55325EF895A8CF09FAD951C4FA994219F6954E79C036C4F0DA60D
-759F935C5AD99856DB6F328F1DE82E6182E6A2623FA9EBEB12439F4CA16EDE63
-C435C266CEE4DB3DC956A4298E32FE7AD1A1D82919A2D780ECDD3A9EFD11574C
-2E17148C75724C96F6806D9816FF74C1ED53860EC32078E31235F1F0726307EB
-571D3D1051B1DFCA062172113B368DF7F927E25B8B5D5C903F954694EA680AB9
-5A7ABC4F9811ECCC659600935A2D2B417355CED0E9DE8BF235FB36DB6E4EA73D
-800C7241C3425690CE532B53686707C645B40D6E941BE510C80291AD80F2DA2B
-F4ADCE3CBEE1F8CCF8749E97308D8A3073A64B3CD76EE03470F63E1ED2CB2322
-8A8096DDF82AF8324B2A3F80862B1793CA077D2CD22E0944FC49D24570FA2B21
-EA42BB32AE43705A0598CD92A5D655BE65388EA131384900D8B4685BFCE716DE
-71FDE7E6D31149AFD27E9E5D06B8C065ED8FF07F5BAD5BE43F11BF9B9133848E
-0FB1C843F0760B43B880E2F95BA5FAC887180BD94FCD6D373246804B4F707E6C
-A55EA48C62FF983CE5B83DD415E6B3199F9F79B9F2E18F3D81A2E50C067C8A16
-27AD4655FCD22787EBBBC38740A6A0C96F1C5E0612F75A15F13DC8CE2F1E888F
-610E3A828DA46E7D6ECDE8CE3051B85E0C570AA0AB2736C44853515983134AE3
-09F3A196294C6B1588D5101DD81DB9130B9EACDDB522BDDA775D909B05A0FB5D
-4BAC2017418AE9D268458B7859D5F6719D6FF1DDF6F3F1771058610B2B1A16FA
-1429B29491E4C240C70462CAD84EDD453B92DAC60CF9787F7EAEDD20AEF16F02
-88533ECD8654FC44118D7109E67867D4B627F2C3E5BACD66F44D55B7DE146094
-462E3EA9E94018CD6B679E78A506A412F6A63224F5097337B1EFA51AE58E8DAA
-A77C7108462A4D76C4EA7217892A27D761615BA12EC2461AD67393CE6FB3656C
-86EB58528BD1C2AB9339EE79C99363878B2C2D1B0F878903FC334406FFA0E2C6
-21C7CD68FC90E302B9D4D12E4E1C316A4DD68408DEB1A969EA71CB7F9D77696D
-B05E9D7A5F74A78F6148319CC1266DECB2C3DA32CE22BCC9C8DC3DAF75DE40C0
-9EB284191D60B67ACA3B6BAD432DFCBEFE767AA7905D56E4D6117C880228108D
-E845568849BA09DBABFBD2A66D39534824BB4BC38F4456DE7D352E0322B400E1
-95153F5C46078216551C9F9AE4FDFE0DDA73A683E7F185657C98548A8EC0CC14
-2348E86CA5898D92B737ED43782B68A04D6A87556CF22A2CD17A5460F479AB41
-B3EBD3CDF3B1EF9DADB4E47348A5F2BE83548140FE6D3FF4066DC58EAB1F0564
-C58DD09B22920000B72B190C0C9E40D1E4F761177967025F42B028404728AB26
-7667E6B7FE7D96B736B0BF95650C3B93F9208C0319870D0447C84EDDD311F2D1
-B2D97834F9B643BA80EFE63A822A47B5069F7527244F543C9B335AF37601D0F9
-0E5B4AA0786E9818F20B9D30F1AFAF94C946FD6F755303A1DF9705E2750F28A7
-9032C8BD5075E6544736B27D19088D2EEDF0B15587792D0CBBF16B0BBB8541D8
-FD843B5EF247A5789C2131A46BBF89A146F11CE1B2065DED3BAEDB7982DABDB0
-96A5BB14CBC12B0E82135DDA2E514ABEE3986A64E1FCD334F62809DEE57C3CE8
-4F7149AE9D3CB21E272F62F093DE1B92D646DF2529D415EC0C9F7CA770CCC88E
-228413ED2F3875B8591C7A9A93C84176E16FE8A23C751014185DE91EAB2BFF28
-A6483034E9D6BD5A0E4579429EA264E8563AB38AF47FBEB47310EF1CD1618F0B
-158C0281F7CCCAFA53EA0747A30A76198B42F83CC5A8C4CDD3F21EAC95962683
-9636663952CD428830AA9764A093EABDCBDD8E7ED2F9DC4867B0B7856A0DEDC4
-501D79DD91A829DC0F6250EBC447488562F2DDC910954B2A064E2DC7FEB6D61E
-3BE266D23958B761557EF7AA4B13BEAE7C175150582561423EBC7DD345EEADED
-9FF13E29DC064F3CB241DB7C15DA5BD4ED2E4A35C7C678CB3CC968DA32D7E462
-5A283ABA6A7C37CBE6AC3F50CDE010C5A58597CFA0D6F2B18FCB7EB1F1F4351A
-238EFD32DE3C8669030B448A17D7B8DCC65D4791E86A1356982C4350D3BB7C98
-48E7084DD80FBC46E8355FEE4E2843F0E380A2E0DA53DE95F17ECD3439C3E8E4
-5BB55B66A3CB5566AB01D52BB475A23CADC961CA7434A5C67112F872111DA282
-D4B54B1D8AF177FDD13BDC58E23B567085138423BD1383ED7FE72AD5B4488E00
-81939745F9D5EEEC314C158B2B89C96160CE1157A97DF95966E68A20D7C7D1C3
-1C0DD39D2B32125ACACD1F0E7031024C645190BAE4017A0EC71A457AA7BD8FDC
-A046D20573A2BD1B1140A55AC771D9F649F59C8808242F83C0D0E4DD89EB9A01
-F6004778FA6DCF36C281A772D1BA8951C4FB2C4008331C86962ED087B35ECED2
-0AF6D2997C8A54185EEE781BCE2AEF2B6048F83565091AE2D09E586B6B873263
-7968321C68E3FE5F769C954E826B7AF6443DF7C85575D0198BC9D1DA51E57659
-4CB4E641B22EA1C0F5271CCDED2CEEB62EDBFB50C87F67095D5433BB06F9A2E4
-65FA29E817A77EB3EAC6BC204DC698CE495A9258D396172737E0CE46A0B83EB2
-5AD787FD9867C417FEAA6E9A2B82A45A1C113CD61FD52DB3DC784B8CA34B45D4
-5BA4A51926490399DA34AFC6EF914D03E89DEA7E8D29E3A08DD7446AB998AC00
-11E38EC4CD4AC0CC5443EE9ED3FE03A4A278F2BFDCFF7A329AAA92C197877638
-F7EA2CCE9B98E138A8A29105D3FBE66558C38895BFADC76513B92AE600CA52CD
-2B3956A59AE3598AE3E4771F88D44C53B8BC449C9EBBC24CDF6474BCEC4CFF67
-886EEB78E02D0CDC70A8B57CDE753B26F82BA6A2715658135288ECF075076846
-0B2EF7A1A8F85370FC569D9996B2FE538BA27409D3048ED533833B0C38F50681
-069E6B906E338DF1A95EA7A207376B5760D0B97C6048E81569438A42FDFA0F5F
-982B146210B9DA0C6C6DDE7E4DFD1F82E5BD3C7AB433376459C733A45B100245
-3B5866783490B198BF8FE1E584C8AAB115385CB8EF1BDD80440A55618BE07866
-991AF27FBCC24BF1BA2BA12C383FF1AFB9E55BF595725DF2BFAB550C24E78D72
-6B14E4D06A56F56F4F9B251148942B3C1B164486CFDA0229F5B7F7C0EFA1E537
-7DEFA36C979B689C1176354C30CC71CD4F0BCD57255910083F5094DB930A4EDA
-C7932CF89109B949A0BEA607ACF8D3AA7A776131DBE2107CFBF9B01B36A94AA6
-30F3DFDFC9A4E45462CDF9C4F81809302C453CEC88F6A4BCD6D7D8247CBB5401
-75249615C893B72E59FADF3218D8EE1F7C4D293117F5123F7E32B5C5A661F3ED
-ADDE9B641E4621E7799835A368485A9FD6DB7AE67C6B3885F6897B72C6913566
-6C0C76696E2B9AC2363D2ED40B1BA1AAD0F057E08084520D3CEA5A4266F1C930
-DDBBA464B2598F52E1AE4DD27D3531DF8AACE18308F4F6CA7F242C28385256D2
-532A7274D2EB76BC042B262791FCB22DFEB88B58A05BE03B7544903D3286D337
-FB76E55A88075085277A3C575C90BA6D9E32348310D7DDCBCDF0A081B4E1B0ED
-8B99BF5E7DF1163F3B29AED8E28A4411C081260AAD1886928BDCB86FCD749BFC
-1A1CB0FC67710782B39DA2FA325B4268976AD25FCCCAB6C182AE32D875F9DE40
-C80A94A879B57E0B2F837B97431AB798C96D701E54F72189346DCB00481A5824
-1F97C835D74853A10DB246FE1439522612511F43ECB4AF09230A45A481E5B902
-9F4539F15C3FB2935865E926E98E2302B33079748D5766A5FE5DA049A1B9DB0D
-6308568B14BEC56F77C9927CCF0F2E8CE7CEA50CC8631377C9528A0C4B74D83C
-719C42B43ACA8038CF9E5E459679CE792C7B139DEC9EAC296BC6477F298A947A
-24EE80E965F698545EA273D248D4DBECBEBCE1E134BE54C152A6AB4995C1DDA9
-111A90359B7E0E5B2A988A23BD4AE672281C8E4AEA7EBEA28F24B7ADBE1E01BD
-1D04D26FD410402697D836F44E933843615D845FA80113EC9CC7A69F4DB42B98
-6D0CD2E16FAB1658318B8A97A1F34C988784C75AAE519F3AA7288796B3D12095
-84301CFA059C88ACCB48D48431D0E9522D2495B690349CE3B483C2285EE1BACE
-D6CE67E7F3A21BA39704724F864DA1C235DCB8DB56098565CDEF44E305AB8628
-735A8C82E7E505FB7275CB96F93365A19A271B92D3B98F4788140106C52F1940
-01DE66EC903EEA626B750178E619461F87A60ADF4FBC973250EA990AA83B2ECE
-273DDE3BB1365E2188ED6036407055A86070985E2297B78BA239072F9CE4E4EF
-93BD74E65A8E16CFF23E74ED2C4E68371C1B3C75FBBF229CA7C9F9A47FEDCF64
-B4FC65899D911FFDED2A22D602FDE54A5C2E1E76A614CA7BCB7116BC7E999E9A
-3F39606BCA2CE5DA129DCFD3BD54AB968E57CE2F8875C4470F7E698D9D6B32C4
-F9027740B601899FAC7D2006B4273390E1589EFC0D93844939EAF512A6F9283D
-5B79BB57CAEF154AFEFCD6DA55C60851F816E82F301EB50316436B40480CDC8C
-E89019440DC665025E354B4BC38B5845BE84A6A32189BF236495D0ADF0C8135C
-834E0FD078525A23A318583741C0A1ED8991FEE67A6B08B76F2752794A1D9802
-C1DC7963C44F094AB682F837A924DE22831B7CAC3E7F64F20D22AD2E4778084B
-F9699DF59CCD03721DE396B7E67FD5C96BFB4BC5444F499AAEF31154410C2556
-8D94D6959DD3995EE172CC7566EF0153021E08E0B729CC91F38B7BF99AD3E578
-07B364D653874D0EEF20C1BB350D62B486F338957279EBF6B9F1D031C8BE8304
-CD3824423843E184B750FC44CDEAF1FBB62647CFFD159C6FD0CD03A5B2B5C5A6
-BA96A3B3F2175E77B2503B7A31296C3800D40D08B1D05CCE4F4AD9C5B8517DD4
-CBEB91317E2897DD3A87F207AE00A5563A12F784B35067F7C5F90B0E759566B1
-F4719B6999FB99D4DBCAB822F414D1E56437E804F298A33ADC3BC529A4EA12EE
-0E187D2B42A39F5D441076C0172A3FEC9EC49E4B4B7D2F14A06030D729C4DCF2
-E95A9FC23833A7A552EB73CE347A708EA75833A66153B3597226AA3502F405FE
-2F0089D65BA3BD10B6E56D3D2AE1A4F0F57BB4E7D614692947C507145DC09140
-36A2FEDA5218BEC7C73B14EFFFD1DCED9C2F05BE603AABAAF449FF8274F63C8E
-B9BCC8EE19B6768FC3E240AC120A077985D7BCA277FD06B8443C4054B6E5ABEC
-65DB5B6CF2608AF1A35C0C250286AE6ACAC5AAD9F1E84D1554B703787DEAB48B
-B6543964A4C4AC2E10A6F52E585C3615BD921A7EF6FF05B56BB06F6C16870F58
-EF65326F9BC799F033FD4719F85E577CA11E20D52BD6A92A1459B54CD0FE1C45
-6022225FB9F637808ACED409924D2BED4904B1A6F5DBAD0BCAAB333252D9C447
-E1292928ADB52C414EAC5ED54461423F4A745F2ED469665686AA3F6DBF914753
-54DA90D47DC2036B888BB3E8C81BD96B6636D4985E984881B499631D913DE2D0
-1F873D57A48F9392565BF27D26B9126CABD10487328114DA1398B4DA422C28F7
-0F7CAC19FA6B2DAC11B14A4E1BA4D0FCC14C5581D90B100B617EDE37195A67F2
-6DC5371AEBC0A60D1E9E8D428C91DE7147E937463D3A83A5753FEF4F3D852FA4
-3BB4E2826F8B7FCDF057E81BAE3EA08B88C5E347A9AADF338541E6EC02DEF8BE
-7B759CD47BB9278B8629BB7596CE548B323465C7ECE9BA5592B48F50BD0F4951
-E844F5603136866A4C5FB0C77ED355E6A3F87446488A24862B1D40CA4DE8D2E2
-69F4354A49227A5E67A5891FAB0EDDCF3DA61D73F4B2D46455006271E2E0BB13
-70742CBBED0D47D41E67ACB89590756AF739890A55DEB3D7CD5635E0F29E9492
-46BCCC5B8ABE6338B2A6ECE693B7D122BCE504473B21AC6FFDB70FE1CC44AA9A
-61DED2E1DE627A05AA6AB2BF2F6422FE9289E11D89F01B258BA82B3044190E93
-FCC3F51275C66BC7AE817748C20E9219B286D4CB3FCD571C998D6CF54AC0D01D
-0FC050EFAEADFC4FB61CE293186009A31354B3CA20660A7B313FC47A7D539E35
-7AB260BEFE7E78BCD3FF014C25470192B83FD8EAB975A2F25F25F7B3DA8D3920
-9DF9BBDCBAAFCB8D1F9C266911FE077D122BF2FA2C456292022C06B2A96134D4
-03736C80CB87AA5739F79265B104B9B283887E87D3260A465A2DE3C094B54C2B
-A719FCB674F0C533B5292AECA87BD9E1FAE18FA59B527C9635B77A0C45ED0143
-BE4619A37DDED3C900D0D4AE9E29CCD4A6E69B6F411C044B62DF38C8E972A5BA
-F854FCFD80D9E30D9B90C31508D48E1A4CBAD9975AF4789777EED902926695AD
-30FE874641C1B6BBD9E1BB245989761171D76889C92AAE8A1A2C38D44EEFAFF9
-987B900CECB3A6E605206F3400788C15D43A709E9102C9FC4C684661CD8F4E4F
-3D2CB2E680D49E047C3E0B37F8DD9B5B61450CF233911B65CE6CF06A00D5AE59
-198DFC3FFAD98F7B4D1FC954F0F8055CD1B69BB2E2B70DA9FA38FA35156278A2
-C435743D67A19A6B6E00B9439C0D87BACE1BD70F35B957EE067E1761DE46926A
-BFC6EDA3B9FE5CE82263F920C8315F4AD330AB6BFE13EE717546963CDB255B6A
-CBA0813A3EECB29E69A4431D9DB1AFD0AEC7DDDDA1687111F2617121B67583EF
-DE27ACD00BDE56BB8B24E6B3A3667C7AA290A79565CAA5A39B92A6A11E169FD4
-7AB929769405DE2304F19279DDF488E5850C8D7CC06D8496045CAA536B874437
-5D12F4222F7BC3424D9BBEC58E3C915BCC8AA2305FA6E3A6C8F7572F31FEB8BE
-67115FF318D1B739290E0D86DF67BBF7FE2D7DB4CE34A8E72088F136EBEB1699
-BF088B5F1174356C62AE6C05C1112DDF7F125C4439FBCD41EB205CF446CC5CE0
-4087A97383F17D4D85E88FCA852A4111DDC13B76BE2D31D63B5B80A6633DE83A
-C68FD3FDA1D4DD30C209A403F431D7C0B902086D705E715CC98993A65B4536E0
-60ED2902D3C6BDB9FE7824823E9D4DD4CEC7AE050D8D24C5FF51260E843ED9FB
-A3E5D974CF96944C02C355F9983BADB66964A497BF5ADE9DBAE5C8A91FAC4F4A
-A221832EA664846F6768D695CE6F4A57019B7EFBA228AC627D8E0FAE8E751DAC
-B1D1070C0B041533047DABCEB90E6DCA94A67E07561275074785873E30931043
-D88F686F5C9DF58C68FBF02EE9601B100C2853483977D5DFE6B9893964249A1E
-85024E3EBD3E5522CA0D42A7F8D8096125D26203D91E93F7F53AC3B169B23274
-E9A7F6A82A485FB1DEA2A3856468A614788A7FF667786E31A7BFF05AD49511FD
-1BBDF9C122DF2F4A90216071D2F40C4090A3E75C4722E7DD31F20E6534FC9D2D
-2B11C29FA0B9F3C12CAF72B22D7EBA6AA3F46064EC7AD5B568C146C4D11E1120
-1CC423CC64CDA283B703F2B6CC53B03FEC8184A1E12E0E64911380DA56B54C87
-7E20DF53C6C1A8A3B8A51364C2190C0040829B21CFE32DFD3EBAD356AB714AFE
-A9F3F17F640B7FA4F1D1932AC77BD494673A92D722106C6FA707A8941A6E06B7
-B6B784846119D6004970B75D63D4B36167792E976662CF7863690F69C6509065
-F8A6039B0A121CDED1873FC0CA517465C1E882E7A6EDC6BD75C93E67832DA0F5
-3F0390D36BF3BBBFA1B77A24291EB5823D6181A089791510A76D296E93A24F0E
-522C9EAC4B02C645D46263E0CDFA9248B9725C0089FB2DA78F7682E7BC5BE375
-CFFD2591ACDA56B9BECBC342B9CE42F5BC408D3916FCD13D26BAA1453B8AFD94
-6F276E545ACF4CAFB8BFD01E1F6EB808E994579C520EB85621580E36C867FC29
-D82C550E3F35DB262099FD8A37EFDA8A86C63C598B31AF3FC5D6E1BDC48D8B36
-0ED11930A54BD46D85C1A89C1F18F604A77985EF33730705399F862C735CB471
-7A517CA778890CDFB9C35698D33F6A38A67A631F24DB95DB22D7586A416CF5AE
-0F119125EF16AFF97225C3C373E7951287022EC3CD188766105957157C3C1A01
-BA2F130290B5F98CE4445952368130FE3468186ECD90E24BF958039E4C724A4F
-4EBE6713B7D2F93B08EEF45A6989AB58D57DC8881794CF1171FE178660EAF026
-395BD7395CB6B7BE49DBBA28CBC30231825E89394F10A831CCC58DF042B9581D
-B88EC2324279CE19DA29B876FC0825ED9185111496559F3F4CD7EA3E69B3A2E1
-B630894A968F3565AD07F2616A8BB372EE1CA0A58EBC41B3AB02665CC948A506
-2A9DAC0FEC368BB04F932DD9715CEF6E0CA2159BA9DE52C6AF32F29D55162322
-6B2E952C516B41C52538D91F7C64B521489227A3F826D87808D7F38202C6F885
-2FD6038A468040FD5177838E5950F3B171F6E2153970DD9C6F6E78963944DE0B
-EFC46867EB5A50230BAC696C793853E25A114E8E01B14FA2E91D2403958DC8A2
-D24D31077B4253B5C483641D635534EC6AEBD65B7C81536CBC3485BA387B9205
-7D813C9FFF6DDE964833FC7D47C07158C23408428AA82F8A2A6F299C0DB08D79
-3570679F5C034238C73C916057A96E52AA459ED450609B8D6464FB024A5A371D
-91CB9BAED1C113250458869F997E6315685AFA17E5C328906B4FC9A78E539913
-5928CDA343416B4C0242063E9C49122EDB38B9063450CCDBAEC1C16C15E948CB
-F970CBA676162360A81647F39EBEDD54B9C53328529C640983B5BE0F04595E73
-A6D84F5CFD86E1DA42F7BE7EE33441F3FCE0E9451442D89D8302CC76F39CC7CF
-A5E6DA8CE227CD42C4F99DB10D829D85153BF7A08CF72FB88DFE10D08CFA5060
-CD6421C8EB301AFC38A80243D2D370368D052927DBB3826841995BBDB2EFBFC8
-4F51617E83234AA906DEC34BEB84BC0C511D28A87CCAB72D216BAD9E0F952108
-44E369E2454C0BBADB42C925FD4E9C93EEEF2536F78392C409EE0C303996E8DD
-5BB7B707572A73EC0AD84F9BA5D2CE3DA82341D24D6E0B262805BA7327EB65F0
-B63B291C25DA70E6A96D5CAB02E7DB6BDDA2D7C396D53683990B6D4A1D71B5FB
-CBC19A35861EF6BC34AE92E91E83373DFEA17417A7E2CEF7AD0EF3F225ECDD34
-A4689BFA6A8BC960D1A52B6A76DE5F14313C9C71A362E0E994A3CB4558DB50CD
-AC27CE99DF1365F0F41A0330E09230E6F0ED06AEDC01884896B7573BE864191E
-68DC62FAA0EB8287BBFC5AD4A727BB6B86559C56DE8E80AD99705154061ADF05
-4AD4CDCDB4EFA9B54DDEAAAE2A958852394157EEED67711709EF83D7D3F00552
-85F2D406430AE2811102D65E8A2A07F89B54EF5FDDFA18F61D4B085F64A5380C
-22174B1BEE78F87A2C26F536E19237664DAD98E133A61BFD8FA5FEC3EB1C46A2
-C6F08BE7796A48C7ECF465D6C37F17FBE0BEF0D86EF0D15B3837296D54F6AA71
-EFE01EC5E9757DBBB47C75FAAE85A54C120706B7773F333E18743CDD7F4CC731
-2AFC6D802559241F6DAEF43CEE59F17C822287B4E4329C78FFB4DB8C7DB43AA8
-18D7D6FA43777D86FC8ED11D9F224AD16B465ED8E336C25F2378F0E95331FE7F
-3B3311FE4FCE9A9ACB68D7C593BBF9CC3F673AD543E7478AAF5C63E3A693E1A4
-51DC5A57EA09877B108DA38C5B0E20D2C8CF289176771F8C37C5B4E27B226444
-415DEE0B03787D6B75CA699CB7A523896278997313ADB1B18376B60836E67425
-D2AE291D57D98FD81920B43A27B94C4C744C88319202882DD992AC629C7863CC
-4449BF8A3B3E5EA87DB73DC6FE8154B5A6A8B901F48DB794DA5CF68C8BFC5B7B
-0871E3CD12C3AC4FFB89E9DF8CF6EE7DCBAC75C2FBF6D438FA3A9E3E9ED28F64
-0ACE37249776819C76B27DC7BC143B0DD9AC2616654A07C89E8C802594743887
-8DE2A0652A749D10490B1D1AE370F4AE264A99CD5E18499F49E0FFDA8AD5C1DE
-ABFF4F31BD58BD70130BD06F7C9572DBADBC772599D6E8387C9843C26E735767
-2511AA31CDA3319F04E28C3CB6E237ABFD25755C83CAED8C8EAC611B76EB320A
-42B8A30198E25B3437E92A4A25A24E47441D27053BA43646A4789C9528B39D20
-AEFC8122CE90D56367DA42FC11667053F0965D517E29F5ECE2B299359074FAAC
-55DEE7B2990842659F7291201F64BC1C8894AD4F4E96652F3F5B961987822D33
-A4395C5F14A725292E57033E54FFAC2ECDD9DCC87E2679FA9C66C417931083F6
-F0B744B1B778842A06A6B37ACC004498963FC7CF1FB974E541048D9EA7AE0A31
-8F4CC57829591FC768CE6DF3F2D1799497C0AA490BE315E7D18D0FD16603B76E
-774BAA198A68EEAF6FB9F7231E1FAFF9FA79ECBEC159EB5C0DED1E8AB66518E5
-5D7756A9B7A28FE7A252F49F9C0ECBE8F0479518A43F100FB331EC3AE7CD14AA
-8C430E37B4681B2FFFF4B4DA18FD1CE2FE96173A9D83DE9AF9F1D10A51374A68
-217AC73D2ACFFF9EA4634AFA242A3F6151F631938D3519F72684DB67059BA07E
-3043F72CCACDEF6686F67938D3B08A029EC0C31680AC2B8B7AE1E1163DF458A1
-53362709163C570E61F245899FC8B9DE5A10455C356B16DC1CE9602903337BF4
-700C6D50EB0079E1AB1FDB18090B90E809C9199D8C5A302D5C1295339AF1079D
-E0BCC727D07BA7279642F7EA8A6F67868ACB094F0D0788596165EF8B49B6326A
-F247290247952F39819843D7116DBCD690B81606EC83BA24DBCE9698F5562840
-0DE42F70742FE181C1438F5754B5666618BC3753703A31BD70B85132BB94441E
-CC9513B8013454CFA3EDF734AA19CD69F7152D4B8E532AB2F5ECEC8924D875F6
-E0555BBDF4C2E5869AB718282D95E340A0329B0C5D83E5305043A49FB4B5A240
-67995F3A3D005C5163E617656023871F92A94C4D213687C966B3C9F63125E5AB
-01C05090211BC7EB869F4B6D89E07E7AB52C998AE4B99B885798E78797BAB10F
-7BE7E2A26C19A7FC59C1EECCB1880558226F4467E4CA6139AD7CF7A3C0BC8913
-80A4C1633F322A96E12E4F543B5A2248AE5CB39E5DC2C653A684A7FC4C3EC3DD
-1AD06698904F052A50EF846BF80894249694CE2EEC636537C2FCB7C43450E49D
-FFEFBAD97A680C396D378C2AE1929D6690EA995CE336AE9566805C870F3F0AFC
-E84D4D4C2CC87728CE73F3A8120E128623D9DF7A16B7263A510D4DEE7787A3C7
-D3FAF1FAD037BB27DA9993150B68E2E1A082C07100F85C38782CB18E91094C21
-992EF3FBC9469D9F020BD9CF531CDAAFD75486F38FD7D20A2058AB8BC616AE29
-E365DD8EEB3F44079C43CF858D6E76ABF8B0305D8D1AF1CDC286B1C9F5E37C10
-93F14C80D2EAFC34CA398DDE1813A84E326E9F6B6A819DE8F610F5D663EC9A61
-9DCF5FFB482585F3D3FC88654D54BA78371D57AB091DF691B2FB7ED4DE65A187
-E828E1B4B2C117D240DD39C10EB7E328E0EB397A2E115CFBF993C6FD7B8B360C
-7B5A151752770C955E92CD6CC2930224FC37B4B2187C9D2D187D4D1AD0F38C0F
-4EC13A1246E17C5966D4B422BD54C6ED89A412551445259542A738614BD601D5
-2B30960A21B43523EE6CEEB986C9589226149CD11C88167086CC4887C1E461E8
-E6849E06F0136891EF87B31E5F8DCCEF1F13D68A656E97DCB871D8266C18A828
-01FC5B137FFAB775EAF3F2B5FC8E0896CAEB74C49D2865CD2E8221FF4C2EED39
-86CFD47CBF99462F79B851ABB16C0AEE142A49D5B6C4890F6FA7614143525C93
-598BD152C550D1555E347A55F1374C933A632AE1595C462440C0BC39762EBDD8
-00EB2088CD8BE7F2CF72C786752D93C5C332E23D7513D4DE6C7AB0C9D45D6484
-42BCB92C2723CA156DA4E9299E96F73A561E1CC07341B260507EA0FBA3AD152A
-1B2E3BB97CDE40504B854EDEBD5911576E4E8E38C4EC3C608C46496F2E0019D5
-B2B40B1FB30EB0C40A09833F601276EDD33BCA07A303CF538BF9B6094674C027
-086EF007C47C7D94B8F52260B56FC93C4C2A2D5FEDE93973899DCC6B5559F624
-ADE46D85BF96AEBA8F41886F6C3C3B1D3941597D538B5E9E84E6917E8EF733AA
-DCE8AF32668E3B37BC3BC583E7AF46949503190D2E2F40AE88ABF04DF1E00F1B
-2FE36C5E26217E65ACFE7E66E37C7B4965C498EC6B54366C5B2623A01E1E0B31
-81FC272AC22B2ADB83924FED315F5FFDF61096FE04DD5DD1BCCE5BEE249D8AAA
-9E68E100F649F6AB28E0E5CCD500829C5208EBC81E6FF341B3D949A4FA77C53D
-C3462D081D83DFAC2515A36117BFE1D28FFD12150A671B9EF2D36C3EF576AEAB
-CC9A4A0173A276C244C99DC0B5D0E8DEC8B387D314C39EC21CBB0A68F265EF85
-D93C616BAC896557AF3F3A07745E3D9935FD2B26111238014BA0883D7F40A82F
-E734890FB938D86891CBF35E1D3BB3182FD42EC693803583F3F90899F6D1784B
-AD28CFE00C8779AC9C63349393F6ED5BAAE66EE4BD51F820F46033624E3D492A
-04C0BE71EDA498A8FD8BF51652F5481186088DFC976C58C52846A02359AA64D3
-9185E80BBAC4DFF0829FEC904B68B8EE46078D6D2B588621CF215D7D30B5A82B
-C448E3B31494184A2D596C0A7718020394F50F51673A8BC41CBA7C1C1EE64D61
-BD9FEF88F26784302B7D2004B66E9A3F18BF0D3E2C82CC8711DFF27B252638DA
-32A678CB4D26C1EA13BBF774706E82813823DA958B6F9B4DE46020F7AD2BA4CB
-CDCAF61E9A84DF3718EAE6FF9705601480E82CA7E7A58CA1E235BCDF4EB3A5D3
-C9858869C1CE47D36E0DA51E2157A37918D1EA6DE1FC48937CD77E03139B6632
-19853C54930BEE792BFE3E93740A6753CE3D609EC4971E706941EA0B76DA4E8E
-3059FEC3D70E7E1253A03F09F8A1FCB6FA2173F6A5661A93C2A9D131591547ED
-D1B2278CBD5C2C7207F6E065C9BB5FD0263651494DF9B4C05A932D33963B4E7C
-920FCA746B777F4D2CEE25750D539CC4600089C3E10A5BC754526B18EBCC14DA
-D07F328883F52FFF5F862FDEB61732A9970078178AD0B7CA87E4FEE14DB55F2C
-88B743F55281BBBA27576AD16A730A42D4E1584BCF185867A10E266B43D64241
-D21E5C40E18E75D901C9EFEBFE00D90C454AADC7226F659D7D17201D6E7595F1
-EB85E4DB32D3801CDE200BC3CCC36A7FA0ABE6979C968AA689E0574EA8E8F93D
-E15F0F02565A70DB3C5A814E2C532D2BC2459A51C364ADE0FB1230FEC4DFD6FB
-3F2C59C3A3CC22CA60C752AC8B313A41C4DFA18DF14DB76E8EDC6DBA37CDA689
-97F4EB6C832EBA543FB55C0492862CE28CFB1F28E0E5FFAA32DF8FDCA241DB55
-5619583FAD76D504EF599F233C424359768F6E8F0CEA95774901577277DFD8F9
-0418598E
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMSL10
-%!PS-AdobeFont-1.0: CMSL10 003.002
-%%Title: CMSL10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSL10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMSL10 known{/CMSL10 findfont dup/UniqueID known{dup
-/UniqueID get 5000798 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMSL10 def
-/FontBBox {-62 -250 1123 750 }readonly def
-/UniqueID 5000798 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSL10.) readonly def
-/FullName (CMSL10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -9.46 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 11 /ff put
-dup 12 /fi put
-dup 42 /asterisk put
-dup 44 /comma put
-dup 49 /one put
-dup 50 /two put
-dup 65 /A put
-dup 69 /E put
-dup 72 /H put
-dup 73 /I put
-dup 78 /N put
-dup 79 /O put
-dup 82 /R put
-dup 83 /S put
-dup 84 /T put
-dup 89 /Y put
-dup 91 /bracketleft put
-dup 93 /bracketright put
-dup 97 /a put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 113 /q put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-dup 119 /w put
-dup 120 /x put
-dup 121 /y put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7
-5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99
-8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716
-EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C
-02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D
-46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A
-4B60D020D325E4C2450F3BCF59223103D20DB6943DE1BA6FC8D4362C3CE32E0D
-DCE118A7394CB72B56624142B74A3863C1D054C7CB14F89CBAFF08A4162FC384
-7FEDA760DD8E09028C461D7C8C765390E13667DD233EA2E20063634941F668C0
-C14657504A30C0C298F341B0EC9D1247E084CC760B7D4F27874744CDC5D76814
-25E2367955EA15B0B5CD2C4A0B21F3653FCC70D32D6AC6E28FB470EB246D6ED5
-7872201EF784EE43930DC4801FC99043C93D789F5ED9A09946EC104C430B5581
-299CB76590919D5538B16837F966CF6B213D6E40238F55B4E0F715DBD2A8B8B8
-80A4B633D128EB01BB783569E827F83AF61665C0510C7EA8E6FC89A30B0BC0EB
-5A53E5E67EF62D8855F6606E421BD351916549C569C7368AAFB714E22A023584
-8B1D6B52FC6F635E44058690002C6BA02CEC21C54CC8875B408A8BB84F445894
-5D6B3E4841CA20AF852A660FE9C832F773691DC6F7197FF3DEAEE97418A5ED2F
-F2AE65300416227CD3BB03C29003C770CD7D2A7A2E4C1DCA193651C2CDDBF93B
-966938788694BFB562AB0010268955FC3555E5984CCAB0A9B7590C77C9BC713E
-A29E5BD7193A4E971D1752DDD0F0AA4648E7E87BBCE66A1E836C715C408B07A5
-9EB56BEFD4596706CF839BA4CFA90CAD4038C1E006B51913279A2C31FBEE5BD4
-A7D74F9103CE6124F5B439CB860987DF44FE17EF88EF1BF62C67060D25696BCD
-94ADF08F04E349CEBDF9D3389D870D94CC05E393B3F4362A13A6A672EE5E8F5A
-DFE7046AFE3EBAEA58FFEBA4A47BF61F92E2003756DA643CCF2C9DFCCAB62669
-E3C2A18D690B64D907F50BCA155A85E47C3A6954C6FF7ACA36D8DFCE777B7929
-5F5D5F787B9C247ABF13D6D7B4A8F06BA25CCB342F8A5071325CDA86AD71BA23
-8A9695C7D1D50D0AAC267AB7CDBA7AAF46A264B7B081B7E79AD937FEE4969FD5
-155A99E652461EFFB4BD010E5885631E2B2497D6B8C43CE77D7D47FE201DD46E
-4482FFDCE150A1183C22C004A0AF0E1F42AA6804E038E1DFC8B0A3CE26B52038
-44D2E7F759DA5C252489E5525963D68BC27C82247BEB18818C7D4CF0BC5CC97D
-8C701034B8DF798DD4CE36C3F8B1FD40B2DA14EA75583852875031AF8C909EE0
-04495FDCD04B05A5EFEBA56A8CAC1F57F1B8AB91FB25C81CD51EE69D6E0F52CC
-A0E12CF7E3187D67DF71A599FFD895FAA7BF80E2E6B96592BE77AE96905BAF0F
-F547355A36C443797DDA7C414AA606CF9153E03450B77D1BA4088D739DF55F07
-111B9E11AF37F45B6EDE6D7AC126E05886A57C83886DA87761BE600DEECD1344
-8A82BD652BE7ABFE6A0F50ED7C6F4EE12CDFD80CA7A5518692F267C51C3FE76C
-567BB8DDBE09A2AF901F79AD02B435287CB8057B3D5EE6655071F67B00438728
-C4C3EBD648BAF650993AFE5E2B29074A99ED0FB725D9B8CE8B0292B08A280214
-C3AF252BEEAD30C88F72E322FAC3E9D78A1038F5DFC41F7BF1AE3744A0677094
-51B77C2D630B67853FE5E975A395C06A4D4DA744040B272C2B88D8B7ED3A2C01
-66F503C9DFD3C7DDAC865900D2A4F2CDF517F449851DB1963468D0266D7A3E58
-9F6B2A1843E6444274F16A9930302DACD8D2BC4588765099A86BCCD8A31DF0E6
-2853114DFF2D19F812F19AE6C2E419D7AC1BC024D1195074FD0C6717BFB389A4
-4D5428E7BB2E4F9E9FDEDED7BDCBDD3460805AEA0B5F6460C2FDF19273CE5BA7
-5D3AAE0DB94C6AFA8339646191C23B0149E7CBF136FC4C844E025A38935DF256
-0A0A6466A45EE8B9B23B6A055856FB084F87C73BA28F1883E3B184CD813C72F9
-233B78CA4E125ABD26F29B92CD9DF39D6FDC2A217E2B6B45D9B0A4D536790A5D
-BC0903069565A442FA7466414D948AC432C6B75D8D0E1DBB217CA3DC38A52DEF
-62E9D5AE9E753956C13819D93148C7683BE4F71B80BC066D8C19FC807FB1C086
-B49215DCF56A91A42089F0D063B9981925691F7DDE3237403AC714F5CC3ACA88
-DB2F1DD205578C00472FD70C8BA4F752E3923ACF3164D442A6B639902ED060D0
-C5777BC20F9A3BDA60FA3BC986C38136FBD2E8F910E32EF36377C9CC187F4AFA
-CCEC423DB925B378522B748BDF12D523804CABA83CB5A7ED69FAB9AAB75EE8FC
-38D9866E3754C4E2F2B9AEFA804044D878DED0E114EA0E9682FCF38F6628E63D
-FE1C1B5615E54FAE8684566EDC4B616F76EEFD6207E0386F06D3BFFA26425F24
-303CC7C8A8D7021E7D09B202616988287838C3DBCE3179B4FB5C726E603A47F2
-8248CB508F327D1291CF3F08F7C88298DC2D0F778D24304EFCF6E074182BF5B1
-8E6551811FD6991971692108E289B61053D6DCBA2925B3903E8916EBD09D97A2
-C6D08E89DE4C0CDF7185E1E00DF456B249F0BFC686E04FDAAD2772DC2C39DD53
-9C23A41471267F53A87E5C2B8CBCDB66CE0B9844BC506428E6150B48D2FA6363
-4FDB2CEDFBAE0B7DBCE4D83E29B2955F8966272CB865EDB360C8A8C19EC62A29
-03066483E4083524A1E8D80FE3867BC1AA91753C26ACBE8489AB0E3330206212
-93E07ED473DBF457EB8489E66FB4B8ED8A9EA8911CF9308CFE3E6D6F36810EE8
-91CCB11BD548617B2C683C354452B9229E7C9E68828BBEC324420DF7C188CCE0
-FBB514547553A7E9B38AC265783891F42DA472388569C8E7594F7E8810895A27
-06E456902A8D9F65CA808F1FD475D011C4572F8A654BA01D67942226A663D179
-95149FFF41A9F55AE84EEB9A6A39C017D7E4FD6EFEEE7FF3CE847CDB064A4954
-9DCD273B810E0F259501BA4003A3EC1ABA6E13D24C0B57FF82D6DF077833B6A2
-7EA54801BA81DB961C261689C0887FAD83771E55D3D137AFBB21779397E11972
-6C6CA922F45AFA5C0526863A5AD8B9C0775CCBA17FFD37A44CED4710884DBC31
-5C9D3F5441595B86CF7CA2EEE42AE87896E9E60EBF5F35C2B7FDBF9A9CDAE262
-3F48396F0F741E9DDF1D4FEF75E68AFB020D06CC29B3A7B2ED819D1AABC12B91
-CA2A65F1AFDDA2F3FB322E0268DBBA024663E49EFF076455338FE31A16B04EC1
-797EAB0B49AFFB906A0690A1E8E2F5314773E1CCFFF43E6FB3875AC907F0C5D0
-DCB9BCC127014D472463560CA0CB1C2CE614D94177C7A52A5B089316689C8112
-CA57E35D716D956DBF9013B1E5B9626456B1433C8C15FA906458F957133B9E19
-8D46DC3AC015F7602538C2AE3927C6DDBACF38E59220C2F5AF36B68DE9117C51
-04CF7DF32B1AF55B87D1D8A5F4BCFEC66F63B32B6548DEDA3AAB06C5310E4757
-78AFF947DA22809B360FE535506A554DDDE5A6F2411246653710ECE5CD3185BE
-730520A766C47E1ED01890059882BE1432586864E1A86A7F586438C8DD35C00F
-021A741ED47E0F16DB6070ED0C50038632CA4AC2975578A8372A080CC0447C79
-CEABDF2BCD5E78564247B0F0025F556DA8FB62125227849EACFB724A4AE3EF57
-90C07A5B27D2E59425F56BF8AD84C5F5310FEB1BC73D536339FC2E6A5BE2DAFD
-97FC835E0D52F680F80ACA37DB498AACF152B9B44626CD89E3302C3EE1623EE0
-F998FA78305960AAB9F483F731F5F67A8C963C23DB8E48FB804EF8B86FAFE7F9
-4C09641915FA7E3930AC922682313408BC1607C76751CEEAFD660206A39CF394
-40ABE2A313AB7D5FD6444E219DC5C26734D322BA268D330AC17959A390D6C8E7
-3A155095BDD66516DAD5D65519A7FB871ECDA77061EFB21F359158B4470EF79B
-362C35C06B85C9A9505C8361939C6AC013F2CFE8EEF46FD8CB4452AAB3EF1FA7
-DC066557BADC2ADDDF7DDC2A0E1DD4A357E27A2073427EACF9B9035DA5272136
-7DF37E26D96ED4B2ACD60596E039BCB15E259C72FEB3344E3EEE3D4F17DF4233
-04C1416BCADE80BD483DD8C9AF979E1C7D50C4CF015870703F88B92C4FE46AB8
-DE6717B55C460C805B391B84333097E116F4A51F631FAFAB34CFC925BEE8B72B
-C9FD5F5A79D8F2295FBFAE649DC6AB47794AC7D73431FFE5BE992F2B5AC67049
-B5208251C0E442385A9FACF25E3A98D7F5D4C2A1ABDC600AABE84769CA83350F
-9B87F71CEAD3600E02FF9AC03C1B5C21C84F911511A0CF0111BAC7605EE31229
-3C526A79D943D92E1CC3C38ABE82D560CFD4172F318030852A5FCC0534B8B3FE
-D7365987C8B48A072907B26CDC2108130A33233E8E0BB5FDF14FB55098A10EA2
-B51AD9EFB119F82B08D256D396D3263FBD9DBF172D43A90ACD1A31F3E89E8571
-74BE98B9560E2CD661A2F93C69FEA3FF26B00772AE2C2C24B98D3D122EA2AA8A
-44652CCDF4EF4F01CA7D62A976E23E8A86291F43BFAF38FD9C325E70F9C36CB5
-A181DAD30156E98339E6A0498D3420B7BB3B4E651A9090D4A17604AE386273A8
-3D4AE8CC18345E6E19DF06BA848F203F74B161D6A8882991CBA7385F308696A1
-BEEB0130D938A764B98A2001A38489B1334025EA848CA44A116D64926D460D64
-01159E77EA7ED9ECE7BA77635BE564A4ED89315BDFF54ACE6AA1A26591D13CD4
-6D6425CA7933769B842192858D10998509396829263290A3A7CFEBBDA3EE6CDD
-DF1E492AECDFF7941B53573F01F623CA0A5ECC9D05A3D0954F7AE8CE94AC3B2A
-CD4E27519B2E16F033EB732AA024BBAF74626DB55DC74B1FDDB07FAE98B4AC5C
-683CFD8744F361838D343B657EBF52DEEE7AEA7565C5BEEFE455DDDBC4DCCA7D
-87D6D769C5ECCF14118A14A85A86865777C8E28F953160D5E82844AE54D541DF
-550D5F1519E183E0C42BE88F0458CE8087F2CD4B1B49A8E9E3D127C4A4CB74A6
-2E73BF4CC317781D03FF04BC36AC0E4AF99E2ACAD20F6F8029DE8A035DAB40DB
-17D237850BCDD05931FF4B0FE2D0B79EC5A88FE0236271CCB075BD194AA25AFB
-3FB93A5206F61A14602E4EB6F1C31C654527CE0C02D04314DF9AFD710D0EBB9E
-F8721B97F5FB18E27507E1F800B5509A58A1A8296C72B7B73F99B6CFE42E9C2F
-B63B3555475E562672645CD374BCDE937A9B05A157FB3E74C8297507253E957B
-1A9DC421946734CEFA3D5EE357DAC7E9DE17A5BDDEF6B2D2A740BC58128FC514
-61154664412BA1C05209EC992A77B7CA45AB7C0EEBF590A5B5652866008CDEF7
-124A3003AE6A7CF9DF3C72750CBD281358CD2FF25B162B78CBB971DB3477F8D2
-ECA3EE9CBC90323B2C236E375337EA0848CD7CB5781A2B0A42DE7E4D99DB2746
-0B26796CEE129D23C76794B7CE21C13C7D4A998B752C8CF43A4821B736EBE246
-D2A2BD7BA3351FBCD1B0A501EC1EAABE60D06DA2FE39BE1F0AD629769FDDC933
-F9D02F9686EC8C2D7455C26AF4DD3F6860B2289E3A30E1C254AD17D731CB73B2
-BF4DFE90CAEECE3ED0CD3FB4C8F4C7BE1C056AB4E9B95781A8968E3CC1010003
-75DFBC4AB9F6B27C5A9AD88D94441A8ADF09EB275E5F0E5E6F3BFEA0FA8C308A
-8593ABA0645ECA8FDC3F0E264B35D4B0DDB86B93CD8A047FC409E18196B501C3
-B003622999C47BAC04FD1ABD8AD359C977766E9643EF3BD6385306B08EE3E13E
-7DA5A06AE33D17A3D574C6390DB6E9429754B210F0C349C359559C7EAA2350BD
-F61D4D8A92B1AF697BC620FA0351E67E0D9F41A95A47EE0BF210C2C48691901F
-F905F65693DCB85BE412F097480F6A7266AE0A928729DA0F691CBFFF3B276EA7
-322BCD2206D96E3DAFDFB992CA8F2955F0E8B882729DFF840569D12E4DA1775E
-523AA734552AAB6F2F16B89B39F1A3FF0E07EA08D13E612F201716C67F327017
-6C041760DA30374434808273062C1FFA2C47B3FB578807BC26537F542040FF77
-66C995EF3E8B08B09FCD3EE89C30F157158A739606D2CEAA26694A4F1CEA6633
-B54933141CB85C60AB262E2D4E824A3B85C2BEF810DD774F296AB37D0BAE7182
-5648CD18556ACB124246A75474B232D712C2358908B5D9A76F82C626BFDE01A1
-093B8FA6AA0B32F2CDEF737B28BC0448FF816DDB5812131DA0DD5979D77C3838
-B978CC3F6778A4BFCE9A7087EFB19749285AE4C92B99A6649DA349A2E0889D72
-6D4FC664522F06C8C4D86D30BA43ED4E42211217D01636A4E17E2A132D26F394
-EC34EA12D84594AED9C6CDBBC0908860F39B240FA7D7B3003DB10322498691CF
-A294C0FC7ACC0BAD1EED3E9D60AAE3F7429695892D1A21CEBF062C6129B33966
-8B2EF6E932F9891DE6028B81C5E9B23278D35B7F0D83989BCBA25E20E9D503DE
-144DC485F09A4EFA1268AC5E4B551C5B2F1D51E9B9B9C0FEE585204F869D0BE0
-7287D7570A12940A47C1F51AC6134F03B415C30E147C49F89228855D093EE55F
-172711F37776E97A99CC4B36E2F10713E36FB279FD3FA5A0EB9F3938F42E2BB9
-254EB8F0C0F30391735019E02BFDA21D9813C6A22279B898EAF01AA892B14DC6
-5912B9275167AB46EBC420836CC1A5F38A4EB47C039A7BCA62BC3FCE4199FC71
-011DD6E5FFA0F3D7F04AC02AF91B9249B9F993AE346572329DA852115BEF8460
-B94690E790003586F473F37EAB5AC2922F5F663EE2C3C0C336A8DB71650631AC
-0A923A389AC911CB215EC2EC7D50CF8AEFD59EBFFA53A9F1FFB7E6215F17093E
-3975F186FE23BB5FA5474C11408FABD223E1E6F62035B5A5C1AEFD8899F00FFB
-E729C2D5FD551E80716CEA4E8281660286A802AAE8D5834F37F2EAC46297E57E
-993B09251DD7789D3467417E393B7DEABD06676B96241B0E43ED1A1A9FC3B12E
-0D34B2B0792B79AA648FE9450C3B209FB6D7D91F50C52A5DAB0BC81A8B698BD9
-18946EFF691912D7348D48FE68CD876FC6F71F81165D0C3272DA1A992308D9E0
-ED6D0A4DAD679AF495F62B78D462B463BD4A40931172290C615B3B3B6B47E45F
-CEBB85E0A6AB6832067CA6D403C239530D07F199788AA4DD52553836851C5228
-1072406F6D7323A334E7A7FCA588897C4FBA6D4F7DEB65525EFB74E539C988C3
-A685A98752F7198E77E456A545F0D23A1BEF81EF58B02D289CF980A3F17BEC8A
-6F83DD90C4A917EB0E5E2B444A608E2E9D2FF80620E16AC1D7775C0A10C1299B
-BEE0E1AB24C50647E5CA1DA65CFF3B2C295F0644CA7826E1DC6FADEA93D66A20
-DE852F20AD224D28DB900519EB1569837139C833F24B799F7EBE3FDC14235323
-1D0BCD4991C861F38DF413A5A5588B73AEC3BBFDB885CE17BB3E97B4E6A79761
-93EC8418C2BC4725CD61B5E30C07352F647C3FD50083878C13CFAC241DDCB082
-E53703D182068727F9EB6FACEC25F6D901D7309ED7370867E34E267519E22D62
-4FC7093448BD0D6B1C43D318A3E14C92032325C132AE0FF7ED707E1FA4A955FB
-F5224BE0045CB14ECC321D0F333FE24EEFCC504F7C756451D7693C3E6CA87526
-4912E1B6DB935BDE76FBFAFCA4ED473F1D2618812CFF25A6859C626A216603C1
-361BE3E071FCFEC2D4BF2FEBDE07DBD56A1BFF8303901168FA06488BA6B76F36
-95B0A90D7724E9ADB567C2ADC65CF3482CF47FD1D16F70AA19A97D0F9EFC611C
-AEA5E1ACCDA7FB2DF05E9480936281484BC329F0B771775E73F7FD72FE3F45F0
-50ADBD03932B38F37A8F0A66B2F739EA3AC8811C8F514E68C5643E4AFF485C81
-88475A523D7FCCA5C8809BD49846C77795A38DC6406082000236A4D2628B5932
-AB7916D44EC2210CB941B83BC0F1C097792CFFE7112D039CF77EAE73CB4E02BF
-60F5C3F629F7BC5A27C207D70DE63FBE0E023452097D5B7AA5B2CAC668D4D075
-1A0F70683E96AE35A6BA0B59619C215A7012568991AFC0C35789DD0ECE45C649
-F44580845F0FA422868CFCC8029513235C0286B76196E350498845EA934DF289
-1D0C954B079BD2977384B96D8460B4F50EE635A4C8F7A3B6866F93CA641F3F2C
-C93ECCD6BBCD792189A12FC9366BA7134EFD67A22B4FD62465250E0BA6B7C627
-73E8F50E379328B7FABA341B0D50F9A2CFB055E01DDF6BBCF6FE4114BC36C10B
-E581D76A84EA12995506C33DAE9035683FBD5F54AA1545992B94B8ED946E5866
-2F2CF263CBDE3B77E12E7D863F0A87788D89A93707CFEB6A5EA14C8BAC433C65
-56730E3E8985960FC4D00F2B821A9218A20F11EEC2D6A153C403EC4BCD0B7573
-5BA5398D8A252EA71E8928674FAB4CFC6C2FC36E7CB12136830849198CB0B249
-74C07C83EC06B2E0A5323E3320ED056D02B614EAD64E0F8F083F5892BC3881A7
-A9279ED632967D7F5BBA2B7CA37F7BE21987D8BD349C3DADF4682D4088DDBB35
-D6F8F74749063C4F59AF41B9AC950E6E588B3856C7F7AA1C9030B9AEE3D70321
-2DA63309EA56951A6E077EE1FEB9BA112BA69982E9EDCFC5A3B462FCA9D16A5B
-951C2128F30DAFEAB3007F0DC4F16F3D38371618A2F4848A9D0D59062E63CBD4
-E4E0F337CEEA736493E344617B5F1EBC96096B66ADEFD26110B4A59C69FC619F
-4CBB9FAC2C9314C831A6399B611D597F4F817603450983BEEE834691DD492844
-A222BFBD54593B70F18BBEF4D0969B1EA062F7DC61DB08F88E988B58EF871C3E
-EE1F380B98FBA95CA4E524DFC9DB291A5222D9792B9AE3A1F64E868B1BA4B5EA
-E2BC7C68C837776B01738FD3B8D41A3091D8B9A27050E56E0AA39F8F3AE52AC6
-42D30C4363786477D1C2D2FD832C7E2418A7B1E24FAEA7AB5AD1B99E319E3319
-BA790965EFBEDC46D4E7699CD4FA57A28ABCF8D4C05D4C7618C133ED3180C465
-80FAD466CB46D5FD53216F0F15EB9776562B7B6F808A9D8D9F4DE099D7C99C9D
-06588071FA8C36F774B05C0D65259DD0514539030DCDBAB67D6E1A19B2A6A547
-3BACEF7DCCA65B35BF4FCA3531D08DC5A301E0C112FAE9D9173B7B47E7F7C531
-3103B70633AA09E4F87D64CF5E3B7FEC94276E910FAED3C4B30C32C3743A5C39
-B5FBFB0D16C2B1998F53A0C3CB48DF19B4FA9E98BA3D503F5B82EDC2EFCD8521
-8C9006735D194CCCB8DEDF3D465F2C057E1F8F2D35B362EF9D084D429BB71584
-62AE48163478E7FB8AD99F01600BAA8B77C6F98DB7DCBE7E0C46B917EDD2CFA1
-F209D9A01CC283B773BC469257401809BFAAACC0C9980C497DEEA796A60B992E
-39F098D4218AC55FF0ECE7BE1CA314F586AE82CE5B71E4AE1D768BB52FDAA949
-AD21F4FBFC0EF3CDD44FE8D92EB97776F618AD9E38553BD0492149B3BACD7FBD
-7440BB8786D93167C8E4FCF61AC3D360B06C4424F4D46FA91B862D7A27BCEEE6
-C3ADEAB1CD0F8A8752EFCCB3E592162C57933169DA1DAEBFC2C866C10A5F7840
-5447A38BD856996DDD56BCAFDFDA2979FBA4AB6D4FB7E70E20B76F5A2AA3442A
-4EEF4B1CDBCB3278A1F55C99C7C4F7F34C81B063F8255348553E00D3CD5F5A33
-C7FA5E4FFF58B2D19B9D04915B1A33903ECD61512AEEFB41E67535D32AAFA528
-10FA9F87F68EF03DE847AD8BE921CF3D20D06098BE223F66DED6AD3BBA11F79F
-CE8F4EC2A83A6264406B36A48FF893E972BBD98613C6BA7C27804BCF2FD5A4CA
-D8DAA8D54F14C21A361CD594B9F76822908797D78288D86EBF0E627CC4C8F79C
-CBED3B764D2CA0D05BEDABDBAC5E09E2080CE815A76245D0E0F13314ADCE77A8
-6656CFD4C2460601ACED80939C44F600BCA055BB0332198CC80ABD2A7E361E26
-2AE4C41F97E34A97897586C5D79FFB57F5BEF34EC91CFEF1FF1F64F7D1FE945F
-F0DA4CCA520C5941F83318E765966FF0B9729FAED847F59264E7C5752AEB8AB1
-77426AFF9CE3AF2C1A3FC8F8EFC4B6E74A2201B08036FAEE8F74D6E74A0D397C
-7A7CE3E2D1F9BC1CDC1FDBE1647CA8FDD2AD012EBA5D8D4DBBA99BCF9ED3EEA8
-E8773C09545D482E30653D9FBCC67B925D48363D75B11A0E402D9585C2D5D053
-EBF046430962FA0D514308B0E9DCC14CFB51C0F9836B2244650E77777826DC35
-B5480DF48F8D9A9D731D50FAE55365BAACBE23E7FD0F4F6E22EE8B17F1CB806E
-3FA29E94280B973A85EB8CB57C047605811637076E0D98C349353BD4207FCA1D
-A11094D4DCDBB76B4AF79BBBC627ED1D176D82FE6CF34A24EF452B1F26F543ED
-2193C75C0C003B6B3C030BD9AC90C312698C4EEEF07D64753999E7E45C326DE9
-D5F1F3717D94E94E4B27F809444E1E474358D138DFABCBD6FC00E5DF2B6628F9
-89CC2B4821E8486147E9EB9CC942809FD4514C3FFCB1A9DEAEFF56EF66277F41
-8E3F7CB7997BDFAAC4429B1FBE3CEDC59DB54BA0A335AF065DE6A9981D9CB365
-86B48861A11FE0AC44C1C6CC9EFE479427C4CC328AC44D3C4312EA23A04F6D82
-A9A0062AB6D412C5A1A8CB99E7527C3B37FF79343AB8ACD53B6090341960823C
-D6F5B332A2EA6C19E5B237FED411F3C088AFFB94F1AE2E4EBCD67885214C1333
-3644DA63A8BAD52C9408C0E34AF8ED898422A0A2A4B8E9698142B53D76462200
-36CF4D53F66C51AFE6336651AC3CE180B9C382998331BFB6A86B973955D28045
-E5106EF370EBD1B57300A0EC9EAF11BA81A19131076A75D6364556F0CCB5FBA3
-872299EBC8A91563904119DA00450E360B5B7C5B6A6EEA87C10DE6B911109D46
-FBF66B637688E63AFBA42D647637A654D7D16F5A85382EBF72A7103359CB5899
-AFA4C0217EF645D765BA796BC00788DB7590F64EF066F5DEB3321090F544FFA6
-1F2185AE24C9C6051D625C2FF4D0CE0A476178E9DEE5A1A76E2139419AC8C875
-CABCCB25A1A1D18E4422015C6B8BB9EAC87F01E6DC4B5C194A0AFDAFADCABC1A
-14F9B80BC7CF2B18E2C9140ECB160CE260278344E3168A17DFB3612E8336800D
-FF3A13DBE3EDA20852D38D89CAA2B692EAF9E380302C7587C5ABE01A862FD37C
-1BD1315ECE39E266FEF9D847FD2A45DDD7A3E662C4182233EF90573138EEE323
-F64817AA1398052715686BCF461D29AAB9957671EF40869821CD6D5D499C0862
-17951DC682C529CBE8E8C0D49A5E6FA0956B2BD29EF5870CC2A2AF06EC743EAE
-6D9530AE87BF2018CEF6408BC4D97086451A0124A841A094C34F2A6FEAA97D68
-7F60A45619136B914439B1B12326314B821BEC74CC70ACB09953F287C5A0932B
-FF84B72200A20FFCC7F0038B44A5A0E9958490F023D786EB9E2C7C88D95C1EB5
-570424C0A458E89B31F2E681B99CEEC4F6A72E7BC4B7E6F159C84268138AE583
-138484A95D42F3743423480678BC749D90B1E0233071693B87E9277F3A1D9D43
-1A0CCAC46EB872FD71CE75BFE106580A89DE930211125CC6255361FAAF2DAF57
-9F4A86FB8F1FD6BFF647488691B113F5F4621614E87502EC3AD9C70B8770755F
-ECEC384171BE34CB185439F8B1CA228A0E1E2FA02D38FC2E6B1A1B1BDDA7648E
-C39306D18013CDF6F9FE27861C172CC1E5EBCA0F9395DA7C363799EB6476A573
-CC95218E4B1387908DD37C402C5E14DB7E1236B1BC094407906120EFCE4D620B
-6D8279BA52D64C5C3BE3D6E162975B61D1B8630C10A5F342D4244C9793C6651B
-10B0B67CB877E7BBD8190FDB646C044734EDA86407D9E3414404E392EF366FCD
-C7461F6E08AB2B09B4FCC7C98C97E4ED4CDFBFF8AC9EE7E97C1A7B3A0DDAA3C2
-F9849E4003A8F043BA005D297E5A292982CBB759439F9011B3261433C8EB3F92
-E3AE95248806CB2665DCDF4B3759A48E1EE84BB1B8693AE805F4631974522203
-3F467FDC225087213BF2D79B8B148A47D96DCF3F22F3005FF5541898F95B54C5
-07B931899E8EA1BD0F4F46457F63D64E57CE355BBA9EC53AC8257B1B37ABF0EB
-3429392E1427A120FEFAA66D1FDDED3F1D26439168690F10CA3C48C8921735D7
-E059470DF5C64F1EA4A20857EBFB70FD768C2DF77B90FD83D907268269F2D233
-D603056697E13F1B46DE86C3153A92A619912D6E5316E0D1DD7F5DD8C7FF1B5F
-F2FB39A652F6536A5BAD407AB9A5C9D93CA5A6284A9FAB4D353D54C5CE177C95
-C2C3E5918524DA01F22BDC2E60FD35D43C46686877A088099F000C632412562B
-D30BFA5DA02A94740A250DA5F130E3ADCDC390F2BDB1192DC7C5A7E4D7D908AE
-2E2D50846BBD1191FA262B2E38416B5F99EF71510530CD803DA1303CEA9CD053
-24ED32D8F992521D8F3B358A56B42D89EC455210D052023EEFC35FBD2CEE6A76
-A9F715D6A19BAACB7A6E56E4DF72F516C4F9354024800017E30C3D97EF968CF0
-07992318D1C9B8DC96AA1639B0B0F460D679D6306B34CE67203A97C9A2043AC3
-671DA26BFA89B90E564C29089000CE852D7E76776ED7BB562036B78CC746FD2A
-B45880E09EEF0F7BF4BEB7FD573382968226E4AD9094D801F07B16E63B83850E
-88111A93497978E539051BD0176D51E8888C1CB09AB7B64333C87C5574772010
-A74416F6D539634394B1BFFAED30DA7F67B36781606366C11D722A8C712638E9
-0341CBA1A31CF39EA1EFDECD7969DC31B06538765A2E1C8C7267737847BDFEF8
-971FBBFF86F375979CF48E6A34FC82FA9E2A934764DC72035324577A84225BE3
-D0BB79BA56D8EAB0DDCB541E50A2DBB501D7CB45D8FE16C9655ADA08BFFCC38B
-3077D05BA9ADC17F6EFE5F85125AE6A8935B00856BD588BDF0562E5224A4A4F5
-3A863355F6067AC8BD4ADBAAC72A99F351D82404292DBE2EFAC89921EE4B4784
-28661DEB2AF55AE6EEEAF6FB1C7483135D0D15ABFCA646FF3D64EC992ABA0FD5
-A8FCFDBA5080ADC60FC4B93CF4A84FC30E122C67D92DB0DA18DFDCB0D6BA9FD9
-E0F8C0286FF73E9129F37A863033C1E933896E2D47785B8FEE054EBAB376D670
-3346EFE8319B56827B4448429C5CD70ED1138B209FE7CE20CB3CF16612657665
-73856F9D127751D0F82A61FA10A366060746C0A627E39ADBB3B6A3056998D623
-1A08E7F86E6CB07B00AF5781F287BB62B553BB1490CE885BEBB92C9240F1EFF2
-CD6B893C8CF63B600B2FC17BC96AFB51C0BCE68427D843E5F98851B5AF735302
-EB6EC9BE8DE93BC5C6F48B309CEC0006D15506538F01AE8773F457CDB07D8A98
-EE767B499D60D9F115A692949754FF4983B95599F4DE322CA7F9DFAAC1658C36
-C2268D5569835DCE35DB6E40030CB28B30E31AD16AC8395F66F39F5D9DCC0E5A
-273E3111A4DD69ADE07B9FA18C7A7EA669164C6851A72EFFFFEA3E18B5B87D7F
-9A5331599ECC82C362A2103DD50E9D8825898D360C73A7E1E4E9ED66130746F8
-3BF5542959DC2210652383EFF1857D9657C67984629BC1E14570EB254C3D5043
-1E8A0347F9ED66FBF17BDA2C713CD7DC0F5347F06B3432967D1D0C4F7211B5B5
-CCD61164D5C9F01A0BA207D6EA2724F67F84BA845A28F1DCFB5E59D4DC57BFE1
-50864ADC1A703DBA46EF00F2F4ACA298EC1C1DCD26D647014806CECCC8A93E87
-158F2982A72C2B7167A87207D637B92826AFE261D9763A456F90E735DDFDBD09
-1C176B0C0D1774D9FAA5462C2943715E71F3C8CCB0BEF0AEBB5D00812E64CFEE
-282505EE165C6777C37A0CB2B7066F4CCF84B1578DC1A1165D1C60324CFA0263
-08FD152E9D3BC399CF45036466B70C54DF463A19923356834E49FBAA86250899
-4F1DA6637091255FB9B16BFC9DB377AC505FBBD1DAF88233EFCE65F1F91D7428
-10BAFF60705AFB67647EF947A26D86E868681A18E60CBBB552B96FD411100658
-1EF8A14F2E4373667B2879ABCB2D13D97A7084B345EDFEBC6B329CFF8F828330
-8DAA4AE60B8B3BBE78C05ACD0DC43A6907EC875605F84716A4E95FB406A4EC1E
-C5DA35309A932CAB84F62A9045A2D391A7728D51B18ACB5CA1FD1AE58976FDA8
-1F8D86E3052DA3A64360E1DF8B9407979E583F2EB2752C8317B255F73A2F87DF
-8BB2B5FE9464B360868C02DC6182C634140D9D51206B57DA40198D911CEF0691
-9EC2165F4BC87618D1177D281B5AD42F39FB0B76F678BAB0A757130078135EAA
-BB8A0260B772B9A748752D281FA0568790E80AFCBB1340C5E6DC160471802D8D
-D754FEE5FBA6532EAF51163DF21702C81E315834EE88F771CC9CF1D33E20F561
-1E3E661D89EC5C535FF486DDD590AD7F072B432EB842C7A6CE4C52C2A5C1B80B
-EBBC113C933400A257B2E16888290B16DC53991FDC668B304842C8600B9313E9
-08D29D7F02375F216DEE47DFD6E1D3C04F2D50977387457AF1A7FEA816D34427
-0278A675204C264FFE5C0EE3A21CD6BE7FB3A025CD33D6FB112BB0D0D20A416B
-EBCF0FCDD560A5E0983019CC7AF66D92B52C881153E8E12AD300571ACB5BAE05
-17C00671628B1E76E899D116B9A140BDD9CBCCDA64600402E6341305E77B1A7F
-418E108F85A4427F425784705844344B6F405352259DC6DE7584C7E0E5E2D22B
-6BA08FDA205B0DB705E8FBC9C917A0CE1C4AE14C17A0E98042CCAD0D2279BC79
-FB504AD1E264015F95B5DECD45332947C70C69FA10CE0B5FE6C933960B4866DA
-43E4B1283ADC307D18ABDFE9A8A2B10E862C5A771B346896C7FACE788569E483
-FE26378F52AF1D05FF2CF8C09119F7250D4EDB175CB7B958A8013CF68483A2FF
-93A39E2D0C51D4DEBC50E275869570686EA784F7F13401D7CD2619FC435F1344
-320D875C32319F796E494F75604B326CBACA2D5E16F37DF3E0BE72A649BA7562
-7EE30478DC8DE07D32A0FF5C7072D0A4C4CF36CD9E3E1DD20BD28B90776865E3
-16334B2A74EBFA0185FA602445ED88AC4FC8ABD184BD0FEB2713A6DEF4CA992C
-FED715F768F9D9842BB6DBF76B201A04D23055193A9C93CCD0717A2045A7E0B9
-0D6466D1B7FCBFDA58AB8F758593FA72A067C5C627C52EF12587397C6D626AE1
-28C12AE56AA1ED22573AC2897FBB7CF56EBD98BFBE369545F66FE6B4350EE538
-A419F9F61A592B7A54179B1CD577380DECBA2465B62EB9662BF2B82EB64279F5
-728D63F13B123102FD0727CCB312918FF43FF5543BDF8A0B01A7881E71F4D05A
-531BE4A89EA6809F2BB681A9DE9F53E37FA6E2E710086DFBD2FB8A7EC5060864
-9DB12C1E043A0C0FDB3EA5EDC78F400753FDA077EAD9EFB407EFF4A4ACDC3BC1
-0A149991A58B908EEB75581D2E2EF47E64EF9145485F652379E9A3C01117EDA2
-281D91D363E8D7588F24794AD2CF2590995A3339C7430364163AEC6E31529CEF
-EDE730EFB5FBC05DFB61BC9BC79367E9FBDCA34A4A537F78AF4F141DF5291A77
-A2225E7B7EA8DE8048F644DBEA4A47DDD8F275A462452E5737F8EFC04EF2D779
-25BD61881D197873B097172331B61256D45FFB8447D6774AB3BD150CEF43E0BD
-043C86D3C7427A3D521D2C484715E4A48693D647DE2D84003B48AED1A96FF440
-4A586D53BA76A434AC33BA6F9C6F4B443135F1F35FB197B0FC92080ACEBB2DAC
-A46B38126DC5B87DB7E1E83C7DE21AE5C7156CA18005ED6AD02B4CDF99E1B21F
-978FAFC5954EEDE6E394FEB95CC559A6DABF05ACDC0796DA6A39DD25A7BC9477
-C4795C728928C1A9EE1672205D07B1EFAA8F4BB2BB413D45738E8D474CDE2299
-552B37BF12EE136DC692F5E742D809DFE6D18BF866909A87A2C62C526BCE085E
-FE8C7ACCAF4A4B9561E3E3BE14A8633B885B86EC57C0D8095751536548C74963
-054189593A7BDE80B28F6642190AA560ED47BFA85FBA91557627D3EE2BA2E851
-DE2E17EFDEC23189CB308311FA623EF6F86EC34E231304DEEDF5E9C6BF964126
-F79D5EBB5F22C70CA5EE66991CB1FAEEF95E7E14BD5D25E2871CBD2163DA990C
-FFDA3D174140C7635710C1B3B927989111A6D37C8749EED67FBDD93D0A45E873
-E7398025B1DE7F4238A118977749B489923B4E6AE60162B6105F5E1FA02ABA5C
-84C1B26EFA27D1A5F58822A1897A374F73EECCE0422CC1D0177505F132DD4C55
-6AC7783729BB7B6A1CD33FC430A264F229D0C5A69DCF9F804FD1F01D575E77E2
-67FC00F6ECF7B3F592A7A49E410E8314BE48BDC95560401700C11A15DFEB6B2C
-189646F7FE7CAA7F938227F0B232BABE8865E8D3B764AFE6EB635ACAC6BA7C40
-CBFD610D215D07209EDB7B60807FD3DEA51E9DB40968DA07248168B6DD4C3003
-F5402EE2695D212B4DC983CC2EF4FC5BD59320EB462C88F2F4B62CEB6E22A726
-09961D7E4F09260BD5711713C32FCE1689E2CC03BB005EBAEA2A942AF20E3635
-D99B2D1C6E349EE350C923EFB6815F8BBA40D947E2619D62053E72601EAB54ED
-5F20652B03C8E7E1D65896252B7D436B77D3692C115D114F5042605050C3E06B
-2637DA6F0CC97AF4D51242D59D335491D67E95B7149C3D323BEAD304478F4196
-7E473D7DD7C9B6E1E8EEDFDA487697286F939A445B5ECE89437FEBD59AF5836A
-0FC41F7AEBCEC8EAC56D827587843055E19629E6BA0644DA586493763589549B
-C39EE3725E9C20692F2023862A3D29C4116F875DCF7D2BB4E79BFD54991A4FD9
-A7E852BBD7CDB42B624C969FA6A7DA55CD2E92AADC4243ADFD124D941152C53F
-E3764D1EAD5A6623D94036E1A88C37791DD21C59727E6ED28FC5F644B6CEE4E4
-9132042DF830F9DE1E6B78EC16EBF7687C4A4D07DF3ED52554F76996D88E40E8
-C30572AD06D64FCD20532C2B6BE71E65136EAAF008638C9EF102EB32243FA5E7
-1DDA1FEBF85FD71337C818C953219F592640A6171229F0D8E1447C4AB0E6622B
-5124945199A32EDB5125FAD3C022FF2D0AE256749223A16829FB4E1A0B60590F
-4268047D9DF9CCC59D3562D5E44E29E0F066F23AEEE045707647A75811D0351D
-AA4CC0841BDB7A63EA0BA675E4CE4CDE08975FA95C99A9CBA60817A52B5E6417
-199173813190A6151058DB86852F2C1BE4DDD1266F911F2882B5376B60C9C38C
-95B39F8511CAEB1E3003C279A4CA1FC38FF69C833DCCB586FDFE22BBB49D263C
-6444EF2C6CB9979D0CF54FC8EB7BB49EB3569DDFCB71D0966D0F0D2CD69698DB
-3862AA0B9B3D90FDE9B4BB39726EC682E8974AF9075539D975CE0CF5803EDD6F
-9F9ED36969486CD805C96E5DAE2D50F1246F36E95A974327579DAA83A63AF308
-7BFCFF42022C2D949B430C14B7536CA6AA82930B14112F87E9854AC8D6185267
-0528A7107D396A034E337A4B73BFCC2F323D5768A1E987A2BF2C8F2306404EB1
-26B3D2070A0CCE97065387D57FD9F733FD66997BE2E407F100E5E4021BAA9410
-E07A7128B51C9D320BA607C06C7F184BC27E0B7002C0B4F19685B4A08E2DF900
-16E82D6CDB0885F9260DFCE170996D78E8869A19125249AF59BF153D71E5F00E
-433DCE51F0D8065D54B605A30D0A6108C34F4EB8E56D33ECB111BD38EC94ABB5
-732AB831EF6CEE8B863D6C7CA4B95C2A154B94A16ED47B4A144153ABCDD8D206
-7CDC3843F264A5B786AE843CE7D83B2DACDD82E09D38FDC0FCC56F0D8B91D8AC
-51CF7E1DF59B11B4C5981C25E3C081E27866A3AD792C58C11C05B9EEC61AA9E5
-BC923F96864DD5A754205EEEDEDA4B63E8DFE69C2478905CE7E277EC00EEE7BB
-C2B1765F00DA731BCEBE209D595FC9E0F89F1AE7260D59375B89F88641E9C697
-E7766ACD81AE325EA386137FA6712FE56A3D4074BEEC88D76076E31C96838A2D
-7C6BF02DCC26F98A18C4206B33ABF6E6CB0D36E21735B89C64964CF4E1B9A8B5
-DDD1097309B975DD6D75824FB2D6C92EA2D010AA792228FC89B079771322BFF3
-E91B92AFAFE64D84CF391236A83524B3D4957B1A2C78ABE1EA4312FC347D1430
-43EEAD380C9ADDF5F459AFCC91682F8318DD22606240DF454E445491F07DA7EF
-58D0C679D9E887ECB473520581DEF2DE4B2A04B5B849BAC43A414E11AA3A5B41
-A7EAA9691400A3E935D922374043C8528394883DE9D7C98F9F7C814CFE8C7A46
-D52353B0AE2461F404503C38D956ED7C9EB65E3A0058F9A26333B034B7C0A97D
-28B8AD14F4DBB4D12122055E08FF3BC08D4709447D1C7A1CDE89AB45435DC837
-ACD2B64D368CB767F9B1D06D720E3271EBC715D0E2711D6C343F09039033A82D
-6716650CFDA57CEFCF25E8B86E243E77B4364B04BCA2D3BFA335C55FBB2ABA8B
-98CC06C87794FC020E7E0041CFAA75A6EEE43F6A5CB49E75EDA9D28AC1310D58
-DB1E938AEC9700C3F5102BAA6434D528C1C388BF13126C9E38173A1593895140
-42B9C08F98BE436EB5AB4B41B5B7422D853F982A5A1993FF9C03CB7A2068FA75
-F8E261E683E6F183EBEEEE8F407BF7024C6C66B0DF0379FD4A636F0EAF3940A5
-F48A71B8DB7473892474063353CEDAE734B034D9F7CC60FF1FF349F9C073B88B
-66E84AFCDE225BF8603C28BC8114DA9E9713C0246B4791AB5E55E0EA415D0163
-CEB21A1007D6F060E4DFB0902980B806E8476149241CF2388A4F3A75DC92CBEC
-303CA5829ED4BDE069F7FD3986D51D8A0BC0C7B6DE0FD5023A0B90075DEBAA48
-F5A62FC091642A061800CEC50FDD9BB3BD9E016391DBE31871B6EF431BC14A0D
-486D3827016B5A68A223117D416E86064A90A4B3B447977C0A681DBD07FCDC53
-90D92DEFF3BBAE3404AF40A5D357AD532BF82A67293799A1223A0D4B21A7C590
-D38CB008D97C51A2F2A64B35658795EF6CD44186263539760637F9C8DC75CC3E
-0F5F14E7B46302816ABAD623C664CE96B237E61EDBFE55DC5D00D858B75C8F25
-D33E2ED4643AE95E2470AE34CDFDA6C2B6D88AB81370F0C6A52E734164FB7611
-54414E4FF7B929DF6C3774EC50D769E41EFA98A21277ACF2C9F23F042F74BDD6
-B83A3156141787EBBAC8443CC276DEC97AFB922E5F4FFB16B79F913B874D29E4
-E88768568C31B1E14F081CDBBCF94D7DC3F16FDCA2918B8D1193BF99D756EFE1
-49BD3C3A0CE71BD20D416E0DCB6F83E8C3B9B4050A25DCF54962BB07865E3F24
-EDD4946718F7210D839E1EF0445D68D10D8926470541CFC9F5A336363BF66E5C
-9AEBCFFFB906E377ABE9025662729660B5AE961DFF59B4B11656295F0487E01D
-0E9DA65A913F371EBEC1D8C89154D739423F6BDCF53437BB665DF3D17BEF6F3F
-59D532D76B53A6240DEE8D68EDF71700AA468CC3E0CDD8DD50C3051608119713
-F4D5E13CA685FD48D03E71726BCB26A4C885B025179C6C7BCBBB669EC6CA544E
-16BE90184A5DF4A9532277C765CB25678D798E3E6BAFCCC1B0B31880526BFFFC
-B707D24FD48BC2DFB593285989EB1135D47FD2E30330943C5424550C4C17934D
-2CC69FB31F81916BCB774D27AE711B0754E25655927429C626799846240E7AE7
-5F662E4851322F94A14A73BB355C6DEEEB0809B730812B0798A4E0CDE08A0594
-1D8C3FC7E055BCC948D74DDD4AFB62533B78BE85310B9BCCF61F1038BFFE4A3E
-7B982D1756B58331F924D67A55F86CDB5BB347DD4EB04271D0FD2D25D3EF6682
-2EEE955197ED008219F386F41539875CD8DD847499F9E56545DE11C43036CD5C
-E5C5262A59EE74E0CD303056D37C61F555DEEFC997CC80B06C47F90A3C46D097
-610A281CF632C8E2F7B0D2F84A434BD575B49A795EA04CA3CA5AA86B299E9F77
-78FC4C37568A66996722B764000A7915EED0B05CEC2942FF564B7C784B2A68A2
-8CAFC810C16DE4691C98A7C99ECBB03BC1A16C7AA61931FEDE0E139AA1E294AF
-9D0A84607DEEEC4DD4C35D5C9798655960A8F335FFF479D061EEC26555110D4C
-5877552A318CACE59A4561BEE79F36E292C427F36EBCAEDCFDE161707FFA98F2
-C87E128FC6998F2241E4A62C4860BBF4C6496DBB4F218D5FC94C2A40523B20A4
-5A5C9FF7E16C377EFDEDD5B018D40AB01F26815275529D1359B60658FA1B7BAB
-FDF854786A00D61E1122C91C3DDFB2D8B66CC9E523CA09404A885256AC627FB4
-E41918676F3E2B7762A1AF4DD985A4E133EED84E239E38BF4A737E2719409464
-6A368163AE86C54CCBFAAE1B512103E458B2ACEB514D0C3227242B0969FD8F29
-9DB6568F5EA741F84395753D67E291D1B08401574E79FB07969ADECF750D3FAD
-C12CAA382468F626D5D541C6A9BE2657A4C2504AFE6672F60DC3B3CF1A7F74BC
-3B0157D9F19709623D01E657890A40C85B10868DAF4BF1D37C8FCD5D7D3E86AA
-02A5FF16B3487240D84AFA03354B666C20D144D59AA23A265DA4E1D0AED3A934
-C64F4C0738F8B1315BE988949C371284E5299E6BE88AF64E94DEE15E43EBDB03
-AD261E1DC736BB5F413437F4CAA0C586AAF9801A041347627DE8DE18927C2CC6
-A47653C740D5EAE722D730E17951E481DB07F3A0DBDFC4E3B7272F9FEF143A65
-B18E766CEF8E256DDC5409DBE5CC46009BEF3195BEF390F8E2AD6D972B62A0E6
-91D73A39FB27D355DC79BD514F9AC5B38FB6196CDA5DEC54E5A044661BD66975
-2777FC133B8AC7A4B56A21F018079320A3F5F5997855117658B1DF49F5D259FC
-80FF80DAAF9723E2A85467CD60861DAA5A8C80CDB1FDAEDEC2C603D44EBE2789
-91800C4D327350CA005467F8E4941F1DD74B61C5BC8885D73FD4C68EF69FAE01
-2C87B96DC09B516B2250C7E6A1F640D61A557F471C7CE4837317F885F94E7DC5
-C561168BB8C390AECB871C6A782B1C82C1AFAB46C339ACF9B4C411C9CE0437EB
-
+712D165DB658FDA800798803C3CD32B841E159AF0F748400314FAF5038EAD574
+57D57A34CABDBE4B8D145E439A11585A0CEDB410973892F52DF26E116198F86D
+FD876B8299BCA27AEFEB72F9E8B4B7DA1110B52A0F96DE59A839E144184B72B6
+E45614991F03299BF5D1365EF2E0D68B86CF619AED2B9D37876A796997CBFEB6
+451B67B5EAE9120D0F8F9229332F23B6A10837AACB18CE42CA76F50FECE8A7D3
+3213106308756303E821161BBA3576A83820B337E6A7E804D8CA26E226068104
+0EB7484C4D980D7ABAF644B8B2A1BEC7E6506D965BA155349750E79A0C8A1AA6
+5AFC6F9D9C691B47F45AE17E66D1B273AA58D2CBDAC9820F011DD77CB2F40495
+540AE5327597D571CA7E202E2870297213BA4673BEA78368EBA8086EB422A59B
+C1B4B85378F2864B176AE297116D4771A393DA50F6905204CA54E10C929D3478
+36DE51581F3D79B158CACE7B22DB5BF4F6B34803DB65FF139F2FE9E789E79035
+47E746283E8BAB12A3592CF7AABD8836313D79BE940D246A1FC83026FD63925A
+64D9A8E4A799A0706AE085365144A5DB7D4005EB07A1D1EFB18B8AD517FF5500
+1597D3CB30D83856E4B83456C246AA8418D2BB350547F627611531515CDDB191
+EDD72DBD79FBA622A1F06B48C412E37464B3B5BFD1614F54253D9DA82328E448
+11C6A02E6323738819FEF776149B48D52C83CA39036DED2CC3D8C1E36320F674
+C9B5D10D2DCA8320A2BAE92C9800FEABB7AFC0ACB2710F61DBAD38E8174FDA0C
+E8AAFBBE0F602AEA14D675DFB04790905077BB0FEEE4B7DB0A9717D37A627E6E
+CCDF58565FF1DFA6408CD17F71BA6BAEA2D4D99FF7628166BA93A5CBBEF1A839
+2332FB0A14671F510DFAE662325952ACDA24EE9D79EE9402679F5B7FB73372BF
+641E2C30C24A861F669FC28A2C1447EBD321E3BA9F29737CD880CE07D2295E72
+9D2AB0C24E9A643A1BEB7F32D20A58E6E620C8F1768D3212FFC5ED912CF7C3D8
+D507217D20A988699BBDC9D3FE095C8DAF9939B198F0A21DB77CD4C59FB771FA
+9DE3286BB0DCEE0DA3782661356BB2691D830C00688D0B29651BBCC437532DAE
+815AB03DE8F44AEC6112971E7231B30CC80D04970EC6C1E42A6AA0642BADC0C2
+EAD884A4C33B25469B5FF3230ADF4EF607499F1EC3401FF7C6F844B93D95B202
+1F661579C30C3E1DA2533836ED3445E59CA532AB1E8613EB4C78536ED00E1EF0
+615359AD748D66F7C8A13B807650C963A962B831C55D25B0CF3EE4300F941C5B
+61973842957CF64A65255CFCD3666728FD0CDF7B59DC9C2E3959735BA89C9AD4
+98E0AB04FF7B07A138E77B97991379C4262C03F36DC55420A1DA7983AC156209
+AE245CE6C064071323FEFF68797AD21DAB54A1B8CEF96A787DC9E90CE2DA1C27
+08BE7D84C8491B98151D170434B4880F1550D55632ACE592BBC07466FEE6B7BA
+3632C750DAB27A2A33C5BFB2C06B5DCB9A6243CBBA1A31C3D7DE7FF6B41F6E82
+6A44428053C6C606E951A312495B47A6BBC2FAB44A62FC0D4A50E74D77E0BDD0
+206BBE6BC9B1DC7A0FA3CC495CDF1CC5216428CA94D6F6715B920DC818B8463C
+9E4120C397B8C9007E04347D305D021D5220E3E98FBC7A30211E6C4B1199488A
+EFCC8F2DDA888D213228C360FDD2D27A7B8D3578B3F16D9F73AB6D7DF413A84C
+B0B5FB73A7FEE60E68B98FDD312DFFF653D98FF04DFB4AFED129B33E6148FE7E
+EFE32787D41E567C0970FD535BBF95FF4C14832FD5181C6AFE9295665C6AFD2B
+07DE351D3A9858ACCDA547DA19D30BED27B3A77C01CDDB62EA0C541E26B241AA
+EB6BB5D533A091A7C5AE32923E931A98B1A378CEDE4394E7615AEAE807C14E8C
+818BBCE624387076111D1EDF5C61EA8809948D4906B2C05C01463C4DF4EA3A7D
+6A4DFB643EB5AB2E09DCCC51CC16F68CAE87CDFB82F7A39129119C290A21DD0D
+3A46F182963E7267C31F20B98914BACC48CCB4E0611C67BC595D00B633E7FFCE
+17E311A7F4588FB6AE658377C08A215B79424635331DB4068BE99D308D6BC1FB
+2DF73D26E0C6303F06946636B23742D57FB9D9A3BD099093A1C7BB31C02D5423
+C7FA77892B3E560A5D115FDD512CB4CE82FE58A7AA72A233B02D6B48B90CF72B
+6C9D1E25CE02FD2D8BD99802C12AE644185A5D70D63442C3514746A7222DCDA2
+1DBBF4CBCC0B2342CB51BC7FC6423F7E95BC3EB407F0285FD449D8B636642BE6
+131E0AE8A0B810C0D8253B249A103DF83004276605A33119A16BED4A7F2F295C
+67757411FEBC5AE386358251D1A57A77C11951BB0533EE75223739B27D2C0EDE
+F12FCC8CEFA983BB6FF34301849D59A0282DB77AEACC51E2350636AB56FEEEEC
+FDFECCBEFB135A6005DC8D8E21B1484E5345FD64E26B296864D7E8884955679E
+35F720AE6E52A89CDA315714FCAE93AAC470D2692650EA28CADDE043534014D5
+17507253E7333EB8B44A5486828BCE2850FD95CAD5ACF132DFAA39E0007FFF26
+497425189ADDD944FA5423B9305239BB25B4430D6AD6D698F9562B10FD9D75E2
+4C7AB5047BE64C912105CD4A4DA988BD5ED3B612FA3D28C805E2A360F464178A
+94CF4BA6A9FC5C18E56D8C0890CDEB4D14ED75F494F5D917A57F571760D02147
+1D344B0D80E7064DE9D0A5992C3BBE55A7258C3DB693677765B514782170B8FB
+6E0F5AFCBAEF7E3D161717D01090EA2316E0633DA73CF10C77C68BBF8123FB74
+1945F0EDA652BB4F3693FE0F4FB0F5D5F57A6A1793C0F39ECEDA9079A5C497CF
+1519DEDFE0FCF60994038D7A9F5374FAE1F132BECB1DC80EE2D09164C674C6FA
+D0881743FE49F5727756F05AC1709328C25EE1C4B8AD429CB90EE6023A226709
+33C619C97D92A505C9B82B75241F7CA2604B8C65202E5546E9BD5C15394BC9C6
+2A848D7141F8F57FC25DD20879EF0E968CE16C31FC537B74C429720B0D83A510
+DF7E9C057609E3F35C2DA4EC56CC1C4BE0BD04A4B23AA52FFB3AAF096D6CFC3D
+5CAEAF5B4577FAFDBCF41D81148C0226DD29E6D57B8C05E1C141B6D309D7273C
+2832AF0AFE91CB8CC9FD1980605C5FE4D8DA726580676FCEB1021121DB2CAFB3
+516426D78EE62D95A84B1ED786324569E604FF8D2E9EE071600B4820EF0CDDF2
+51EBA811EC9A6A8F7E8533090E7D5FAE3592A6F7BE3C7DBEE4729DF5598EFC57
+614441E5AE48AA6B3EF26C78C298B5F0EB05D67213915CBD611298A3492ECC50
+3ACFFC5589E5625DC0BA66F06B15F35F73993CD514F8F952B9AB8550BD573B20
+699B9CC30851C45EFF549F82433198FC6C217E2C6484DB1B349BE6AA81A32716
+DADF7565299A4CCCB83121FD1CDF9E1DF7656273E59B60080928E8CE59184D32
+9868A652C2AE09BF15F3DC3AE6AB5436D0CCF0EAB2AEE3A385A6A8A2F2BBFD4B
+B8EFF2818AF015263AA0A5C8215CEA00C62DF4B00540B091CAA144D6F94C093A
+77375E33DF12B1928C9D17E6E3D658B8D26B5F9ECAF863FA7A93A53CB1BA6B9A
+CB4118471BF92D9DF22C820506CD74492F42CD49903EC50AAB51E9E6115EED20
+08D8CEF153409DDBCF0EA91EF2BEDE757361403A94FD680F74E1B96BB88965E9
+58F7A517FE9E1C781C3CBE6498E6623042E58762A2407A5FB8D24D89B93BACE2
+7D92D50EA78D5BE442D4C49C56F57592C04ED3518C44A4F36B9819C27E93BA1F
+2FA7C560668C355AAFB9A9F5BE6388B3E08E2FF8FB820BE492A1B0A067515A1B
+5DF479992F4E62D27F713C7EF4B715FB341F35D8C9C4F62834E950C86561591B
+8947FADE95A2BED5D595E81B1AAEFA2EC949A6E4610D372C8FFB23E28FC64153
+E6A9F95E8C77FA57ACB91B1C7D6EB78EA40357C88754711D61977F8D1D8836C9
+1D20A3DD14CDB6B7936233E524A990148D8B797ED4CC4D5BA8EC668DCA7C9C67
+413662E9B57DA3233D0DEF0EFBE62B253E56F9FCD5E64B9AD2967BAA036EFD4E
+990F9BCFB3113884F87FB79E7BF293FF3A920575795A964C662494B91E934107
+D2E02B221294A4776CC9ECBD69A362E6CF668CC22C9F8DCFA29CE30CB8DE13C2
+79167C1D4BF0751D491109BA8EE1ACD06DA832F48042BA3700CA0EA193D41AB1
+72E1F02AFB3EE2E52A32CF8921A3DE2701541B66325142F9AE079F3A6C21DF90
+EBE1EECB900ECF7FB6F001CFE6C0FA8E6413D39B70F8B4D68A5105F509E384B3
+842F5753A6D78654BD508FAB1CD7E81FE0CE3527E7163EC56EC8BF3E242FAD38
+A600E254EFA5BBD99C48AE102AB2DE4330EE93CE6CA6F61D99406DAD5AFDA2AF
+2377B3E1CA0BBB1442DA68C316B0817DECBE32E2A4B7608D3007C740F78905CA
+EA5EC147472821B886FB1A678756DD584EFEE26C81F3A9545FDA4EFD44E545F1
+8F936E4FECA8F5E7D3E68D71D3B8C122ABE07476B492685496588BDD8C639500
+DD91F576C77C8C3D4F8E8AC2E6AC308F923BD2F231438AD39AB7FD5FEF428D61
+DBBC7803F12DC84A81EA8CD982D6CA26A63C7776ADAC6A5F300656883AE97BBE
+217CC1F3220B498527A826C557669132D2F97E20029BCF14A9A896012837CA40
+EDBA10810F4E7A0BCB0F7EEB88842AA6C8360FE21247FB0C3BAA86A413DDD20E
+F5C3E5349A96BC9C7D54AE493AA18763F407040C89464F1F9474CF00DA0A6B49
+02604EDA77354E75B67CBAF2051BC92EEFB603D712A8A6DBA63A0A89F37451FA
+E3E99B5039EC4478106FDE29E4D7BE88537C97A2E03372C07EC4D6EC3E159618
+6479EAD51CE224EA90C9C951CBD81E02D30D9DAE9277FAB7533CDB40AF16A1DD
+35D5FA847311A5868596C49549BC2CB7FB11334A5DC0235BC107EEDB05B92A85
+B198C70DCDE3B70BCF42FBDA810A3DEF5802821B55B42C4653C61DEABDFEB3E0
+9A595EB54994A4B866A99F23CC95697F90B0A4B460994016D12B85D2CC92B572
+F62B9A1AABF2D9CBDB887D1F58A824E080562A3E4A7C6AA02EAAA47907EE67E5
+46169E42148793FEAB87D15B626EAEB86BDEC8CFFA2B84F52BD34A2056765E09
+63E0BC58FC24B297D68D8A1D3332792C4DD29EE1728FAB873198F893E21C8AFA
+D2DEDFB86AA5343984A6E366F837AF76EE986ECC5BDC880F087B6F71CBDBF917
+8B38EA2EFFD281B1A8E46666A74F11D849709F871C45DA532D12541BD8F74899
+95F4B59B9DFE7F6F5FD49789865298C244D95881D2DB1889D0A41FC7A34777D6
+9E6947A3DDE605111352262F0990A9E558274D66601BF2B67D55159C7514F1E1
+1A7E5C074DE75B9A612A762C3153B326C6BDDD276C2066F50899A6EC8D4E1DDC
+6FE4C7056EC63A2E1F6872D0C74FBA9700C6C4E3689F8ABA302F49A7E3EA2B4B
+BCFB7FBD3420D588F61AFA044EB78DF7C3881017C753DB1DA3F35933B19656CC
+3CED882CE92EC2AD79698EF383D113D85C6F3DCC4B0787F3CA994A0830EE3703
+0BA4F77439094180813BD2E230F2010ABD7868EB171307253CE61F9B228C6687
+F849FD6EE7BFDCA93B097A1F1DCFA09E351F1713E4E297F10C1CA62A8F461B5D
+A696C14A1917F2C92B885193465E63F94C151DFF3E463DC3767771BA45DACCFE
+9A7C1A408A0BA54170D70A72A936CE4C0D4DC4C185040D5530F02A9443615826
+7BF99C96AC1F027CD229A9ED6BEBEFB54752EAD461E112597F63247C83ACDC2D
+2F02720E242C0FE40F92ACD4526E93679B6D801A9C6461491A070850CC24B3A8
+78D8E1A70440B37FBB23FE8B3F562191F410C6E68E7286BC35423C1821F06304
+4F4DF0FD723BC06365B3EB2D0C5C83D219F92688D798FE1555BFC2E3AA8E18F0
+58DBDC9827E06520AA3937E0D01E0966FB90C3E32965018AE2B5F2CA42794CE1
+2A22A211CE8D96A5FF98BBBC1DDA78BD9EF66F34D74F9D28F7CD1B4891FF2355
+D05F8609E03969EE85696CD194287A1A1909C091835BBB4C4FDE8AF355B1EA02
+7C3BAF3782E46F2FE41CCA69C346C4F88B640A25C51B85D1535CB65A10316C65
+8AA3914E00671E0DDC0C41D560C66E677BE305B1C9A167496E9BC55E3E61FBF0
+454ED084CA7B8542D09C19A0414782A2EC87700A7DBCABB76F32D20479CAAF1A
+B9FE677A9BC68A04FC04211F65CF6B7AE4BCD58D8EDD334101BB4AA9F426404B
+73C5E96532F99284B408438EB48650A90FD34A2120977F5F7DD6301E993FD1EF
+675A7E6176BF57276D3FAE1380D9B1E4B2CF158046EEA40E87928CE9B19A249C
+E2C45BBFE7EC8302D794893656C086031AF9578BFAF49E6A866F98D1CC1DE410
+C2667F4A82EB71BF6436DF43BE28138EEA6A33A04B0B414450950C40708E2058
+2CB26EC69D1645BE59C79BE73F9767C75667463546B650502FC81F21B5C4D406
+DBA42CE9F1CF16561266E05874C91490DB83C01EE0339E7A8DCC5AFF63D3FA4B
+552926E42DE881BBB4B0D0BB380E0ED76B72A756B4CAEB91722F993A6B4F49AE
+A404FBBCAF83B786A3D5D0C5AC21D499C743D5A9375DDB1697D28E13F47FA43A
+FE64426660F078609C14EC6383561C2ED52C3B0F22D404776673B382CC17BBE6
+ADCF4A7F3F7D167DE46D8DEBAE03648685FDBB2367F40B6FDC44090F32AF4802
+BD5EBADD37B82B429A0E22E9278F2E1C6BCC2D8649A949FA59A8E1CBEBD883A5
+430CD0968816244C9D05C948102A9B9D9CF0023B7AB5E3481A1C2EADCB42B6A1
+D5891F3115E42F0A18E30735F156160E24E38D358D4376E0BB35EA62F73DADC5
+0EAF316D1FEFFCBCC1808EF642F285D3B67E279BB617E29B10E46C92496A7568
+900465D114CAFFA796FB47AD526011D42B486078629D6196F9485B66966D0D47
+9C6DC7350979D07D8925A1CD3934495B034456D8BA32203DDDC3C545E1FEEB3C
+85A12370148A0ED20D56DA8A34409226A4D38D350433B0590B93DBF4EE792A6C
+28F5D36D91A0CC9374BFB366B81EE8FC4A29E287B597A845B45C7486E3F76BD1
+13418C33B8FCBB118BA3419B55D291BE1D200023002FC6DF412DB7FA559C2CEB
+2A4E359CCEEEC0B7709C8D41BF93B42448582C8E8A3E8160BD43186A96C66BBE
+591DDE7BAD8CD956DE262047E7CF1F174F462FA6DFDD274772F331F95D6B3557
+BB8E02973A3AB6F3B8C0D8BA680777510A0FC83689E15220D618FE48AA0BF540
+11AECC854D11EDBAA8B7A8C95D9F4385407F5E8324A2B249A3E50F983445FFBB
+3DC77A4A6D7CA7ABA7341501988E6A446B85484641B0ECD10492D6804F0FE1A3
+7FD639D14146B5AA2899CB7BBD4537A37B3890CD1C2A3B3147F71A5B974E4750
+A0444C4E14BFD00A9A5E7F4E30948CE9FA820D15250A2A1D87E7F1686972D0FE
+80DCACE154D3E7AE9D7BB1CF4D2E893B5F010D8B1268116147F6D7328F260BE8
+BAC184DFCC2745560910ED3901D4AA5BC1AF68CB14A3BA66E235299024C2BA29
+65CBE67B56A6A5FD4B4AB404DDD02E520E2084082A6ABBC6F62F3BD146388B26
+A107DB3FFA2DDE3AD94A267D1403E8F0D018948F91349C870AA70AAFBD2CB866
+58D40D1439AD4BEFFCDE627E56AB5E78CE0213C214001FBE22809BE3FDA6D380
+31EDE1E121168BAF879532F11B02A0EDC08A53AE7B0B27605C4D726816E08CD5
+47550ED2014B1062C1F35F3F3A3290018E2B459CEBC43BDFC8AA6B0653A838A1
+D832CAA078C802C0E0F4125911CA9118AB0EF5C38EE0EF4E5A898D4E8E81182A
+B2754E36F9846CA5A95D72AECF41F7E2DAAC726AACA518E585261014859EF503
+B0A00369FB384E5321F2EF712053C34B81F235FFB9E95638688FC56360681C19
+5E70974D7C64FA3B885D0C435335C62344F3FB675546CF255B3E350095154EDE
+7227589C6D73A140E577645D0A6B45ECDF28A5F7FC3E0AC6A893662E66756A22
+485E8EED9448335A643E67C2EEF06998083C39DB6024884182436DBBD4FF630F
+38CA84DEB883C104C6BA4757A8816160F21AC23067BD91DCF8173361372F1E53
+1ACF0FFCEABA31C4E2FD3E5A6E28FF3D480E6062FB210CCBD995BEEC93989852
+FF223550E7100E2CDEBD81C548DD3F0B4FB9C694BF14D7C1D842DA4B50647318
+45452B2E61CCC0992B66DACBD66664AF8E14BD784C309DAAE8336321C2A40625
+94ACC155EAB00D6B5EE04A4A31416B4D1EDD27FF915F43B77DBD567F201F8C12
+DF9B272813D89C9F960A9BB37BEE79CE8701E418B03AEF4604C273DFCD380F54
+350608AEA632A54BED07DC0690448576C5449AD9465CF06B5611ACEE28C94631
+B5CD0E1EE997E23966E494EAC2E397A604AF67D0E55F48B46ACF92DE6E13B8A3
+39C0FBF7B87218D04C6614FE336FEA49E26B7045370DB4847F80A86B3A97933F
+4F5BDC84B75E7A01B36D1C2D5A0F4F2C873AE44D804732847525C15F900EB9C4
+65B90F90F343E0420392AA43A4F9F836ECF2CB9FCF4A7AC4E564F71506C04423
+C42CC07FA4F4B4EF5BF5464D4E76976DC5164A0E134329D962EF72E36C2374EC
+339DDFEF01B8D43459AFA427B44EA035C41936DB61E512EB99B1B98C94E56775
+442484DE5A25E67F347BB5A4F1DC5E3C50901187F6081C2547A71E13B3657243
+EBADB0BB43F920C15CE4D4ED45E481A40E6A5EBB944B2D44D7E1CF2D130A7B2C
+25AB9A8D48CBD56637B3888CD66135BEB00915550CC2EA18229B068E5091B2BB
+0EE55CFEDE2695316911B60C66FAE3A47AF8C778399F1E029C8AC3898602E89A
+2E83824A18D289A571B9F14D5113543F14D4C085ECBC20CA010503A068530D54
+5966DD29C1E04FC8CC14E684F1D523FF8D5C16E776499A9BCC5546C3019A7363
+8AA39908E2AB0F4236C6B453B2BE8046F6D512929283718F8C0EAE110A7E7F3A
+E649D9C76F21F3C98D274E40D1E7F7E9211F6ADE82BD73353095A862EBF943E2
+744D66C11EDD6AB4CA6DFBE231750132A1419F961B75F654957CD33B4D21C038
+D88322B91EA35235D83618A10F040FF284674D7AFC91D58B50BD591B870D9B79
+F79F5E9BFDDEBB9AE3CA2A17A439082898598ADF8DD54A42F82046299153096E
+FABA8F1A4FAC50ED0CF9CEA7208B5F39514BD52F4B93BBD32BA4E19A8C02D1BD
+764F7CC39729AE94D83620269E1EE32C5E7CB173ED2947580C39F1AF782B1465
+F8A4CAD36261FEB051A0677217FCF3017FFD173DB260DC6C66F907C252CAF4D6
+1DC423516B3487E74E6108DD038E4CCF7E008C3286A9BE150F46DF0D24AED27A
+D0AE2B1F60899E9E1872832673EB28E2E465BF0734AC459829D42D7E31EAFDDD
+DD5F63364872EF24C99EC5A346F60DED135EAAE1CBF8F9D051CA39DAA3F592AB
+34193B2AADFAF020FE42293BEC723633B38A2C8C65FAB0CF772209FA8E1E7A82
+15316ECD908F1A8355BD409B11EBAB00D80AD389BEBE357D107827D49CE9A014
+5A7536AB85AE8206F5F43AC6409F59FFBDACE58AF87D3C4C6EBEACCD801FA923
+AA04E542D23E389415F423065111046BE1AABF234AA8156C0F0E05BE139F82F9
+489A8766716287088F451179E180572C60478099C6A507D2B8A9D2E330872A83
+9A56ABDD97A467F5ADB9E08A9ECD62AB1F600E7A6F4C8905497E7965873448EC
+C2529C56986FE1E3C48652DD02495A53089569183CF75C89FAF88E38192987BA
+C061B029A1475CFBD00157F1256365A741144EA2EF4FA2039A2555CCB89734CD
+A6B4DA0482B2906ADFF83F749C52A1474DF2832A4659B60CE2F203A9B14A8D9A
+088B48B32D3D1E13EC4A1587CB18EF1E15933762E7DCEFF2E8671311A092B2C5
+9AC2102CF157EE42B88050AF6B9600745BBC7583999F3CA0962F073FBF7279BA
+D3F16ECF48D5973D3610B8CD7F9FCBB48E5D6F8D8FC4BA703F7C92454DFB2BF9
+DE7812C8370F30424E4EEC4C3EA5B1F3137B16E3418A4C73A9EAE3A06E5560E3
+494E71B8159D7CB23FC90FD651AEB07867C8A2E656FA36B193AA9261C98D0C45
+0735570192FC3EA22DA0A8874ADED40D3AE130C051D266ABB4F65DD7E9A68BFB
+097E2A5EFF411D26B9581F0D61753440F91C325699E7CEA90107F55F9BD478D6
+F17042E710C9387F975A3BD7654DC113F17182497A4289F3C81A37A48BA8D66D
+3DF02BCCAA5C32D71B6E4C7316C9CAFFD1173A352831D6110ACAAADB21C4751D
+4F2C35A8490999013485F6AB5E4497880CCBE78CE8ED5BC623BD2F4E230F0DB8
+6522E203445073A11C4663E7D0C1724992072519DB39389662F75CAC57FF20CA
+B4AD604ACDD7D40560125B9A77613FF1C51BBB91C75653A2800C40545D446F56
+9663AD7CE3B3E9CC3BA7D907561FF498C1519BE0C9984F7A3A33573F262D9E75
+F547366E8EFC46F1F984E2C6841FF9ACEF44D8804A2A567E0A75F842BB57DB2A
+7F4DD6738CEF16A4007A3E8FAABBBD19853CBD70AC8CF599C651E27AF4AC2E4D
+4A87A9616732B81947B13AE0223BC0DA77C206072C7538574608C8DFB40E407C
+AF01507296F1FED01FE9DAEC841864D857FAC306EF001053DDA9854EEEF09ADD
+0C3221E3F45DAA2C747C468D471DE4DB8C091C9CF7A22043B9D9AF23AD2EE11A
+154BF601D6DAB725C5CBD7D23B955ACDCC8DA70D53396C0B0D3CF5D7B110E9FF
+17DD2D73BBB99594C2262231BBB56FE443015D813C3323929349D06B51275B40
+84A7BD1875411E68FD8FBB062023CB0EC186FF8027AEAC6F35B00EF9669047EB
+B0E87B06EB40A9968052CEC8E4BC2354A963CB5956CB300624BF3AB78A3D1A63
+CA4A40270DBFFFAC07F8EE8019DD1003A07CFCA1635ED2A51428362DD52D7826
+DED05A0778ED5024012CC2ECBF1A9914D8F81A02DA5328B2E32BA78FC15CE60C
+622021E0CFDE12AF3B284CFCF047867D399A8DD70844D12A34AE7EA5DCAF6CF6
+16C62406927FE0CD3A76A5DDCB6035E2A45A0A1EC85CD2AF59E7275322CAF01A
+D54F3C49382A065D5D4932562F964CBF2174D0FA07A6FC3B0BE43EA1CFDA4B88
+BF507F964DD52B6EF9C2844F880271F7639B4C571922A6154AA02FF5D042FEBB
+506976CAA4B8DEB70BA2B063E07B874AF5F198D7C45E229AD80D394D7EF7375A
+A70B62D2719C6598C6124DDC0B562FE0659BCFD22CB3B1AB5D7E2726CDFCF88F
+B13DE122F2A3DEFDC2E99C902C5761E43C7A1A43F677931AB005746566FE3C2E
+962BD9163E099B57E0DAB0DEB69497F6E9B851264EE594FD90A67843AD7E05EE
+90119F7D88483955AC3FDB0D32B7B1F1E31B7E572AD62CEDA14028F3EAD01434
+9106CD651516E13997EAFA17A8B5026B9506C66151CA9EDAFA128B13C99FF662
+CBC821CBD3768C3D4A7C3DFD2A6C27F643D905181E7E088C7B619D118F4B58E7
+E1A27289F377B188D374682A266BE157CB0B478484016BF6984013572FB3DCE4
+00776B23D3F2DC8DBBAADC2E618AB399061C94FFF2A9A47835AF1E2C92ED0610
+5176407975A0345D5371843EEF46D445082B9780ED5D326AD2AA7591AA726BF6
+9FA17265E93F600D76FEE14C9106A94DA0DEA690A073ED19888E38BE279F22B0
+3651B85A662314C10DF7C74D89848148486C33372D688167F95A956280BD5A83
+8C06D67C02A6AA3C55CF799DB8557FF823F062D9150341F98BC2B2BFB84DD14D
+FCAF2CE7042F7FBA8754A59B1BF1476468EDA717B266D35EEA7C4107D4954757
+F762245CCD997C8451E5E9E845A6583D8DCCDD7ACD65136C2F382EF8DFEF4738
+3C8CCEA8F8A5DE43BC6E5968E2DCB22E237FB65357383412A9083B7A9BA06B60
+669A320D295D41B9CC65A05F1C3CF4C860324E424B74B50E68F67F84C176D7E7
+22E2E0E85FA0BEA08476CE11F8930000B6096A512044D54F3FCB7F7BCC719723
+7394DCC3B33C292ADAB50AE17C454333D4F93D938F934E0F1AEFC5F2BC488883
+44CC90AA3FD17CA3B2117E6E2DC1FED5EDE855A4169F238181C77CE4ACEDE8F5
+E77B4A07D17D173C82F0B62D33AAE40213E5BA93C2930DFCFFEB9DAE024BF85A
+90BFCCFE3FC5F99D39B2E8D2686AE1417AC1E5BB58D105024703F38AE3D90F30
+EE950E8C86ED718598CA966D841BD379C8FCF356CA568F995846CD2F4B0DBA7B
+46FBA479EA98E3B92EE5C76B63AFD766CCDF0560148F30A29BE6EFC725EE60F2
+F5F7EC808795BB8C59B568CB6B927A2E3F8206180A735B57FAE842082ABCBB2B
+A65E38BC4E9253D728DA0F8BEA769428F5E8328F4AF412CA14B056B2A8AEA438
+B4AE59E74AE6F3432AB8C729045C302EB3EFABD4D14DD542AB22E67A1D4DDA44
+8D528DC404FF90FC92B736DDE0C2D4E1D8AAD0C4C285AD83E9E16A2BF5D3643E
+5334AC1AC57C48A8B0875E379F4A7EDE97DBD65920EE20C60F16128324B23BFB
+369A4F92832E679FC855451BC789F97D1997A73A4DBBDAF68D14C7713A4F1B56
+F55CA97A5E120E013FB41A469668B02B3027617FCC9EEA2BC6FBDED8948CB4F6
+C76ED2C725B016741936BB7AD5000E89CDFCD7B51A18037B6CB661E95F3E00F2
+99FAC8D75C1B8AC2F3BD84DE2417C0D7AA6526DF55DB0560BF4BE43EEFB23ABB
+9282709C58B1200CD1C967F06CB311BC3BFC8B651CB0F6B34F6E96ECF5C51649
+BD4C142EDF0BCF97AAA83ED6231483539AA4776C92C4A968FEECE297435AD0C1
+F27C45798F0671AE7D36862A7C4AAD5523F96698D1BC679103435FDA131ADC34
+326BBAA7F7BB7C47A232629435AA4C9DCB6A2E1A0DBA73DC6859FAE5FA6F15DB
+C38A6DD13B45C55D6EAF468E22A24FE97C854FD8B42B63A456FB62F4B6004A6F
+2F81104D3A740690B7896D7140FC5DEE2A803AB13AFF0B26BFD0578B0F2407E4
+A5D5FB3128D0BFD6BB49FB727452F84EA5A2AD6792E91D4E6F55462701F85ECD
+8611A2FF2F2EA8DC783774F860D01C616E4B37AC8074EE264D5F5448DC91EA2A
+E7E261C7827787D9F4442B969353A49C948B6BDF7E868C8B9AD10AB31E8C2746
+E9AB0ECD16F0AF5BF7DF3570A7663B0E200E26F7745D6CBC1B0E77028A66C6FB
+076A779124F2C19E77200F7D74F30CCC8C7574CAC587D7BBB7802AC878AAEA83
+C81BC3880512B7612605EA397468A5C43D666D7D9A6E3384500B516E86F14C81
+6643E5833A2B0D57AC3A39CDFED704DE32519B62532E6CCB85A37FE6B58D8348
+7CA452751F2E75D5287E4DF94C8512014A74977CD682E08D3C884653A495A254
+4ADA8E700D0D39D3A122E720EA9CE938C4711D117B5A27C8FA799E402C4B40CF
+91AA834656B4064D8B40F620ECFB315EE9C555CCCF8AF57CB5968A37ECF13DB0
+EFC479FE9716E6B79C9FDB4E22106802EF1D248D664528F37E2E4446F6B10BD2
+A4D5D4179101EAEF55D57898C3784111BF27D744C382058C
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -4675,7 +4651,6 @@ FontDirectory/CMCSC10 known{/CMCSC10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMCSC10 def
/FontBBox {14 -250 1077 750 }readonly def
-/UniqueID 5087402 def
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
@@ -4945,478 +4920,6 @@ D76C7CCD00
cleartomark
{restore}if
%%EndFont
-%%BeginFont: CMMI10
-%!PS-AdobeFont-1.0: CMMI10 003.002
-%%Title: CMMI10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
-/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMMI10 def
-/FontBBox {-32 -250 1048 750 }readonly def
-/UniqueID 5087385 def
-/PaintType 0 def
-/FontInfo 10 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
-/FullName (CMMI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/ascent 750 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 58 /period put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
-45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
-7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
-72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
-BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
-974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
-11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBC7878DFBD546AC2
-1EF6CC527FEEA044B7C8E686367E920F575AD585387358FFF41BCB212922791C
-7B0BD3BED7C6D8F3D9D52D0F181CD4D164E75851D04F64309D810A0DEA1E257B
-0D7633CEFE93FEF9D2FB7901453A46F8ACA007358D904E0189AE7B7221545085
-EDD3D5A3CEACD6023861F13C8A345A68115425E94B8FDCCEC1255454EC3E7A37
-404F6C00A3BCCF851B929D4FE66B6D8FD1C0C80130541609759F18EF07BCD133
-78CBC4A0D8A796A2574260C6A952CA73D9EB5C28356F5C90D1A59DC788762BFF
-A1B6F0614958D09751C0DB2309406F6B4489125B31C5DD365B2F140CB5E42CEE
-88BE11C7176E6BBC90D24E40956279FBDC9D89A6C4A1F4D27EC57F496602FBC4
-C854143903A53EF1188D117C49F8B6F2498B4698C25F2C5E8D8BD833206F88FC
-BD5B495EB993A26B6055BD0BBA2B3DDFD462C39E022D4A1760C845EA448DED88
-98C44BAAB85CD0423E00154C4741240EB3A2290B67144A4C80C88BE3D59AD760
-E553DAC4E8BA00B06398B1D0DFE96FB89449D4AE18CE8B27AFE75D2B84EFDB44
-143FD887F8FB364D000651912E40B0BAEDDA5AD57A3BC0E411E1AD908C77DCE3
-981985F98E258A9BB3A1B845FC4A21BCC54559E51BC0E6C22F0C38540F8C9490
-88A0E23EA504FA79F8960CC9D58611C519D3ACDC63FB2FBCAE6674357D7F2285
-4BCC9F54D3DA421D744D3A341DA3B494BB526C0734E1A8FC71501745399F7683
-FD17EC3044419A88C3979FD2ABA5B0130907B145A8462AAF0A9B511D2C8A7C7F
-347FF6AC057E6512902BFD2918E2CD31DE615F5D643764E900B60287670AE18F
-FDE15545D8BC69591A8CBBB275AFFC9B14BD68DF0AAB32268FB84844D4DBC7BB
-C591C1AC5102C50A9C7BAAA848DA88B0519F0F5F0813BF055CF0E3C86F633A04
-B779D2E8E656DB1E09A66A85FE21CA8BA5523F472A229E83F2C4E91ABA46C733
-F3C7B5775B06C97782BC225C46385BEBDC61572458EFC5CF4190AB7A9C1C92DA
-29F84BAACF552089195966E3AD9E57CC914D20B6962BE80429A16D4DF1ECAA66
-36C4343FADF0B2B48F12E2EB8443C4AA29D00949255F3968617F98B8ABD4CC12
-048B838EE243A21AC808BD295195E4AE9027005F52258BFCA915C8D9AED9A2C0
-80814F79CF943FBE3594C530A22A92E11BE80FCEC1684C4F56712D5846B0749C
-9B54A979B315222F209DEE72583B03093EC38F7C5B9F9BCB21DBE8EDDAE9BE8B
-75ACE6B12A31083AC8348EC84D1D29D2297A266284B7E9734E207DAF59A25F4E
-4AA38509E993C5394FED76E6A2F25462685C4C86C6E8CFC9863338EC1428BDFC
-74616BB1BC8948B0ED4C87C15B4405F3A7796F9DB3798FFFE8BD0A94E834817B
-D5E9812E308D0CC920470A6F2CD088FCB80462BF7CB3F039A7DF3DAF5B2B5355
-E083A385CD2EAF0FC181E40E96DD7E9AB9EF5C7E6866A13B8A54718E950FE097
-EF0951A357114F18CE9933D28B3A77AA71E3CE884661F13284BCED5D5FD1A86D
-543E588FF473DC2CF9A4DC312500135F29C2D0174B32018C8DBD40EF9A232883
-710A1F2AB2CD11312300ACDF789A9B7B93D2035D81D1C84984D92D78A53A00C6
-EDA94B24BBAC1AD17774A4E07E6F74ABD90415965616AD540C8ECD8C3A44EE4F
-7F4F6BB6238C5062D63FA59B7BF08BE93FAEA70A2AB08FBEAAF7DBF56B95FD93
-03CA406543BA6C9527D0DF01F5108D31A51778A5EB1C93F27B72B46146A353A2
-01CACBC829603B9989A87CF64528682CCBA0562A8165B185C58A5C6BB72F5E89
-500ACCAAB8ECEFBB2640E99EAEEC4EA979AA793D013D61D8ACF8784FF8D9398F
-F6A252A709324FB39509F0B3A4E725E82F53543383C6765BE556CC897C758208
-AA3AD37B0406E4A79F8F0A6C1983FC73E71CD858C0DB66ED66D5D992978614EE
-1EA91EBE191E082EBA1FC040AF19A2202575C2EBEB8058833E3520FA03D2F915
-85C1ED337E457B9FEEB0C6EF2735EFDA6E0D05FA641BCF698AC6B97751E8306C
-4DF00A39B8581FF53DB8F8525FDB196D85950906CCB59B8EF171349AA3B567B1
-6A00819947A995FB383C3C1709C9A2C113B2E40BB832B7D4A0FBA0B16A2C455F
-55809CC425C403E9668DC66BE45B71A81C332FD4DB279D22A2959962304A8F18
-085893DAC61317D24A8F198FDAB95F3B86F0AFD35047B868A9A17037A2829A02
-BAB042F75F349E197A7EED41984C2859754CAFD0251439921C248B463B516951
-2E1322C80D73F9CBCAA63A585450275AC2492E4D3FB78E800F788254DB5E610D
-CF788DF5C70FF99892BCDF16133E34B24B77C8F097F546B87C603DDB8998B66E
-BACB68BA27462AF54AA405682EC96D701F0D474DECD5F95CA2102DF639EB169E
-D518162C2BAE45FF698B6DE15FC6E7DE48C336C40A670FD26952A6BAB09115E1
-991F0073419F2CC2A1C08BE91096936AA0C37E4ED3CCCEE235476074B8FF1125
-6BDE3701F85532D8BB64CCC927CC335281C95EA689706F0AC717DC2CF680C754
-E5EFD7FA4BB8880B2B727A964C876D4A223069D4E6001771F0E23EAD2A4BBC80
-E76675297B2EF05F52BF4E71B3EE2BE3048CF088C79540113C66AE98B2FD3CB1
-B0741A215FD070882C52765009D7D711DAA2508F19AE7DDA15229A856AC49BC3
-4DDF40814FF96500E4B9B02D412E94623C5FDCC76C0FB8E42DF56A904FE49D65
-1DA7C53901B2EA71AB658A464D3ABDE27D9DB8D9E0B48F64E61A2495AD5D8DAB
-B5E72424AD017DF37964AF911BD7FA21A5EB4775DC8E95EF0C0EB856B00D89D7
-8172A1DE8530767D317B8256103E53CFB877E10686A04F5A08F8DC58D843DEBA
-FD5F40597588663D103689F6EB3EB14D06E18C8078F2538B43E712DF491FC5C6
-AF639256C8C6134B64D560D8476DEA6329D995E46CC4BC78841C59E73648B47E
-BFA7DE0846422F738454AE77E822A083405289247BD7C478BE4974F742CD6051
-E99FBB1D1B3FBABFEE855174734EE45E87D0AADF32B1283B911162A9955847FD
-38944D70584FAA6B1A7191C5C134B73F98EB632B69E2F0C0F94156787C34C8A3
-7622A029D58F9626B74F8A8A1F3803E0BC20E0EADEB1E99B70F1BD9F980FB751
-2A842843DE42EB142A84D5D3138629AE9EAF6F3479C423E8829C8816FA6EFA27
-DCE5580E65AA9854B1C64163DC318420CD993C15BFD76A8BA1182860A6B03D6D
-22B8CF43CFE6C8AB27C64842E239CAE707D3086BADDE1D7C94E3BC96319470D6
-8D26915C575CFDD03271D6BB9DE86A0EB6EEA6E768B224A626C62A9AB48A6EDB
-44F70BB5AF991CDF9736D65933E81CC57A78F623F33EC9AF535F2F25FA4EEC90
-D50DB7E87F31E971A75A33A301CA6013EEC5A4E179D695B33DADF2C98364434A
-42926776000B610E17524162253F6FA638D6581C18F99EA0BD1D2E24D2424ADF
-C05010D08192485153DD03930C7BF45237593E484F9851E6D464FA10FECA5D9E
-0C8CCC97DE029030900CDBB491C5CF226DBF903CFE7735D939C3FDF3A20B70CE
-66579B28B99313FEE914E295388C7BC8E055A2E54EA3A8206D3C8F4F7C0BA5E6
-E519419FD8CE215F7B8E9BEC604A9E3FE272A0328A24E31997C8A91E0946BCF1
-6943A97CBED2AB9FC636B49828BBB8B89E0BBC2653796431224895ABA5DAC41E
-1854BD9764E86147FD7624F736F40DE3B7582EDDFD15C2BDE3F22B5A54D7DF10
-B87A1301CE85CFC061689A890A321412A13314AE96DCD3EDA75035FDD8F4AB9B
-897A2C68263A68457032C469987970648BA2D88B1C5375DFEAA35A917B8A952E
-EE670427942AEDB3CB599C5746180E392837D371E15D860620ABDB6AA7772C40
-A5E346661673ACA530BE3D8E3FFB895E5DA3DC23B1B43C080C77F7E47847F0F3
-F3AA5CA9E4BF75FC5EBD18D19F21A7DAA3B11CABC6E4070A15F7DBC8B05EB6AA
-A02EF1B078EB66D61D6AFE41DA9B36FE7EC9EF94D1EA26282A9871E2CACB3126
-2AD49C2D9B50A6E47D8F2CCAD50992D1B430979A45FD9E76182A19964BB2A1F6
-51779A2B258DC1DF4C2F3074621286831F3848AC152DDD2BA561E6586ADA88D3
-598A2CE2CD048F027CE0008B828BD915887D7785341E8305DF2346ADB76BE99F
-87B02173BDC334E9221C8DF54114A6B24C1C5340299512FA6C8C51AB4C8778CE
-178CEF531C6D1B5FF0A1BE8EFF767F959BD4C345C52699A29A17B2A230842BF6
-4B011217D6D24EDAC3F6D53482786F1CA33169B90ECD499407D37CE9B70DDF78
-7B7547B32952535BA9ACD1E244447AE3FCED3AF28717083CF9590A09780984D6
-AF0743C82AE4FB3E2BB2856A4153A3967A023FFC35382D6C22D84A924900B6A6
-3DDD400E6D2418DA6C27F2FA34C075C902B89EBAE658B3C9A18EEE449DA5A379
-337DE95CB7AB3F0970CF1A5D8FAD8090E495570FDFB2FBBA79244780D8035547
-C5A55BB21A2270F724BF5D442CDC5BB9F09BE0CAE59B1C2270F0BDACE698F2C5
-DE8F66BFB9634904B161F5BA2B1950048300D69BABD312D58D89C4ED527AF7BA
-7DA2478EDC2CDEE3473DD8A8ED9D891CD1FC21F23013228BB3281B71FCE959BD
-6F8E9059D682A7FCC5265A0620992D4FA8D78377EB34CE3ECA070EE3707239BC
-98907DB0120CE42ABA32CF97127E28382BDDFD685674279F588D4F951216C355
-821361790F64C2CC720DE97E8ECB57326C43EE47367628E05769E106868B54F4
-C33C9951908DF6FC4F5ED2C7787BD8FA591BBB3E9C6C1DA94CC5E38D9B20C886
-7D237572FF46DD896A4D6163408EA6CEFAC398EE041EAE29D577E75326CA17A6
-B072D47A7B13EC441CE6DAA042ECD02134CBFA6809A435050413817193DAEB16
-A5882C8AEA44BCF36E74E9ECCDFE7E19FF5A5DD7A94E5AB4F8702C3DA7F42325
-23C808670A0490F5B373DADE40814FF9650241D3D69C91FBC5ECE728F827D9BF
-C928602E05477903449E079164CA39859C4BCA60C579F490AA455F82B5050BB3
-969AFB478E0D4A257B3356EA3CD62051FCE6C6B1929CFF85BFDF166BEF658E10
-3A55E007F38EBBB248B3F0B8ED1925106B499B762E45113AE1AC9DE09644C84B
-9C08034B297314EE69BC32DB6E7D7FB9913CE5AC17E7335979E9DCCE2BAB3725
-1976155551F9706A576FE0E3ADCCF72C87683291528ECB749CB0ED291966E239
-B5E3630676BD409E08F85BC1AEC9A2D4135376284A96EA24431243BD6FE8B966
-95F11A4BB53F392E0AEFEA623064FF8A7002367B0A515635CB2D2DDFB9B4A8D7
-FE721754E81BBA548848A235B91AD4E4F7DB19CCE2F61D277FC00AB956EB93BE
-44AB4970CA56BF59506C94ED160FB1E25D3DF2988A532BDB787BFB8539D22986
-FDC378AC31444E63C4727FEE121A43751043849E6DCAC5B59D0FC703AAFBBFD4
-E8B7C268F21615AD02CE9DABEFA27B5FE6A6441B619539CAB1F810F1263447AA
-633F5DAF483752EF1A0421740E3A811D2D2898CBF53E7F686C9223FD7235F02D
-6F90D2D48CC20AB87778DE3C6FB335E0F0EC20B5DC5B65223FE117526DE2C72F
-FE839DF93CB2A7D66CD900CB325F891E311BEC932F703FB4FEFA29DB8B9C88DD
-375EC71B3D58C7BC59ADA91971A3BDA1ADEA629CE6CC92BD542CDDFAA7706FB2
-6CDDE2DF07E56D6741916AE8E8744339816F3E6C38062747AA9FDA2A2678A6B7
-EFEA870AA3A4D71B25EE3013EAB1DBA34401B867C7A41AE51E0421D41D3BB83C
-E120C8FEABA6E5DEC53A689C21426D4BBCB68CB37568761C360E6D4E3596FB7D
-F4DEC7918E58C0293D12D6DDA7E9DCDAAD7C939F55CD1BC4A228B31E9A904156
-DA6B40B08E6ACE674618B768DD681C772A3E55FE096CF949CF3B0460ABDCD891
-D17B37B355B29AB5137899C036F31DA026244FA25FB798FBE5105BDA29F46538
-D3D3AC1001A7BCECE64DE94FFE6C354166A0F97256137BDFA07F6E22A3D1D2F4
-9588DBAE95E895BC5E64DDCBBAA8D0A22C229B42CB717FC711E7E9DF793DF80B
-9F14754585A3C7E17F37B32924B9F9870DA8635E3E18BD1DCD81EDF01834D9C6
-B33F23C956C2FCBFA47D84422F583459D827D1E120B97694D12F1F54D02379C0
-D288F7104F3FFCF4F76E3494F4ACBD1BE3A15543CC680924C78A473F8E311ADF
-8FE00A04C6C393DE61AD3EDA5BC031E2353076A2489391B52632387CA28A7B93
-FBB065A6EF3658AE80B1ADA47E9B2539E73A71FA75645F85ED8ECC257FB4CF26
-B6C912DE9D0F9899E70BECCB934AD32CF49A093371A9F73DE6255EBC39DE1E7F
-00D0CBDABD4D0383977E694890E71FBE5C376BE5F3A80C28987417504F515C50
-909F3D31178BB9B1D085BE514F71B910A9085BD6122DDC72A150BFE266920E49
-5661BCB4BAB51D6DEFE32B616963DBD989FCDD1637B294CE4E288655FBEFA1BF
-7F25BBF8CF17C2D5FD161A7C2CC9CC7490D9BF15A1D35B3BFA43ADE256E88BDA
-BD490D92907C57BAC408A575EC84D6AEE070148C7C9A91C03B09FDBD792E8FF0
-C0B886AAD2EDD86541E5E579359D40E3AC312ACD3D8FD49F71BD533DDF8859B1
-BAF17F1884E331DD07CEEF93B71D492AEBAADF7A263450A7A72210CE630A0D37
-BF024BDC09ACC882816B8C22C62AE38A3A8D0F6EBC2B1B2C0B8161A8B076DD5D
-4B779C0788546BB4CF57332230D237856B00D79C28A7C01D11F44B7304F69075
-94B97A745DA43D1BE561372CE611C345A843834E46AD9DDB16CABCD3FA33D6F1
-F6B5C0497F5EE5400B305CDC16A7EC286AA4D45D0EEBB9DA06AC9C5294D68EC9
-E4DC3CA2B92CE8FC0526184A86EDC7AB34D67E60AC12D9CA8FD300235EC968BA
-92C6FBDA47572BC5600F25249F60AD287CBDAE980E747FCBE7EE5CD323E733F0
-63553B494D3DDEB9CC1480B5C3BB79A28E419AA65B18CB297AB383419E890E2A
-CE6F98C9900CCB4675280A10CF060B8D220DDA1BE55DFA65715EABCC1AFAA271
-B1F8732341613E17B231231A0D24D4D7FC198AE04D89A99C4536217769C6FBD9
-5EE24A6302F97438F7C0E311C878F674B4477A5ADA3952CDE4055AC408B8174E
-86F8FB797646DFFFE0ECA25D1BAB9A9F71F3926D3D85AA63E7A8C931D71E79E0
-AF1EAC26FADE468F4FF7F3861D14C10E3BE1F9EAFD6D3A544E8108D5DAB5B180
-3950C74818BC8AF4758A108F462EF1826647A49667F5E482038C54716856D9BC
-35F29922846D2148F92F943E951D7438C73D6A60459A8003174036C64E1629CD
-155D47FD04B03C023AD67CD5A70C98AB556EEAB8C48169706E5B352F6505D580
-AC945171BFE62E81F8F500438AC3B64D857BA5BC54C2C4BBB237F8FA51296255
-E66A92A61FE13FDE781D393557EB72CEBAD86511035F775FAC39A0479CCD400F
-226709118F887F47CC2ECC8F79816D4A945B2845F50AFD62D8C9A9BBF4739496
-9E644BC9F7B04803B7EE75A09EAE94365F6F374B4FCEB0B506C76297564B9B6B
-8B812BC3A33929AA94692572B010E6210AEAA312BDFC88BF302244AB9D587A9B
-919823FD01DE12438D960944D1977800FEB49E638C32E5B188B1CA033E0C37EE
-A142F746367888AA119535F0CCAF7EAA461B790EB089D2D6962E28A398439BB7
-9C9943654D7A2D765B46BC0DD1F915327F369162E1BA1BA83110B93F442905E0
-523BFF5E279508A98568CD5CFD18FABBE9D17265A9081E7BF64155A2CE3C0DF7
-88D00671AD65654709589BAD7EA65BBA811387ABA5CA0BC3F66D3D48597A0D1D
-2C268375DF47CCF62166262AE4840AB03BF49BE67A05EF66328EC729F03CA5FF
-AD3937FC053E223303565DC771ACF32E63DFB96D5030E787961D72D02C195C66
-B48E9AF0309DC169CFE8D16E2818DA94693A18F027DEA0D916672480464F7E22
-CA6E431FE38D3FC019BDD229E064B72C545C61C6EA55984565CCA88ACB01F744
-3B4593CC8944C70F30925FB48A16342CC26D444F54CA15E5A624C4A2DAA2AEF8
-404145BBA339F2A2D6FC2F3ECE54387761CA1213C8D56FF96E37C6147CA44B84
-262EA87E7CC10D931E6B5B80D7F09813498497AA84ACB4AC69BC6C8481ED2953
-084F560D7B1CF90555E69BD2AF7C5D944E8E3506165014652462BE1BC81CA341
-E1B0725159D36DA0FFF3577D1DEBC5D91AE683FB0384
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
-%%BeginFont: CMMI12
-%!PS-AdobeFont-1.0: CMMI12 003.002
-%%Title: CMMI12
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI12.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMMI12 known{/CMMI12 findfont dup/UniqueID known{dup
-/UniqueID get 5087386 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMMI12 def
-/FontBBox {-31 -250 1026 750 }readonly def
-/UniqueID 5087386 def
-/PaintType 0 def
-/FontInfo 10 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI12.) readonly def
-/FullName (CMMI12) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-/ascent 750 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 58 /period put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
-45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
-7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
-72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
-BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
-974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
-11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBFE3573BF464E2BE
-882A715BE109B49A15C32F62CF5C10257E5EA12C24F72137EB63297C28625AC3
-2274038691582D6D75FE8F895A0813982793297E49CC9B54053BA2ABD429156A
-7FFCD7B19DAA44E2107720921B74185AE507AC33141819511A6AC20BC20FB541
-0B5AAEC5743673E9E39C1976D5E6EB4E4D8E2B31BEA302E5AF1B2FBCEC6D9E69
-987970648B9276232093695D55A806D87648B1749CB537E78BB08AA83A5001F7
-609CD1D17FFA1043EB3807AF0B596AF38C91A9675E2A53196FEF45849C95F7DC
-182A5EC0EC4435A8A4B6E1CDBF9A5AF457564EA72BF85228EB6FD244F2511F5A
-CA9B71A65D53CC06EF5F7EC3A85106139A4D312378BC22183C09A229577B793A
-1B7422611C03E84BF809F46C62CE52D3AE29CE01C32B202ACDAA5B72733EB0AE
-C31D7EF7BA88D2D14F85313F7A8B9B7A5B124B03AB923744D336C969E5CE304D
-3AD977A46664479EDEFB69F113024E761C05FA48A54072DF9E12C2F352ACB3E6
-D04F6EEFFDE209E7FA3DA22E5B1D1409461F4286B7F4F8251B44E5CB7805762E
-E129FF4A06A7458F3191926B1CAF70E32C6571AD2DC07C34FF62840896F4D200
-761B1A7FA356526D1E3AB4C542AF13623BAEB9F61B1BEEF79A9205B1FEFDAE24
-8799D516A9ACC30BC0139C63C9A0523E9D5439213B67D490C96F902958779B8F
-68BD8E9FDDCE8A3A2E35877DB6C94B7612382ED8F218EB1157D2ADD090A2448D
-10B99FBC9211C5629ED1C61C74FE93041E5AA03EA4AC3FFDA00C2B6E719CFAA4
-262FE17F66804A6B54D3669836EE4367D2A2991580C5564463C973CA0DA38AC6
-922716E13B4A807B50304B8826CEFEAA47C305FC07EB2AF25FA7945797237B16
-56CDE17AB0834F5C97E0CC5741B061C6FF3A8DD1A79B9A173B66A6A750538E26
-32FBC92E75BA15CFFE22A7302F47908547007402569158F62C29BA2956534FEA
-7DACF1E507AC309DAE8C325F2A6023D2FBD81EF42146BFCE6A16A6310A650460
-7B07BB7647C8760FADDF0DBBCD3DA6CC4645D1732DB3A22D8B76E1D2D48E4D4A
-46F4BEB80CE65F3517283A1AE08391FD1C10ED452133706BC6725AABC80107FD
-754A8BA47B0281D479F052CE26A723EFFACB79B213041A536542AB334769A2BF
-88505D82C498ABDD5A73EB539530F47CAC52825D16A969C8BB56D4A7F2830B8F
-CB63B92B576E7BD922A4B25E634751F8A3B7C4EBAFCB373EDC8B8281B1D1371A
-7844E9AD990CFF09F0D7ED73A5CF873D2D5C9E8A9923CFA31E1A4B4CCCC40760
-8B3AC8FC3C88BC08BD7407725281BB879A1A822D94997826418F1B89D303F2C0
-BE7A0102E6F529630CBF1BC5BF3E4578C164A3DDE45E62A957EF3FB7F0FBBA6B
-CA1E79A1ED195B6A11CFB345B663C5E72FA55D80476F604F6C4257B51686AE25
-8F7D159FE605DDA0AC74BAA5034F29FFFD403070013C6E2D8EF6A0990D91173B
-D5A3AEB98B64E412991505C3CB7C2CDE13C091FEB3DFBCAF30C4C19511102300
-135BD5D444BB55692013F52056908DFAB2ABFACE81A58423ACEC59344CEF7D4A
-C5A3EFFFFF70759BC3E593D878281225060B97D1BEE6B26EED90571FEAFA1812
-1115C0EEC892F5DE6FDD68321A0B3F10A2D771B79BD85476AF6018472A499A86
-07D64CFF4550866AFE590C471C80EB12CB3A989A60BC7BED39097C12D9286E39
-14C7952C4C64820B4DE44A1827B7B0B535244E93FDB80036D6332F90F95B472D
-7031E7E3819E881BD0313CFA112EB3AAE943C99C47635CCA7E34DC0306C04E5D
-2E9F60FF037EB11602BE74E8E6B711392E866E3E55D988F7C856417A2B9C186D
-639819B4786D039B77F8578EF63C088FF28BD08D8353031445C8498A8F445BC3
-D08923D32AC04BF3CAFEFCCC1E77EA894F4E846F47EF62D6841B8D8576FEAE8F
-90044626869D04D61D64D56E8C51AF8C18D6CC3FEF3B6C4F7D56FE3260354948
-10104F69B117FB8269292579A7D52FED688C663B643D8D99F13956612271073E
-1A337AED059B7A93819A28CDF01569CBEB51069D22ADAE25C47355560F402B2E
-8C9900DA82B79C64497C8494F42FABE5AC41791C2010D98FB7E593C744F250DC
-D837DB0EAA4F75D0016970F3AE8359878A08CF9A697A06C5EA945819151265B9
-1A12122B98F79185DF852257BB4798E7DC03712EA6ED34F6E6AE1476788DBC33
-9229FADB8D581BE1A63F596698DBD6DB98A092F67197A4FD4A50B648F2691875
-EE2495D6BB310078F516785A0CEC7EB6E8305FDBAEB1D15690409FE32DD9CFAE
-DBD3866FB63EBCAAB73E3E4BE5D7F3AA44793938AAF3F8341683F0790F1D46A3
-60CE083F9BEDDA22E0639A92393960F86602216FA51E2754BC2F4CD0BDECE3D8
-FFAB7E0E49613DD4956C9A10AEA798BDA1F756C755BEC12147ADECAB0FB73B7D
-203A11D84DD2AB5AA98FD38C1C2573570FD49A4924A94A106D2A7D850E793608
-FB135853E8C4204441CDBE697FD0CB330B1C3596F32D2BCBF263237EAB362D09
-DA6F531B40384DC91F30674760CA7B64BA1968F6A7FC9EBEF431A1AFC5E76D7F
-2D44DCB7F61C7F6B16196B3E8B47343F572DBA8B8B21B43E35BB6B2DD5C7982D
-244FD4304D254D6CCB5E8CF70E77F50812F41A988EEB3B26BF0F6F69BBA18077
-31134B5A5823D10FEF6201D045AEE7A24E0F25376E9FC66340C56C05F6CD810B
-724D85CC4BB8D789834A447CBBA159565D08BA5793D8599035BB5063271518E8
-F6C50E7DCE71B1D186270DDC860C6DC0CD506010EB5B1FDF6BE47A9A18CC15D7
-D657E58BED9EECAD5CE5D49F63139A39BC52C6584BB2C3264D51BD584B40F8EA
-AFCD8B83F548594386EB2B05CE803105E84931DC6E7A1398073D48E130E0D907
-CD0F1ECC3254EDF5D4DDBF44415DC9BA66C673820CDB0FDF033D59BE2B5EFCEF
-01FF9D33EDC88F8D522E07F1689D024DBCD09A16A63519E1764C8630FF36058D
-CFC07027E0ECDA01E0E85B166C613B22F587B4D355EB018BA93E92A36007B4DA
-287FF5A91F7D8A0EDF5554ACCF45AC8066E88865C5692E63EB99CAC81367B605
-8E6C19EB98EBFE0D2D161B447B9A70CDD1122C7B78A413369016E6D8481E2AE9
-9AA97B5DD0ACC9B0820F7742CEB2F46F89F3E2092621969A88DC0156B4F941A1
-6BF1546D4B136657C47B082A8A35FE96016BAF3D9679B8C32EDDD6AE6DF3BFB5
-7854074FA019707FC22BFA82299E72ADF9A980AE29A8E2434277E58B01F6B03C
-192E1E25DADD49F6E3F69799AE62B56E00B60A031BF8721DB8B2CB6D4A4C15CA
-AB1FDE010AB7DC0DDED977389B101B8E53A949222FAA126656E02817DD32B0D4
-A49516CEC2B97EA7C78FD66229B044EB92F502384BCC6CCDFFF995EABE3BB7A9
-50D5D1AED861E7D3BA8D333026C673C5762712E763E59261426044583D789C67
-A606B96F97663F92BF104CE02FBFDFC521EC0D6670B7D4F85A229F51426DE912
-3B729C4A535FB7C88D0A5E78074751B58885DD6BDD2DD9E9C83F105E8CF63DDF
-CA7DB39D0319CA7CC2E73F42747F007574DE25AE1538B4D493D22D0D5F0F80C6
-5F6FA3937C8391DE2F0116F81DB2DB0EF751EC838A7F85F163A6F48804E84B96
-8D715EF25B7E2A5CAECC558D80F421052A1D698F3B8452AC27E30A4E6226E3CE
-084C8A83ADA0818A110923CF7AC7AD4CB92AE4ABBE0A9EC1FF935FD02774C1F7
-92A278E513012AD17722A23C55EF82E18F8847B5CCE47F4FE3EC508BA563F7B2
-AE56C94285A18DED4D432FB0CEFC05A20BC17DDF9FF919C724810A8ED7358A27
-97EC93C1A13C443A91947FE1F6F528EA7B628917FA7E554A1D7B31ED46C5ABCF
-92BA57961C8876DB4041305EBB029B03D8351D5E2819FF87E97ED214D8F1CEF5
-7F7668DDE223721C0B810F4A4AC81CA4EAC86EAE546E1B15D91E626FB9A31824
-5BFF17C4E79FD56ADBF6DBF01BAF6453A81EBDCB38A5FC0FD0FF0646B3B0D199
-13E2E59A1B5CAB6DE5329BE389BA0E2A2AB55CA40B711ED746C24F1E48892E76
-6DACF7DA163CDC90CF076763008E7A899870CDED5A80758E6177BE6B93B07EB1
-5800A3BF7B9AAC3FA825CE594EF5B7546B181375FA8F37608DF17856D2F8EBD5
-6030A9E6F6BEAF224AD2AEF76D03B023E2FCB922CB8E3C6816AABB61FE6E4F83
-F21B4935102C860ECA03DBEFCA461F0E5B93E5A8D18440BCF7D1D6252A24CB6E
-A64FDAC8B67C4888519AA368D9C4A8C08C7155DF5BACD75C5196C571C3C456C4
-7CE8D90215FA6EE8CDD72C48740F7F5930EC3632DB63A9C8D2DA125088C0F05A
-9FC83D16B7F53163F4EB6FF372C6C3115F1E68EB35967D11126EDEDF0BF80817
-E68A698183B3EB0A207DB43786E1B9D289359D75AD5E465328CAA90E712C2962
-AE2A466173F2FF30EB535A6054BB0B875DC8552C16B49DF17CF84D98D35497BD
-F55E273FCBB0C735899529A69990E09149FBD2DDE64B7FA8D50AE83925DF03C8
-0B63EA158FBABB12A028803DA4B9DD6C48C0FEC469C4E730729F4BB420D5B003
-1918B4AE9CF35CFD31E8E62A44C0484E3D00143BF1D330235E821E5CFEAB4D31
-7CB4604DB1F310457FCF9075A3527279644D908DE847CCD00B6F50DBDEF91D3E
-38238CAF550FDCABA2C3A46237218DCC5A09AFAF69997E1EBDA7EFE6FC99ECC8
-5D4AFD5EE35FE2346BE79B499EC8EC436868154A947D13BC02C780EBA4B9E64F
-3026F1BF5DC1F8D64FEA1281EA40B4BC355638A3A59BD9055BCBB232FA45EA0B
-B405131B64F105814019BC55466EE78E9E9ABB62DB30EA452F7EFD7196C76A85
-15B2CFCD89922CADC0F392B0C54A231F3999AEFB53C24EB0C63B0C8A1A1ABB6B
-AAB2F93E5ECC7AB90EADA320E918106BAAFC1F8C425C617639984629018BA674
-6FF4F338AC43E23BC3740542911C058D43A49A11CB3A0CC8E3088BB5BA6048D6
-CC2AD250DE956BFBE83BB24C945C20D9C22E7105983F284EF478F9B68BFB0322
-EEB7D62802CBAAEFF1C2332159DCC7243EA40CE15C734EA905E04C476B178B82
-A08ABCB0B86A7330C75E62EE7844C9E22DDB013ADDF20AFE08122EE1B930A81D
-806A0F8CC584CB7FF5F56F9B35E5FF78FD93E7E4A40C64537464EAA275FE88F4
-461FC6A467C8A69B9A9FBC10D44AC1B753D313A8E7D97F5FAEB60F82855658D1
-4DCEE043C8FCDFD8A29DD091F3BA55874A458B2B8989F35055C72FC411382361
-9AADC717E602B48D7C9521D3971A6F7EB19D539445DDE9EFBC5B58FA9E5E426C
-172C45CDA24985FC4632287FC3B15849DEB56F5A061993AB10A6BC59868534E6
-69888175053108B77E4978D971B4EC57224C0F93EEA4C15AE92254140A94704E
-ED5666FC06C5341F643F779CC88A9E81891565C63B6F7F6286E664F4E0A48690
-356DC96F1B98026C563700772485B83BFA06435D4E0793EF822F423C93FBACA0
-E5D889D2B76771C6F0EE997A5DB43C2F6921132890406E3C33F6F159B14C5D78
-7C151BDFFDD02B697315F191B5490073EB418A4FF2A398C68D44F0CD1B87CF9C
-B52F12728B72F94D752D23151196A256908135C87991E508B8906CE2539DCA8A
-31F86809C8C6C18A09F6129BD7CDC6B37E76B648788056851F22BD3E3B5772FF
-EC01D822B57FFDB3BAE624F05531292641FD6A7E3666152D18F6C653048DD7D7
-98A942C840C4A0FA662F260B21C64214152BB86F03662A330109C5AC0A5EBA30
-C6201F558858130703DF76AF4FBBEE069BDE45C0D9467077D85FFED4F9BA9C61
-AED87D67CDCA453A6528AC5BA153E1039D9CCC556CEA5CBB542265FF54A1B208
-E0E13740E7E7C26AA00AEE909F8F3ADC2726081A744D8EF6BB711BF5F611A900
-76F91C26A338DA13A7160A9F42410CCEB3190000D963D036FDA05A29F598EF40
-8FAE6F8E7E6F50C99C3304A573501C13A00023085F057DF331E3354CBE65D573
-CAE73BF15B3B96B502E0AAF2B4A86237E98A997AAEFFF4227D5A26E8972C48E7
-761F430733E6EF8AB2D903C17FAFBFA21C25F8A0AC157D397BF3CC1AE7598F0A
-2BE4FB46B29443CE57F41FD5F91122E9D86F903E94D5B55E2BB95949C156D138
-89883BEFD634311F9280C7F028DCA6408D3A682DF5B55B9F7ABF08F019190F60
-D39E4F0E80F0594235B09A5320109638B938633A2C196E4ED2B43DCD8643C3CF
-C6123B076B7F73352F906D96FDE0FBF50CCCA432712C574D5857838BAC30B485
-D25024EB254A7EFE57D1DF0892C275CDB3DF77602F0FED0FAEBC644BCACA04B8
-B424DB125E487794CAB36E01B5E1A26F5E1E97A739AA36D77A12F5B45338EB39
-AF36CEBDED55DCBFCF497FD475FC6BAB5530AD6153C6BD982564EE8712185F1F
-D5EA7ADF4104661168A01994C1FD773A50C8AD6A3E4D332E4D59521BB8BBC6C3
-866EB4AC3EA4532477E6CBF6BBF0860031C3B916AA25E3492670EA67F55CF4FD
-207C684A0DDB6F4AD21B2909CBA71BCE2E762012B0927BA72367A6AE0AF87F73
-756C9BC85E4EDE35317E2CCCD138C02C7A8013AFDC1A48C3A4BB8EF257BDEEA7
-60E012F54D12D31D18DC59D5E526F12567B8688B4B67E16B56713870300016BD
-A3B9DA87FDC865246AF8E94316799110D86B1DDADB8A673402D4226C519C058A
-1D1E5A5778584FC28AF12819B1924060BC4F54B1054EA6AB0149E04B8C4302D4
-A56D8A347EB5D3D2A0E12CF7E35059BDB53D9FF6BD25F6D9619BC4669CFC1048
-C6C9978B8751B840F27D82A69075832BE59F55C1737CBB1220FB8FF691FDBDF3
-03BD7D225A9372AC221C38245E48320E1CCF898D9EEDD678E5B8C65B7F588321
-1A3953EEB9B39EA9A8CB72DB08C3E9234DFFF5FDF9DF804C021D57E97DA7622B
-97F4CB6E0EB640E0DC9EA15C5193F92A3A7565F4C7A4C9CC327F7CD2C44900AE
-D9E76FFE62FC37FA376E77131B566AE67C3E09DA80F198BBB995EE8FA47EEDB8
-4B467C6C7DB8AEA745CF8C56B8BE56534E9C56FCB2B7006426DFE93D728FA4CF
-94F131C549814E54ECE7C914C5FE8E4961D3437CE7475D03534B62650F551D97
-201C794AA877445DBEB11C85ADF6119B05360700F8CEDE4766E3A1D7A35CDDC7
-9ABF7C619E3868A39D1852DBE1EEAF5D7898C78323873AC005542B68C43C5000
-CC58F675EB595F87C879694751494676465891E8A897158B481F11A171CCBBD7
-29603F00210CFD7FF31FE3D273933ECC34AFBCC4108D9B76D9ECE63EA06CF939
-4799092A54A749DACB82C1424E9879672C8BC084C360014C9C1B6D5D65C68AED
-66CE329C3AD712C0A36BE7EF03FDF339CAA2E0336D387A693B1DFAB5D5164E31
-14755A158168962C9B399F8F1DF3FF5060D7464D5071058C30C572A2BC7DEE53
-84BD7614A4BEC4C84E18CF7EC81C811724463BD46CECA5FB57B0F55EAE20CC74
-6AD815D1897B037C197D2456797B992C20C70B663BF99FE28C513B4E221C8E12
-49779F8C0AE8517048ADDF7CDF0D698E3EFE60071C4997B7F5EF12B6CB65390C
-224F13FBB99FFC034C0710F05019899689B6D3350BBA65C7CE7C2AB03D81B9A5
-5F3D65E4D462DAB189006669F7390A78A1B8908A4C913B15DB8827DFF15BB9A4
-A6037DDB643103B937257A7DAB025F09D53FBBC2BCB6B0BCD8D56B2B2784E498
-1F6CF8470DCC892AD0CFE11578718948BABF9C1427084643B66BB9181094E29D
-5FBE37708E1D8A6B7518A96876844CB66954227A7A6AF28DD075A462526DD5D6
-40EECC56FA366106E55C7068997B54B7F0D03AC1AD45D28C67C7ECA99DBEDB1C
-E18A79C353113E2E05B837E703278B202112B1C69E42A69D64B62F0E7D8F7E5B
-C1F93F0F99EC20EF312046F4B0CD7DAB31E422070B629A7FA96583CF3F1519CD
-CF08806F40ACD7BB5C960F21E9DA7FB3C72CBA0801ADE83DF738A4EC94F2977D
-2B95A166BA4AE28CAD1E37FBBF49D342CDB4DF615E2C5F3076313AC517C350DE
-710F5D52DE31DF69864D29DABF14234DF13904BA4333B0D714EEA55CDD79DE45
-FF5D64259C877191547076B1C7684CD252C0337BD9DF66CDC5DBAA4F3102F2E8
-FE48385C55727B80D11F3BE0B7568AA9356FB2B180A6B1392D620DED02F0B736
-5F4399FB9D32DFBC8ED942AD311C82250DA8BFE98D65
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
%%BeginFont: CMSY10
%!PS-AdobeFont-1.0: CMSY10 003.002
%%Title: CMSY10
@@ -5437,7 +4940,6 @@ FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMSY10 def
/FontBBox {-29 -960 1116 775 }readonly def
-/UniqueID 5096651 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -5658,51 +5160,51 @@ cleartomark
TeXDict begin 40258431 52099146 1000 600 600 (history.dvi)
@start /Fa 197[21 58[{}1 74.7198 /CMMI9 rf /Fb 134[41
41 1[41 1[30 30 30 1[43 38 43 4[21 43 38 1[34 43 34 1[38
-13[43 10[58 14[38 38 38 38 38 3[38 49[{}24 74.7198 /CMR9
-rf /Fc 134[39 3[39 39 39 39 2[39 39 39 39 2[39 39 2[39
-3[39 97[{}13 74.7198 /CMSLTT10 rf /Fd 167[62 3[60 46
-2[57 1[62 76 52 1[43 1[62 65 54 1[63 60 67[{}13 83.022
-/CMR10 rf /Fe 130[39 39 39 39 39 39 39 39 39 39 39 39
-39 39 39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39
-39 1[39 39 39 1[39 2[39 39 39 39 39 1[39 1[39 1[39 2[39
-39 39 39 39 39 39 39 39 2[39 39 39 39 39 3[39 1[39 39
-39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39
-33[{}77 74.7198 /CMTT9 rf /Ff 214[35 35 40[{}2 90.9091
-/CMSS10 rf /Fg 133[52 52 52 52 52 52 52 52 52 52 52 52
-52 52 52 52 1[52 52 52 52 52 52 52 52 52 1[52 5[52 4[52
-52 52 2[52 52 4[52 52 2[52 3[52 22[52 42[{}37 99.6264
-/CMTT10 rf /Fh 134[48 48 48 1[48 48 48 48 2[48 48 1[48
-2[48 1[48 48 48 48 49[48 48 49[{}17 90.9091 /CMSLTT10
-rf /Fi 133[55 65 65 1[65 68 48 48 50 1[68 61 68 102 34
-2[34 68 61 37 56 68 55 68 60 9[127 3[68 5[116 74 2[46
-96 1[77 81 94 2[93 9[61 61 61 61 61 61 61 2[34 33[68
-12[{}41 109.091 /CMBX12 rf /Fj 134[48 48 66 48 51 35
-36 36 48 51 45 51 76 25 2[25 51 45 28 40 51 40 1[45 3[25
-1[25 1[68 4[66 51 67 2[71 68 4[33 68 2[62 3[68 14[45
-45 4[25 1[45 29[51 53 11[{}40 90.9091 /CMSL10 rf /Fk
-138[56 1[42 4[56 4[27 1[58 3[54 1[56 97[{}7 90.9091 /CMCSC10
-rf /Fl 197[25 58[{}1 90.9091 /CMMI10 rf /Fm 197[33 58[{}1
-119.552 /CMMI12 rf /Fn 134[85 85 117 85 90 63 64 66 1[90
-81 90 134 45 2[45 90 81 49 74 90 72 90 78 10[122 124
-112 3[110 1[126 1[97 2[60 126 127 101 1[124 117 115 122
-14[81 81 49[{}38 143.462 /CMBX12 rf /Fo 242[91 13[{}1
-90.9091 /CMSY10 rf /Fp 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 102 103
-1[75 100 1[92 1[105 128 81 2[50 105 106 85 88 103 97
-96 102 6[37 4[67 67 67 67 67 67 1[37 1[37 44[{}49 119.552
-/CMBX12 rf /Fq 129[48 48 48 48 48 48 1[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 2[48 1[48 48 48 48 48 48 7[48 48 48 48 48
-48 1[48 48 48 48 1[48 48 48 48 48 48 33[{}70 90.9091
-/CMTT10 rf /Fr 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 /Fs 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
+13[43 10[58 14[38 38 38 5[38 49[{}22 74.7198 /CMR9 rf
+/Fc 134[39 3[39 39 39 39 2[39 39 39 39 2[39 39 2[39 3[39
+97[{}13 74.7198 /CMSLTT10 rf /Fd 167[62 3[60 46 2[57
+1[62 76 52 1[43 1[62 65 54 1[63 60 67[{}13 83.022 /CMR10
+rf /Fe 130[39 39 39 39 39 39 39 39 39 39 39 39 39 39
+39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39 39 1[39
+39 39 1[39 2[39 39 39 39 39 1[39 1[39 1[39 2[39 39 39
+39 39 39 39 39 39 2[39 39 39 39 39 3[39 1[39 39 39 39
+39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 33[{}77
+74.7198 /CMTT9 rf /Ff 134[53 53 72 53 55 39 39 39 53
+55 50 55 83 28 2[28 55 50 30 44 55 44 1[50 7[75 4[72
+55 73 2[77 75 4[36 75 2[68 3[75 20[28 1[50 29[55 58 11[{}36
+99.6264 /CMSL10 rf /Fg 214[35 35 40[{}2 90.9091 /CMSS10
+rf /Fh 133[52 52 52 52 52 52 52 52 52 52 52 52 52 52
+52 52 1[52 52 52 52 52 52 52 52 52 1[52 5[52 4[52 52
+52 2[52 52 4[52 52 2[52 3[52 22[52 42[{}37 99.6264 /CMTT10
+rf /Fi 134[48 48 48 1[48 48 48 48 2[48 48 1[48 2[48 1[48
+48 48 48 49[48 48 49[{}17 90.9091 /CMSLTT10 rf /Fj 133[55
+65 65 1[65 68 48 48 50 1[68 61 68 102 34 2[34 68 61 37
+56 68 55 68 60 9[127 3[68 5[116 74 2[46 96 1[77 81 94
+2[93 9[61 61 61 61 61 61 61 2[34 33[68 12[{}41 109.091
+/CMBX12 rf /Fk 134[48 48 66 48 51 35 36 36 48 51 45 51
+76 25 2[25 51 45 28 40 51 40 1[45 3[25 1[25 40[45 45
+6[45 29[51 53 11[{}29 90.9091 /CMSL10 rf /Fl 138[56 1[42
+4[56 4[27 1[58 3[54 1[56 97[{}7 90.9091 /CMCSC10 rf /Fm
+134[85 85 117 85 90 63 64 66 1[90 81 90 134 45 2[45 90
+81 49 74 90 72 90 78 10[122 124 112 3[110 1[126 1[97
+2[60 126 127 101 1[124 117 115 122 14[81 81 49[{}38 143.462
+/CMBX12 rf /Fn 242[91 13[{}1 90.9091 /CMSY10 rf /Fo 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 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 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 1[48
+48 48 48 48 48 33[{}71 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
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
@@ -5716,702 +5218,634 @@ ifelse
end
%%EndSetup
%%Page: 1 1
-TeXDict begin 1 0 bop 150 1318 a Fs(GNU)65 b(History)h(Library)p
-150 1418 3600 34 v 1920 1515 a Fr(Edition)31 b(6.3,)h(for)e
-Fq(History)e(Library)h Fr(V)-8 b(ersion)31 b(6.3.)3218
-1623 y(Jan)m(uary)f(2014)150 4935 y Fp(Chet)45 b(Ramey)-11
+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(7.0,)h(for)e
+Fp(History)e(Library)h Fq(V)-8 b(ersion)31 b(7.0.)3367
+1623 y(July)f(2016)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 Fr(This)23 b(do)s(cumen)m(t)h(describ)
-s(es)f(the)h(GNU)g(History)g(library)g(\(v)m(ersion)g(6.3,)j(6)d(Jan)m
-(uary)f(2014\),)28 b(a)c(program-)150 4523 y(ming)38
-b(to)s(ol)h(that)f(pro)m(vides)g(a)g(consisten)m(t)i(user)d(in)m
-(terface)i(for)f(recalling)h(lines)g(of)f(previously)f(t)m(yp)s(ed)150
-4633 y(input.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577
-4767 y Fo(\015)30 b Fr(1988{2014)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)31 b(do)s(cumen)m(t)h(describ)
+s(es)f(the)h(GNU)h(History)f(library)g(\(v)m(ersion)g(7.0,)i(16)f(July)
+e(2016\),)k(a)d(program-)150 4523 y(ming)38 b(to)s(ol)h(that)f(pro)m
+(vides)g(a)g(consisten)m(t)i(user)d(in)m(terface)i(for)f(recalling)h
+(lines)g(of)f(previously)f(t)m(yp)s(ed)150 4633 y(input.)150
+4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767 y Fn(\015)30
+b Fq(1988{2016)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h
+(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s
+(cumen)m(t)f(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
+b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
+b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43
+b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8
+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
%%Page: -1 3
-TeXDict begin -1 2 bop 3725 -116 a Fr(i)150 299 y Fn(T)-13
-b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y Fp(1)135 b(Using)45
-b(History)h(In)l(teractiv)l(ely)25 b Fm(:)d(:)d(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)69 b Fp(1)275
-778 y Fr(1.1)92 b(History)31 b(Expansion)26 b Fl(:)15
-b(:)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(:)h(:)f(:)57 b Fr(1)399 888
-y(1.1.1)93 b(Ev)m(en)m(t)31 b(Designators)15 b Fl(:)j(:)d(:)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
-(:)46 b Fr(1)399 997 y(1.1.2)93 b(W)-8 b(ord)31 b(Designators)22
-b Fl(:)17 b(:)e(:)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(:)f(:)h(:)52 b Fr(2)399 1107 y(1.1.3)93
-b(Mo)s(di\014ers)12 b Fl(:)j(:)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(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)42 b Fr(2)150 1349 y Fp(2)135 b(Programming)46
-b(with)f(GNU)g(History)35 b Fm(:)20 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f
-(:)h(:)f(:)g(:)79 b Fp(4)275 1486 y Fr(2.1)92 b(In)m(tro)s(duction)30
-b(to)h(History)10 b Fl(:)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(:)40 b
-Fr(4)275 1596 y(2.2)92 b(History)31 b(Storage)24 b Fl(:)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(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)54 b
-Fr(4)275 1705 y(2.3)92 b(History)31 b(F)-8 b(unctions)20
-b Fl(:)c(:)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(:)f(:)h(:)50 b Fr(5)399
-1815 y(2.3.1)93 b(Initializing)32 b(History)f(and)f(State)h(Managemen)m
-(t)11 b Fl(:)17 b(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)h(:)f(:)41 b Fr(5)399 1924 y(2.3.2)93 b(History)31
-b(List)f(Managemen)m(t)11 b Fl(:)18 b(:)d(:)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(:)41 b Fr(5)399 2034 y(2.3.3)93
-b(Information)30 b(Ab)s(out)g(the)g(History)h(List)13
-b Fl(:)k(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)f(:)g(:)44 b Fr(6)399 2144 y(2.3.4)93
-b(Mo)m(ving)32 b(Around)d(the)h(History)h(List)16 b Fl(:)g(:)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(:)46 b Fr(6)399 2253 y(2.3.5)93 b(Searc)m(hing)31
-b(the)f(History)h(List)17 b Fl(:)f(:)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(:)47 b Fr(7)399 2363 y(2.3.6)93 b(Managing)32
-b(the)e(History)h(File)14 b Fl(:)j(:)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(:)44 b Fr(7)399 2472 y(2.3.7)93 b(History)31
-b(Expansion)10 b Fl(:)k(:)i(:)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(:)40 b Fr(8)275
-2582 y(2.4)92 b(History)31 b(V)-8 b(ariables)11 b Fl(:)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(:)f(:)41 b Fr(8)275
-2692 y(2.5)92 b(History)31 b(Programming)f(Example)13
-b Fl(:)j(:)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(:)43
-b Fr(10)150 2934 y Fp(App)t(endix)h(A)160 b(GNU)45 b(F)-11
-b(ree)45 b(Do)t(cumen)l(tation)h(License)446 3067 y Fm(:)20
-b(:)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(:)f(:)h(:)f(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)72 b
-Fp(12)150 3337 y(App)t(endix)44 b(B)166 b(Concept)45
-b(Index)24 b Fm(:)19 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)h(:)68 b Fp(20)150 3606 y(App)t(endix)44
-b(C)165 b(F)-11 b(unction)44 b(and)g(V)-11 b(ariable)46
-b(Index)34 b Fm(:)19 b(:)h(:)f(:)79 b Fp(21)p eop end
+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 150 -116 a Fr(Chapter)30 b(1:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)2016 b(1)150
-299 y Fn(1)80 b(Using)53 b(History)g(In)l(teractiv)l(ely)150
-551 y Fr(This)42 b(c)m(hapter)h(describ)s(es)f(ho)m(w)g(to)h(use)g(the)
-f Fk(gnu)h Fr(History)g(Library)e(in)m(teractiv)m(ely)-8
-b(,)50 b(from)42 b(a)h(user's)150 661 y(standp)s(oin)m(t.)76
+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 549 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 659 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 Fk(gnu)150
-770 y Fr(History)36 b(Library)e(in)h(y)m(our)f(o)m(wn)i(programs,)g
+b(F)-8 b(or)43 b(information)f(on)g(using)g(the)g Fl(gnu)150
+769 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
-880 y(page)31 b(4.)150 1121 y Fp(1.1)68 b(History)46
-b(Expansion)150 1281 y Fr(The)f(History)h(library)e(pro)m(vides)i(a)f
+878 y(page)31 b(4.)150 1127 y Fo(1.1)68 b(History)46
+b(Expansion)150 1287 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 1390 y(expansion)g(pro)m(vided)f(b)m(y)h
-Fq(csh)p Fr(.)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 1500 y(history)30 b(information.)275
-1640 y(History)h(expansions)f(in)m(tro)s(duce)g(w)m(ords)g(from)g(the)h
+(history)150 1396 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 1506 y(history)30 b(information.)275
+1646 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
-1750 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g(the)h(argumen)
+1755 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
-1860 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g
-(quic)m(kly)-8 b(.)275 2000 y(History)37 b(expansion)f(tak)m(es)i
+1865 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g
+(quic)m(kly)-8 b(.)275 2005 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 2110 y(the)42
+(determine)g(whic)m(h)f(line)h(from)150 2115 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
-2219 y(that)31 b(line)g(for)f(inclusion)h(in)m(to)g(the)g(curren)m(t)f
+2224 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 2329 y Fj(ev)m(en)m(t)p Fr(,)e(and)c(the)i(p)s
+(called)h(the)150 2334 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 Fj(w)m(ords)p Fr(.)39 b(V)-8 b(arious)28 b
-Fj(mo)s(di\014ers)150 2438 y Fr(are)33 b(a)m(v)-5 b(ailable)36
+(called)g Fk(w)m(ords)p Fq(.)39 b(V)-8 b(arious)28 b
+Fk(mo)s(di\014ers)150 2443 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
-2548 y(fashion)23 b(that)g(Bash)g(do)s(es,)h(so)f(that)h(sev)m(eral)g
+2553 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 2658 y(History)37 b(expansions)g(are)g(in)m(tro)s(duced)f(b)m
+(ord.)150 2662 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 2767 y(whic)m(h)30 b(is)h(`)p Fq(!)p Fr(')f(b)m(y)g
-(default.)150 2972 y Fi(1.1.1)63 b(Ev)m(en)m(t)39 b(Designators)150
-3119 y Fr(An)32 b(ev)m(en)m(t)j(designator)e(is)g(a)g(reference)g(to)h
+(haracter,)150 2772 y(whic)m(h)30 b(is)h(`)p Fp(!)p Fq(')f(b)m(y)g
+(default.)150 2977 y Fj(1.1.1)63 b(Ev)m(en)m(t)39 b(Designators)150
+3124 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 3229 y(reference)e(is)f(absolute,)i(ev)m(en)m(ts)
+b(Unless)33 b(the)150 3233 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 3397 y Fq(!)432 b Fr(Start)34 b(a)f(history)h
+(history)f(list.)150 3401 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 3507 y(the)e(line,)g(or)f(`)p
-Fq(=)p Fr('.)150 3672 y Fq(!)p Fh(n)384 b Fr(Refer)30
-b(to)i(command)e(line)g Fj(n)p Fr(.)150 3838 y Fq(!-)p
-Fh(n)336 b Fr(Refer)30 b(to)i(the)e(command)g Fj(n)g
-Fr(lines)h(bac)m(k.)150 4003 y Fq(!!)384 b Fr(Refer)30
+(tab,)f(the)g(end)f(of)630 3511 y(the)e(line,)g(or)f(`)p
+Fp(=)p Fq('.)150 3675 y Fp(!)p Fi(n)384 b Fq(Refer)30
+b(to)i(command)e(line)g Fk(n)p Fq(.)150 3840 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 4005 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 Fq(!-1)p Fr('.)150 4169 y Fq(!)p Fh(string)144
-b Fr(Refer)25 b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)g
+(for)g(`)p Fp(!-1)p Fq('.)150 4170 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
-4278 y(list)31 b(starting)g(with)f Fj(string)p Fr(.)150
-4444 y Fq(!?)p Fh(string)p Fq([?])630 4553 y Fr(Refer)25
+4280 y(list)31 b(starting)g(with)f Fk(string)p Fq(.)150
+4445 y Fp(!?)p Fi(string)p Fp([?])630 4554 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 4663 y(list)32
-b(con)m(taining)i Fj(string)p Fr(.)45 b(The)31 b(trailing)i(`)p
-Fq(?)p Fr(')f(ma)m(y)g(b)s(e)f(omitted)i(if)f(the)g Fj(string)39
-b Fr(is)32 b(follo)m(w)m(ed)630 4772 y(immediately)g(b)m(y)e(a)h
-(newline.)150 4938 y Fq(^)p Fh(string1)p Fq(^)p Fh(string2)p
-Fq(^)630 5047 y Fr(Quic)m(k)h(Substitution.)44 b(Rep)s(eat)32
-b(the)g(last)h(command,)f(replacing)g Fj(string1)40 b
-Fr(with)31 b Fj(string2)p Fr(.)630 5157 y(Equiv)-5 b(alen)m(t)31
-b(to)g Fq(!!:s/)p Fh(string1)p Fq(/)p Fh(string2)p Fq(/)p
-Fr(.)150 5322 y Fq(!#)384 b Fr(The)30 b(en)m(tire)h(command)f(line)h(t)
+g(p)s(osition)g(in)g(the)g(history)630 4664 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 4773 y(immediately)g(b)m(y)e(a)h
+(newline.)150 4938 y Fp(^)p Fi(string1)p Fp(^)p Fi(string2)p
+Fp(^)630 5048 y Fq(Quic)m(k)h(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 5157 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 5322 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.)p eop end
%%Page: 2 5
-TeXDict begin 2 4 bop 150 -116 a Fr(Chapter)30 b(1:)41
+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
-299 y Fi(1.1.2)63 b(W)-10 b(ord)41 b(Designators)150
-446 y Fr(W)-8 b(ord)27 b(designators)h(are)g(used)e(to)i(select)h
+299 y Fj(1.1.2)63 b(W)-10 b(ord)41 b(Designators)150
+446 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 Fq(:)p Fr(')g(separates)h(the)f(ev)m(en)m(t)150
+b(`)p Fp(:)p Fq(')g(separates)h(the)f(ev)m(en)m(t)150
555 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 665 y(with)30 b(a)g(`)p Fq(^)p Fr(',)g(`)p
-Fq($)p Fr(',)g(`)p Fq(*)p Fr(',)h(`)p Fq(-)p Fr(',)f(or)g(`)p
-Fq(\045)p Fr('.)41 b(W)-8 b(ords)30 b(are)g(n)m(um)m(b)s(ered)e(from)i
+(b)s(egins)150 665 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
775 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 884 y(single)h(spaces.)275 1026
-y(F)-8 b(or)31 b(example,)150 1197 y Fq(!!)384 b Fr(designates)37
+y(F)-8 b(or)31 b(example,)150 1197 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 1307 y(mand)30 b(is)g(rep)s(eated)g
-(in)g(toto.)150 1474 y Fq(!!:$)288 b Fr(designates)23
+(in)g(toto.)150 1474 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 1583 y(to)31
-b Fq(!$)p Fr(.)150 1750 y Fq(!fi:2)240 b Fr(designates)30
+b Fp(!$)p Fq(.)150 1750 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 1860 y(letters)j Fq(fi)p Fr(.)275
+(starting)h(with)f(the)630 1860 y(letters)j Fp(fi)p Fq(.)275
2031 y(Here)e(are)h(the)g(w)m(ord)f(designators:)150
-2202 y Fq(0)g(\(zero\))114 b Fr(The)30 b Fq(0)p Fr(th)g(w)m(ord.)40
+2202 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 2369 y Fh(n)432 b Fr(The)30 b Fj(n)p Fr(th)g(w)m(ord.)150
-2536 y Fq(^)432 b Fr(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m
-(ord)g(1.)150 2703 y Fq($)432 b Fr(The)30 b(last)h(argumen)m(t.)150
-2870 y Fq(\045)432 b Fr(The)30 b(w)m(ord)g(matc)m(hed)h(b)m(y)f(the)h
-(most)g(recen)m(t)g(`)p Fq(?)p Fh(string)p Fq(?)p Fr(')e(searc)m(h.)150
-3037 y Fh(x)p Fq(-)p Fh(y)336 b Fr(A)30 b(range)h(of)g(w)m(ords;)f(`)p
-Fq(-)p Fh(y)p Fr(')g(abbreviates)h(`)p Fq(0-)p Fh(y)p
-Fr('.)150 3204 y Fq(*)432 b Fr(All)28 b(of)g(the)g(w)m(ords,)g(except)h
-(the)e Fq(0)p Fr(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for)h(`)p
-Fq(1-$)p Fr('.)39 b(It)28 b(is)g(not)g(an)f(error)630
-3313 y(to)j(use)g(`)p Fq(*)p Fr(')f(if)h(there)g(is)g(just)f(one)h(w)m
+(w)m(ord.)150 2369 y Fi(n)432 b Fq(The)30 b Fk(n)p Fq(th)g(w)m(ord.)150
+2536 y Fp(^)432 b Fq(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m
+(ord)g(1.)150 2703 y Fp($)432 b Fq(The)30 b(last)h(argumen)m(t.)150
+2870 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
+3037 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 3204 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
+3313 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 3423 y(that)j(case.)150 3590 y Fh(x)p
-Fq(*)384 b Fr(Abbreviates)31 b(`)p Fh(x)p Fq(-$)p Fr(')150
-3757 y Fh(x)p Fq(-)384 b Fr(Abbreviates)31 b(`)p Fh(x)p
-Fq(-$)p Fr(')f(lik)m(e)h(`)p Fh(x)p Fq(*)p Fr(',)g(but)f(omits)h(the)f
+(returned)e(in)630 3423 y(that)j(case.)150 3590 y Fi(x)p
+Fp(*)384 b Fq(Abbreviates)31 b(`)p Fi(x)p Fp(-$)p Fq(')150
+3757 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 3928 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 4038 y(is)d(used)g(as)h(the)f(ev)m(en)m(t.)150
-4244 y Fi(1.1.3)63 b(Mo)s(di\014ers)150 4391 y Fr(After)29
+4244 y Fj(1.1.3)63 b(Mo)s(di\014ers)150 4391 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
4501 y(mo)s(di\014ers,)h(eac)m(h)j(preceded)e(b)m(y)g(a)h(`)p
-Fq(:)p Fr('.)150 4672 y Fq(h)432 b Fr(Remo)m(v)m(e)32
+Fp(:)p Fq('.)150 4672 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 4839 y Fq(t)432 b Fr(Remo)m(v)m(e)32 b(all)f(leading)h
+h(head.)150 4839 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
-5006 y Fq(r)432 b Fr(Remo)m(v)m(e)32 b(a)f(trailing)g(su\016x)f(of)g
-(the)h(form)f(`)p Fq(.)p Fh(suffix)p Fr(',)f(lea)m(ving)j(the)f
-(basename.)150 5173 y Fq(e)432 b Fr(Remo)m(v)m(e)32 b(all)f(but)f(the)h
-(trailing)g(su\016x.)150 5340 y Fq(p)432 b Fr(Prin)m(t)30
+5006 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 5173 y Fp(e)432 b Fq(Remo)m(v)m(e)32 b(all)f(but)f(the)h
+(trailing)g(su\016x.)150 5340 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.)p
eop end
%%Page: 3 6
-TeXDict begin 3 5 bop 150 -116 a Fr(Chapter)30 b(1:)41
+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 Fq(s/)p Fh(old)p Fq(/)p Fh(new)p Fq(/)630 408 y
-Fr(Substitute)32 b Fj(new)40 b Fr(for)32 b(the)h(\014rst)f(o)s
-(ccurrence)h(of)f Fj(old)37 b Fr(in)32 b(the)h(ev)m(en)m(t)h(line.)48
+299 y Fp(s/)p Fi(old)p Fp(/)p Fi(new)p Fp(/)630 408 y
+Fq(Substitute)32 b 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 518 y(ma)m(y)25 b(b)s(e)g(used)f(in)g
-(place)i(of)f(`)p Fq(/)p Fr('.)39 b(The)24 b(delimiter)h(ma)m(y)h(b)s
-(e)e(quoted)h(in)f Fj(old)29 b Fr(and)24 b Fj(new)32
-b Fr(with)25 b(a)630 628 y(single)k(bac)m(kslash.)40
-b(If)28 b(`)p Fq(&)p Fr(')g(app)s(ears)g(in)f Fj(new)p
-Fr(,)i(it)f(is)h(replaced)f(b)m(y)g Fj(old)p Fr(.)40
+(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 628 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 737 y(will)35 b(quote)g(the)g(`)p
-Fq(&)p Fr('.)54 b(The)34 b(\014nal)g(delimiter)i(is)e(optional)i(if)f
+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 847 y(the)31
-b(input)e(line.)150 1006 y Fq(&)432 b Fr(Rep)s(eat)31
-b(the)f(previous)g(substitution.)150 1166 y Fq(g)150
-1275 y(a)432 b Fr(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f(applied)h(o)m(v)
+b(input)e(line.)150 1006 y Fp(&)432 b Fq(Rep)s(eat)31
+b(the)f(previous)g(substitution.)150 1166 y Fp(g)150
+1275 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 1385 y(with)30 b(`)p Fq(s)p Fr(',)h(as)f(in)h
-Fq(gs/)p Fh(old)p Fq(/)p Fh(new)p Fq(/)p Fr(,)c(or)j(with)h(`)p
-Fq(&)p Fr('.)150 1544 y Fq(G)432 b Fr(Apply)30 b(the)g(follo)m(wing)i
-(`)p Fq(s)p Fr(')f(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m(ord)e(in)g
+b(in)f(conjunction)630 1385 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 1544 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
%%Page: 4 7
-TeXDict begin 4 6 bop 150 -116 a Fr(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(History)1780 b(4)150
-299 y Fn(2)80 b(Programming)54 b(with)f(GNU)h(History)150
-523 y Fr(This)41 b(c)m(hapter)i(describ)s(es)e(ho)m(w)h(to)h(in)m
-(terface)g(programs)f(that)g(y)m(ou)h(write)f(with)f(the)i
-Fk(gnu)e Fr(History)150 632 y(Library)-8 b(.)48 b(It)33
-b(should)e(b)s(e)i(considered)f(a)h(tec)m(hnical)i(guide.)48
-b(F)-8 b(or)34 b(information)f(on)g(the)g(in)m(teractiv)m(e)i(use)150
-742 y(of)c Fk(gnu)f Fr(History)-8 b(,)31 b(see)g(Chapter)f(1)h([Using)g
-(History)g(In)m(teractiv)m(ely],)i(page)e(1.)150 970
-y Fp(2.1)68 b(In)l(tro)t(duction)45 b(to)g(History)150
-1130 y Fr(Man)m(y)31 b(programs)f(read)g(input)g(from)f(the)i(user)f(a)
-g(line)h(at)g(a)g(time.)41 b(The)30 b Fk(gnu)g Fr(History)h(library)f
-(is)g(able)150 1239 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 1349 y(from)g(previous)g(lines)g(in)g(comp)s
-(osing)h(new)f(ones.)275 1481 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 1591 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 1701 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
-1810 y(the)c(list)g(directly)-8 b(.)43 b(In)30 b(addition,)h(a)g
-(history)g Fj(expansion)g Fr(function)f(is)h(a)m(v)-5
-b(ailable)33 b(whic)m(h)d(pro)m(vides)h(for)g(a)150 1920
-y(consisten)m(t)h(user)d(in)m(terface)j(across)f(di\013eren)m(t)g
-(programs.)275 2052 y(The)c(user)g(using)g(programs)h(written)g(with)g
-(the)g(History)g(library)g(has)f(the)h(b)s(ene\014t)f(of)h(a)h
-(consisten)m(t)150 2162 y(user)38 b(in)m(terface)j(with)e(a)g(set)g(of)
-h(w)m(ell-kno)m(wn)f(commands)g(for)g(manipulating)g(the)g(text)h(of)f
-(previous)150 2271 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 2381 y(similar)j(to)g(the)f(history)h(substitution)f(pro)m
-(vided)g(b)m(y)g Fq(csh)p Fr(.)275 2514 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 2623
+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
+b(c)m(hapter)i(describ)s(es)e(ho)m(w)h(to)h(in)m(terface)g(programs)f
+(that)g(y)m(ou)h(write)f(with)f(the)i Fl(gnu)e Fq(History)150
+654 y(Library)-8 b(.)48 b(It)33 b(should)e(b)s(e)i(considered)f(a)h
+(tec)m(hnical)i(guide.)48 b(F)-8 b(or)34 b(information)f(on)g(the)g(in)
+m(teractiv)m(e)i(use)150 763 y(of)c Fl(gnu)f Fq(History)-8
+b(,)31 b(see)g(Chapter)f(1)h([Using)g(History)g(In)m(teractiv)m(ely],)i
+(page)e(1.)150 1010 y Fo(2.1)68 b(In)l(tro)t(duction)45
+b(to)g(History)150 1169 y Fq(Man)m(y)31 b(programs)f(read)g(input)g
+(from)f(the)i(user)f(a)g(line)h(at)g(a)g(time.)41 b(The)30
+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
+(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
+Fq(function)f(is)h(a)m(v)-5 b(ailable)33 b(whic)m(h)d(pro)m(vides)h
+(for)g(a)150 1965 y(consisten)m(t)h(user)d(in)m(terface)j(across)f
+(di\013eren)m(t)g(programs.)275 2103 y(The)c(user)g(using)g(programs)h
+(written)g(with)g(the)g(History)g(library)g(has)f(the)h(b)s(ene\014t)f
+(of)h(a)h(consisten)m(t)150 2213 y(user)38 b(in)m(terface)j(with)e(a)g
+(set)g(of)h(w)m(ell-kno)m(wn)f(commands)g(for)g(manipulating)g(the)g
+(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 2756
+b(an)m(tage)32 b(of)f(command)f(line)g(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
-2865 y(other)29 b(co)s(de,)g(an)g(application)h(writer)f(should)e
-(include)i(the)g(\014le)f Fq(<readline/history.h>)23
-b Fr(in)29 b(an)m(y)g(\014le)150 2975 y(that)c(uses)e(the)h(History)h
+2928 y(other)29 b(co)s(de,)g(an)g(application)h(writer)f(should)e
+(include)i(the)g(\014le)f Fp(<readline/history.h>)23
+b Fq(in)29 b(an)m(y)g(\014le)150 3037 y(that)c(uses)e(the)h(History)h
(library's)e(features.)39 b(It)24 b(supplies)f(extern)h(declarations)i
-(for)d(all)i(of)f(the)g(library's)150 3084 y(public)30
+(for)d(all)i(of)f(the)g(library's)150 3147 y(public)30
b(functions)g(and)f(v)-5 b(ariables,)32 b(and)d(declares)j(all)f(of)f
-(the)h(public)f(data)h(structures.)150 3313 y Fp(2.2)68
-b(History)46 b(Storage)150 3472 y Fr(The)30 b(history)g(list)h(is)g(an)
+(the)h(public)f(data)h(structures.)150 3393 y Fo(2.2)68
+b(History)46 b(Storage)150 3553 y Fq(The)30 b(history)g(list)h(is)g(an)
f(arra)m(y)h(of)f(history)h(en)m(tries.)41 b(A)31 b(history)f(en)m(try)
-h(is)f(declared)h(as)f(follo)m(ws:)390 3605 y Fq(typedef)46
-b(void)g(*histdata_t;)390 3824 y(typedef)g(struct)g(_hist_entry)f({)485
-3933 y(char)i(*line;)485 4043 y(char)g(*timestamp;)485
-4153 y(histdata_t)e(data;)390 4262 y(})i(HIST_ENTRY;)275
-4395 y Fr(The)29 b(history)i(list)g(itself)g(migh)m(t)g(therefore)g(b)s
-(e)f(declared)g(as)390 4527 y Fq(HIST_ENTRY)45 b(**the_history_list;)
-275 4660 y Fr(The)29 b(state)j(of)f(the)f(History)h(library)f(is)h
+h(is)f(declared)h(as)f(follo)m(ws:)390 3691 y Fp(typedef)46
+b(void)g(*histdata_t;)390 3910 y(typedef)g(struct)g(_hist_entry)f({)485
+4020 y(char)i(*line;)485 4129 y(char)g(*timestamp;)485
+4239 y(histdata_t)e(data;)390 4349 y(})i(HIST_ENTRY;)275
+4487 y Fq(The)29 b(history)i(list)g(itself)g(migh)m(t)g(therefore)g(b)s
+(e)f(declared)g(as)390 4625 y Fp(HIST_ENTRY)45 b(**the_history_list;)
+275 4763 y Fq(The)29 b(state)j(of)f(the)f(History)h(library)f(is)h
(encapsulated)g(in)m(to)g(a)g(single)g(structure:)390
-4792 y Fq(/*)438 4902 y(*)47 b(A)h(structure)d(used)i(to)g(pass)f
+4902 y Fp(/*)438 5011 y(*)47 b(A)h(structure)d(used)i(to)g(pass)f
(around)g(the)h(current)f(state)h(of)g(the)g(history.)438
-5011 y(*/)390 5121 y(typedef)f(struct)g(_hist_state)f({)485
-5230 y(HIST_ENTRY)g(**entries;)g(/*)j(Pointer)d(to)j(the)f(entries)e
-(themselves.)g(*/)485 5340 y(int)i(offset;)523 b(/*)48
-b(The)f(location)e(pointer)h(within)g(this)h(array.)f(*/)p
-eop end
+5121 y(*/)390 5230 y(typedef)f(struct)g(_hist_state)f({)485
+5340 y(HIST_ENTRY)g(**entries;)g(/*)j(Pointer)d(to)j(the)f(entries)e
+(themselves.)g(*/)p eop end
%%Page: 5 8
-TeXDict begin 5 7 bop 150 -116 a Fr(Chapter)30 b(2:)41
+TeXDict begin 5 7 bop 150 -116 a Fq(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(History)1780 b(5)485
-299 y Fq(int)47 b(length;)523 b(/*)48 b(Number)e(of)h(elements)e
-(within)i(this)f(array.)g(*/)485 408 y(int)h(size;)619
-b(/*)48 b(Number)e(of)h(slots)f(allocated)g(to)h(this)f(array.)g(*/)485
-518 y(int)h(flags;)390 628 y(})g(HISTORY_STATE;)275 764
-y Fr(If)29 b(the)i(\015ags)g(mem)m(b)s(er)e(includes)h
-Fq(HS_STIFLED)p Fr(,)e(the)j(history)f(has)g(b)s(een)g(sti\015ed.)150
-1000 y Fp(2.3)68 b(History)46 b(F)-11 b(unctions)150
-1160 y Fr(This)33 b(section)j(describ)s(es)d(the)i(calling)g(sequence)g
-(for)f(the)g(v)-5 b(arious)34 b(functions)g(exp)s(orted)g(b)m(y)g(the)g
-Fk(gnu)150 1269 y Fr(History)d(library)-8 b(.)150 1471
-y Fi(2.3.1)63 b(Initializing)40 b(History)i(and)f(State)f(Managemen)m
-(t)150 1618 y Fr(This)21 b(section)i(describ)s(es)f(functions)f(used)g
-(to)i(initialize)h(and)e(manage)h(the)f(state)h(of)g(the)f(History)g
-(library)150 1727 y(when)29 b(y)m(ou)i(w)m(an)m(t)g(to)g(use)f(the)h
-(history)f(functions)g(in)g(y)m(our)h(program.)3350 1916
-y([F)-8 b(unction])-3599 b Fg(void)54 b(using_history)49
-b Ff(\()p Fj(v)m(oid)p Ff(\))390 2026 y Fr(Begin)41 b(a)f(session)g(in)
+299 y Fp(int)47 b(offset;)523 b(/*)48 b(The)f(location)e(pointer)h
+(within)g(this)h(array.)f(*/)485 408 y(int)h(length;)523
+b(/*)48 b(Number)e(of)h(elements)e(within)i(this)f(array.)g(*/)485
+518 y(int)h(size;)619 b(/*)48 b(Number)e(of)h(slots)f(allocated)g(to)h
+(this)f(array.)g(*/)485 628 y(int)h(flags;)390 737 y(})g
+(HISTORY_STATE;)275 869 y Fq(If)29 b(the)i(\015ags)g(mem)m(b)s(er)e
+(includes)h Fp(HS_STIFLED)p Fq(,)e(the)j(history)f(has)g(b)s(een)g
+(sti\015ed.)150 1106 y Fo(2.3)68 b(History)46 b(F)-11
+b(unctions)150 1265 y Fq(This)33 b(section)j(describ)s(es)d(the)i
+(calling)g(sequence)g(for)f(the)g(v)-5 b(arious)34 b(functions)g(exp)s
+(orted)g(b)m(y)g(the)g Fl(gnu)150 1375 y Fq(History)d(library)-8
+b(.)150 1569 y Fj(2.3.1)63 b(Initializing)40 b(History)i(and)f(State)f
+(Managemen)m(t)150 1716 y Fq(This)21 b(section)i(describ)s(es)f
+(functions)f(used)g(to)i(initialize)h(and)e(manage)h(the)f(state)h(of)g
+(the)f(History)g(library)150 1826 y(when)29 b(y)m(ou)i(w)m(an)m(t)g(to)
+g(use)f(the)h(history)f(functions)g(in)g(y)m(our)h(program.)3350
+2003 y([F)-8 b(unction])-3599 b Fh(void)54 b(using_history)49
+b Fg(\()p Ff(v)m(oid)p Fg(\))390 2113 y Fq(Begin)41 b(a)f(session)g(in)
g(whic)m(h)f(the)h(history)g(functions)f(migh)m(t)i(b)s(e)e(used.)69
-b(This)39 b(initializes)j(the)390 2135 y(in)m(teractiv)m(e)33
-b(v)-5 b(ariables.)3350 2324 y([F)d(unction])-3599 b
-Fg(HISTORY_STATE)56 b(*)d(history_get_history_st)q(ate)f
-Ff(\()p Fj(v)m(oid)p Ff(\))390 2434 y Fr(Return)30 b(a)g(structure)g
+b(This)39 b(initializes)j(the)390 2222 y(in)m(teractiv)m(e)33
+b(v)-5 b(ariables.)3350 2400 y([F)d(unction])-3599 b
+Fh(HISTORY_STATE)56 b(*)d(history_get_history_st)q(ate)f
+Fg(\()p Ff(v)m(oid)p Fg(\))390 2509 y Fq(Return)30 b(a)g(structure)g
(describing)g(the)h(curren)m(t)f(state)i(of)e(the)h(input)e(history)-8
-b(.)3350 2623 y([F)g(unction])-3599 b Fg(void)54 b
-(history_set_history_stat)q(e)e Ff(\()p Fj(HISTOR)-8
-b(Y)p 2222 2623 28 4 v 39 w(ST)g(A)g(TE)30 b(*state)p
-Ff(\))390 2732 y Fr(Set)h(the)f(state)i(of)e(the)h(history)f(list)h
-(according)h(to)f Fj(state)p Fr(.)150 2934 y Fi(2.3.2)63
-b(History)41 b(List)g(Managemen)m(t)150 3081 y Fr(These)32
+b(.)3350 2687 y([F)g(unction])-3599 b Fh(void)54 b
+(history_set_history_stat)q(e)e Fg(\()p Ff(HISTOR)-8
+b(Y)p 2262 2687 30 5 v 44 w(ST)g(A)g(TE)32 b(*state)p
+Fg(\))390 2796 y Fq(Set)f(the)f(state)i(of)e(the)h(history)f(list)h
+(according)h(to)f Fk(state)p Fq(.)150 2991 y Fj(2.3.2)63
+b(History)41 b(List)g(Managemen)m(t)150 3138 y Fq(These)32
b(functions)f(manage)i(individual)f(en)m(tries)g(on)g(the)g(history)g
-(list,)h(or)f(set)h(parameters)f(managing)150 3190 y(the)f(list)g
-(itself.)3350 3379 y([F)-8 b(unction])-3599 b Fg(void)54
-b(add_history)48 b Ff(\()p Fj(const)32 b(c)m(har)e(*string)p
-Ff(\))390 3489 y Fr(Place)h Fj(string)38 b Fr(at)31 b(the)f(end)f(of)h
+(list,)h(or)f(set)h(parameters)f(managing)150 3247 y(the)f(list)g
+(itself.)3350 3425 y([F)-8 b(unction])-3599 b Fh(void)54
+b(add_history)48 b Fg(\()p Ff(const)34 b(c)m(har)g(*string)p
+Fg(\))390 3534 y Fq(Place)d Fk(string)38 b Fq(at)31 b(the)f(end)f(of)h
(the)g(history)g(list.)42 b(The)29 b(asso)s(ciated)i(data)g(\014eld)f
-(\(if)g(an)m(y\))h(is)f(set)g(to)390 3598 y Fq(NULL)p
-Fr(.)3350 3787 y([F)-8 b(unction])-3599 b Fg(void)54
-b(add_history_time)c Ff(\()p Fj(const)31 b(c)m(har)g(*string)p
-Ff(\))390 3897 y Fr(Change)f(the)h(time)g(stamp)f(asso)s(ciated)i(with)
+(\(if)g(an)m(y\))h(is)f(set)g(to)390 3644 y Fp(NULL)p
+Fq(.)3350 3821 y([F)-8 b(unction])-3599 b Fh(void)54
+b(add_history_time)c Fg(\()p Ff(const)34 b(c)m(har)g(*string)p
+Fg(\))390 3931 y Fq(Change)c(the)h(time)g(stamp)f(asso)s(ciated)i(with)
e(the)h(most)f(recen)m(t)i(history)e(en)m(try)h(to)g
-Fj(string)p Fr(.)3350 4086 y([F)-8 b(unction])-3599 b
-Fg(HIST_ENTRY)55 b(*)e(remove_history)d Ff(\()p Fj(in)m(t)31
-b(whic)m(h)p Ff(\))390 4195 y Fr(Remo)m(v)m(e)47 b(history)f(en)m(try)f
-(at)i(o\013set)f Fj(whic)m(h)f Fr(from)g(the)h(history)-8
+Fk(string)p Fq(.)3350 4108 y([F)-8 b(unction])-3599 b
+Fh(HIST_ENTRY)55 b(*)e(remove_history)d Fg(\()p Ff(in)m(t)33
+b(whic)m(h)p Fg(\))390 4218 y Fq(Remo)m(v)m(e)47 b(history)f(en)m(try)f
+(at)i(o\013set)f Fk(whic)m(h)f Fq(from)g(the)h(history)-8
b(.)86 b(The)45 b(remo)m(v)m(ed)i(elemen)m(t)g(is)390
-4305 y(returned)29 b(so)i(y)m(ou)g(can)f(free)h(the)f(line,)h(data,)h
-(and)d(con)m(taining)j(structure.)3350 4494 y([F)-8 b(unction])-3599
-b Fg(histdata_t)55 b(free_history_entry)c Ff(\()p Fj(HIST)p
-1971 4494 V 40 w(ENTR)-8 b(Y)30 b(*histen)m(t)p Ff(\))390
-4603 y Fr(F)-8 b(ree)29 b(the)f(history)g(en)m(try)g
-Fj(histen)m(t)j Fr(and)c(an)m(y)i(history)e(library)h(priv)-5
-b(ate)28 b(data)h(asso)s(ciated)g(with)f(it.)390 4713
+4328 y(returned)29 b(so)i(y)m(ou)g(can)f(free)h(the)f(line,)h(data,)h
+(and)d(con)m(taining)j(structure.)3350 4505 y([F)-8 b(unction])-3599
+b Fh(histdata_t)55 b(free_history_entry)c Fg(\()p Ff(HIST)p
+1992 4505 V 44 w(ENTR)-8 b(Y)33 b(*histen)m(t)p Fg(\))390
+4615 y Fq(F)-8 b(ree)29 b(the)f(history)g(en)m(try)g
+Fk(histen)m(t)j Fq(and)c(an)m(y)i(history)e(library)h(priv)-5
+b(ate)28 b(data)h(asso)s(ciated)g(with)f(it.)390 4724
y(Returns)h(the)i(application-sp)s(eci\014c)h(data)f(so)g(the)f(caller)
i(can)e(disp)s(ose)g(of)h(it.)3350 4902 y([F)-8 b(unction])-3599
-b Fg(HIST_ENTRY)55 b(*)e(replace_history_entry)f Ff(\()p
-Fj(in)m(t)31 b(whic)m(h,)f(const)h(c)m(har)g(*line,)565
-5011 y(histdata)p 894 5011 V 41 w(t)g(data)p Ff(\))390
-5121 y Fr(Mak)m(e)e(the)f(history)f(en)m(try)h(at)h(o\013set)f
-Fj(whic)m(h)g Fr(ha)m(v)m(e)g Fj(line)33 b Fr(and)27
-b Fj(data)p Fr(.)41 b(This)27 b(returns)f(the)i(old)g(en)m(try)390
+b Fh(HIST_ENTRY)55 b(*)e(replace_history_entry)f Fg(\()p
+Ff(in)m(t)33 b(whic)m(h,)h(const)g(c)m(har)g(*line,)565
+5011 y(histdata)p 927 5011 V 44 w(t)f(data)p Fg(\))390
+5121 y Fq(Mak)m(e)c(the)f(history)f(en)m(try)h(at)h(o\013set)f
+Fk(whic)m(h)g Fq(ha)m(v)m(e)g Fk(line)33 b Fq(and)27
+b Fk(data)p Fq(.)41 b(This)27 b(returns)f(the)i(old)g(en)m(try)390
5230 y(so)37 b(the)h(caller)g(can)f(disp)s(ose)g(of)g(an)m(y)g
(application-sp)s(eci\014c)i(data.)61 b(In)37 b(the)g(case)h(of)f(an)g
-(in)m(v)-5 b(alid)390 5340 y Fj(whic)m(h)p Fr(,)30 b(a)h
-Fq(NULL)e Fr(p)s(oin)m(ter)i(is)f(returned.)p eop end
+(in)m(v)-5 b(alid)390 5340 y Fk(whic)m(h)p Fq(,)30 b(a)h
+Fp(NULL)e Fq(p)s(oin)m(ter)i(is)f(returned.)p eop end
%%Page: 6 9
-TeXDict begin 6 8 bop 150 -116 a Fr(Chapter)30 b(2:)41
+TeXDict begin 6 8 bop 150 -116 a Fq(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(History)1780 b(6)3350
-299 y([F)-8 b(unction])-3599 b Fg(void)54 b(clear_history)49
-b Ff(\()p Fj(v)m(oid)p Ff(\))390 408 y Fr(Clear)31 b(the)f(history)h
+299 y([F)-8 b(unction])-3599 b Fh(void)54 b(clear_history)49
+b Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Fq(Clear)31 b(the)f(history)h
(list)g(b)m(y)f(deleting)h(all)h(the)e(en)m(tries.)3350
-594 y([F)-8 b(unction])-3599 b Fg(void)54 b(stifle_history)49
-b Ff(\()p Fj(in)m(t)31 b(max)p Ff(\))390 704 y Fr(Sti\015e)f(the)h
+586 y([F)-8 b(unction])-3599 b Fh(void)54 b(stifle_history)49
+b Fg(\()p Ff(in)m(t)34 b(max)p Fg(\))390 695 y Fq(Sti\015e)c(the)h
(history)f(list,)h(remem)m(b)s(ering)f(only)h(the)f(last)i
-Fj(max)k Fr(en)m(tries.)3350 890 y([F)-8 b(unction])-3599
-b Fg(int)53 b(unstifle_history)e Ff(\()p Fj(v)m(oid)p
-Ff(\))390 1000 y Fr(Stop)27 b(sti\015ing)h(the)f(history)-8
+Fk(max)k Fq(en)m(tries.)3350 872 y([F)-8 b(unction])-3599
+b Fh(int)53 b(unstifle_history)e Fg(\()p Ff(v)m(oid)p
+Fg(\))390 982 y Fq(Stop)27 b(sti\015ing)h(the)f(history)-8
b(.)40 b(This)27 b(returns)f(the)h(previously-set)h(maxim)m(um)f(n)m
-(um)m(b)s(er)f(of)i(history)390 1109 y(en)m(tries)g(\(as)f(set)g(b)m(y)
-g Fq(stifle_history\(\))p Fr(\).)35 b(The)27 b(v)-5 b(alue)27
+(um)m(b)s(er)f(of)i(history)390 1091 y(en)m(tries)g(\(as)f(set)g(b)m(y)
+g Fp(stifle_history\(\))p Fq(\).)35 b(The)27 b(v)-5 b(alue)27
b(is)g(p)s(ositiv)m(e)g(if)g(the)g(history)g(w)m(as)g(sti\015ed,)390
-1219 y(negativ)m(e)33 b(if)d(it)h(w)m(asn't.)3350 1405
-y([F)-8 b(unction])-3599 b Fg(int)53 b(history_is_stifled)e
-Ff(\()p Fj(v)m(oid)p Ff(\))390 1514 y Fr(Returns)29 b(non-zero)i(if)g
+1201 y(negativ)m(e)33 b(if)d(it)h(w)m(asn't.)3350 1378
+y([F)-8 b(unction])-3599 b Fh(int)53 b(history_is_stifled)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 1488 y Fq(Returns)29 b(non-zero)i(if)g
(the)f(history)h(is)f(sti\015ed,)g(zero)i(if)e(it)h(is)f(not.)150
-1714 y Fi(2.3.3)63 b(Information)42 b(Ab)s(out)f(the)g(History)g(List)
-150 1861 y Fr(These)30 b(functions)g(return)f(information)i(ab)s(out)f
+1682 y Fj(2.3.3)63 b(Information)42 b(Ab)s(out)f(the)g(History)g(List)
+150 1829 y Fq(These)30 b(functions)g(return)f(information)i(ab)s(out)f
(the)h(en)m(tire)g(history)f(list)h(or)g(individual)e(list)i(en)m
-(tries.)3350 2047 y([F)-8 b(unction])-3599 b Fg(HIST_ENTRY)55
-b(**)e(history_list)c Ff(\()p Fj(v)m(oid)p Ff(\))390
-2157 y Fr(Return)30 b(a)h Fq(NULL)e Fr(terminated)i(arra)m(y)g(of)f
-Fq(HIST_ENTRY)e(*)i Fr(whic)m(h)g(is)h(the)g(curren)m(t)f(input)f
-(history)-8 b(.)390 2267 y(Elemen)m(t)31 b(0)g(of)g(this)f(list)h(is)f
+(tries.)3350 2006 y([F)-8 b(unction])-3599 b Fh(HIST_ENTRY)55
+b(**)e(history_list)c Fg(\()p Ff(v)m(oid)p Fg(\))390
+2116 y Fq(Return)30 b(a)h Fp(NULL)e Fq(terminated)i(arra)m(y)g(of)f
+Fp(HIST_ENTRY)e(*)i Fq(whic)m(h)g(is)h(the)g(curren)m(t)f(input)f
+(history)-8 b(.)390 2225 y(Elemen)m(t)31 b(0)g(of)g(this)f(list)h(is)f
(the)h(b)s(eginning)f(of)g(time.)42 b(If)29 b(there)i(is)f(no)h
-(history)-8 b(,)31 b(return)e Fq(NULL)p Fr(.)3350 2452
-y([F)-8 b(unction])-3599 b Fg(int)53 b(where_history)d
-Ff(\()p Fj(v)m(oid)p Ff(\))390 2562 y Fr(Returns)29 b(the)i(o\013set)g
-(of)g(the)g(curren)m(t)f(history)g(elemen)m(t.)3350 2748
-y([F)-8 b(unction])-3599 b Fg(HIST_ENTRY)55 b(*)e(current_history)d
-Ff(\()p Fj(v)m(oid)p Ff(\))390 2858 y Fr(Return)24 b(the)h(history)g
+(history)-8 b(,)31 b(return)e Fp(NULL)p Fq(.)3350 2402
+y([F)-8 b(unction])-3599 b Fh(int)53 b(where_history)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 2512 y Fq(Returns)29 b(the)i(o\013set)g
+(of)g(the)g(curren)m(t)f(history)g(elemen)m(t.)3350 2689
+y([F)-8 b(unction])-3599 b Fh(HIST_ENTRY)55 b(*)e(current_history)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 2798 y Fq(Return)24 b(the)h(history)g
(en)m(try)g(at)h(the)f(curren)m(t)f(p)s(osition,)j(as)e(determined)f(b)
-m(y)h Fq(where_history\(\))p Fr(.)390 2967 y(If)30 b(there)g(is)h(no)f
-(en)m(try)h(there,)g(return)e(a)i Fq(NULL)e Fr(p)s(oin)m(ter.)3350
-3153 y([F)-8 b(unction])-3599 b Fg(HIST_ENTRY)55 b(*)e(history_get)c
-Ff(\()p Fj(in)m(t)31 b(o\013set)p Ff(\))390 3263 y Fr(Return)41
-b(the)g(history)h(en)m(try)g(at)g(p)s(osition)g Fj(o\013set)p
-Fr(,)j(starting)e(from)e Fq(history_base)d Fr(\(see)k(Sec-)390
-3372 y(tion)32 b(2.4)i([History)e(V)-8 b(ariables],)35
+m(y)h Fp(where_history\(\))p Fq(.)390 2908 y(If)30 b(there)g(is)h(no)f
+(en)m(try)h(there,)g(return)e(a)i Fp(NULL)e Fq(p)s(oin)m(ter.)3350
+3085 y([F)-8 b(unction])-3599 b Fh(HIST_ENTRY)55 b(*)e(history_get)c
+Fg(\()p Ff(in)m(t)33 b(o\013set)p Fg(\))390 3195 y Fq(Return)41
+b(the)g(history)h(en)m(try)g(at)g(p)s(osition)g Fk(o\013set)p
+Fq(,)j(starting)e(from)e Fp(history_base)d Fq(\(see)k(Sec-)390
+3304 y(tion)32 b(2.4)i([History)e(V)-8 b(ariables],)35
b(page)d(8\).)47 b(If)31 b(there)i(is)f(no)g(en)m(try)g(there,)h(or)f
-(if)g Fj(o\013set)j Fr(is)d(greater)390 3482 y(than)e(the)h(history)f
-(length,)h(return)e(a)i Fq(NULL)e Fr(p)s(oin)m(ter.)3350
-3668 y([F)-8 b(unction])-3599 b Fg(time_t)54 b(history_get_time)c
-Ff(\()p Fj(HIST)p 1657 3668 28 4 v 40 w(ENTR)-8 b(Y)30
-b(*en)m(try)p Ff(\))390 3778 y Fr(Return)g(the)g(time)h(stamp)f(asso)s
-(ciated)i(with)e(the)h(history)f(en)m(try)h Fj(en)m(try)p
-Fr(.)3350 3963 y([F)-8 b(unction])-3599 b Fg(int)53 b
-(history_total_bytes)e Ff(\()p Fj(v)m(oid)p Ff(\))390
-4073 y Fr(Return)27 b(the)h(n)m(um)m(b)s(er)e(of)i(b)m(ytes)g(that)g
-(the)g(primary)e(history)i(en)m(tries)g(are)g(using.)39
-b(This)27 b(function)390 4183 y(returns)i(the)i(sum)e(of)i(the)f
+(if)g Fk(o\013set)j Fq(is)d(greater)390 3414 y(than)e(the)h(history)f
+(length,)h(return)e(a)i Fp(NULL)e Fq(p)s(oin)m(ter.)3350
+3591 y([F)-8 b(unction])-3599 b Fh(time_t)54 b(history_get_time)c
+Fg(\()p Ff(HIST)p 1678 3591 30 5 v 45 w(ENTR)-8 b(Y)32
+b(*en)m(try)p Fg(\))390 3700 y Fq(Return)g(the)i(time)g(stamp)f(asso)s
+(ciated)h(with)f(the)g(history)g(en)m(try)h Fk(en)m(try)p
+Fq(.)49 b(If)33 b(the)g(timestamp)h(is)390 3810 y(missing)c(or)h(in)m
+(v)-5 b(alid,)31 b(return)e(0.)3350 3987 y([F)-8 b(unction])-3599
+b Fh(int)53 b(history_total_bytes)e Fg(\()p Ff(v)m(oid)p
+Fg(\))390 4097 y Fq(Return)27 b(the)h(n)m(um)m(b)s(er)e(of)i(b)m(ytes)g
+(that)g(the)g(primary)e(history)i(en)m(tries)g(are)g(using.)39
+b(This)27 b(function)390 4206 y(returns)i(the)i(sum)e(of)i(the)f
(lengths)h(of)f(all)i(the)e(lines)h(in)f(the)g(history)-8
-b(.)150 4383 y Fi(2.3.4)63 b(Mo)m(ving)41 b(Around)h(the)f(History)g
-(List)150 4530 y Fr(These)30 b(functions)g(allo)m(w)i(the)e(curren)m(t)
+b(.)150 4401 y Fj(2.3.4)63 b(Mo)m(ving)41 b(Around)h(the)f(History)g
+(List)150 4548 y Fq(These)30 b(functions)g(allo)m(w)i(the)e(curren)m(t)
h(index)f(in)m(to)h(the)f(history)h(list)g(to)g(b)s(e)f(set)h(or)f(c)m
-(hanged.)3350 4716 y([F)-8 b(unction])-3599 b Fg(int)53
-b(history_set_pos)d Ff(\()p Fj(in)m(t)31 b(p)s(os)p Ff(\))390
-4825 y Fr(Set)37 b(the)g(curren)m(t)f(history)g(o\013set)i(to)f
-Fj(p)s(os)p Fr(,)h(an)f(absolute)g(index)f(in)m(to)i(the)e(list.)60
-b(Returns)36 b(1)h(on)390 4935 y(success,)31 b(0)g(if)f
-Fj(p)s(os)j Fr(is)e(less)f(than)h(zero)g(or)f(greater)i(than)e(the)g(n)
+(hanged.)3350 4725 y([F)-8 b(unction])-3599 b Fh(int)53
+b(history_set_pos)d Fg(\()p Ff(in)m(t)34 b(p)s(os)p Fg(\))390
+4834 y Fq(Set)j(the)g(curren)m(t)f(history)g(o\013set)i(to)f
+Fk(p)s(os)p Fq(,)h(an)f(absolute)g(index)f(in)m(to)i(the)e(list.)60
+b(Returns)36 b(1)h(on)390 4944 y(success,)31 b(0)g(if)f
+Fk(p)s(os)j Fq(is)e(less)f(than)h(zero)g(or)f(greater)i(than)e(the)g(n)
m(um)m(b)s(er)f(of)i(history)f(en)m(tries.)3350 5121
-y([F)-8 b(unction])-3599 b Fg(HIST_ENTRY)55 b(*)e(previous_history)d
-Ff(\()p Fj(v)m(oid)p Ff(\))390 5230 y Fr(Bac)m(k)30 b(up)e(the)h
+y([F)-8 b(unction])-3599 b Fh(HIST_ENTRY)55 b(*)e(previous_history)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 5230 y Fq(Bac)m(k)30 b(up)e(the)h
(curren)m(t)g(history)f(o\013set)i(to)g(the)f(previous)f(history)h(en)m
(try)-8 b(,)30 b(and)e(return)g(a)h(p)s(oin)m(ter)390
5340 y(to)i(that)g(en)m(try)-8 b(.)41 b(If)30 b(there)h(is)f(no)h
-(previous)f(en)m(try)-8 b(,)31 b(return)e(a)i Fq(NULL)e
-Fr(p)s(oin)m(ter.)p eop end
+(previous)f(en)m(try)-8 b(,)31 b(return)e(a)i Fp(NULL)e
+Fq(p)s(oin)m(ter.)p eop end
%%Page: 7 10
-TeXDict begin 7 9 bop 150 -116 a Fr(Chapter)30 b(2:)41
+TeXDict begin 7 9 bop 150 -116 a Fq(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(History)1780 b(7)3350
-299 y([F)-8 b(unction])-3599 b Fg(HIST_ENTRY)55 b(*)e(next_history)c
-Ff(\()p Fj(v)m(oid)p Ff(\))390 408 y Fr(Mo)m(v)m(e)38
-b(the)d(curren)m(t)h(history)f(o\013set)i(forw)m(ard)e(to)h(the)g(next)
-f(history)h(en)m(try)-8 b(,)37 b(and)e(return)g(the)h(a)390
-518 y(p)s(oin)m(ter)30 b(to)h(that)g(en)m(try)-8 b(.)42
-b(If)30 b(there)g(is)h(no)f(next)h(en)m(try)-8 b(,)31
-b(return)e(a)i Fq(NULL)e Fr(p)s(oin)m(ter.)150 722 y
-Fi(2.3.5)63 b(Searc)m(hing)40 b(the)h(History)h(List)150
-869 y Fr(These)36 b(functions)g(allo)m(w)i(searc)m(hing)f(of)f(the)h
-(history)f(list)h(for)f(en)m(tries)h(con)m(taining)h(a)f(sp)s(eci\014c)
-f(string.)150 978 y(Searc)m(hing)28 b(ma)m(y)g(b)s(e)f(p)s(erformed)f
-(b)s(oth)h(forw)m(ard)f(and)h(bac)m(kw)m(ard)h(from)f(the)h(curren)m(t)
-f(history)h(p)s(osition.)150 1088 y(The)j(searc)m(h)h(ma)m(y)g(b)s(e)e
-Fj(anc)m(hored)p Fr(,)i(meaning)g(that)g(the)f(string)h(m)m(ust)f(matc)
-m(h)h(at)g(the)g(b)s(eginning)e(of)i(the)150 1198 y(history)e(en)m(try)
--8 b(.)3350 1391 y([F)g(unction])-3599 b Fg(int)53 b(history_search)d
-Ff(\()p Fj(const)31 b(c)m(har)g(*string,)g(in)m(t)g(direction)p
-Ff(\))390 1501 y Fr(Searc)m(h)e(the)g(history)g(for)g
-Fj(string)p Fr(,)g(starting)h(at)f(the)g(curren)m(t)g(history)g
-(o\013set.)41 b(If)28 b Fj(direction)i Fr(is)f(less)390
-1610 y(than)40 b(0,)j(then)c(the)h(searc)m(h)h(is)f(through)f(previous)
+299 y([F)-8 b(unction])-3599 b Fh(HIST_ENTRY)55 b(*)e(next_history)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Fq(If)20 b(the)h(curren)m(t)f
+(history)h(o\013set)g(refers)g(to)g(a)g(v)-5 b(alid)21
+b(history)f(en)m(try)-8 b(,)24 b(incremen)m(t)d(the)g(curren)m(t)f
+(history)390 518 y(o\013set.)41 b(If)27 b(the)g(p)s(ossibly-incremen)m
+(ted)g(history)h(o\013set)g(refers)f(to)h(a)f(v)-5 b(alid)28
+b(history)f(en)m(try)-8 b(,)29 b(return)390 628 y(a)i(p)s(oin)m(ter)f
+(to)h(that)g(en)m(try;)g(otherwise,)g(return)e(a)i Fp(BNULL)e
+Fq(p)s(oin)m(ter.)150 823 y Fj(2.3.5)63 b(Searc)m(hing)40
+b(the)h(History)h(List)150 970 y Fq(These)36 b(functions)g(allo)m(w)i
+(searc)m(hing)f(of)f(the)h(history)f(list)h(for)f(en)m(tries)h(con)m
+(taining)h(a)f(sp)s(eci\014c)f(string.)150 1079 y(Searc)m(hing)28
+b(ma)m(y)g(b)s(e)f(p)s(erformed)f(b)s(oth)h(forw)m(ard)f(and)h(bac)m
+(kw)m(ard)h(from)f(the)h(curren)m(t)f(history)h(p)s(osition.)150
+1189 y(The)j(searc)m(h)h(ma)m(y)g(b)s(e)e Fk(anc)m(hored)p
+Fq(,)i(meaning)g(that)g(the)f(string)h(m)m(ust)f(matc)m(h)h(at)g(the)g
+(b)s(eginning)e(of)i(the)150 1299 y(history)e(en)m(try)-8
+b(.)3350 1477 y([F)g(unction])-3599 b Fh(int)53 b(history_search)d
+Fg(\()p Ff(const)34 b(c)m(har)g(*string,)e(in)m(t)i(direction)p
+Fg(\))390 1586 y Fq(Searc)m(h)29 b(the)g(history)g(for)g
+Fk(string)p Fq(,)g(starting)h(at)f(the)g(curren)m(t)g(history)g
+(o\013set.)41 b(If)28 b Fk(direction)i Fq(is)f(less)390
+1696 y(than)40 b(0,)j(then)c(the)h(searc)m(h)h(is)f(through)f(previous)
h(en)m(tries,)j(otherwise)d(through)g(subsequen)m(t)390
-1720 y(en)m(tries.)i(If)30 b Fj(string)38 b Fr(is)30
+1806 y(en)m(tries.)i(If)30 b Fk(string)38 b Fq(is)30
b(found,)g(then)g(the)g(curren)m(t)h(history)f(index)g(is)g(set)h(to)h
-(that)f(history)f(en)m(try)-8 b(,)390 1830 y(and)33 b(the)g(v)-5
+(that)f(history)f(en)m(try)-8 b(,)390 1915 y(and)33 b(the)g(v)-5
b(alue)34 b(returned)e(is)i(the)g(o\013set)g(in)f(the)h(line)f(of)h
-(the)g(en)m(try)f(where)g Fj(string)41 b Fr(w)m(as)34
-b(found.)390 1939 y(Otherwise,)c(nothing)h(is)f(c)m(hanged,)h(and)f(a)h
-(-1)g(is)f(returned.)3350 2133 y([F)-8 b(unction])-3599
-b Fg(int)53 b(history_search_prefix)f Ff(\()p Fj(const)31
-b(c)m(har)g(*string,)g(in)m(t)g(direction)p Ff(\))390
-2242 y Fr(Searc)m(h)41 b(the)g(history)f(for)g Fj(string)p
-Fr(,)k(starting)d(at)g(the)g(curren)m(t)f(history)h(o\013set.)72
-b(The)40 b(searc)m(h)h(is)390 2352 y(anc)m(hored:)f(matc)m(hing)31
-b(lines)f(m)m(ust)f(b)s(egin)g(with)g Fj(string)p Fr(.)40
-b(If)29 b Fj(direction)h Fr(is)g(less)f(than)g(0,)i(then)e(the)390
-2461 y(searc)m(h)j(is)f(through)g(previous)g(en)m(tries,)h(otherwise)g
-(through)e(subsequen)m(t)h(en)m(tries.)44 b(If)31 b Fj(string)39
-b Fr(is)390 2571 y(found,)33 b(then)f(the)h(curren)m(t)g(history)g
+(the)g(en)m(try)f(where)g Fk(string)41 b Fq(w)m(as)34
+b(found.)390 2025 y(Otherwise,)c(nothing)h(is)f(c)m(hanged,)h(and)f(a)h
+(-1)g(is)f(returned.)3350 2203 y([F)-8 b(unction])-3599
+b Fh(int)53 b(history_search_prefix)f Fg(\()p Ff(const)34
+b(c)m(har)g(*string,)f(in)m(t)g(direction)p Fg(\))390
+2312 y Fq(Searc)m(h)41 b(the)g(history)f(for)g Fk(string)p
+Fq(,)k(starting)d(at)g(the)g(curren)m(t)f(history)h(o\013set.)72
+b(The)40 b(searc)m(h)h(is)390 2422 y(anc)m(hored:)f(matc)m(hing)31
+b(lines)f(m)m(ust)f(b)s(egin)g(with)g Fk(string)p Fq(.)40
+b(If)29 b Fk(direction)h Fq(is)g(less)f(than)g(0,)i(then)e(the)390
+2532 y(searc)m(h)j(is)f(through)g(previous)g(en)m(tries,)h(otherwise)g
+(through)e(subsequen)m(t)h(en)m(tries.)44 b(If)31 b Fk(string)39
+b Fq(is)390 2641 y(found,)33 b(then)f(the)h(curren)m(t)g(history)g
(index)g(is)g(set)g(to)h(that)g(en)m(try)-8 b(,)34 b(and)f(the)g
-(return)f(v)-5 b(alue)33 b(is)g(0.)390 2681 y(Otherwise,)d(nothing)h
+(return)f(v)-5 b(alue)33 b(is)g(0.)390 2751 y(Otherwise,)d(nothing)h
(is)f(c)m(hanged,)h(and)f(a)h(-1)g(is)f(returned.)3350
-2874 y([F)-8 b(unction])-3599 b Fg(int)53 b(history_search_pos)e
-Ff(\()p Fj(const)31 b(c)m(har)g(*string,)g(in)m(t)g(direction,)g(in)m
-(t)g(p)s(os)p Ff(\))390 2984 y Fr(Searc)m(h)j(for)g Fj(string)42
-b Fr(in)34 b(the)h(history)f(list,)i(starting)f(at)g
-Fj(p)s(os)p Fr(,)g(an)f(absolute)h(index)e(in)m(to)j(the)e(list.)390
-3093 y(If)i Fj(direction)g Fr(is)g(negativ)m(e,)k(the)c(searc)m(h)h
-(pro)s(ceeds)f(bac)m(kw)m(ard)g(from)g Fj(p)s(os)p Fr(,)h(otherwise)f
-(forw)m(ard.)390 3203 y(Returns)43 b(the)h(absolute)h(index)f(of)g(the)
-g(history)g(elemen)m(t)h(where)f Fj(string)52 b Fr(w)m(as)44
-b(found,)i(or)e(-1)390 3313 y(otherwise.)150 3516 y Fi(2.3.6)63
-b(Managing)41 b(the)g(History)h(File)150 3663 y Fr(The)26
+2929 y([F)-8 b(unction])-3599 b Fh(int)53 b(history_search_pos)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*string,)f(in)m(t)g(direction,)g(in)m
+(t)g(p)s(os)p Fg(\))390 3039 y Fq(Searc)m(h)h(for)g Fk(string)42
+b Fq(in)34 b(the)h(history)f(list,)i(starting)f(at)g
+Fk(p)s(os)p Fq(,)g(an)f(absolute)h(index)e(in)m(to)j(the)e(list.)390
+3148 y(If)i Fk(direction)g Fq(is)g(negativ)m(e,)k(the)c(searc)m(h)h
+(pro)s(ceeds)f(bac)m(kw)m(ard)g(from)g Fk(p)s(os)p Fq(,)h(otherwise)f
+(forw)m(ard.)390 3258 y(Returns)43 b(the)h(absolute)h(index)f(of)g(the)
+g(history)g(elemen)m(t)h(where)f Fk(string)52 b Fq(w)m(as)44
+b(found,)i(or)e(-1)390 3367 y(otherwise.)150 3563 y Fj(2.3.6)63
+b(Managing)41 b(the)g(History)h(File)150 3709 y Fq(The)26
b(History)h(library)f(can)h(read)g(the)f(history)h(from)f(and)g(write)h
(it)g(to)g(a)g(\014le.)40 b(This)26 b(section)h(do)s(cumen)m(ts)150
-3773 y(the)k(functions)e(for)i(managing)g(a)g(history)f(\014le.)3350
-3967 y([F)-8 b(unction])-3599 b Fg(int)53 b(read_history)c
-Ff(\()p Fj(const)32 b(c)m(har)e(*\014lename)p Ff(\))390
-4076 y Fr(Add)f(the)h(con)m(ten)m(ts)h(of)f Fj(\014lename)k
-Fr(to)d(the)f(history)f(list,)i(a)f(line)g(at)g(a)g(time.)41
-b(If)29 b Fj(\014lename)35 b Fr(is)30 b Fq(NULL)p Fr(,)390
-4186 y(then)g(read)g(from)g Fq(~/.history)p Fr(.)38 b(Returns)30
-b(0)g(if)h(successful,)f(or)g Fq(errno)f Fr(if)i(not.)3350
-4379 y([F)-8 b(unction])-3599 b Fg(int)53 b(read_history_range)e
-Ff(\()p Fj(const)31 b(c)m(har)g(*\014lename,)g(in)m(t)g(from,)f(in)m(t)
-h(to)p Ff(\))390 4489 y Fr(Read)d(a)g(range)h(of)f(lines)g(from)f
-Fj(\014lename)p Fr(,)i(adding)e(them)h(to)h(the)f(history)g(list.)40
-b(Start)28 b(reading)g(at)390 4598 y(line)f Fj(from)e
-Fr(and)h(end)f(at)i Fj(to)p Fr(.)41 b(If)25 b Fj(from)h
-Fr(is)g(zero,)i(start)f(at)g(the)f(b)s(eginning.)39 b(If)26
-b Fj(to)31 b Fr(is)c(less)f(than)g Fj(from)p Fr(,)390
-4708 y(then)33 b(read)g(un)m(til)g(the)g(end)g(of)g(the)g(\014le.)49
-b(If)33 b Fj(\014lename)38 b Fr(is)33 b Fq(NULL)p Fr(,)g(then)g(read)g
-(from)f Fq(~/.history)p Fr(.)390 4818 y(Returns)d(0)i(if)g(successful,)
-f(or)g Fq(errno)f Fr(if)i(not.)3350 5011 y([F)-8 b(unction])-3599
-b Fg(int)53 b(write_history)d Ff(\()p Fj(const)31 b(c)m(har)g
-(*\014lename)p Ff(\))390 5121 y Fr(W)-8 b(rite)36 b(the)e(curren)m(t)h
-(history)f(to)h Fj(\014lename)p Fr(,)h(o)m(v)m(erwriting)g
-Fj(\014lename)k Fr(if)34 b(necessary)-8 b(.)54 b(If)34
-b Fj(\014lename)390 5230 y Fr(is)27 b Fq(NULL)p Fr(,)g(then)g(write)g
-(the)h(history)f(list)g(to)h Fq(~/.history)p Fr(.)37
-b(Returns)26 b(0)i(on)f(success,)h(or)f Fq(errno)f Fr(on)390
+3819 y(the)k(functions)e(for)i(managing)g(a)g(history)f(\014le.)3350
+3997 y([F)-8 b(unction])-3599 b Fh(int)53 b(read_history)c
+Fg(\()p Ff(const)34 b(c)m(har)g(*\014lename)p Fg(\))390
+4107 y Fq(Add)29 b(the)h(con)m(ten)m(ts)h(of)f Fk(\014lename)k
+Fq(to)d(the)f(history)f(list,)i(a)f(line)g(at)g(a)g(time.)41
+b(If)29 b Fk(\014lename)35 b Fq(is)30 b Fp(NULL)p Fq(,)390
+4216 y(then)g(read)g(from)g Fp(~/.history)p Fq(.)38 b(Returns)30
+b(0)g(if)h(successful,)f(or)g Fp(errno)f Fq(if)i(not.)3350
+4395 y([F)-8 b(unction])-3599 b Fh(int)53 b(read_history_range)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*\014lename,)g(in)m(t)f(from,)g(in)m(t)
+g(to)p Fg(\))390 4504 y Fq(Read)28 b(a)g(range)h(of)f(lines)g(from)f
+Fk(\014lename)p Fq(,)i(adding)e(them)h(to)h(the)f(history)g(list.)40
+b(Start)28 b(reading)g(at)390 4614 y(line)f Fk(from)e
+Fq(and)h(end)f(at)i Fk(to)p Fq(.)41 b(If)25 b Fk(from)h
+Fq(is)g(zero,)i(start)f(at)g(the)f(b)s(eginning.)39 b(If)26
+b Fk(to)31 b Fq(is)c(less)f(than)g Fk(from)p Fq(,)390
+4723 y(then)33 b(read)g(un)m(til)g(the)g(end)g(of)g(the)g(\014le.)49
+b(If)33 b Fk(\014lename)38 b Fq(is)33 b Fp(NULL)p Fq(,)g(then)g(read)g
+(from)f Fp(~/.history)p Fq(.)390 4833 y(Returns)d(0)i(if)g(successful,)
+f(or)g Fp(errno)f Fq(if)i(not.)3350 5011 y([F)-8 b(unction])-3599
+b Fh(int)53 b(write_history)d Fg(\()p Ff(const)34 b(c)m(har)g
+(*\014lename)p Fg(\))390 5121 y Fq(W)-8 b(rite)36 b(the)e(curren)m(t)h
+(history)f(to)h Fk(\014lename)p Fq(,)h(o)m(v)m(erwriting)g
+Fk(\014lename)k Fq(if)34 b(necessary)-8 b(.)54 b(If)34
+b Fk(\014lename)390 5230 y Fq(is)27 b Fp(NULL)p Fq(,)g(then)g(write)g
+(the)h(history)f(list)g(to)h Fp(~/.history)p Fq(.)37
+b(Returns)26 b(0)i(on)f(success,)h(or)f Fp(errno)f Fq(on)390
5340 y(a)31 b(read)f(or)g(write)h(error.)p eop end
%%Page: 8 11
-TeXDict begin 8 10 bop 150 -116 a Fr(Chapter)30 b(2:)41
+TeXDict begin 8 10 bop 150 -116 a Fq(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(History)1780 b(8)3350
-299 y([F)-8 b(unction])-3599 b Fg(int)53 b(append_history)d
-Ff(\()p Fj(in)m(t)31 b(nelemen)m(ts,)h(const)f(c)m(har)f(*\014lename)p
-Ff(\))390 408 y Fr(App)s(end)j(the)i(last)g Fj(nelemen)m(ts)k
-Fr(of)c(the)g(history)f(list)i(to)f Fj(\014lename)p Fr(.)54
-b(If)34 b Fj(\014lename)40 b Fr(is)34 b Fq(NULL)p Fr(,)h(then)390
-518 y(app)s(end)29 b(to)i Fq(~/.history)p Fr(.)38 b(Returns)29
-b(0)i(on)f(success,)h(or)f Fq(errno)f Fr(on)i(a)f(read)h(or)f(write)h
-(error.)3350 705 y([F)-8 b(unction])-3599 b Fg(int)53
-b(history_truncate_file)f Ff(\()p Fj(const)31 b(c)m(har)g(*\014lename,)
-g(in)m(t)g(nlines)p Ff(\))390 814 y Fr(T)-8 b(runcate)39
-b(the)f(history)h(\014le)f Fj(\014lename)p Fr(,)j(lea)m(ving)f(only)f
-(the)g(last)g Fj(nlines)j Fr(lines.)65 b(If)38 b Fj(\014lename)44
-b Fr(is)390 924 y Fq(NULL)p Fr(,)29 b(then)i Fq(~/.history)c
-Fr(is)k(truncated.)40 b(Returns)30 b(0)g(on)h(success,)g(or)f
-Fq(errno)f Fr(on)h(failure.)150 1124 y Fi(2.3.7)63 b(History)41
-b(Expansion)150 1271 y Fr(These)30 b(functions)g(implemen)m(t)h
-(history)f(expansion.)3350 1457 y([F)-8 b(unction])-3599
-b Fg(int)53 b(history_expand)d Ff(\()p Fj(c)m(har)31
-b(*string,)g(c)m(har)g(**output)p Ff(\))390 1567 y Fr(Expand)i
-Fj(string)p Fr(,)j(placing)f(the)f(result)h(in)m(to)g
-Fj(output)p Fr(,)g(a)g(p)s(oin)m(ter)f(to)h(a)g(string)f(\(see)i
-(Section)f(1.1)390 1677 y([History)c(In)m(teraction],)i(page)e(1\).)41
-b(Returns:)390 1838 y Fq(0)432 b Fr(If)37 b(no)g(expansions)g(to)s(ok)i
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(append_history)d
+Fg(\()p Ff(in)m(t)33 b(nelemen)m(ts,)i(const)f(c)m(har)f(*\014lename)p
+Fg(\))390 408 y Fq(App)s(end)g(the)i(last)g Fk(nelemen)m(ts)k
+Fq(of)c(the)g(history)f(list)i(to)f Fk(\014lename)p Fq(.)54
+b(If)34 b Fk(\014lename)40 b Fq(is)34 b Fp(NULL)p Fq(,)h(then)390
+518 y(app)s(end)29 b(to)i Fp(~/.history)p Fq(.)38 b(Returns)29
+b(0)i(on)f(success,)h(or)f Fp(errno)f Fq(on)i(a)f(read)h(or)f(write)h
+(error.)3350 694 y([F)-8 b(unction])-3599 b Fh(int)53
+b(history_truncate_file)f Fg(\()p Ff(const)34 b(c)m(har)g(*\014lename,)
+f(in)m(t)h(nlines)p Fg(\))390 804 y Fq(T)-8 b(runcate)39
+b(the)f(history)h(\014le)f Fk(\014lename)p Fq(,)j(lea)m(ving)f(only)f
+(the)g(last)g Fk(nlines)j Fq(lines.)65 b(If)38 b Fk(\014lename)44
+b Fq(is)390 914 y Fp(NULL)p Fq(,)29 b(then)i Fp(~/.history)c
+Fq(is)k(truncated.)40 b(Returns)30 b(0)g(on)h(success,)g(or)f
+Fp(errno)f Fq(on)h(failure.)150 1107 y Fj(2.3.7)63 b(History)41
+b(Expansion)150 1254 y Fq(These)30 b(functions)g(implemen)m(t)h
+(history)f(expansion.)3350 1431 y([F)-8 b(unction])-3599
+b Fh(int)53 b(history_expand)d Fg(\()p Ff(c)m(har)34
+b(*string,)f(c)m(har)h(**output)p Fg(\))390 1540 y Fq(Expand)f
+Fk(string)p Fq(,)j(placing)f(the)f(result)h(in)m(to)g
+Fk(output)p Fq(,)g(a)g(p)s(oin)m(ter)f(to)h(a)g(string)f(\(see)i
+(Section)f(1.1)390 1650 y([History)c(In)m(teraction],)i(page)e(1\).)41
+b(Returns:)390 1804 y Fp(0)432 b Fq(If)37 b(no)g(expansions)g(to)s(ok)i
(place)f(\(or,)i(if)d(the)h(only)f(c)m(hange)i(in)e(the)g(text)i(w)m
-(as)f(the)870 1947 y(remo)m(v)-5 b(al)31 b(of)g(escap)s(e)f(c)m
+(as)f(the)870 1913 y(remo)m(v)-5 b(al)31 b(of)g(escap)s(e)f(c)m
(haracters)i(preceding)e(the)g(history)g(expansion)g(c)m(haracter\);)
-390 2108 y Fq(1)432 b Fr(if)30 b(expansions)g(did)g(tak)m(e)i(place;)
-390 2268 y Fq(-1)384 b Fr(if)30 b(there)h(w)m(as)g(an)f(error)g(in)g
-(expansion;)390 2429 y Fq(2)432 b Fr(if)28 b(the)f(returned)g(line)g
+390 2067 y Fp(1)432 b Fq(if)30 b(expansions)g(did)g(tak)m(e)i(place;)
+390 2222 y Fp(-1)384 b Fq(if)30 b(there)h(w)m(as)g(an)f(error)g(in)g
+(expansion;)390 2376 y Fp(2)432 b Fq(if)28 b(the)f(returned)g(line)g
(should)g(b)s(e)g(displa)m(y)m(ed,)i(but)e(not)h(executed,)h(as)f(with)
-f(the)h Fq(:p)870 2538 y Fr(mo)s(di\014er)h(\(see)j(Section)f(1.1.3)h
-([Mo)s(di\014ers],)e(page)i(2\).)390 2699 y(If)e(an)g(error)g(o)s
-(ccurred)g(in)g(expansion,)g(then)g Fj(output)i Fr(con)m(tains)g(a)f
-(descriptiv)m(e)g(error)f(message.)3350 2886 y([F)-8
-b(unction])-3599 b Fg(char)54 b(*)e(get_history_event)f
-Ff(\()p Fj(const)31 b(c)m(har)g(*string,)g(in)m(t)g(*cindex,)g(in)m(t)g
-(qc)m(har)p Ff(\))390 2995 y Fr(Returns)45 b(the)g(text)i(of)e(the)h
-(history)f(ev)m(en)m(t)i(b)s(eginning)e(at)h Fj(string)53
-b Fq(+)45 b Fj(*cindex)p Fr(.)87 b Fj(*cindex)52 b Fr(is)390
-3105 y(mo)s(di\014ed)28 b(to)i(p)s(oin)m(t)f(to)h(after)g(the)g(ev)m
-(en)m(t)h(sp)s(eci\014er.)39 b(A)m(t)31 b(function)e(en)m(try)-8
-b(,)30 b Fj(cindex)36 b Fr(p)s(oin)m(ts)29 b(to)h(the)390
-3214 y(index)35 b(in)m(to)i Fj(string)44 b Fr(where)35
+f(the)h Fp(:p)870 2485 y Fq(mo)s(di\014er)h(\(see)j(Section)f(1.1.3)h
+([Mo)s(di\014ers],)e(page)i(2\).)390 2639 y(If)e(an)g(error)g(o)s
+(ccurred)g(in)g(expansion,)g(then)g Fk(output)i Fq(con)m(tains)g(a)f
+(descriptiv)m(e)g(error)f(message.)3350 2815 y([F)-8
+b(unction])-3599 b Fh(char)54 b(*)e(get_history_event)f
+Fg(\()p Ff(const)34 b(c)m(har)g(*string,)e(in)m(t)h(*cindex,)h(in)m(t)
+565 2925 y(qc)m(har)p Fg(\))390 3035 y Fq(Returns)45
+b(the)g(text)i(of)e(the)h(history)f(ev)m(en)m(t)i(b)s(eginning)e(at)h
+Fk(string)53 b Fp(+)45 b Fk(*cindex)p Fq(.)87 b Fk(*cindex)52
+b Fq(is)390 3144 y(mo)s(di\014ed)28 b(to)i(p)s(oin)m(t)f(to)h(after)g
+(the)g(ev)m(en)m(t)h(sp)s(eci\014er.)39 b(A)m(t)31 b(function)e(en)m
+(try)-8 b(,)30 b Fk(cindex)36 b Fq(p)s(oin)m(ts)29 b(to)h(the)390
+3254 y(index)35 b(in)m(to)i Fk(string)44 b Fq(where)35
b(the)h(history)g(ev)m(en)m(t)h(sp)s(eci\014cation)g(b)s(egins.)57
-b Fj(qc)m(har)42 b Fr(is)36 b(a)g(c)m(haracter)390 3324
+b Fk(qc)m(har)42 b Fq(is)36 b(a)g(c)m(haracter)390 3363
y(that)27 b(is)g(allo)m(w)m(ed)i(to)f(end)e(the)h(ev)m(en)m(t)h(sp)s
(eci\014cation)g(in)f(addition)g(to)g(the)g(\\normal")h(terminating)390
-3434 y(c)m(haracters.)3350 3620 y([F)-8 b(unction])-3599
-b Fg(char)54 b(**)e(history_tokenize)f Ff(\()p Fj(const)31
-b(c)m(har)g(*string)p Ff(\))390 3730 y Fr(Return)f(an)h(arra)m(y)g(of)g
-(tok)m(ens)h(parsed)e(out)h(of)g Fj(string)p Fr(,)h(m)m(uc)m(h)e(as)i
+3473 y(c)m(haracters.)3350 3649 y([F)-8 b(unction])-3599
+b Fh(char)54 b(**)e(history_tokenize)f Fg(\()p Ff(const)34
+b(c)m(har)g(*string)p Fg(\))390 3759 y Fq(Return)c(an)h(arra)m(y)g(of)g
+(tok)m(ens)h(parsed)e(out)h(of)g Fk(string)p Fq(,)h(m)m(uc)m(h)e(as)i
(the)f(shell)g(migh)m(t.)43 b(The)30 b(tok)m(ens)390
-3839 y(are)h(split)g(on)f(the)h(c)m(haracters)h(in)e(the)h
-Fj(history)p 2006 3839 28 4 v 40 w(w)m(ord)p 2241 3839
-V 39 w(delimiters)k Fr(v)-5 b(ariable,)32 b(and)e(shell)g(quoting)390
-3949 y(con)m(v)m(en)m(tions)i(are)f(ob)s(ey)m(ed.)3350
-4135 y([F)-8 b(unction])-3599 b Fg(char)54 b(*)e(history_arg_extract)f
-Ff(\()p Fj(in)m(t)32 b(\014rst,)d(in)m(t)i(last,)h(const)f(c)m(har)f
-(*string)p Ff(\))390 4245 y Fr(Extract)41 b(a)g(string)f(segmen)m(t)i
-(consisting)f(of)f(the)h Fj(\014rst)g Fr(through)f Fj(last)j
-Fr(argumen)m(ts)e(presen)m(t)f(in)390 4354 y Fj(string)p
-Fr(.)h(Argumen)m(ts)30 b(are)h(split)f(using)g Fq(history_tokenize)p
-Fr(.)150 4588 y Fp(2.4)68 b(History)46 b(V)-11 b(ariables)150
-4748 y Fr(This)26 b(section)i(describ)s(es)e(the)h(externally-visible)i
-(v)-5 b(ariables)28 b(exp)s(orted)e(b)m(y)h(the)g Fk(gnu)g
-Fr(History)g(Library)-8 b(.)3371 4934 y([V)g(ariable])-3598
-b Fg(int)53 b(history_base)390 5044 y Fr(The)30 b(logical)j(o\013set)e
+3868 y(are)h(split)g(on)f(the)h(c)m(haracters)h(in)e(the)h
+Fk(history)p 2006 3868 28 4 v 40 w(w)m(ord)p 2241 3868
+V 39 w(delimiters)k Fq(v)-5 b(ariable,)32 b(and)e(shell)g(quoting)390
+3978 y(con)m(v)m(en)m(tions)i(are)f(ob)s(ey)m(ed.)3350
+4154 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(history_arg_extract)f
+Fg(\()p Ff(in)m(t)34 b(\014rst,)f(in)m(t)g(last,)g(const)h(c)m(har)f
+(*string)p Fg(\))390 4264 y Fq(Extract)41 b(a)g(string)f(segmen)m(t)i
+(consisting)f(of)f(the)h Fk(\014rst)g Fq(through)f Fk(last)j
+Fq(argumen)m(ts)e(presen)m(t)f(in)390 4373 y Fk(string)p
+Fq(.)h(Argumen)m(ts)30 b(are)h(split)f(using)g Fp(history_tokenize)p
+Fq(.)150 4609 y Fo(2.4)68 b(History)46 b(V)-11 b(ariables)150
+4768 y Fq(This)26 b(section)i(describ)s(es)e(the)h(externally-visible)i
+(v)-5 b(ariables)28 b(exp)s(orted)e(b)m(y)h(the)g Fl(gnu)g
+Fq(History)g(Library)-8 b(.)3371 4945 y([V)g(ariable])-3598
+b Fh(int)53 b(history_base)390 5054 y Fq(The)30 b(logical)j(o\013set)e
(of)g(the)f(\014rst)g(en)m(try)g(in)h(the)f(history)g(list.)3371
-5230 y([V)-8 b(ariable])-3598 b Fg(int)53 b(history_length)390
-5340 y Fr(The)30 b(n)m(um)m(b)s(er)f(of)h(en)m(tries)i(curren)m(tly)e
+5230 y([V)-8 b(ariable])-3598 b Fh(int)53 b(history_length)390
+5340 y Fq(The)30 b(n)m(um)m(b)s(er)f(of)h(en)m(tries)i(curren)m(tly)e
(stored)h(in)f(the)g(history)g(list.)p eop end
%%Page: 9 12
-TeXDict begin 9 11 bop 150 -116 a Fr(Chapter)30 b(2:)41
+TeXDict begin 9 11 bop 150 -116 a Fq(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(History)1780 b(9)3371
-299 y([V)-8 b(ariable])-3598 b Fg(int)53 b(history_max_entries)390
-408 y Fr(The)45 b(maxim)m(um)h(n)m(um)m(b)s(er)f(of)h(history)g(en)m
+299 y([V)-8 b(ariable])-3598 b Fh(int)53 b(history_max_entries)390
+408 y Fq(The)45 b(maxim)m(um)h(n)m(um)m(b)s(er)f(of)h(history)g(en)m
(tries.)88 b(This)45 b(m)m(ust)h(b)s(e)f(c)m(hanged)i(using)e
-Fq(stifle_)390 518 y(history\(\))p Fr(.)3371 742 y([V)-8
-b(ariable])-3598 b Fg(int)53 b(history_write_timesta)q(mps)390
-852 y Fr(If)44 b(non-zero,)49 b(timestamps)c(are)g(written)g(to)g(the)g
+Fp(stifle_)390 518 y(history\(\))p Fq(.)3371 742 y([V)-8
+b(ariable])-3598 b Fh(int)53 b(history_write_timesta)q(mps)390
+852 y Fq(If)44 b(non-zero,)49 b(timestamps)c(are)g(written)g(to)g(the)g
(history)f(\014le,)49 b(so)c(they)f(can)h(b)s(e)f(preserv)m(ed)390
962 y(b)s(et)m(w)m(een)31 b(sessions.)41 b(The)30 b(default)g(v)-5
b(alue)31 b(is)f(0,)h(meaning)g(that)g(timestamps)g(are)g(not)f(sa)m(v)
m(ed.)390 1116 y(The)41 b(curren)m(t)g(timestamp)h(format)g(uses)f(the)
-h(v)-5 b(alue)42 b(of)f Fj(history)p 2697 1116 28 4 v
-41 w(commen)m(t)p 3098 1116 V 41 w(c)m(har)48 b Fr(to)42
+h(v)-5 b(alue)42 b(of)f Fk(history)p 2697 1116 28 4 v
+41 w(commen)m(t)p 3098 1116 V 41 w(c)m(har)48 b Fq(to)42
b(delimit)390 1226 y(timestamp)h(en)m(tries)g(in)f(the)g(history)h
(\014le.)76 b(If)42 b(that)h(v)-5 b(ariable)43 b(do)s(es)f(not)g(ha)m
(v)m(e)i(a)f(v)-5 b(alue)42 b(\(the)390 1335 y(default\),)31
b(timestamps)g(will)g(not)f(b)s(e)g(written.)3371 1560
-y([V)-8 b(ariable])-3598 b Fg(char)54 b(history_expansion_char)390
-1669 y Fr(The)35 b(c)m(haracter)i(that)e(in)m(tro)s(duces)g(a)h
+y([V)-8 b(ariable])-3598 b Fh(char)54 b(history_expansion_char)390
+1669 y Fq(The)35 b(c)m(haracter)i(that)e(in)m(tro)s(duces)g(a)h
(history)f(ev)m(en)m(t.)57 b(The)34 b(default)i(is)f(`)p
-Fq(!)p Fr('.)56 b(Setting)35 b(this)h(to)g(0)390 1779
+Fp(!)p Fq('.)56 b(Setting)35 b(this)h(to)g(0)390 1779
y(inhibits)30 b(history)g(expansion.)3371 2003 y([V)-8
-b(ariable])-3598 b Fg(char)54 b(history_subst_char)390
-2113 y Fr(The)40 b(c)m(haracter)i(that)g(in)m(v)m(ok)m(es)g(w)m(ord)f
+b(ariable])-3598 b Fh(char)54 b(history_subst_char)390
+2113 y Fq(The)40 b(c)m(haracter)i(that)g(in)m(v)m(ok)m(es)g(w)m(ord)f
(substitution)f(if)h(found)e(at)i(the)g(start)g(of)g(a)g(line.)72
-b(The)390 2222 y(default)31 b(is)f(`)p Fq(^)p Fr('.)3371
-2447 y([V)-8 b(ariable])-3598 b Fg(char)54 b(history_comment_char)390
-2556 y Fr(During)37 b(tok)m(enization,)43 b(if)38 b(this)f(c)m
+b(The)390 2222 y(default)31 b(is)f(`)p Fp(^)p Fq('.)3371
+2447 y([V)-8 b(ariable])-3598 b Fh(char)54 b(history_comment_char)390
+2556 y Fq(During)37 b(tok)m(enization,)43 b(if)38 b(this)f(c)m
(haracter)j(is)e(seen)f(as)h(the)g(\014rst)f(c)m(haracter)j(of)e(a)g(w)
m(ord,)h(then)390 2666 y(it)44 b(and)e(all)j(subsequen)m(t)d(c)m
(haracters)j(up)d(to)i(a)g(newline)f(are)h(ignored,)i(suppressing)c
(history)390 2776 y(expansion)30 b(for)g(the)h(remainder)f(of)g(the)h
(line.)41 b(This)29 b(is)i(disabled)f(b)m(y)g(default.)3371
-3000 y([V)-8 b(ariable])-3598 b Fg(char)54 b(*)e
-(history_word_delimiter)q(s)390 3110 y Fr(The)27 b(c)m(haracters)i
-(that)f(separate)h(tok)m(ens)f(for)f Fq(history_tokenize\(\))p
-Fr(.)35 b(The)27 b(default)h(v)-5 b(alue)28 b(is)f Fq(")390
-3219 y(\\t\\n\(\)<>;&|")p Fr(.)3371 3444 y([V)-8 b(ariable])-3598
-b Fg(char)54 b(*)e(history_search_delimit)q(er_)q(cha)q(rs)390
-3553 y Fr(The)26 b(list)g(of)g(additional)h(c)m(haracters)h(whic)m(h)e
+3000 y([V)-8 b(ariable])-3598 b Fh(char)54 b(*)e
+(history_word_delimiter)q(s)390 3110 y Fq(The)27 b(c)m(haracters)i
+(that)f(separate)h(tok)m(ens)f(for)f Fp(history_tokenize\(\))p
+Fq(.)35 b(The)27 b(default)h(v)-5 b(alue)28 b(is)f Fp(")390
+3219 y(\\t\\n\(\)<>;&|")p Fq(.)3371 3444 y([V)-8 b(ariable])-3598
+b Fh(char)54 b(*)e(history_search_delimit)q(er_)q(cha)q(rs)390
+3553 y Fq(The)26 b(list)g(of)g(additional)h(c)m(haracters)h(whic)m(h)e
(can)g(delimit)h(a)f(history)g(searc)m(h)h(string,)g(in)f(addition)390
-3663 y(to)31 b(space,)g(T)-8 b(AB,)32 b(`)p Fq(:)p Fr(')e(and)g(`)p
-Fq(?)p Fr(')g(in)g(the)h(case)g(of)g(a)g(substring)e(searc)m(h.)41
+3663 y(to)31 b(space,)g(T)-8 b(AB,)32 b(`)p Fp(:)p Fq(')e(and)g(`)p
+Fp(?)p Fq(')g(in)g(the)h(case)g(of)g(a)g(substring)e(searc)m(h.)41
b(The)30 b(default)h(is)f(empt)m(y)-8 b(.)3371 3887 y([V)g(ariable])
--3598 b Fg(char)54 b(*)e(history_no_expand_char)q(s)390
-3997 y Fr(The)29 b(list)i(of)f(c)m(haracters)h(whic)m(h)e(inhibit)h
+-3598 b Fh(char)54 b(*)e(history_no_expand_char)q(s)390
+3997 y Fq(The)29 b(list)i(of)f(c)m(haracters)h(whic)m(h)e(inhibit)h
(history)g(expansion)f(if)h(found)e(immediately)j(follo)m(wing)390
-4106 y Fj(history)p 672 4106 V 40 w(expansion)p 1104
-4106 V 40 w(c)m(har)p Fr(.)41 b(The)30 b(default)g(is)h(space,)g(tab,)g
-(newline,)f(carriage)i(return,)e(and)g(`)p Fq(=)p Fr('.)3371
-4331 y([V)-8 b(ariable])-3598 b Fg(int)53 b(history_quotes_inhibi)q
-(t_ex)q(pan)q(sio)q(n)390 4440 y Fr(If)29 b(non-zero,)h(single-quoted)g
-(w)m(ords)f(are)g(not)h(scanned)f(for)g(the)g(history)g(expansion)g(c)m
-(haracter.)390 4550 y(The)h(default)g(v)-5 b(alue)31
-b(is)g(0.)3371 4774 y([V)-8 b(ariable])-3598 b Fg(rl_linebuf_func_t)57
-b(*)c(history_inhibit_expans)q(ion)q(_fu)q(ncti)q(on)390
-4884 y Fr(This)32 b(should)h(b)s(e)f(set)i(to)g(the)g(address)e(of)i(a)
-f(function)g(that)h(tak)m(es)h(t)m(w)m(o)g(argumen)m(ts:)46
-b(a)34 b Fq(char)29 b(*)390 4994 y Fr(\()p Fj(string)8
-b Fr(\))27 b(and)f(an)g Fq(int)g Fr(index)g(in)m(to)i(that)f(string)f
-(\()p Fj(i)5 b Fr(\).)40 b(It)27 b(should)f(return)f(a)i(non-zero)g(v)
+4106 y Fk(history)p 672 4106 V 40 w(expansion)p 1104
+4106 V 40 w(c)m(har)p Fq(.)41 b(The)30 b(default)g(is)h(space,)g(tab,)g
+(newline,)f(carriage)i(return,)e(and)g(`)p Fp(=)p Fq('.)3371
+4331 y([V)-8 b(ariable])-3598 b Fh(int)53 b(history_quotes_inhibi)q
+(t_ex)q(pan)q(sio)q(n)390 4440 y Fq(If)27 b(non-zero,)i(double-quoted)f
+(w)m(ords)g(are)g(not)g(scanned)f(for)h(the)g(history)g(expansion)f(c)m
+(haracter)390 4550 y(or)j(the)h(history)f(commen)m(t)i(c)m(haracter.)42
+b(The)30 b(default)g(v)-5 b(alue)31 b(is)g(0.)3371 4774
+y([V)-8 b(ariable])-3598 b Fh(rl_linebuf_func_t)57 b(*)c
+(history_inhibit_expans)q(ion)q(_fu)q(ncti)q(on)390 4884
+y Fq(This)32 b(should)h(b)s(e)f(set)i(to)g(the)g(address)e(of)i(a)f
+(function)g(that)h(tak)m(es)h(t)m(w)m(o)g(argumen)m(ts:)46
+b(a)34 b Fp(char)29 b(*)390 4994 y Fq(\()p Fk(string)8
+b Fq(\))27 b(and)f(an)g Fp(int)g Fq(index)g(in)m(to)i(that)f(string)f
+(\()p Fk(i)5 b Fq(\).)40 b(It)27 b(should)f(return)f(a)i(non-zero)g(v)
-5 b(alue)27 b(if)g(the)390 5103 y(history)i(expansion)g(starting)h(at)
-g Fj(string[i])j Fr(should)28 b(not)i(b)s(e)e(p)s(erformed;)h(zero)h
+g Fk(string[i])j Fq(should)28 b(not)i(b)s(e)e(p)s(erformed;)h(zero)h
(if)f(the)g(expansion)390 5213 y(should)i(b)s(e)g(done.)45
b(It)32 b(is)g(in)m(tended)g(for)g(use)g(b)m(y)f(applications)i(lik)m
(e)h(Bash)e(that)g(use)g(the)g(history)390 5322 y(expansion)e(c)m
(haracter)i(for)e(additional)i(purp)s(oses.)39 b(By)30
b(default,)h(this)f(v)-5 b(ariable)31 b(is)g(set)g(to)g
-Fq(NULL)p Fr(.)p eop end
+Fp(NULL)p Fq(.)p eop end
%%Page: 10 13
-TeXDict begin 10 12 bop 150 -116 a Fr(Chapter)30 b(2:)41
+TeXDict begin 10 12 bop 150 -116 a Fq(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(History)1734 b(10)150
-299 y Fp(2.5)68 b(History)46 b(Programming)g(Example)150
-458 y Fr(The)30 b(follo)m(wing)i(program)e(demonstrates)h(simple)f(use)
-g(of)h(the)f Fk(gnu)g Fr(History)h(Library)-8 b(.)390
+299 y Fo(2.5)68 b(History)46 b(Programming)g(Example)150
+458 y Fq(The)30 b(follo)m(wing)i(program)e(demonstrates)h(simple)f(use)
+g(of)h(the)f Fl(gnu)g Fq(History)h(Library)-8 b(.)390
633 y Fe(#include)41 b(<stdio.h>)390 720 y(#include)g
(<readline/history.h>)390 894 y(main)f(\(argc,)h(argv\))586
981 y(int)f(argc;)586 1068 y(char)g(**argv;)390 1156
@@ -6440,7 +5874,7 @@ y(else)h(if)g(\(strcmp)h(\(line,)g("save"\))f(==)g(0\))704
(\("history_file"\);)625 5340 y(else)e(if)g(\(strcmp)h(\(line,)g
("list"\))f(==)g(0\))p eop end
%%Page: 11 14
-TeXDict begin 11 13 bop 150 -116 a Fr(Chapter)30 b(2:)41
+TeXDict begin 11 13 bop 150 -116 a Fq(Chapter)30 b(2:)41
b(Programming)30 b(with)g(GNU)h(History)1734 b(11)704
299 y Fe({)782 386 y(register)41 b(HIST_ENTRY)h(**the_list;)782
473 y(register)f(int)f(i;)782 648 y(the_list)h(=)f(history_list)i
@@ -6459,21 +5893,19 @@ y({)1096 1955 y(free)f(\(entry->line\);)1096 2042 y(free)g(\(entry\);)
(`delete'\\n"\);)861 2565 y(})704 2653 y(})547 2740 y(})390
2827 y(})p eop end
%%Page: 12 15
-TeXDict begin 12 14 bop 150 -116 a Fr(App)s(endix)29
-b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(12)150 299 y Fn(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 Fr(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 Fo(\015)e
-Fr(2000,)j(2001,)f(2002,)g(2007,)h(2008)f(F)-8 b(ree)31
+TeXDict begin 12 14 bop 3659 -116 a Fq(12)150 299 y Fm(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 Fq(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 Fn(\015)e
+Fq(2000,)j(2001,)f(2002,)g(2007,)h(2008)f(F)-8 b(ree)31
b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 745
-y Fq(http://fsf.org/)390 964 y Fr(Ev)m(ery)m(one)g(is)g(p)s(ermitted)f
+y Fp(http://fsf.org/)390 964 y Fq(Ev)m(ery)m(one)g(is)g(p)s(ermitted)f
(to)h(cop)m(y)g(and)f(distribute)g(v)m(erbatim)h(copies)390
1074 y(of)g(this)f(license)h(do)s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f
(is)f(not)h(allo)m(w)m(ed.)199 1207 y(0.)61 b(PREAMBLE)330
1340 y(The)37 b(purp)s(ose)e(of)i(this)g(License)h(is)f(to)h(mak)m(e)g
(a)g(man)m(ual,)h(textb)s(o)s(ok,)h(or)d(other)g(functional)h(and)330
-1450 y(useful)29 b(do)s(cumen)m(t)h Fj(free)36 b Fr(in)29
+1450 y(useful)29 b(do)s(cumen)m(t)h Fk(free)36 b Fq(in)29
b(the)i(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j
(the)e(e\013ectiv)m(e)j(freedom)330 1559 y(to)f(cop)m(y)g(and)f
(redistribute)g(it,)h(with)g(or)f(without)g(mo)s(difying)g(it,)i
@@ -6543,7 +5975,7 @@ b(\\In)m(v)-5 b(arian)m(t)27 b(Sections")g(are)f(certain)g(Secondary)g
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: 13 16
-TeXDict begin 13 15 bop 150 -116 a Fr(App)s(endix)29
+TeXDict begin 13 15 bop 150 -116 a Fq(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
b(13)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
@@ -6583,23 +6015,23 @@ b(is)f(not)h(T)-8 b(ransparen)m(t)34 b(if)g(used)g(for)g(an)m(y)g
(substan)m(tial)h(amoun)m(t)g(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g
(is)330 2134 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)f(called)i
(\\Opaque".)330 2285 y(Examples)53 b(of)g(suitable)h(formats)f(for)g(T)
--8 b(ransparen)m(t)53 b(copies)h(include)f(plain)g Fk(asci)r(i)g
-Fr(without)330 2395 y(markup,)37 b(T)-8 b(exinfo)36 b(input)f(format,)j
+-8 b(ransparen)m(t)53 b(copies)h(include)f(plain)g Fl(asci)r(i)g
+Fq(without)330 2395 y(markup,)37 b(T)-8 b(exinfo)36 b(input)f(format,)j
(LaT)1759 2414 y(E)1810 2395 y(X)e(input)f(format,)j
-Fd(SGML)f Fr(or)f Fd(XML)g Fr(using)g(a)g(publicly)330
-2504 y(a)m(v)-5 b(ailable)42 b Fd(DTD)p Fr(,)h(and)c
-(standard-conforming)g(simple)h Fd(HTML)p Fr(,)i(P)m(ostScript)e(or)f
-Fd(PDF)h Fr(designed)330 2614 y(for)e(h)m(uman)f(mo)s(di\014cation.)65
+Fd(SGML)f Fq(or)f Fd(XML)g Fq(using)g(a)g(publicly)330
+2504 y(a)m(v)-5 b(ailable)42 b Fd(DTD)p Fq(,)h(and)c
+(standard-conforming)g(simple)h Fd(HTML)p Fq(,)i(P)m(ostScript)e(or)f
+Fd(PDF)h Fq(designed)330 2614 y(for)e(h)m(uman)f(mo)s(di\014cation.)65
b(Examples)38 b(of)h(transparen)m(t)f(image)h(formats)g(include)f
-Fd(PNG)p Fr(,)i Fd(X)n(CF)330 2724 y Fr(and)e Fd(JPG)p
-Fr(.)64 b(Opaque)38 b(formats)h(include)f(proprietary)h(formats)f(that)
+Fd(PNG)p Fq(,)i Fd(X)n(CF)330 2724 y Fq(and)e Fd(JPG)p
+Fq(.)64 b(Opaque)38 b(formats)h(include)f(proprietary)h(formats)f(that)
h(can)g(b)s(e)f(read)h(and)f(edited)330 2833 y(only)54
b(b)m(y)f(proprietary)h(w)m(ord)f(pro)s(cessors,)59 b
-Fd(SGML)54 b Fr(or)f Fd(XML)h Fr(for)g(whic)m(h)f(the)h
-Fd(DTD)g Fr(and/or)330 2943 y(pro)s(cessing)61 b(to)s(ols)h(are)f(not)g
+Fd(SGML)54 b Fq(or)f Fd(XML)h Fq(for)g(whic)m(h)f(the)h
+Fd(DTD)g Fq(and/or)330 2943 y(pro)s(cessing)61 b(to)s(ols)h(are)f(not)g
(generally)i(a)m(v)-5 b(ailable,)71 b(and)60 b(the)h(mac)m
-(hine-generated)j Fd(HTML)p Fr(,)330 3052 y(P)m(ostScript)31
-b(or)f Fd(PDF)h Fr(pro)s(duced)d(b)m(y)j(some)f(w)m(ord)g(pro)s
+(hine-generated)j Fd(HTML)p Fq(,)330 3052 y(P)m(ostScript)31
+b(or)f Fd(PDF)h Fq(pro)s(duced)d(b)m(y)j(some)f(w)m(ord)g(pro)s
(cessors)g(for)g(output)g(purp)s(oses)f(only)-8 b(.)330
3203 y(The)34 b(\\Title)h(P)m(age")i(means,)e(for)f(a)h(prin)m(ted)f(b)
s(o)s(ok,)h(the)f(title)i(page)f(itself,)h(plus)e(suc)m(h)f(follo)m
@@ -6637,7 +6069,7 @@ 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: 14 17
-TeXDict begin 14 16 bop 150 -116 a Fr(App)s(endix)29
+TeXDict begin 14 16 bop 150 -116 a Fq(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
b(14)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
@@ -6730,7 +6162,7 @@ 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
(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: 15 18
-TeXDict begin 15 17 bop 150 -116 a Fr(App)s(endix)29
+TeXDict begin 15 17 bop 150 -116 a Fq(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
b(15)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)
@@ -6812,7 +6244,7 @@ b(arran)m(t)m(y)32 b(Disclaimers.)330 5121 y(If)h(the)g(Mo)s(di\014ed)g
b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)p
eop end
%%Page: 16 19
-TeXDict begin 16 18 bop 150 -116 a Fr(App)s(endix)29
+TeXDict begin 16 18 bop 150 -116 a Fq(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
b(16)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
@@ -6900,7 +6332,7 @@ 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
(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: 17 20
-TeXDict begin 17 19 bop 150 -116 a Fr(App)s(endix)29
+TeXDict begin 17 19 bop 150 -116 a Fq(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
b(17)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
@@ -6988,7 +6420,7 @@ 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
(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: 18 21
-TeXDict begin 18 20 bop 150 -116 a Fr(App)s(endix)29
+TeXDict begin 18 20 bop 150 -116 a Fq(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
b(18)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
@@ -6998,7 +6430,7 @@ b(License)e(from)g(time)h(to)g(time.)46 b(Suc)m(h)31
b(new)h(v)m(ersions)g(will)h(b)s(e)e(similar)h(in)g(spirit)330
653 y(to)j(the)g(presen)m(t)f(v)m(ersion,)i(but)e(ma)m(y)h(di\013er)f
(in)g(detail)h(to)g(address)f(new)g(problems)f(or)i(concerns.)330
-762 y(See)c Fq(http://www.gnu.org/copy)o(left)o(/)p Fr(.)330
+762 y(See)c Fp(http://www.gnu.org/copy)o(left)o(/)p Fq(.)330
897 y(Eac)m(h)f(v)m(ersion)g(of)g(the)f(License)h(is)g(giv)m(en)g(a)g
(distinguishing)f(v)m(ersion)h(n)m(um)m(b)s(er.)39 b(If)29
b(the)g(Do)s(cumen)m(t)330 1006 y(sp)s(eci\014es)45 b(that)h(a)g
@@ -7055,10 +6487,10 @@ 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: 19 22
-TeXDict begin 19 21 bop 150 -116 a Fr(App)s(endix)29
+TeXDict begin 19 21 bop 150 -116 a Fq(App)s(endix)29
b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(19)150 299 y Fp(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 Fr(T)-8 b(o)35
+b(19)150 299 y Fo(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 Fq(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
568 y(do)s(cumen)m(t)30 b(and)g(put)g(the)g(follo)m(wing)i(cop)m(yrigh)
@@ -7072,7 +6504,7 @@ y(under)h(the)f(terms)g(of)g(the)g(GNU)g(Free)g(Documentation)i
1029 y(with)g(no)e(Invariant)j(Sections,)f(no)f(Front-Cover)h(Texts,)g
(and)f(no)f(Back-Cover)468 1116 y(Texts.)80 b(A)40 b(copy)g(of)g(the)f
(license)i(is)f(included)h(in)f(the)g(section)g(entitled)h(``GNU)468
-1203 y(Free)g(Documentation)h(License''.)275 1337 y Fr(If)d(y)m(ou)h
+1203 y(Free)g(Documentation)h(License''.)275 1337 y Fq(If)d(y)m(ou)h
(ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)41 b(Sections,)i(F)-8
b(ron)m(t-Co)m(v)m(er)42 b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k
(T)-8 b(exts,)43 b(replace)e(the)150 1447 y(\\with)6
@@ -7080,7 +6512,7 @@ b(.)22 b(.)g(.)12 b(T)-8 b(exts.")41 b(line)31 b(with)f(this:)547
1559 y Fe(with)40 b(the)g(Invariant)h(Sections)g(being)g
Fc(list)f(their)g(titles)p Fe(,)h(with)547 1646 y(the)f(Front-Cover)i
(Texts)e(being)g Fc(list)p Fe(,)h(and)f(with)g(the)g(Back-Cover)h
-(Texts)547 1733 y(being)f Fc(list)p Fe(.)275 1868 y Fr(If)34
+(Texts)547 1733 y(being)f Fc(list)p Fe(.)275 1868 y Fq(If)34
b(y)m(ou)i(ha)m(v)m(e)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(without)f
(Co)m(v)m(er)h(T)-8 b(exts,)38 b(or)d(some)g(other)h(com)m(bination)g
(of)g(the)150 1978 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g
@@ -7093,144 +6525,57 @@ 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: 20 23
-TeXDict begin 20 22 bop 150 -116 a Fr(App)s(endix)29
-b(B:)i(Concept)f(Index)2391 b(20)150 299 y Fn(App)t(endix)52
-b(B)81 b(Concept)51 b(Index)150 638 y Fp(A)150 754 y
-Fb(anc)n(hored)26 b(searc)n(h)6 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+TeXDict begin 20 22 bop 150 -116 a Fq(App)s(endix)29
+b(B:)i(Concept)f(Index)2391 b(20)150 100 y Fm(App)t(endix)52
+b(B)81 b(Concept)51 b(Index)146 434 y Fo(A)150 550 y
+Fb(anc)n(hored)26 b(searc)n(h)12 b Fa(:)i(:)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(:)h(:)f(:)33 b Fb(7)150 988 y Fp(E)150
-1104 y Fb(ev)n(en)n(t)25 b(designators)18 b Fa(:)c(:)f(:)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(:)45 b Fb(1)2025 638 y Fp(H)2025
-852 y Fb(history)25 b(ev)n(en)n(ts)6 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(:)33 b Fb(1)2025
-987 y(history)25 b(expansion)13 b Fa(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)27 b Fb(7)146 782 y Fo(E)150
+898 y Fb(ev)n(en)n(t)e(designators)7 b Fa(:)14 b(:)f(:)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(:)22 b Fb(1)146 1140 y Fo(H)150
+1256 y Fb(history)k(ev)n(en)n(ts)12 b Fa(:)h(:)g(:)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(:)40 b Fb(1)2025 1122 y(History)25 b(Searc)n(hing)10
-b Fa(:)j(:)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(:)37
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(1)150
+1344 y(history)f(expansion)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(:)g(:)34 b Fb(1)150 1431 y(History)26 b(Searc)n(hing)16
+b Fa(:)d(:)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(:)31
b Fb(7)p eop end
%%Page: 21 24
-TeXDict begin 21 23 bop 150 -116 a Fr(App)s(endix)29
+TeXDict begin 21 23 bop 150 -116 a Fq(App)s(endix)29
b(C:)h(F)-8 b(unction)31 b(and)f(V)-8 b(ariable)32 b(Index)1832
-b(21)150 299 y Fn(App)t(endix)52 b(C)81 b(F)-13 b(unction)52
-b(and)h(V)-13 b(ariable)53 b(Index)150 638 y Fp(A)150
-755 y Fe(add_history)7 b Fa(:)15 b(:)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(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(5)150 842 y Fe
-(add_history_time)11 b Fa(:)17 b(:)c(:)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(:)38 b Fb(5)150 929 y Fe(append_history)16 b Fa(:)g(:)d(:)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(:)43 b Fb(8)150
-1182 y Fp(C)150 1299 y Fe(clear_history)21 b Fa(:)14
-b(:)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(:)45
-b Fb(6)150 1386 y Fe(current_history)13 b Fa(:)k(:)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(:)g(:)h(:)f(:)40 b Fb(6)150 1639 y Fp(F)150
-1755 y Fe(free_history_entry)27 b 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(:)50 b Fb(5)150 2008 y Fp(G)150 2124 y Fe(get_history_event)8
-b Fa(:)17 b(:)c(:)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(:)35
-b Fb(8)150 2377 y Fp(H)150 2494 y Fe(history_arg_extract)25
-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(:)h(:)f(:)g(:)47 b Fb(8)150
-2581 y Fe(history_base)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(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(8)150 2669 y Fe
-(history_comment_char)18 b Fa(:)f(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45
-b Fb(9)150 2756 y Fe(history_expand)16 b Fa(:)g(:)d(:)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(:)43 b Fb(8)150 2843 y Fe
-(history_expansion_char)13 b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40
-b Fb(9)150 2931 y Fe(history_get)7 b Fa(:)15 b(:)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(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(6)150
-3018 y Fe(history_get_history_state)28 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49
-b Fb(5)150 3106 y Fe(history_get_time)11 b Fa(:)17 b(:)c(:)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(:)38 b Fb(6)150 3193 y Fe
-(history_inhibit_expansion_fun)q(ctio)q(n)16 b Fa(:)j(:)13
-b(:)g(:)g(:)h(:)f(:)g(:)g(:)43 b Fb(9)150 3280 y Fe(history_is_stifled)
-27 b 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(:)50 b Fb(6)150
-3368 y Fe(history_length)16 b Fa(:)g(:)d(:)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(:)43 b Fb(8)150 3455 y Fe(history_list)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(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-48 b Fb(6)150 3543 y Fe(history_max_entries)25 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(:)h(:)f(:)g(:)47 b Fb(9)150 3630 y Fe
-(history_no_expand_chars)10 b Fa(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
-b Fb(9)150 3718 y Fe(history_quotes_inhibit_expans)q(ion)28
-b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)48
-b Fb(9)150 3805 y Fe(history_search)16 b Fa(:)g(:)d(:)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(:)43 b Fb(7)150 3892 y Fe
-(history_search_delimiter_char)q(s)10 b Fa(:)18 b(:)13
-b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b
-Fb(9)150 3980 y Fe(history_search_pos)27 b 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(:)50 b Fb(7)2025 638 y Fe(history_search_prefix)15
-b Fa(:)j(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)42 b Fb(7)2025 725 y Fe
-(history_set_history_state)27 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)49 b Fb(5)2025
-813 y Fe(history_set_pos)13 b Fa(:)k(:)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(:)g(:)41 b Fb(6)2025 900 y Fe(history_subst_char)27
-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(:)50 b Fb(9)2025
-987 y Fe(history_tokenize)11 b Fa(:)16 b(:)d(:)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(:)g(:)38 b Fb(8)2025 1074 y Fe(history_total_bytes)24
-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(:)g(:)g(:)h(:)47 b Fb(6)2025
-1162 y Fe(history_truncate_file)15 b Fa(:)j(:)13 b(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)42
-b Fb(8)2025 1249 y Fe(history_word_delimiters)10 b Fa(:)18
-b(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)37 b Fb(9)2025 1336 y Fe(history_write_timestamps)8
-b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)35 b Fb(9)2025 1588 y Fp(N)2025
-1704 y Fe(next_history)24 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(:)g(:)g(:)h(:)f(:)g(:)48 b Fb(7)2025 1956 y Fp(P)2025
-2072 y Fe(previous_history)11 b Fa(:)16 b(:)d(:)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(:)g(:)38 b Fb(6)2025 2324 y Fp(R)2025 2440
-y Fe(read_history)24 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
-(:)g(:)g(:)h(:)f(:)g(:)48 b Fb(7)2025 2527 y Fe(read_history_range)27
-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(:)50 b Fb(7)2025
-2614 y Fe(remove_history)16 b Fa(:)g(:)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(:)43 b Fb(5)2025 2702 y Fe(replace_history_entry)15
-b Fa(:)j(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)42 b Fb(5)2025 2953 y
-Fp(S)2025 3069 y Fe(stifle_history)16 b Fa(:)g(:)d(:)g(:)g(:)h(:)f(:)g
+b(21)150 100 y Fm(App)t(endix)52 b(C)81 b(F)-13 b(unction)52
+b(and)h(V)-13 b(ariable)53 b(Index)150 400 y Fe(history_base)10
+b Fa(:)16 b(:)d(:)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(:)g(:)g(:)h(:)f(:)g(:)g(:)43 b Fb(6)2025 3321 y Fp(U)2025
-3437 y Fe(unstifle_history)11 b Fa(:)16 b(:)d(:)h(:)f(:)g(:)g(:)g(:)g
+g(:)25 b Fb(8)150 487 y Fe(history_comment_char)7 b Fa(:)17
+b(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(9)150 574 y Fe
+(history_expansion_char)i Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34
+b Fb(9)150 661 y Fe(history_inhibit_expansion_fun)q(ctio)q(n)28
+b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)37 b Fb(9)150
+749 y Fe(history_length)25 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(:)h(:)
-f(:)g(:)g(:)g(:)38 b Fb(6)2025 3525 y Fe(using_history)21
-b Fa(:)13 b(:)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(:)46
-b Fb(5)2025 3776 y Fp(W)2025 3893 y Fe(where_history)21
-b Fa(:)13 b(:)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(:)46
-b Fb(6)2025 3980 y Fe(write_history)21 b Fa(:)13 b(:)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(:)46 b Fb(7)p eop end
+f(:)g(:)g(:)g(:)g(:)37 b Fb(8)150 836 y Fe(history_max_entries)9
+b Fa(:)18 b(:)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(:)24 b Fb(9)150
+923 y Fe(history_no_expand_chars)16 b Fa(:)i(:)c(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)31
+b Fb(9)150 1010 y Fe(history_quotes_inhibit_expans)q(ion)11
+b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25
+b Fb(9)150 1097 y Fe(history_search_delimiter_char)q(s)15
+b Fa(:)k(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)30
+b Fb(9)150 1184 y Fe(history_subst_char)12 b Fa(:)17
+b(:)c(:)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(:)27 b Fb(9)150
+1272 y Fe(history_word_delimiters)16 b Fa(:)i(:)c(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)31
+b Fb(9)150 1359 y Fe(history_write_timestamps)13 b Fa(:)19
+b(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)28 b Fb(9)p eop end
%%Trailer
userdict /end-hook known{end-hook}if
diff --git a/doc/history.texi b/doc/history.texi
index a991fe5..98e2233 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--2014 Free Software Foundation, Inc.
+Copyright @copyright{} 1988--2016 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 d7ba161..5ee3f23 100644
--- a/doc/history_3.ps
+++ b/doc/history_3.ps
@@ -1,10 +1,10 @@
%!PS-Adobe-3.0
-%%Creator: groff version 1.19.2
-%%CreationDate: Tue Feb 11 16:57:26 2014
+%%Creator: groff version 1.22.3
+%%CreationDate: Wed Jul 1 10:32:47 2015
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
-%%DocumentSuppliedResources: procset grops 1.19 2
+%%DocumentSuppliedResources: procset grops 1.22 3
%%Pages: 7
%%PageOrder: Ascend
%%DocumentMedia: Default 612 792 0 () ()
@@ -14,7 +14,7 @@
%%PageMedia: Default
%%EndDefaults
%%BeginProlog
-%%BeginResource: procset grops 1.19 2
+%%BeginResource: procset grops 1.22 3
%!PS-Adobe-3.0 Resource-ProcSet
/setpacking where{
pop
@@ -72,6 +72,7 @@ exch pop add exch pop
/level0 save def
1 setlinecap
1 setlinejoin
+DEFS/BPhook known{DEFS begin BPhook end}if
72 RES div dup scale
LS{
90 rotate
@@ -137,7 +138,10 @@ pop
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
{
-1 index/FID ne{def}{pop pop}ifelse
+1 index/FID ne
+2 index/UniqueID ne
+and
+{def}{pop pop}ifelse
}forall
/Encoding exch def
dup/FontName exch def
@@ -175,8 +179,10 @@ newpath
userdict begin
/showpage{}def
/setpagedevice{}def
+mark
}bind def
/PEND{
+cleartomark
countdictstack CNT sub{end}repeat
level1 restore
}bind def
@@ -229,146 +235,149 @@ def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 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-2011 by the Free Softw)-.1 E(are F)-.1 E
+/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.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-2014 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
(eep track of)-.1 F .024(those lines, associate arbitrary data with eac\
h line, and utilize information from pre)108 165.6 R .024
(vious lines in composing)-.25 F(ne)108 177.6 Q 2.5(wo)-.25 G(nes.)-2.5
-E F1(HIST)72 199.2 Q(OR)-.197 E 2.738(YE)-.383 G(XP)-2.738 E(ANSION)-.81
-E F0 .823(The history library supports a history e)108 211.2 R .822
+E F1(HIST)72 194.4 Q(OR)-.197 E 2.738(YE)-.383 G(XP)-2.738 E(ANSION)-.81
+E F0 .823(The history library supports a history e)108 206.4 R .822
(xpansion feature that is identical to the history e)-.15 F .822
(xpansion in)-.15 F/F2 10/Times-Bold@0 SF(bash.)3.322 E F0
-(This section describes what syntax features are a)108 223.2 Q -.25(va)
--.2 G(ilable.).25 E 1.305(History e)108 240 R 1.305
+(This section describes what syntax features are a)108 218.4 Q -.25(va)
+-.2 G(ilable.).25 E 1.305(History e)108 235.2 R 1.305
(xpansions introduce w)-.15 F 1.306(ords from the history list into the\
input stream, making it easy to repeat)-.1 F .21
-(commands, insert the ar)108 252 R .21(guments to a pre)-.18 F .209
+(commands, insert the ar)108 247.2 R .21(guments to a pre)-.18 F .209
(vious command into the current input line, or \214x errors in pre)-.25
-F(vious)-.25 E(commands quickly)108 264 Q(.)-.65 E 1.296(History e)108
-280.8 R 1.297(xpansion is usually performed immediately after a complet\
-e line is read.)-.15 F 1.297(It tak)6.297 F 1.297(es place in tw)-.1 F
-(o)-.1 E 2.855(parts. The)108 292.8 R .354(\214rst is to determine whic\
-h line from the history list to use during substitution.)2.855 F .354
+F(vious)-.25 E(commands quickly)108 259.2 Q(.)-.65 E 1.296(History e)108
+276 R 1.297(xpansion is usually performed immediately after a complete \
+line is read.)-.15 F 1.297(It tak)6.297 F 1.297(es place in tw)-.1 F(o)
+-.1 E 2.855(parts. The)108 288 R .354(\214rst is to determine which lin\
+e from the history list to use during substitution.)2.855 F .354
(The second is to)5.354 F .116
(select portions of that line for inclusion into the current one.)108
-304.8 R .117(The line selected from the history is the)5.116 F/F3 10
+300 R .117(The line selected from the history is the)5.116 F/F3 10
/Times-Italic@0 SF -.15(ev)2.617 G(ent).15 E F0(,)A .846
-(and the portions of that line that are acted upon are)108 316.8 R F3
-(wor)3.346 E(ds)-.37 E F0 5.846(.V)C(arious)-6.956 E F3(modi\214er)3.346
-E(s)-.1 E F0 .846(are a)3.346 F -.25(va)-.2 G .845(ilable to manipulate)
-.25 F .304(the selected w)108 328.8 R 2.804(ords. The)-.1 F .304
-(line is brok)2.804 F .304(en into w)-.1 F .304(ords in the same f)-.1 F
-.304(ashion as)-.1 F F2(bash)2.804 E F0 .305
-(does when reading input, so)2.804 F .539(that se)108 340.8 R -.15(ve)
--.25 G .539(ral w).15 F .539(ords that w)-.1 F .539
+(and the portions of that line that are acted upon are)108 312 R F3(wor)
+3.346 E(ds)-.37 E F0 5.846(.V)C(arious)-6.956 E F3(modi\214er)3.346 E(s)
+-.1 E F0 .846(are a)3.346 F -.25(va)-.2 G .845(ilable to manipulate).25
+F .304(the selected w)108 324 R 2.804(ords. The)-.1 F .304(line is brok)
+2.804 F .304(en into w)-.1 F .304(ords in the same f)-.1 F .304
+(ashion as)-.1 F F2(bash)2.804 E F0 .305(does when reading input, so)
+2.804 F .539(that se)108 336 R -.15(ve)-.25 G .539(ral w).15 F .539
+(ords that w)-.1 F .539
(ould otherwise be separated are considered one w)-.1 F .538
(ord when surrounded by quotes)-.1 F .307(\(see the description of)108
-352.8 R F2(history_tok)2.807 E(enize\(\))-.1 E F0(belo)2.807 E 2.807
+348 R F2(history_tok)2.807 E(enize\(\))-.1 E F0(belo)2.807 E 2.807
(w\). History)-.25 F -.15(ex)2.807 G .307
(pansions are introduced by the appearance of).15 F .52(the history e)
-108 364.8 R .52(xpansion character)-.15 F 3.02(,w)-.4 G .52(hich is)
--3.02 F F2(!)3.853 E F0 .52(by def)3.853 F 3.02(ault. Only)-.1 F .52
+108 360 R .52(xpansion character)-.15 F 3.02(,w)-.4 G .52(hich is)-3.02
+F F2(!)3.853 E F0 .52(by def)3.853 F 3.02(ault. Only)-.1 F .52
(backslash \()3.02 F F2(\\).833 E F0 3.02(\)a).833 G .52
-(nd single quotes can quote the)-3.02 F(history e)108 376.8 Q
-(xpansion character)-.15 E(.)-.55 E F2(Ev)87 393.6 Q(ent Designators)-.1
-E F0 .204(An e)108 405.6 R -.15(ve)-.25 G .204(nt designator is a refer\
+(nd single quotes can quote the)-3.02 F(history e)108 372 Q
+(xpansion character)-.15 E(.)-.55 E F2(Ev)87 388.8 Q(ent Designators)-.1
+E F0 .204(An e)108 400.8 R -.15(ve)-.25 G .204(nt designator is a refer\
ence to a command line entry in the history list.).15 F .205
-(Unless the reference is abso-)5.204 F(lute, e)108 417.6 Q -.15(ve)-.25
+(Unless the reference is abso-)5.204 F(lute, e)108 412.8 Q -.15(ve)-.25
G(nts are relati).15 E .3 -.15(ve t)-.25 H 2.5(ot).15 G
-(he current position in the history list.)-2.5 E F2(!)108 434.4 Q F0
-(Start a history substitution, e)32.67 E(xcept when follo)-.15 E
+(he current position in the history list.)-2.5 E F2(!)108 429.6 Q F0
+(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 446.4 Q F3(n)A F0(Refer to command line)
-27.67 E F3(n)2.5 E F0(.).24 E F2<21ad>108 458.4 Q F3(n)A F0
-(Refer to the current command minus)21.97 E F3(n)2.5 E F0(.).24 E F2(!!)
-108 470.4 Q F0(Refer to the pre)29.34 E(vious command.)-.25 E
-(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 482.4 Q F3(string)
+(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
+(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)9.33 F F3(string)144 494.4 Q F0(.)
-.22 E F2(!?)108 506.4 Q F3(string)A F2([?])A F0 1.503(Refer to the most\
- recent command preceding the current position in the history list cont\
-aining)144 518.4 R F3(string)144 530.4 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 547.4 Q F3(string1)-5 I F4(^)5 I F3(string2)-5 I F4(^)5 I F0 2.63
-(Quick substitution.)144 554.4 R 2.629
+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 566.4 S(!!:s/).74 E F3(string1)A F0(/)A
+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 578.4 Q F0
-(The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F2 -.75
-(Wo)87 595.2 S(rd Designators).75 E F0 -.8(Wo)108 607.2 S 1.313
+(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 619.2 R .529(ord designator)-.1 F 5.529(.I)-.55 G
+.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
(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 631.2 R 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 643.2 Q
-F2 2.5(0\()108 660 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 672 Q 2.5
-(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E F3
-(n)108.36 684 Q F0(The)30.64 E F3(n)2.5 E F0(th w)A(ord.)-.1 E F2(^)108
-696 Q F0(The \214rst ar)32.67 E 2.5(gument. That)-.18 F(is, w)2.5 E
-(ord 1.)-.1 E F2($)108 708 Q F0 .064(The last w)31 F 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 720 Q(ord in the line.)-.1 E
-(GNU History 6.3)72 768 Q(2013 June 27)138.175 E(1)202.335 E 0 Cg EP
+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(2015 May 24)138.175 E(1)202.335 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Bold@0 SF(%)108 84 Q F0(The w)26 E
+/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)20.65 G
+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)31 F .315(ords b)-.1 F .315(ut the zeroth.)-.2 F .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)26 E(viates)-.25 E F2(x\255$)2.5 E F0(.)A F1<78ad>108 144
-Q F0(Abbre)25.3 E(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(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)30.44 E .3 -.15(ve a t)-.15 H
+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
+(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
(railing \214le name component, lea).15 E(ving only the head.)-.2 E F1
-(t)108 230.4 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H
+(t)108 230.4 Q F0(Remo)144 230.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)31.56 E .3 -.15(ve a t)-.15 H(railing suf).15 E
+108 242.4 Q F0(Remo)144 242.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)31.56 E .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)30.44 E 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)30.44 E(ords, escaping further substitutions.)
--.1 E F1(x)108 290.4 Q F0(Quote the substituted w)31 E(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
+(ving the basename.)-.2 E F1(e)108 254.4 Q F0(Remo)144 254.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
(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)
@@ -381,20 +390,20 @@ 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)27.67 E(vious substitution.)-.25 E F1
-(g)108 386.4 Q F0 .397(Cause changes to be applied o)31 F -.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
+(&)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)28.22 E(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
+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
@@ -433,16 +442,17 @@ G .066(le that uses the History library')-2.566 F 2.566(sf)-.55 G
-.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(2013 June 27)
+108 720 Q F1(histdata_t;)2.5 E F0(GNU History 6.3)72 768 Q(2015 May 24)
138.175 E(2)202.335 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(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
+/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\
@@ -500,24 +510,24 @@ E F1(HIST_ENTR)A 2.5(Y*)-.18 G(histent)-2.5 E F0(\))1.666 E .934
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 710.4 Q
-(GNU History 6.3)72 768 Q(2013 June 27)138.175 E(3)202.335 E 0 Cg EP
+(GNU History 6.3)72 768 Q(2015 May 24)138.175 E(3)202.335 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Italic@0 SF(HIST_ENTR)108 84 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 96 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 108 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 132 Q F2
-(clear_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E
+/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-Italic@0 SF(HIST_ENTR)108 84 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 96 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 108 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
+132 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 144 Q F1(void)
108 168 Q F2(sti\215e_history)2.5 E F0(\()4.166 E F1(int max)A F0(\))
1.666 E(Sti\215e the history list, remembering only the last)108 180 Q
@@ -582,167 +592,170 @@ F F1(pos)3.29 E F0 .79(is less)3.29 F
-5.207 G .207(here is)-2.707 F(no pre)108 705.6 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 729.6 Q 2.5(Y*)-.18 G F2(next_history)A F0(\()4.166 E F1
-(void)A F0(\))1.666 E(GNU History 6.3)72 768 Q(2013 June 27)138.175 E(4)
+(void)A F0(\))1.666 E(GNU History 6.3)72 768 Q(2015 May 24)138.175 E(4)
202.335 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E(Mo)108 84 Q 1.046 -.15(ve t)-.15 H .746
-(he current history of).15 F .746(fset forw)-.25 F .746(ard to the ne)
--.1 F .746(xt history entry)-.15 F 3.246(,a)-.65 G .747
-(nd return the a pointer to that entry)-3.246 F 5.747(.I)-.65 G(f)-5.747
-E(there is no ne)108 96 Q(xt entry)-.15 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 F1(Sear)87
-124.8 Q(ching the History List)-.18 E F0 .006(These functions allo)108
-136.8 R 2.506(ws)-.25 G .006(earching of the history list for entries c\
-ontaining a speci\214c string.)-2.506 F .005(Searching may be)5.005 F
-1.451(performed both forw)108 148.8 R 1.451(ard and backw)-.1 F 1.451
-(ard from the current history position.)-.1 F 1.452(The search may be)
-6.452 F/F2 10/Times-Italic@0 SF(anc)3.952 E(hor)-.15 E(ed)-.37 E F0(,)A
-(meaning that the string must match at the be)108 160.8 Q
-(ginning of the history entry)-.15 E(.)-.65 E F2(int)108 184.8 Q F1
-(history_sear)2.5 E(ch)-.18 E F0(\()4.166 E F2(const c)A(har *string)
--.15 E 1.666(,i)-.1 G(nt dir)-1.666 E(ection)-.37 E F0(\))1.666 E .156
-(Search the history for)108 196.8 R F2(string)2.656 E F0 2.656(,s)C .156
+/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
+.332(If the current history of)108 84 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 96 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
+108 Q/F1 10/Times-Bold@0 SF(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1
+(Sear)87 136.8 Q(ching the History List)-.18 E F0 .005
+(These functions allo)108 148.8 R 2.505(ws)-.25 G .006(earching of the \
+history list for entries containing a speci\214c string.)-2.505 F .006
+(Searching may be)5.006 F 1.452(performed both forw)108 160.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 10/Times-Italic@0 SF(anc)3.951 E(hor)
+-.15 E(ed)-.37 E F0(,)A(meaning that the string must match at the be)108
+172.8 Q(ginning of the history entry)-.15 E(.)-.65 E F2(int)108 196.8 Q
+F1(history_sear)2.5 E(ch)-.18 E F0(\()4.166 E F2(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 208.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
-(dir)2.656 E(ection)-.37 E F0 .155(is less than 0, then the search)2.656
-F .801(is through pre)108 208.8 R .801
+(dir)2.656 E(ection)-.37 E F0 .156(is less than 0, then the search)2.656
+F .802(is through pre)108 220.8 R .802
(vious entries, otherwise through subsequent entries.)-.25 F(If)5.801 E
-F2(string)3.301 E F0 .802(is found, then the current his-)3.301 F .065
-(tory inde)108 220.8 R 2.565(xi)-.15 G 2.564(ss)-2.565 G .064
+F2(string)3.301 E F0 .801(is found, then the current his-)3.301 F .064
+(tory inde)108 232.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.564 E F0 -.1(wa)
-108 232.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 256.8 Q F1
+(fset in the line of the entry where)-.25 F F2(string)2.565 E F0 -.1(wa)
+108 244.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 268.8 Q F1
(history_sear)2.5 E(ch_pr)-.18 E(e\214x)-.18 E F0(\()4.166 E F2(const c)
A(har *string)-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E(ection)-.37 E F0(\))
-1.666 E .683(Search the history for)108 268.8 R F2(string)3.183 E F0
+1.666 E .684(Search the history for)108 280.8 R F2(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.064
-(must be)108 280.8 R 1.064(gin with)-.15 F F2(string)3.564 E F0 6.064
-(.I)C(f)-6.064 E F2(dir)3.564 E(ection)-.37 E F0 1.063
-(is less than 0, then the search is through pre)3.564 F 1.063
-(vious entries, otherwise)-.25 F 1.114(through subsequent entries.)108
-292.8 R(If)6.114 E F2(string)3.614 E F0 1.114
-(is found, then the current history inde)3.614 F 3.615(xi)-.15 G 3.615
-(ss)-3.615 G 1.115(et to that entry)-3.615 F 3.615(,a)-.65 G 1.115
-(nd the)-3.615 F(return v)108 304.8 Q(alue is 0.)-.25 E
+(fset. The)-.25 F .683(search is anchored: matching lines)3.183 F 1.063
+(must be)108 292.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
+(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
+304.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 316.8 Q(alue is 0.)-.25 E
(Otherwise, nothing is changed, and a -1 is returned.)5 E F2(int)108
-328.8 Q F1(history_sear)2.5 E(ch_pos)-.18 E F0(\()4.166 E F2(const c)A
+340.8 Q F1(history_sear)2.5 E(ch_pos)-.18 E F0(\()4.166 E F2(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 .604(Search for)108 340.8 R F2(string)
-3.104 E F0 .604(in the history list, starting at)3.104 F F2(pos)3.104 E
+-.37 F(pos)2.5 E F0(\))3.332 E .603(Search for)108 352.8 R F2(string)
+3.103 E F0 .603(in the history list, starting at)3.103 F F2(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 .603(nto the list.)-3.104 F(If)5.603 E F2(dir)3.103 E(ection)-.37 E F0
-.603(is ne)3.103 F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(,).15 E .608
-(the search proceeds backw)108 352.8 R .608(ard from)-.1 F F2(pos)3.108
+G .604(nto the list.)-3.104 F(If)5.604 E F2(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 364.8 R .608(ard from)-.1 F F2(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 364.8 Q F2(string)2.5 E F0 -.1
+(he history ele-)-3.108 F(ment where)108 376.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 393.6 Q F0 .035(The History library can r\
-ead the history from and write it to a \214le.)108 405.6 R .035
+(Managing the History File)87 405.6 Q F0 .035(The History library can r\
+ead the history from and write it to a \214le.)108 417.6 R .036
(This section documents the functions for)5.035 F
-(managing a history \214le.)108 417.6 Q F2(int)108 441.6 Q F1 -.18(re)
+(managing a history \214le.)108 429.6 Q F2(int)108 453.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 .15(Add the contents of)108 453.6 R F2(\214lename)2.65 E
-F0 .15(to the history list, a line at a time.)2.65 F(If)5.151 E F2
-(\214lename)2.651 E F0(is)2.651 E F1(NULL)2.651 E F0 2.651(,t)C .151
-(hen read from)-2.651 F F2(~/.his-)2.651 E(tory)108 465.6 Q F0 5(.R)C
+F0(\))1.666 E .151(Add the contents of)108 465.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 477.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 489.6 Q F1 -.18(re)2.5 G(ad_history_range).18 E F0(\()4.166 E
+F2(int)108 501.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
-(om, int)-.45 F(to)2.5 E F0(\))3.332 E .053(Read a range of lines from)
-108 501.6 R F2(\214lename)2.553 E F0 2.553(,a)C .053
+(om, int)-.45 F(to)2.5 E F0(\))3.332 E .052(Read a range of lines from)
+108 513.6 R F2(\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 .052(and end at)2.553 F F2(to)2.552 E
-F0(.)A(If)108 513.6 Q F2(fr)2.888 E(om)-.45 E F0 .388
-(is zero, start at the be)2.888 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 .389
-(hen read until the end of the \214le.)-2.889 F(If)5.389 E F2
-(\214lename)2.889 E F0(is)108 525.6 Q F1(NULL)2.5 E F0 2.5(,t)C
+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 525.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 537.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 549.6 Q F1(write_history)2.5 E F0(\()4.166 E F2(const c)A
-(har *\214lename)-.15 E F0(\))1.666 E .962(Write the current history to)
-108 561.6 R F2(\214lename)3.462 E F0 3.461(,o)C -.15(ve)-3.611 G
+F2(int)108 561.6 Q F1(write_history)2.5 E F0(\()4.166 E F2(const c)A
+(har *\214lename)-.15 E F0(\))1.666 E .961(Write the current history to)
+108 573.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.461 E F0(is)3.461 E F1(NULL)3.461
-E F0 3.461(,t)C .961(hen write)-3.461 F(the history list to)108 573.6 Q
+(.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 585.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 609.6 Q
+(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F2(int)108 621.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 .838(Append the last)108 621.6 R
-F2(nelements)3.338 E F0 .839(of the history list to)3.339 F F2
+E(har *\214lename)-.15 E F0(\))1.666 E .839(Append the last)108 633.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 .839(hen append to)-3.339 F F2
-(~/.history)3.339 E F0(.)A(Returns 0 on success, or)108 633.6 Q F1(err)
+(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 645.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
-657.6 Q F1(history_truncate_\214le)2.5 E F0(\()4.166 E F2(const c)A
+669.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 669.6 S .381(uncate the history \214le).35 F F2(\214lename)
-2.881 E F0 2.881(,l)C(ea)-2.881 E .381(ving only the last)-.2 F F2
-(nlines)2.881 E F0 2.88(lines. If)2.881 F F2(\214lename)2.88 E F0(is)
-2.88 E F1(NULL)2.88 E F0 2.88(,t)C(hen)-2.88 E F2(~/.history)2.88 E F0
-(is)2.88 E 2.5(truncated. Returns)108 681.6 R 2.5(0o)2.5 G 2.5(ns)-2.5 G
+-.35(Tr)108 681.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 2.5(truncated. Returns)108 693.6 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
-(GNU History 6.3)72 768 Q(2013 June 27)138.175 E(5)202.335 E 0 Cg EP
+(GNU History 6.3)72 768 Q(2015 May 24)138.175 E(5)202.335 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Bold@0 SF(History Expansion)87 84 Q
-F0(These functions implement history e)108 96 Q(xpansion.)-.15 E/F2 10
+/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(History Expansion)87 84 Q F0
+(These functions implement history e)108 96 Q(xpansion.)-.15 E/F2 10
/Times-Italic@0 SF(int)108 120 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 132 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 31(0I)144 144 S 3.065(fn)-31 G
-3.065(oe)-3.065 G .565(xpansions took place \(or)-3.215 F 3.065(,i)-.4 G
-3.065(ft)-3.065 G .565(he only change in the te)-3.065 F .566(xt w)-.15
-F .566(as the remo)-.1 F -.25(va)-.15 G 3.066(lo).25 G 3.066(fe)-3.066 G
-(scape)-3.066 E(characters preceding the history e)180 156 Q
-(xpansion character\);)-.15 E 31(1i)144 168 S 2.5(fe)-31 G
-(xpansions did tak)-2.65 E 2.5(ep)-.1 G(lace;)-2.5 E 25.17(-1 if)144 180
-R(there w)2.5 E(as an error in e)-.1 E(xpansion;)-.15 E 31(2i)144 192 S
-2.5(ft)-31 G(he returned line should be displayed, b)-2.5 E(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 204 Q(xpansion, then)-.15 E F2
+(ointer to a string.)-2.5 E(Returns:)5 E(0)144 144 Q .566(If no e)180
+144 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 156 Q
+(xpansion character\);)-.15 E(1)144 168 Q(if e)180 168 Q
+(xpansions did tak)-.15 E 2.5(ep)-.1 G(lace;)-2.5 E(-1)144 180 Q
+(if there w)180 180 Q(as an error in e)-.1 E(xpansion;)-.15 E(2)144 192
+Q(if the returned line should be displayed, b)180 192 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 204 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 228 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 .263(Returns the te)108 240 R .263(xt of the history e)
--.15 F -.15(ve)-.25 G .263(nt be).15 F .263(ginning at)-.15 F F2(string)
+E F0(\))3.332 E .262(Returns the te)108 240 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 .262(is modi\214ed to point to after the)2.762 F -2.15 -.25
-(ev e)108 252 T .709(nt speci\214er).25 F 5.709(.A)-.55 G 3.209(tf)
--5.709 G .709(unction entry)-3.209 F(,)-.65 E F2(cinde)3.209 E(x)-.2 E
-F0 .709(points to the inde)3.209 F 3.209(xi)-.15 G(nto)-3.209 E F2
-(string)3.21 E F0 .71(where the history e)3.21 F -.15(ve)-.25 G .71
-(nt speci\214ca-).15 F .528(tion be)108 264 R(gins.)-.15 E F2(qc)5.528 E
-(har)-.15 E F0 .527(is a character that is allo)3.028 F .527
-(wed to end the e)-.25 F -.15(ve)-.25 G .527
+(x)-.2 E F0 .263(is modi\214ed to point to after the)2.763 F -2.15 -.25
+(ev e)108 252 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 264 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 276 Q F2 -.15(ch)108 300 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 .238(Return an array of tok)108 312 R .238
-(ens parsed out of)-.1 F F2(string)2.738 E F0 2.738(,m)C .239
-(uch as the shell might.)-2.738 F .239(The tok)5.239 F .239
+-.15 E F0(\))1.666 E .239(Return an array of tok)108 312 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 324 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 348 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 .026
-(Extract a string se)108 360 R .026(gment consisting of the)-.15 F F2
+(last, const)2.5 F -.15(ch)2.5 G(ar *string).15 E F0(\))3.332 E .025
+(Extract a string se)108 360 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
-.025(guments present in)-.18 F F2(string)2.525 E F0 5.025(.A)C -.18(rg)
--5.025 G .025(uments are split).18 F(using)108 372 Q F1(history_tok)2.5
+.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 372 Q F1(history_tok)2.5
E(enize\(\))-.1 E F0(.)A F1(History V)87 400.8 Q(ariables)-.92 E F0
(This section describes the e)108 412.8 Q(xternally-visible v)-.15 E
(ariables e)-.25 E(xported by the GNU History Library)-.15 E(.)-.65 E F2
@@ -756,12 +769,12 @@ F2(int)108 508.8 Q F1(history_max_entries)2.5 E F0
(int)108 544.8 Q F1(history_wite_timestamps)2.5 E F0 1.468
(If non-zero, timestamps are written to the history \214le, so the)108
556.8 R 3.968(yc)-.15 G 1.468(an be preserv)-3.968 F 1.468
-(ed between sessions.)-.15 F(The)6.469 E(def)108 568.8 Q .439(ault v)-.1
+(ed between sessions.)-.15 F(The)6.468 E(def)108 568.8 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
-.438(alue of)-.25 F F2(history_comment_c)108 580.8 Q(har)-.15 E F0 .051
-(to delimit timestamp entries in the history \214le.)2.551 F .051
-(If that v)5.051 F .052(ariable does not ha)-.25 F .352 -.15(ve a v)-.2
+.439(alue of)-.25 F F2(history_comment_c)108 580.8 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 592.8 Q
(ault\), timestamps will not be written.)-.1 E F2 -.15(ch)108 616.8 S
(ar).15 E F1(history_expansion_char)2.5 E F0
@@ -772,51 +785,52 @@ H(alue)-.1 E(\(the def)108 592.8 Q
(The character that in)108 664.8 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 688.8 S(ar).15 E F1
-(history_comment_char)2.5 E F0 .117(During tok)108 700.8 R .117
+(history_comment_char)2.5 E F0 .116(During tok)108 700.8 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 .276
+-.1 F .117(ord, then it and all subsequent char)-.1 F(-)-.2 E .277
(acters up to a ne)108 712.8 R .276
(wline are ignored, suppressing history e)-.25 F .276
-(xpansion for the remainder of the line.)-.15 F .277(This is dis-)5.276
+(xpansion for the remainder of the line.)-.15 F .276(This is dis-)5.276
F(abled by def)108 724.8 Q(ault.)-.1 E(GNU History 6.3)72 768 Q
-(2013 June 27)138.175 E(6)202.335 E 0 Cg EP
+(2015 May 24)138.175 E(6)202.335 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Italic@0 SF -.15(ch)108 84 S(ar *)
-.15 E/F2 10/Times-Bold@0 SF(history_w)2.5 E(ord_delimiters)-.1 E F0
+/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-Italic@0 SF -.15(ch)108 84 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 96 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 120 S(ar *)
.15 E F2(history_no_expand_chars)2.5 E F0 2.054
(The list of characters which inhibit history e)108 132 R 2.054
(xpansion if found immediately follo)-.15 F(wing)-.25 E F2
-(history_expan-)4.554 E(sion_char)108 144 Q F0 5(.T)C(he def)-5 E
+(history_expan-)4.555 E(sion_char)108 144 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 168 S(ar *).15 E F2
(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 180 R F1(:)2.901 E F0(and)2.901 E F1(?)2.902 E F0
+ to space, tab,)108 180 R F1(:)2.901 E F0(and)2.901 E F1(?)2.901 E F0
(in the case of a substring search.)108 192 Q(The def)5 E(ault is empty)
-.1 E(.)-.65 E F1(int)108 216 Q F2(history_quotes_inhibit_expansion)2.5
-E F0 .625(If non-zero, single-quoted w)108 228 R .625
-(ords are not scanned for the history e)-.1 F .624(xpansion character)
--.15 F 5.624(.T)-.55 G .624(he def)-5.624 F .624(ault v)-.1 F .624
-(alue is)-.25 F(0.)108 240 Q F1(rl_lineb)108 264 Q(uf_func_t *)-.2 E F2
-(history_inhibit_expansion_function)2.5 E F0 .347
-(This should be set to the address of a function that tak)108 276 R .348
-(es tw)-.1 F 2.848(oa)-.1 G -.18(rg)-2.848 G .348(uments: a).18 F F2
-.348(char *)2.848 F F0(\()2.848 E F1(string)A F0 2.848(\)a)C .348(nd an)
--2.848 F F2(int)2.848 E F0(inde)2.848 E(x)-.15 E .228
-(into that string \()108 288 R F1(i)A F0 2.728(\). It)B .227
+E F0 .86(If non-zero, double-quoted w)108 228 R .861
+(ords are not scanned for the history e)-.1 F .861
+(xpansion character or the history com-)-.15 F(ment character)108 240 Q
+5(.T)-.55 G(he def)-5 E(ault v)-.1 E(alue is 0.)-.25 E F1(rl_lineb)108
+264 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 276 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 288 R F1(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.727 E F0 .227
-(should not)2.727 F .019(be performed; zero if the e)108 300 R .019
+.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 300 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 .019(that use)2.519 F(the history e)108 312 Q
+2.519 E F0 .018(that use)2.519 F(the history e)108 312 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 328.8 Q F1(~/.history)109.666 340.8 Q F0
@@ -836,20 +850,20 @@ F1(bash)108 405.6 Q F0(\(1\))A F1 -.37(re)108 417.6 S(adline).37 E F0
(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 528 S
(ug, and that it appears in the latest v)-2.7 E(ersion of the)-.15 E F2
-(history)2.5 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.).15 E .704
-(Once you ha)108 544.8 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 F1 -.2(bu)3.205 G(g\255r).2 E(eadline)-.37 E F0(@)A
-F1(gnu.or)A(g)-.37 E F0 5.705(.I)C 3.205(fy)-5.705 G(ou)-3.205 E(ha)108
-556.8 Q 1.81 -.15(ve a \214)-.2 H 1.51
-(x, you are welcome to mail that as well!).15 F 1.509
-(Suggestions and `philosophical' b)6.509 F 1.509(ug reports may be)-.2 F
+(history)2.5 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.).15 E .705
+(Once you ha)108 544.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
+556.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 568.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 585.6 Q
(ug reports concerning this manual page should be directed to)-.2 E F1
-.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(2013 June 27)138.175 E(7)202.335 E 0 Cg EP
+(GNU History 6.3)72 768 Q(2015 May 24)138.175 E(7)202.335 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/hstech.texi b/doc/hstech.texi
index 6487f20..bba7b59 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-2014 Free Software Foundation, Inc.
+Copyright (C) 1988-2016 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
@@ -242,6 +242,7 @@ is greater than the history length, return a @code{NULL} pointer.
@deftypefun time_t history_get_time (HIST_ENTRY *entry)
Return the time stamp associated with the history entry @var{entry}.
+If the timestamp is missing or invalid, return 0.
@end deftypefun
@deftypefun int history_total_bytes (void)
@@ -270,9 +271,11 @@ a @code{NULL} pointer.
@end deftypefun
@deftypefun {HIST_ENTRY *} next_history (void)
-Move the current history offset forward to the next history entry, and
-return the a pointer to that entry. If there is no next entry, return
-a @code{NULL} pointer.
+If the current history offset refers to a valid history entry,
+increment the current history offset.
+If the possibly-incremented history offset refers to a valid history
+entry, return a pointer to that entry;
+otherwise, return a @code{BNULL} pointer.
@end deftypefun
@node Searching the History List
@@ -467,8 +470,8 @@ carriage return, and @samp{=}.
@end deftypevar
@deftypevar int history_quotes_inhibit_expansion
-If non-zero, single-quoted words are not scanned for the history expansion
-character. The default value is 0.
+If non-zero, double-quoted words are not scanned for the history expansion
+character or the history comment character. The default value is 0.
@end deftypevar
@deftypevar {rl_linebuf_func_t *} history_inhibit_expansion_function
diff --git a/doc/hsuser.texi b/doc/hsuser.texi
index 69a5016..04e192e 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--2014 Free Software Foundation, Inc.
+Copyright (C) 1988--2016 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
@@ -102,7 +102,7 @@ associated with each history entry is written to the history file,
marked with the history comment character.
When the history file is read, lines beginning with the history
comment character followed immediately by a digit are interpreted
-as timestamps for the previous history line.
+as timestamps for the following history entry.
The builtin command @code{fc} may be used to list or edit and re-execute
a portion of the history list.
@@ -202,9 +202,9 @@ Delete the history entry at position @var{offset}.
displayed.
@item -a
-Append the new
-history lines (history lines entered since the beginning of the
-current Bash session) to the history file.
+Append the new history lines to the history file.
+These are history lines entered since the beginning of the current
+Bash session, but not already appended to the history file.
@item -n
Append the history lines not already read from the history file
@@ -249,6 +249,11 @@ the input stream, making it easy to repeat commands, insert the
arguments to a previous command into the current input line, or
fix errors in previous commands quickly.
+@ifset BashFeatures
+History expansion is performed immediately after a complete line
+is read, before the shell breaks it into words.
+@end ifset
+
History expansion takes place in two parts. The first is to determine
which line from the history list should be used during substitution.
The second is to select portions of that line for inclusion into the
@@ -262,7 +267,9 @@ History expansions are introduced by the appearance of the
history expansion character, which is @samp{!} by default.
@ifset BashFeatures
Only @samp{\} and @samp{'} may be used to escape the history expansion
-character.
+character, but the history expansion character is
+also treated as quoted if it immediately precedes the closing double quote
+in a double-quoted string.
@end ifset
@ifset BashFeatures
diff --git a/doc/readline.0 b/doc/readline.0
index 57aeaac..854c5bb 100644
--- a/doc/readline.0
+++ b/doc/readline.0
@@ -1,76 +1,76 @@
-READLINE(3) READLINE(3)
+READLINE(3) Library Functions Manual READLINE(3)
-NNAAMMEE
+NAME
readline - get a line from a user with editing
-SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssttddiioo..hh>>
- ##iinncclluuddee <<rreeaaddlliinnee//rreeaaddlliinnee..hh>>
- ##iinncclluuddee <<rreeaaddlliinnee//hhiissttoorryy..hh>>
+SYNOPSIS
+ #include <stdio.h>
+ #include <readline/readline.h>
+ #include <readline/history.h>
- _c_h_a_r _*
- rreeaaddlliinnee (_c_o_n_s_t _c_h_a_r _*_p_r_o_m_p_t);
+ char *
+ readline (const char *prompt);
-CCOOPPYYRRIIGGHHTT
- Readline is Copyright (C) 1989-2011 Free Software Foundation, Inc.
+COPYRIGHT
+ Readline is Copyright (C) 1989-2014 Free Software Foundation, Inc.
-DDEESSCCRRIIPPTTIIOONN
- rreeaaddlliinnee will read a line from the terminal and return it, using pprroommpptt
- as a prompt. If pprroommpptt is NNUULLLL or the empty string, no prompt is
- issued. The line returned is allocated with _m_a_l_l_o_c(3); the caller must
+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.
- rreeaaddlliinnee offers editing capabilities while the user is entering the
+ readline offers editing capabilities while the user is entering the
line. By default, the line editing commands are similar to those of
emacs. A vi-style line editing interface is also available.
- This manual page describes only the most basic use of rreeaaddlliinnee. Much
- more functionality is available; see _T_h_e _G_N_U _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y and _T_h_e
- _G_N_U _H_i_s_t_o_r_y _L_i_b_r_a_r_y for additional information.
+ This manual page describes only the most basic use of readline. Much
+ more functionality is available; see The GNU Readline Library and The
+ GNU History Library for additional information.
-RREETTUURRNN VVAALLUUEE
- rreeaaddlliinnee returns the text of the line read. A blank line returns the
- empty string. If EEOOFF is encountered while reading a line, and the line
- is empty, NNUULLLL is returned. If an EEOOFF is read with a non-empty line,
+RETURN VALUE
+ readline returns the text of the line read. A blank line returns the
+ empty string. If EOF is encountered while reading a line, and the line
+ is empty, NULL is returned. If an EOF is read with a non-empty line,
it is treated as a newline.
-NNOOTTAATTIIOONN
+NOTATION
An Emacs-style notation is used to denote keystrokes. Control keys are
- denoted by C-_k_e_y, e.g., C-n means Control-N. Similarly, _m_e_t_a keys are
- denoted by M-_k_e_y, so M-x means Meta-X. (On keyboards without a _m_e_t_a
- key, M-_x means ESC _x, i.e., press the Escape key then the _x key. This
- makes ESC the _m_e_t_a _p_r_e_f_i_x. The combination M-C-_x means ESC-Control-_x,
- or press the Escape key then hold the Control key while pressing the _x
+ denoted by C-key, e.g., C-n means Control-N. Similarly, meta keys are
+ denoted by M-key, so M-x means Meta-X. (On keyboards without a meta
+ key, M-x means ESC x, i.e., press the Escape key then the x key. This
+ makes ESC the meta prefix. The combination M-C-x means ESC-Control-x,
+ or press the Escape key then hold the Control key while pressing the x
key.)
- Readline commands may be given numeric _a_r_g_u_m_e_n_t_s, which normally act as
+ Readline commands may be given numeric arguments, which normally act as
a repeat count. Sometimes, however, it is the sign of the argument
that is significant. Passing a negative argument to a command that
- acts in the forward direction (e.g., kkiillll--lliinnee) causes that command to
+ acts in the forward direction (e.g., kill-line) causes that command to
act in a backward direction. Commands whose behavior with arguments
- deviates from this are noted.
+ deviates from this are noted below.
- When a command is described as _k_i_l_l_i_n_g text, the text deleted is saved
- for possible future retrieval (_y_a_n_k_i_n_g). The killed text is saved in a
- _k_i_l_l _r_i_n_g. Consecutive kills cause the text to be accumulated into one
+ When a command is described as killing text, the text deleted is saved
+ for possible future retrieval (yanking). The killed text is saved in a
+ kill ring. Consecutive kills cause the text to be accumulated into one
unit, which can be yanked all at once. Commands which do not kill text
separate the chunks of text on the kill ring.
-IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE
+INITIALIZATION FILE
Readline is customized by putting commands in an initialization file
- (the _i_n_p_u_t_r_c file). The name of this file is taken from the value of
- the IINNPPUUTTRRCC environment variable. If that variable is unset, the
- default is _~_/_._i_n_p_u_t_r_c. If that file does not exist or cannot be read,
- the ultimate default is _/_e_t_c_/_i_n_p_u_t_r_c. When a program which uses the
+ (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 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
in the readline init file. Blank lines are ignored. Lines beginning
- with a ## are comments. Lines beginning with a $$ indicate conditional
+ with a # are comments. Lines beginning with a $ indicate conditional
constructs. Other lines denote key bindings and variable settings.
- Each program using this library may add its own commands and bindings.
+ Each program using this library may add its own commands and bindings.
For example, placing
@@ -78,355 +78,400 @@ IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE
or
C-Meta-u: universal-argument
- into the _i_n_p_u_t_r_c would make M-C-u execute the readline command _u_n_i_v_e_r_-
- _s_a_l_-_a_r_g_u_m_e_n_t.
+ into the inputrc would make M-C-u execute the readline command univer-
+ sal-argument.
- The following symbolic character names are recognized while processing
- key bindings: _D_E_L, _E_S_C, _E_S_C_A_P_E, _L_F_D, _N_E_W_L_I_N_E, _R_E_T, _R_E_T_U_R_N, _R_U_B_O_U_T,
- _S_P_A_C_E, _S_P_C, and _T_A_B.
+ The following symbolic character names are recognized while processing
+ key bindings: DEL, ESC, ESCAPE, LFD, NEWLINE, RET, RETURN, RUBOUT,
+ SPACE, SPC, and TAB.
- In addition to command names, readline allows keys to be bound to a
- string that is inserted when the key is pressed (a _m_a_c_r_o).
+ In addition to command names, readline allows keys to be bound to a
+ string that is inserted when the key is pressed (a macro).
-
- KKeeyy BBiinnddiinnggss
- The syntax for controlling key bindings in the _i_n_p_u_t_r_c file is simple.
- All that is required is the name of the command or the text of a macro
- and a key sequence to which it should be bound. The name may be speci-
- fied in one of two ways: as a symbolic key name, possibly with _M_e_t_a_- or
- _C_o_n_t_r_o_l_- prefixes, or as a key sequence. The name and key sequence are
- separated by a colon. There can be no whitespace between the name and
+ Key Bindings
+ The syntax for controlling key bindings in the inputrc file is simple.
+ All that is required is the name of the command or the text of a macro
+ and a key sequence to which it should be bound. The name may be speci-
+ fied in one of two ways: as a symbolic key name, possibly with Meta- or
+ Control- prefixes, or as a key sequence. The name and key sequence are
+ separated by a colon. There can be no whitespace between the name and
the colon.
- When using the form kkeeyynnaammee:_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, _k_e_y_n_a_m_e is the name
+ When using the form keyname:function-name or macro, keyname is the name
of a key spelled out in English. For example:
Control-u: universal-argument
Meta-Rubout: backward-kill-word
Control-o: "> output"
- In the above example, _C_-_u is bound to the function uunniivveerrssaall--aarrgguummeenntt,
- _M_-_D_E_L is bound to the function bbaacckkwwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to
- run the macro expressed on the right hand side (that is, to insert the
+ In the above example, C-u is bound to the function universal-argument,
+ M-DEL is bound to the function backward-kill-word, and C-o is bound to
+ run the macro expressed on the right hand side (that is, to insert the
text ``> output'' into the line).
- In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyysseeqq differs
- from kkeeyynnaammee above in that strings denoting an entire key sequence may
- be specified by placing the sequence within double quotes. Some GNU
- Emacs style key escapes can be used, as in the following example, but
+ In the second form, "keyseq":function-name or macro, keyseq differs
+ from keyname above in that strings denoting an entire key sequence may
+ be specified by placing the sequence within double quotes. Some GNU
+ Emacs style key escapes can be used, as in the following example, but
the symbolic character names are not recognized.
"\C-u": universal-argument
"\C-x\C-r": re-read-init-file
"\e[11~": "Function Key 1"
- In this example, _C_-_u is again bound to the function uunniivveerrssaall--aarrgguummeenntt.
- _C_-_x _C_-_r is bound to the function rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is
+ In this example, C-u is again bound to the function universal-argument.
+ C-x C-r is bound to the function re-read-init-file, and ESC [ 1 1 ~ is
bound to insert the text ``Function Key 1''.
- The full set of GNU Emacs style escape sequences available when speci-
+ The full set of GNU Emacs style escape sequences available when speci-
fying key sequences is
- \\CC-- control prefix
- \\MM-- meta prefix
- \\ee an escape character
- \\\\ backslash
- \\"" literal ", a double quote
- \\'' literal ', a single quote
-
- In addition to the GNU Emacs style escape sequences, a second set of
+ \C- control prefix
+ \M- meta prefix
+ \e an escape character
+ \\ backslash
+ \" literal ", a double quote
+ \' literal ', a single quote
+
+ In addition to the GNU Emacs style escape sequences, a second set of
backslash escapes is available:
- \\aa alert (bell)
- \\bb backspace
- \\dd delete
- \\ff form feed
- \\nn newline
- \\rr carriage return
- \\tt horizontal tab
- \\vv vertical tab
- \\_n_n_n the eight-bit character whose value is the octal value
- _n_n_n (one to three digits)
- \\xx_H_H the eight-bit character whose value is the hexadecimal
- value _H_H (one or two hex digits)
-
- When entering the text of a macro, single or double quotes should be
- used to indicate a macro definition. Unquoted text is assumed to be a
- function name. In the macro body, the backslash escapes described
- above are expanded. Backslash will quote any other character in the
+ \a alert (bell)
+ \b backspace
+ \d delete
+ \f form feed
+ \n newline
+ \r carriage return
+ \t horizontal tab
+ \v vertical tab
+ \nnn the eight-bit character whose value is the octal value
+ nnn (one to three digits)
+ \xHH the eight-bit character whose value is the hexadecimal
+ value HH (one or two hex digits)
+
+ When entering the text of a macro, single or double quotes should be
+ used to indicate a macro definition. Unquoted text is assumed to be a
+ function name. In the macro body, the backslash escapes described
+ above are expanded. Backslash will quote any other character in the
macro text, including " and '.
- BBaasshh allows the current readline key bindings to be displayed or modi-
- fied with the bbiinndd builtin command. The editing mode may be switched
- during interactive use by using the --oo option to the sseett builtin com-
- mand. Other programs using this library provide similar mechanisms.
- The _i_n_p_u_t_r_c file may be edited and re-read if a program does not pro-
+ Bash allows the current readline key bindings to be displayed or modi-
+ fied with the bind builtin command. The editing mode may be switched
+ during interactive use by using the -o option to the set builtin com-
+ mand. Other programs using this library provide similar mechanisms.
+ The inputrc file may be edited and re-read if a program does not pro-
vide any other means to incorporate new bindings.
- VVaarriiaabblleess
+ Variables
Readline has variables that can be used to further customize its behav-
- ior. A variable may be set in the _i_n_p_u_t_r_c file with a statement of the
+ ior. A variable may be set in the inputrc file with a statement of the
form
- sseett _v_a_r_i_a_b_l_e_-_n_a_m_e _v_a_l_u_e
-
- Except where noted, readline variables can take the values OOnn or OOffff
- (without regard to case). Unrecognized variable names are ignored.
- When a variable value is read, empty or null values, "on" (case-insen-
- sitive), and "1" are equivalent to OOnn. All other values are equivalent
- to OOffff. The variables and their default values are:
-
- bbeellll--ssttyyllee ((aauuddiibbllee))
- Controls what happens when readline wants to ring the terminal
- bell. If set to nnoonnee, readline never rings the bell. If set to
- vviissiibbllee, readline uses a visible bell if one is available. If
- set to aauuddiibbllee, readline attempts to ring the terminal's bell.
- bbiinndd--ttttyy--ssppeecciiaall--cchhaarrss ((OOnn))
- If set to OOnn, readline attempts to bind the control characters
- treated specially by the kernel's terminal driver to their read-
- line equivalents.
- ccoolloorreedd--ssttaattss ((OOffff))
- If set to OOnn, readline displays possible completions using dif-
- ferent colors to indicate their file type. The color defini-
- tions are taken from the value of the LLSS__CCOOLLOORRSS environment
+ set variable-name value
+
+ Except where noted, readline variables can take the values On or Off
+ (without regard to case). Unrecognized variable names are ignored.
+ When a variable value is read, empty or null values, "on" (case-insen-
+ sitive), and "1" are equivalent to On. All other values are equivalent
+ to Off. The variables and their default values are:
+
+ bell-style (audible)
+ Controls what happens when readline wants to ring the terminal
+ bell. If set to none, readline never rings the bell. If set to
+ visible, readline uses a visible bell if one is available. If
+ set to audible, readline attempts to ring the terminal's bell.
+ bind-tty-special-chars (On)
+ If set to On (the default), readline attempts to bind the con-
+ trol characters treated specially by the kernel's terminal
+ driver to their readline equivalents.
+ blink-matching-paren (Off)
+ If set to On, readline attempts to briefly move the cursor to an
+ opening parenthesis when a closing parenthesis is inserted.
+ colored-completion-prefix (Off)
+ If set to On, when listing completions, readline displays the
+ common prefix of the set of possible completions using a differ-
+ ent color. The color definitions are taken from the value of
+ the LS_COLORS environment variable.
+ colored-stats (Off)
+ If set to On, readline displays possible completions using dif-
+ ferent colors to indicate their file type. The color defini-
+ tions are taken from the value of the LS_COLORS environment
variable.
- ccoommmmeenntt--bbeeggiinn ((````##''''))
- The string that is inserted in vvii mode when the iinnsseerrtt--ccoommmmeenntt
- command is executed. This command is bound to MM--## in emacs mode
- and to ## in vi command mode.
- ccoommpplleettiioonn--ddiissppllaayy--wwiiddtthh ((--11))
- The number of screen columns used to display possible matches
- when performing completion. The value is ignored if it is less
- than 0 or greater than the terminal screen width. A value of 0
- will cause matches to be displayed one per line. The default
+ comment-begin (``#'')
+ The string that is inserted in vi mode when the insert-comment
+ command is executed. This command is bound to M-# in emacs mode
+ and to # in vi command mode.
+ completion-display-width (-1)
+ The number of screen columns used to display possible matches
+ when performing completion. The value is ignored if it is less
+ than 0 or greater than the terminal screen width. A value of 0
+ will cause matches to be displayed one per line. The default
value is -1.
- ccoommpplleettiioonn--iiggnnoorree--ccaassee ((OOffff))
- If set to OOnn, readline performs filename matching and completion
+ completion-ignore-case (Off)
+ If set to On, readline performs filename matching and completion
in a case-insensitive fashion.
- ccoommpplleettiioonn--mmaapp--ccaassee ((OOffff))
- If set to OOnn, and ccoommpplleettiioonn--iiggnnoorree--ccaassee is enabled, readline
- treats hyphens (_-) and underscores (__) as equivalent when per-
+ completion-map-case (Off)
+ If set to On, and completion-ignore-case is enabled, readline
+ treats hyphens (-) and underscores (_) as equivalent when per-
forming case-insensitive filename matching and completion.
- ccoommpplleettiioonn--pprreeffiixx--ddiissppllaayy--lleennggtthh ((00))
- The length in characters of the common prefix of a list of pos-
- sible completions that is displayed without modification. When
- set to a value greater than zero, common prefixes longer than
- this value are replaced with an ellipsis when displaying possi-
+ completion-prefix-display-length (0)
+ The length in characters of the common prefix of a list of pos-
+ sible completions that is displayed without modification. When
+ set to a value greater than zero, common prefixes longer than
+ this value are replaced with an ellipsis when displaying possi-
ble completions.
- ccoommpplleettiioonn--qquueerryy--iitteemmss ((110000))
- This determines when the user is queried about viewing the num-
- ber of possible completions generated by the ppoossssiibbllee--ccoommppllee--
- ttiioonnss command. It may be set to any integer value greater than
- or equal to zero. If the number of possible completions is
+ completion-query-items (100)
+ This determines when the user is queried about viewing the num-
+ 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
+ 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.
- ccoonnvveerrtt--mmeettaa ((OOnn))
- If set to OOnn, readline will convert characters with the eighth
+ 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
- prefixing it with an escape character (in effect, using escape
- as the _m_e_t_a _p_r_e_f_i_x).
- ddiissaabbllee--ccoommpplleettiioonn ((OOffff))
- If set to OOnn, readline will inhibit word completion. Completion
+ prefixing it with an escape character (in effect, using escape
+ as the meta prefix). The default is On, but readline will set
+ it to Off if the locale contains eight-bit characters.
+ disable-completion (Off)
+ If set to On, readline will inhibit word completion. Completion
characters will be inserted into the line as if they had been
- mapped to sseellff--iinnsseerrtt.
- eeddiittiinngg--mmooddee ((eemmaaccss))
- Controls whether readline begins with a set of key bindings sim-
- ilar to _E_m_a_c_s or _v_i. eeddiittiinngg--mmooddee can be set to either eemmaaccss or
- vvii.
- eecchhoo--ccoonnttrrooll--cchhaarraacctteerrss ((OOnn))
- When set to OOnn, on operating systems that indicate they support
+ mapped to self-insert.
+ echo-control-characters (On)
+ When set to On, on operating systems that indicate they support
it, readline echoes a character corresponding to a signal gener-
ated from the keyboard.
- eennaabbllee--kkeeyyppaadd ((OOffff))
- When set to OOnn, readline will try to enable the application key-
- pad when it is called. Some systems need this to enable the
+ editing-mode (emacs)
+ Controls whether readline begins with a set of key bindings sim-
+ ilar to Emacs or vi. editing-mode can be set to either emacs or
+ vi.
+ enable-bracketed-paste (Off)
+ 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-
+ acter as if it had been read from the keyboard. This can pre-
+ vent pasted characters from being interpreted as editing com-
+ 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.
- eennaabbllee--mmeettaa--kkeeyy ((OOnn))
- When set to OOnn, readline will try to enable any meta modifier
- key the terminal claims to support when it is called. On many
+ 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.
- eexxppaanndd--ttiillddee ((OOffff))
- If set to OOnn, tilde expansion is performed when readline
+ expand-tilde (Off)
+ If set to On, tilde expansion is performed when readline
attempts word completion.
- hhiissttoorryy--pprreesseerrvvee--ppooiinntt ((OOffff))
- If set to OOnn, the history code attempts to place point at the
- same location on each history line retrieved with pprreevviioouuss--hhiiss--
- ttoorryy or nneexxtt--hhiissttoorryy.
- hhiissttoorryy--ssiizzee ((00))
- Set the maximum number of history entries saved in the history
- list. If set to zero, any existing history entries are deleted
+ 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-
+ tory or next-history.
+ history-size (unset)
+ Set the maximum number of history entries saved in the history
+ list. If set to zero, any existing history entries are deleted
and no new entries are saved. If set to a value less than zero,
- the number of history entries is not limited. By default, the
- number of history entries is not limited.
- hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff))
- When set to OOnn, makes readline use a single line for display,
+ the number of history entries is not limited. By default, the
+ number of history entries is not limited. If an attempt is made
+ to set history-size to a non-numeric value, the maximum number
+ of history entries will be set to 500.
+ horizontal-scroll-mode (Off)
+ 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
+ becomes longer than the screen width rather than wrapping to a
new line.
- iinnppuutt--mmeettaa ((OOffff))
- If set to OOnn, readline will enable eight-bit input (that is, it
- will not clear the eighth bit in the characters it reads),
+ 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
- mmeettaa--ffllaagg is a synonym for this variable.
- iisseeaarrcchh--tteerrmmiinnaattoorrss ((````CC--[[ CC--JJ''''))
- 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 _E_S_C and _C_-_J will terminate an incremental search.
- kkeeyymmaapp ((eemmaaccss))
- Set the current readline keymap. The set of legal keymap names
- is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_,
- _v_i_-_c_o_m_m_a_n_d, and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d;
- _e_m_a_c_s is equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is
- _e_m_a_c_s. The value of eeddiittiinngg--mmooddee also affects the default
+ 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-
+ 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
keymap.
- kkeeyysseeqq--ttiimmeeoouutt ((550000))
- Specifies the duration _r_e_a_d_l_i_n_e will wait for a character when
- reading an ambiguous key sequence (one that can form a complete
+ emacs-mode-string (@)
+ This string is displayed immediately before the last line of the
+ primary prompt when emacs editing mode is active. 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-
+ trol sequence into the mode string.
+ keyseq-timeout (500)
+ 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, _r_e_a_d_l_i_n_e will use the shorter but
- complete key sequence. The value is specified in milliseconds,
- so a value of 1000 means that _r_e_a_d_l_i_n_e 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, _r_e_a_d_l_i_n_e will wait
- until another key is pressed to decide which key sequence to
+ 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
complete.
- mmaarrkk--ddiirreeccttoorriieess ((OOnn))
- If set to OOnn, completed directory names have a slash appended.
- mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff))
- If set to OOnn, history lines that have been modified are dis-
- played with a preceding asterisk (**).
- mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess ((OOffff))
- If set to OOnn, completed names which are symbolic links to direc-
- tories have a slash appended (subject to the value of
- mmaarrkk--ddiirreeccttoorriieess).
- mmaattcchh--hhiiddddeenn--ffiilleess ((OOnn))
- This variable, when set to OOnn, causes readline to match files
- whose names begin with a `.' (hidden files) when performing
- filename completion. If set to OOffff, the leading `.' must be
+ 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-
+ 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).
+ 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
supplied by the user in the filename to be completed.
- mmeennuu--ccoommpplleettee--ddiissppllaayy--pprreeffiixx ((OOffff))
- If set to OOnn, menu completion displays the common prefix of the
+ menu-complete-display-prefix (Off)
+ 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.
- oouuttppuutt--mmeettaa ((OOffff))
- If set to OOnn, readline will display characters with the eighth
+ output-meta (Off)
+ If set to On, readline will display characters with the eighth
bit set directly rather than as a meta-prefixed escape sequence.
- ppaaggee--ccoommpplleettiioonnss ((OOnn))
- If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis-
+ 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-
play a screenful of possible completions at a time.
- pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff))
- If set to OOnn, readline will display completions with matches
+ print-completions-horizontally (Off)
+ If set to On, readline will display completions with matches
sorted horizontally in alphabetical order, rather than down the
screen.
- rreevveerrtt--aallll--aatt--nneewwlliinnee ((OOffff))
- If set to OOnn, readline will undo all changes to history lines
- before returning when aacccceepptt--lliinnee is executed. By default, his-
+ revert-all-at-newline (Off)
+ 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
- across calls to rreeaaddlliinnee.
- sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff))
+ across calls to readline.
+ show-all-if-ambiguous (Off)
This alters the default behavior of the completion functions.
- If set to OOnn, words which have more than one possible completion
+ If set to On, words which have more than one possible completion
cause the matches to be listed immediately instead of ringing
the bell.
- sshhooww--aallll--iiff--uunnmmooddiiffiieedd ((OOffff))
+ show-all-if-unmodified (Off)
This alters the default behavior of the completion functions in
- a fashion similar to sshhooww--aallll--iiff--aammbbiigguuoouuss. If set to OOnn, words
+ 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.
- sshhooww--mmooddee--iinn--pprroommpptt ((OOffff))
- If set to OOnn, add a character to the beginning of the prompt
- indicating the editing mode: emacs (@), vi command (:) or vi
- insertion (+).
- sskkiipp--ccoommpplleetteedd--tteexxtt ((OOffff))
- If set to OOnn, this alters the default completion behavior when
+ show-mode-in-prompt (Off)
+ If set to On, add a character to the beginning of the prompt
+ indicating the editing mode: emacs, vi command, or vi insertion.
+ The mode strings are user-settable.
+ 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
portions of the word following the cursor are not duplicated.
- vviissiibbllee--ssttaattss ((OOffff))
- If set to OOnn, a character denoting a file's type as reported by
- _s_t_a_t(2) is appended to the filename when listing possible com-
+ vi-cmd-mode-string ((cmd))
+ 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 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 control sequence into the mode string.
+ vi-ins-mode-string ((ins))
+ 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 control 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-
pletions.
- CCoonnddiittiioonnaall CCoonnssttrruuccttss
+ 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
are four parser directives used.
- $$iiff The $$iiff construct allows bindings to be made based on the edit-
+ $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 extends to the end of the line;
no characters are required to isolate it.
- mmooddee The mmooddee== form of the $$iiff directive is used to test
+ 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 sseett kkeeyymmaapp command, for
- instance, to set bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and
- _e_m_a_c_s_-_c_t_l_x keymaps only if readline is starting out in
+ 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.
- tteerrmm The tteerrmm== 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 _s_u_n to match both _s_u_n and _s_u_n_-_c_m_d, for
+ 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.
- aapppplliiccaattiioonn
- The aapppplliiccaattiioonn construct is used to include application-
+ application
+ The application construct is used to include application-
specific settings. Each program using the readline
- library sets the _a_p_p_l_i_c_a_t_i_o_n _n_a_m_e, and an initialization
+ library 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
- bbaasshh:
+ bash:
- $$iiff Bash
+ $if Bash
# Quote the current or previous word
"\C-xq": "\eb\"\ef\""
- $$eennddiiff
+ $endif
- $$eennddiiff This command, as seen in the previous example, terminates an $$iiff
+ $endif This command, as seen in the previous example, terminates an $if
command.
- $$eellssee Commands in this branch of the $$iiff directive are executed if the
+ $else Commands in this branch of the $if directive are executed if the
test fails.
- $$iinncclluuddee
+ $include
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 _/_e_t_c_/_i_n_p_u_t_r_c:
+ ing directive would read /etc/inputrc:
- $$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c
+ $include /etc/inputrc
-SSEEAARRCCHHIINNGG
+SEARCHING
Readline provides commands for searching through the command history
for lines containing a specified string. There are two search modes:
- _i_n_c_r_e_m_e_n_t_a_l and _n_o_n_-_i_n_c_r_e_m_e_n_t_a_l.
+ 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-
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
- history for a particular string, type CC--rr. Typing CC--ss searches forward
+ history for a particular string, type C-r. Typing C-s searches forward
through the history. The characters present in the value of the
- iisseeaarrcchh--tteerrmmiinnaattoorrss variable are used to terminate an incremental
- search. If that variable has not been assigned a value the _E_s_c_a_p_e and
- CC--JJ characters will terminate an incremental search. CC--GG will abort an
+ 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
current line.
- To find other matching entries in the history list, type CC--ss or CC--rr as
+ 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-
@@ -439,314 +484,314 @@ SSEEAARRCCHHIINNGG
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.
-EEDDIITTIINNGG CCOOMMMMAANNDDSS
+EDITING COMMANDS
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, _p_o_i_n_t refers to the current cursor posi-
- tion, and _m_a_r_k refers to a cursor position saved by the sseett--mmaarrkk com-
+ 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
- _r_e_g_i_o_n.
+ region.
- CCoommmmaannddss ffoorr MMoovviinngg
- bbeeggiinnnniinngg--ooff--lliinnee ((CC--aa))
+ Commands for Moving
+ beginning-of-line (C-a)
Move to the start of the current line.
- eenndd--ooff--lliinnee ((CC--ee))
+ end-of-line (C-e)
Move to the end of the line.
- ffoorrwwaarrdd--cchhaarr ((CC--ff))
+ forward-char (C-f)
Move forward a character.
- bbaacckkwwaarrdd--cchhaarr ((CC--bb))
+ backward-char (C-b)
Move back a character.
- ffoorrwwaarrdd--wwoorrdd ((MM--ff))
+ forward-word (M-f)
Move forward to the end of the next word. Words are composed of
alphanumeric characters (letters and digits).
- bbaacckkwwaarrdd--wwoorrdd ((MM--bb))
+ backward-word (M-b)
Move back to the start of the current or previous word. Words
are composed of alphanumeric characters (letters and digits).
- cclleeaarr--ssccrreeeenn ((CC--ll))
+ 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.
- rreeddrraaww--ccuurrrreenntt--lliinnee
+ redraw-current-line
Refresh the current line.
- CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy
- aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn))
+ 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 aadddd__hhiissttoorryy(()). If the line is a modified history
+ recall with add_history(). If the line is a modified history
line, the history line is restored to its original state.
- pprreevviioouuss--hhiissttoorryy ((CC--pp))
+ previous-history (C-p)
Fetch the previous command from the history list, moving back in
the list.
- nneexxtt--hhiissttoorryy ((CC--nn))
+ next-history (C-n)
Fetch the next command from the history list, moving forward in
the list.
- bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<))
+ beginning-of-history (M-<)
Move to the first line in the history.
- eenndd--ooff--hhiissttoorryy ((MM-->>))
+ end-of-history (M->)
Move to the end of the input history, i.e., the line currently
being entered.
- rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr))
+ 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.
- ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((CC--ss))
+ 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.
- nnoonn--iinnccrreemmeennttaall--rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((MM--pp))
+ 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
user.
- nnoonn--iinnccrreemmeennttaall--ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((MM--nn))
+ non-incremental-forward-search-history (M-n)
Search forward through the history using a non-incremental
search for a string supplied by the user.
- hhiissttoorryy--sseeaarrcchh--bbaacckkwwaarrdd
+ 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 _p_o_i_n_t). The search string must match at the
- beginning of a history line. This is a non-incremental search.
- hhiissttoorryy--sseeaarrcchh--ffoorrwwaarrdd
- Search forward through the history for the string of characters
+ position (the point). The search string must match at the
+ beginning of a history line. This is a non-incremental search.
+ history-search-forward
+ 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.
- hhiissttoorryy--ssuubbssttrriinngg--sseeaarrcchh--bbaacckkwwaarrdd
+ 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 _p_o_i_n_t). The search string may match anywhere in a
+ between the start of the current line and the current cursor
+ position (the point). The search string may match anywhere in a
history line. This is a non-incremental search.
- hhiissttoorryy--ssuubbssttrriinngg--sseeaarrcchh--ffoorrwwaarrdd
- Search forward through the history for the string of characters
+ history-substring-search-forward
+ 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-
+ string may match anywhere in a history line. This is a non-
incremental search.
- yyaannkk--nntthh--aarrgg ((MM--CC--yy))
- 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
- "!_n" history expansion had been specified.
- yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__))
- Insert the last argument to the previous command (the last word
+ yank-nth-arg (M-C-y)
+ 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
+ "!n" history expansion had been specified.
+ yank-last-arg (M-., M-_)
+ Insert the last argument to the previous command (the last word
of the previous history entry). With a numeric argument, behave
- exactly like yyaannkk--nntthh--aarrgg. Successive calls to yyaannkk--llaasstt--aarrgg
- 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.
- CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt
- _e_n_d_-_o_f_-_f_i_l_e ((uussuuaallllyy CC--dd))
- 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 EEOOFF.
- ddeelleettee--cchhaarr ((CC--dd))
+ 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,
+ 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 EEOOFF character, as CC--dd commonly is, see
+ same character as the tty EOF character, as C-d commonly is, see
above for the effects.
- bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt))
- Delete the character behind the cursor. When given a numeric
+ backward-delete-char (Rubout)
+ Delete the character behind the cursor. When given a numeric
argument, save the deleted text on the kill ring.
- ffoorrwwaarrdd--bbaacckkwwaarrdd--ddeelleettee--cchhaarr
- Delete the character under the cursor, unless the cursor is at
+ forward-backward-delete-char
+ 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.
- qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv))
+ quoted-insert (C-q, C-v)
Add the next character that you type to the line verbatim. This
- is how to insert characters like CC--qq, for example.
- ttaabb--iinnsseerrtt ((MM--TTAABB))
+ is how to insert characters like C-q, for example.
+ tab-insert (M-TAB)
Insert a tab character.
- sseellff--iinnsseerrtt ((aa,, bb,, AA,, 11,, !!,, ......))
+ self-insert (a, b, A, 1, !, ...)
Insert the character typed.
- ttrraannssppoossee--cchhaarrss ((CC--tt))
- 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.
+ 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.
Negative arguments have no effect.
- ttrraannssppoossee--wwoorrddss ((MM--tt))
- 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
+ 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
line, this transposes the last two words on the line.
- uuppccaassee--wwoorrdd ((MM--uu))
- Uppercase the current (or following) word. With a negative
+ upcase-word (M-u)
+ Uppercase the current (or following) word. With a negative
argument, uppercase the previous word, but do not move point.
- ddoowwnnccaassee--wwoorrdd ((MM--ll))
- Lowercase the current (or following) word. With a negative
+ downcase-word (M-l)
+ Lowercase the current (or following) word. With a negative
argument, lowercase the previous word, but do not move point.
- ccaappiittaalliizzee--wwoorrdd ((MM--cc))
- Capitalize the current (or following) word. With a negative
+ capitalize-word (M-c)
+ Capitalize the current (or following) word. With a negative
argument, capitalize the previous word, but do not move point.
- oovveerrwwrriittee--mmooddee
- Toggle overwrite mode. With an explicit positive numeric argu-
+ overwrite-mode
+ 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 eemmaaccss mode; vvii mode does overwrite differently. Each call
- to _r_e_a_d_l_i_n_e_(_) starts in insert mode. In overwrite mode, charac-
- ters bound to sseellff--iinnsseerrtt replace the text at point rather than
- pushing the text to the right. Characters bound to bbaacckk--
- wwaarrdd--ddeelleettee--cchhaarr replace the character before point with a
+ 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
space. By default, this command is unbound.
- KKiilllliinngg aanndd YYaannkkiinngg
- kkiillll--lliinnee ((CC--kk))
+ Killing and Yanking
+ kill-line (C-k)
Kill the text from point to the end of the line.
- bbaacckkwwaarrdd--kkiillll--lliinnee ((CC--xx RRuubboouutt))
+ backward-kill-line (C-x Rubout)
Kill backward to the beginning of the line.
- uunniixx--lliinnee--ddiissccaarrdd ((CC--uu))
- Kill backward from point to the beginning of the line. The
+ unix-line-discard (C-u)
+ Kill backward from point to the beginning of the line. The
killed text is saved on the kill-ring.
- kkiillll--wwhhoollee--lliinnee
- Kill all characters on the current line, no matter where point
+ kill-whole-line
+ Kill all characters on the current line, no matter where point
is.
- kkiillll--wwoorrdd ((MM--dd))
- 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 ffoorrwwaarrdd--wwoorrdd.
- bbaacckkwwaarrdd--kkiillll--wwoorrdd ((MM--RRuubboouutt))
- Kill the word behind point. Word boundaries are the same as
- those used by bbaacckkwwaarrdd--wwoorrdd.
- uunniixx--wwoorrdd--rruubboouutt ((CC--ww))
- Kill the word behind point, using white space as a word bound-
+ 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
+ same as those used by forward-word.
+ backward-kill-word (M-Rubout)
+ 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-
ary. The killed text is saved on the kill-ring.
- uunniixx--ffiilleennaammee--rruubboouutt
- Kill the word behind point, using white space and the slash
- character as the word boundaries. The killed text is saved on
+ 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
the kill-ring.
- ddeelleettee--hhoorriizzoonnttaall--ssppaaccee ((MM--\\))
+ delete-horizontal-space (M-\)
Delete all spaces and tabs around point.
- kkiillll--rreeggiioonn
- Kill the text between the point and _m_a_r_k (saved cursor posi-
- tion). This text is referred to as the _r_e_g_i_o_n.
- ccooppyy--rreeggiioonn--aass--kkiillll
+ kill-region
+ 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.
- ccooppyy--bbaacckkwwaarrdd--wwoorrdd
- Copy the word before point to the kill buffer. The word bound-
- aries are the same as bbaacckkwwaarrdd--wwoorrdd.
- ccooppyy--ffoorrwwaarrdd--wwoorrdd
- Copy the word following point to the kill buffer. The word
- boundaries are the same as ffoorrwwaarrdd--wwoorrdd.
- yyaannkk ((CC--yy))
+ copy-backward-word
+ 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
+ boundaries are the same as forward-word.
+ yank (C-y)
Yank the top of the kill ring into the buffer at point.
- yyaannkk--ppoopp ((MM--yy))
- Rotate the kill ring, and yank the new top. Only works follow-
- ing yyaannkk or yyaannkk--ppoopp.
+ yank-pop (M-y)
+ Rotate the kill ring, and yank the new top. Only works follow-
+ ing yank or yank-pop.
- NNuummeerriicc AArrgguummeennttss
- ddiiggiitt--aarrgguummeenntt ((MM--00,, MM--11,, ......,, MM----))
- Add this digit to the argument already accumulating, or start a
+ Numeric Arguments
+ digit-argument (M-0, M-1, ..., M--)
+ Add this digit to the argument already accumulating, or start a
new argument. M-- starts a negative argument.
- uunniivveerrssaall--aarrgguummeenntt
- 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 uunniivveerrssaall--aarrgguummeenntt 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-
+ 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-
ment count four, a second time makes the argument count sixteen,
and so on.
- CCoommpplleettiinngg
- ccoommpplleettee ((TTAABB))
- Attempt to perform completion on the text before point. The
- actual completion performed is application-specific. BBaasshh, 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. GGddbb, on the other
- hand, allows completion of program functions and variables, and
+ 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
only attempts filename completion under certain circumstances.
- ppoossssiibbllee--ccoommpplleettiioonnss ((MM--??))
- List the possible completions of the text before point. When
+ possible-completions (M-?)
+ 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 ccoommpplleettiioonn--ddiissppllaayy--wwiiddtthh, the value
- of the environment variable CCOOLLUUMMNNSS, 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.
- iinnsseerrtt--ccoommpplleettiioonnss ((MM--**))
- Insert all completions of the text before point that would have
- been generated by ppoossssiibbllee--ccoommpplleettiioonnss.
- mmeennuu--ccoommpplleettee
- Similar to ccoommpplleettee, but replaces the word to be completed with
- a single match from the list of possible completions. Repeated
- execution of mmeennuu--ccoommpplleettee steps through the list of possible
- completions, inserting each match in turn. At the end of the
+ insert-completions (M-*)
+ 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
list of completions, the bell is rung (subject to the setting of
- bbeellll--ssttyyllee) 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 TTAABB, but is unbound by
+ 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.
- mmeennuu--ccoommpplleettee--bbaacckkwwaarrdd
- Identical to mmeennuu--ccoommpplleettee, but moves backward through the list
- of possible completions, as if mmeennuu--ccoommpplleettee had been given a
+ menu-complete-backward
+ Identical to menu-complete, but moves backward through the list
+ of possible completions, as if menu-complete had been given a
negative argument. This command is unbound by default.
- ddeelleettee--cchhaarr--oorr--lliisstt
- Deletes the character under the cursor if not at the beginning
- or end of the line (like ddeelleettee--cchhaarr). If at the end of the
- line, behaves identically to ppoossssiibbllee--ccoommpplleettiioonnss.
-
- KKeeyybbooaarrdd MMaaccrrooss
- ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (())
- Begin saving the characters typed into the current keyboard
+ delete-char-or-list
+ Deletes the character under the cursor if not at the beginning
+ or end of the line (like delete-char). If at the end of the
+ line, behaves identically to possible-completions.
+
+ Keyboard Macros
+ start-kbd-macro (C-x ()
+ Begin saving the characters typed into the current keyboard
macro.
- eenndd--kkbbdd--mmaaccrroo ((CC--xx ))))
+ end-kbd-macro (C-x ))
Stop saving the characters typed into the current keyboard macro
and store the definition.
- ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee))
- Re-execute the last keyboard macro defined, by making the char-
- acters in the macro appear as if typed at the keyboard.
- pprriinntt--llaasstt--kkbbdd--mmaaccrroo (()) Print the last keyboard macro defined in
- a format suitable for the _i_n_p_u_t_r_c file.
-
- MMiisscceellllaanneeoouuss
- rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr))
- Read in the contents of the _i_n_p_u_t_r_c file, and incorporate any
+ call-last-kbd-macro (C-x e)
+ Re-execute the last keyboard macro defined, by making the char-
+ acters in the macro appear as if typed at the keyboard.
+ print-last-kbd-macro () Print the last keyboard macro defined in
+ a format suitable for the inputrc file.
+
+ Miscellaneous
+ re-read-init-file (C-x C-r)
+ Read in the contents of the inputrc file, and incorporate any
bindings or variable assignments found there.
- aabboorrtt ((CC--gg))
- Abort the current editing command and ring the terminal's bell
- (subject to the setting of bbeellll--ssttyyllee).
- ddoo--uuppppeerrccaassee--vveerrssiioonn ((MM--aa,, MM--bb,, MM--_x,, ......))
- If the metafied character _x is lowercase, run the command that
+ abort (C-g)
+ Abort the current editing command and ring the terminal's bell
+ (subject to the setting of bell-style).
+ do-uppercase-version (M-a, M-b, M-x, ...)
+ If the metafied character x is lowercase, run the command that
is bound to the corresponding uppercase character.
- pprreeffiixx--mmeettaa ((EESSCC))
- Metafy the next character typed. EESSCC ff is equivalent to MMeettaa--ff.
- uunnddoo ((CC--__,, CC--xx CC--uu))
+ prefix-meta (ESC)
+ Metafy the next character typed. ESC f is equivalent to Meta-f.
+ undo (C-_, C-x C-u)
Incremental undo, separately remembered for each line.
- rreevveerrtt--lliinnee ((MM--rr))
+ revert-line (M-r)
Undo all changes made to this line. This is like executing the
- uunnddoo command enough times to return the line to its initial
+ undo command enough times to return the line to its initial
state.
- ttiillddee--eexxppaanndd ((MM--&&))
+ tilde-expand (M-&)
Perform tilde expansion on the current word.
- sseett--mmaarrkk ((CC--@@,, MM--<<ssppaaccee>>))
+ set-mark (C-@, M-<space>)
Set the mark to the point. If a numeric argument is supplied,
the mark is set to that position.
- eexxcchhaannggee--ppooiinntt--aanndd--mmaarrkk ((CC--xx CC--xx))
+ exchange-point-and-mark (C-x C-x)
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.
- cchhaarraacctteerr--sseeaarrcchh ((CC--]]))
+ character-search (C-])
A character is read and point is moved to the next occurrence of
that character. A negative count searches for previous occur-
rences.
- cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]]))
+ character-search-backward (M-C-])
A character is read and point is moved to the previous occur-
rence of that character. A negative count searches for subse-
quent occurrences.
- sskkiipp--ccssii--sseeqquueennccee
+ skip-csi-sequence
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
@@ -754,55 +799,55 @@ EEDDIITTIINNGG CCOOMMMMAANNDDSS
have no effect unless explicitly bound to a readline command,
instead of inserting stray characters into the editing buffer.
This is unbound by default, but usually bound to ESC-[.
- iinnsseerrtt--ccoommmmeenntt ((MM--##))
- Without a numeric argument, the value of the readline ccoomm--
- mmeenntt--bbeeggiinn variable is inserted at the beginning of the current
+ insert-comment (M-#)
+ Without a numeric argument, the value of the readline com-
+ ment-begin variable is inserted at the beginning of the current
line. If a numeric argument is supplied, this command acts as a
- toggle: if the characters at the beginning of the line do not
- match the value of ccoommmmeenntt--bbeeggiinn, the value is inserted, other-
- wise the characters in ccoommmmeenntt--bbeeggiinn are deleted from the begin-
+ toggle: if the characters at the beginning of the line do not
+ match the value of comment-begin, the value is inserted, other-
+ wise the characters in comment-begin are deleted from the begin-
ning of the line. In either case, the line is accepted as if a
- newline had been typed. The default value of ccoommmmeenntt--bbeeggiinn
+ 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.
- dduummpp--ffuunnccttiioonnss
+ 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-
put is formatted in such a way that it can be made part of an
- _i_n_p_u_t_r_c file.
- dduummpp--vvaarriiaabblleess
+ inputrc file.
+ dump-variables
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
- _i_n_p_u_t_r_c file.
- dduummpp--mmaaccrrooss
+ inputrc file.
+ dump-macros
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
- _i_n_p_u_t_r_c file.
- eemmaaccss--eeddiittiinngg--mmooddee ((CC--ee))
- When in vvii command mode, this causes a switch to eemmaaccss editing
+ inputrc file.
+ emacs-editing-mode (C-e)
+ When in vi command mode, this causes a switch to emacs editing
mode.
- vvii--eeddiittiinngg--mmooddee ((MM--CC--jj))
- When in eemmaaccss editing mode, this causes a switch to vvii editing
+ vi-editing-mode (M-C-j)
+ When in emacs editing mode, this causes a switch to vi editing
mode.
-DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS
+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 _m_e_t_a_f_i_e_d characters. The printable ASCII characters not
+ referred to as metafied characters. The printable ASCII characters not
mentioned in the list of emacs standard bindings are bound to the
- sseellff--iinnsseerrtt function, which just inserts the given character into the
+ self-insert function, which just inserts the given character into the
input line. In vi insertion mode, all characters not specifically men-
- tioned are bound to sseellff--iinnsseerrtt. Characters assigned to signal genera-
- tion by _s_t_t_y(1) or the terminal driver, such as C-Z or C-C, retain that
+ tioned are bound to self-insert. Characters assigned to signal genera-
+ tion by stty(1) or the terminal driver, such as C-Z or C-C, retain that
function. Upper and lower case metafied characters are bound to the
same function in the emacs mode meta keymap. The remaining characters
are unbound, which causes readline to ring the bell (subject to the
- setting of the bbeellll--ssttyyllee variable).
+ setting of the bell-style variable).
- EEmmaaccss MMooddee
+ Emacs Mode
Emacs Standard bindings
"C-@" set-mark
@@ -894,7 +939,7 @@ DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS
"C-XC-?" backward-kill-line
- VVII MMooddee bbiinnddiinnggss
+ VI Mode bindings
VI Insert Mode functions
"C-D" vi-eof-maybe
@@ -996,39 +1041,39 @@ DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS
"|" vi-column
"~" vi-change-case
-SSEEEE AALLSSOO
- _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _b_a_s_h(1)
+SEE ALSO
+ The Gnu Readline Library, Brian Fox and Chet Ramey
+ The Gnu History Library, Brian Fox and Chet Ramey
+ bash(1)
-FFIILLEESS
- _~_/_._i_n_p_u_t_r_c
- Individual rreeaaddlliinnee initialization file
+FILES
+ ~/.inputrc
+ Individual readline initialization file
-AAUUTTHHOORRSS
+AUTHORS
Brian Fox, Free Software Foundation
bfox@gnu.org
Chet Ramey, Case Western Reserve University
chet.ramey@case.edu
-BBUUGG RREEPPOORRTTSS
- If you find a bug in rreeaaddlliinnee,, you should report it. But first, you
+BUG REPORTS
+ If you find a bug in readline, 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 rreeaaddlliinnee library that you have.
+ latest version of the readline library that you have.
Once you have determined that a bug actually exists, mail a bug report
- to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g. If you have a fix, you are welcome to mail
+ 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 _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g or posted to the Usenet newsgroup
- ggnnuu..bbaasshh..bbuugg.
+ 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
- to _c_h_e_t_._r_a_m_e_y_@_c_a_s_e_._e_d_u.
+ to chet.ramey@case.edu.
-BBUUGGSS
+BUGS
It's too big and too slow.
-GNU Readline 6.3 2014 January 6 READLINE(3)
+GNU Readline 7.0 2016 February 28 READLINE(3)
diff --git a/doc/readline.3 b/doc/readline.3
index 5ac7b10..b57f00b 100644
--- a/doc/readline.3
+++ b/doc/readline.3
@@ -6,9 +6,9 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
-.\" Last Change: Mon Jan 6 16:34:55 EST 2014
+.\" Last Change: Sun Feb 28 15:42:34 EST 2016
.\"
-.TH READLINE 3 "2014 January 6" "GNU Readline 6.3"
+.TH READLINE 3 "2016 February 28" "GNU Readline 7.0"
.\"
.\" 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\-2011 Free Software Foundation, Inc.
-.if t Readline is Copyright \(co 1989\-2011 Free Software Foundation, Inc.
+.if n Readline is Copyright (C) 1989\-2014 Free Software Foundation, Inc.
+.if t Readline is Copyright \(co 1989\-2014 Free Software Foundation, Inc.
.SH DESCRIPTION
.LP
.B readline
@@ -78,10 +78,10 @@ treated as a newline.
.LP
An Emacs-style notation is used to denote
keystrokes. Control keys are denoted by C\-\fIkey\fR, e.g., C\-n
-means Control\-N. Similarly,
+means Control\-N. Similarly,
.I meta
keys are denoted by M\-\fIkey\fR, so M\-x means Meta\-X. (On keyboards
-without a
+without a
.I meta
key, M\-\fIx\fP means ESC \fIx\fP, i.e., press the Escape key
then the
@@ -98,14 +98,15 @@ Readline commands may be given numeric
which normally act as a repeat count. Sometimes, however, it is the
sign of the argument that is significant. Passing a negative argument
to a command that acts in the forward direction (e.g., \fBkill\-line\fP)
-causes that command to act in a backward direction. Commands whose
-behavior with arguments deviates from this are noted.
+causes that command to act in a backward direction.
+Commands whose behavior with arguments deviates from this are noted
+below.
.PP
When a command is described as \fIkilling\fP text, the text
deleted is saved for possible future retrieval
(\fIyanking\fP). The killed text is saved in a
\fIkill ring\fP. Consecutive kills cause the text to be
-accumulated into one unit, which can be yanked all at once.
+accumulated into one unit, which can be yanked all at once.
Commands which do not kill text separate the chunks of text
on the kill ring.
.SH INITIALIZATION FILE
@@ -138,7 +139,7 @@ or
C\-Meta\-u: universal\-argument
.RE
.sp
-into the
+into the
.I inputrc
would make M\-C\-u execute the readline command
.IR universal\-argument .
@@ -167,7 +168,7 @@ The syntax for controlling key bindings in the
.I inputrc
file is simple. All that is required is the name of the
command or the text of a macro and a key sequence to which
-it should be bound. The name may be specified in one of two ways:
+it should be bound. The name may be specified in one of two ways:
as a symbolic key name, possibly with \fIMeta\-\fP or \fIControl\-\fP
prefixes, or as a key sequence.
The name and key sequence are separated by a colon. There can be no
@@ -225,7 +226,7 @@ is again bound to the function
.I "C-x C-r"
is bound to the function
.BR re\-read\-init\-file ,
-and
+and
.I "ESC [ 1 1 ~"
is bound to insert the text
.if t \f(CWFunction Key 1\fP.
@@ -347,13 +348,23 @@ If set to \fBnone\fP, readline never rings the bell. If set to
If set to \fBaudible\fP, readline attempts to ring the terminal's bell.
.TP
.B bind\-tty\-special\-chars (On)
-If set to \fBOn\fP, readline attempts to bind the control characters
-treated specially by the kernel's terminal driver to their readline
-equivalents.
+If set to \fBOn\fP (the default), readline attempts to bind the control
+characters treated specially by the kernel's terminal driver to their
+readline equivalents.
+.TP
+.B blink\-matching\-paren (Off)
+If set to \fBOn\fP, readline attempts to briefly move the cursor to an
+opening parenthesis when a closing parenthesis is inserted.
+.TP
+.B colored\-completion\-prefix (Off)
+If set to \fBOn\fP, when listing completions, readline displays the
+common prefix of the set of possible completions using a different color.
+The color definitions are taken from the value of the \fBLS_COLORS\fP
+environment variable.
.TP
.B colored\-stats (Off)
If set to \fBOn\fP, readline displays possible completions using different
-colors to indicate their file type.
+colors to indicate their file type.
The color definitions are taken from the value of the \fBLS_COLORS\fP
environment variable.
.TP
@@ -405,12 +416,19 @@ If set to \fBOn\fP, readline will convert characters with the
eighth bit set to an ASCII key sequence
by stripping the eighth bit and prefixing it with an
escape character (in effect, using escape as the \fImeta prefix\fP).
+The default is \fIOn\fP, but readline will set it to \fIOff\fP if the
+locale contains eight-bit characters.
.TP
.B disable\-completion (Off)
If set to \fBOn\fP, readline will inhibit word completion. Completion
characters will be inserted into the line as if they had been
mapped to \fBself-insert\fP.
.TP
+.B echo\-control\-characters (On)
+When set to \fBOn\fP, on operating systems that indicate they support it,
+readline echoes a character corresponding to a signal generated from the
+keyboard.
+.TP
.B editing\-mode (emacs)
Controls whether readline begins with a set of key bindings similar
to \fIEmacs\fP or \fIvi\fP.
@@ -420,10 +438,12 @@ can be set to either
or
.BR vi .
.TP
-.B echo\-control\-characters (On)
-When set to \fBOn\fP, on operating systems that indicate they support it,
-readline echoes a character corresponding to a signal generated from the
-keyboard.
+.B enable\-bracketed\-paste (Off)
+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
+it had been read from the keyboard. This can prevent pasted characters
+from being interpreted as editing commands.
.TP
.B enable\-keypad (Off)
When set to \fBOn\fP, readline will try to enable the application
@@ -444,13 +464,15 @@ If set to \fBOn\fP, the history code attempts to place point at the
same location on each history line retrieved with \fBprevious-history\fP
or \fBnext-history\fP.
.TP
-.B history\-size (0)
+.B history\-size (unset)
Set the maximum number of history entries saved in the history list.
If set to zero, any existing history entries are deleted and no new entries
are saved.
If set to a value less than zero, the number of history entries is not
limited.
By default, the number of history entries is not limited.
+If an attempt is made to set \fIhistory\-size\fP to a non-numeric value,
+the maximum number of history entries will be set to 500.
.TP
.B horizontal\-scroll\-mode (Off)
When set to \fBOn\fP, makes readline use a single line for display,
@@ -463,6 +485,8 @@ it will not clear the eighth bit in the characters it reads),
regardless of what the terminal claims it can support. The name
.B meta\-flag
is a synonym for this variable.
+The default is \fIOff\fP, but readline will set it to \fIOn\fP if the
+locale contains eight-bit characters.
.TP
.B isearch\-terminators (``C\-[ C\-J'')
The string of characters that should terminate an incremental
@@ -482,6 +506,15 @@ The value of
.B editing\-mode
also affects the default keymap.
.TP
+.B emacs\-mode\-string (@)
+This string is displayed immediately before the last line of the primary
+prompt when emacs editing mode is active. 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 \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 keyseq\-timeout (500)
Specifies the duration \fIreadline\fP will wait for a character when reading an
ambiguous key sequence (one that can form a complete key sequence using
@@ -510,7 +543,7 @@ have a slash appended (subject to the value of
.TP
.B match\-hidden\-files (On)
This variable, when set to \fBOn\fP, causes readline to match files whose
-names begin with a `.' (hidden files) when performing filename
+names begin with a `.' (hidden files) when performing filename
completion.
If set to \fBOff\fP, the leading `.' must be
supplied by the user in the filename to be completed.
@@ -524,6 +557,8 @@ the list.
If set to \fBOn\fP, readline will display characters with the
eighth bit set directly rather than as a meta-prefixed escape
sequence.
+The default is \fIOff\fP, but readline will set it to \fIOn\fP if the
+locale contains eight-bit characters.
.TP
.B page\-completions (On)
If set to \fBOn\fP, readline uses an internal \fImore\fP-like pager
@@ -558,8 +593,8 @@ of ringing the bell.
.TP
.B show\-mode\-in\-prompt (Off)
If set to \fBOn\fP, add a character to the beginning of the prompt
-indicating the editing mode: emacs (@), vi command (:) or vi
-insertion (+).
+indicating the editing mode: emacs, vi command, or vi insertion.
+The mode strings are user-settable.
.TP
.B skip\-completed\-text (Off)
If set to \fBOn\fP, this alters the default completion behavior when
@@ -569,6 +604,26 @@ 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.
.TP
+.B vi\-cmd\-mode\-string ((cmd))
+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 is expanded like a
+key binding, so the standard set of meta- and control prefixes and
+backslash escape sequences is available.
+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 vi\-ins\-mode\-string ((ins))
+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 \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 visible\-stats (Off)
If set to \fBOn\fP, a character denoting a file's type as reported
by \fIstat\fP(2) is appended to the filename when listing possible
@@ -581,7 +636,7 @@ 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.
.IP \fB$if\fP
-The
+The
.B $if
construct allows bindings to be made based on the
editing mode, the terminal being used, or the application using
@@ -887,7 +942,7 @@ switches to overwrite mode. With an explicit non-positive numeric
argument, switches to insert mode. This command affects only
\fBemacs\fP mode; \fBvi\fP mode does overwrite differently.
Each call to \fIreadline()\fP starts in insert mode.
-In overwrite mode, characters bound to \fBself\-insert\fP replace
+In overwrite mode, characters bound to \fBself\-insert\fP replace
the text at point rather than pushing the text to the right.
Characters bound to \fBbackward\-delete\-char\fP replace the character
before point with a space. By default, this command is unbound.
@@ -910,7 +965,7 @@ The killed text is saved on the kill-ring.
.B kill\-whole\-line
Kill all characters on the current line, no matter where point is.
.TP
-.B kill\-word (M\-d)
+.B 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 same as
those used by \fBforward\-word\fP.
@@ -1117,7 +1172,7 @@ but usually bound to ESC\-[.
Without a numeric argument, the value of the readline
.B comment\-begin
variable is inserted at the beginning of the current line.
-If a numeric argument is supplied, this command acts as a toggle: if
+If a numeric argument is supplied, this command acts as a toggle: if
the characters at the beginning of the line do not match the value
of \fBcomment\-begin\fP, the value is inserted, otherwise
the characters in \fBcomment-begin\fP are deleted from the beginning of
diff --git a/doc/readline.dvi b/doc/readline.dvi
index f83d2b8..3e11be9 100644
--- a/doc/readline.dvi
+++ b/doc/readline.dvi
Binary files differ
diff --git a/doc/readline.html b/doc/readline.html
index 9b7dd84..2907a13 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 February, 11 2014 by texi2html 1.64 -->
+<!-- Created on September, 7 2016 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -592,13 +592,29 @@ the terminal's bell.
<DT><CODE>bind-tty-special-chars</CODE>
<DD><A NAME="IDX6"></A>
-If set to <SAMP>`on'</SAMP>, Readline attempts to bind the control characters
-treated specially by the kernel's terminal driver to their Readline
-equivalents.
+If set to <SAMP>`on'</SAMP> (the default), Readline attempts to bind the control
+characters treated specially by the kernel's terminal driver to their
+Readline equivalents.
<P>
-<DT><CODE>colored-stats</CODE>
+<DT><CODE>blink-matching-paren</CODE>
<DD><A NAME="IDX7"></A>
+If set to <SAMP>`on'</SAMP>, Readline attempts to briefly move the cursor to an
+opening parenthesis when a closing parenthesis is inserted. The default
+is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>colored-completion-prefix</CODE>
+<DD><A NAME="IDX8"></A>
+If set to <SAMP>`on'</SAMP>, when listing completions, Readline displays the
+common prefix of the set of possible completions using a different color.
+The color definitions are taken from the value of the <CODE>LS_COLORS</CODE>
+environment variable.
+The default is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>colored-stats</CODE>
+<DD><A NAME="IDX9"></A>
If set to <SAMP>`on'</SAMP>, Readline displays possible completions using different
colors to indicate their file type.
The color definitions are taken from the value of the <CODE>LS_COLORS</CODE>
@@ -607,14 +623,14 @@ The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>comment-begin</CODE>
-<DD><A NAME="IDX8"></A>
+<DD><A NAME="IDX10"></A>
The string to insert at the beginning of the line when the
<CODE>insert-comment</CODE> command is executed. The default value
is <CODE>"#"</CODE>.
<P>
<DT><CODE>completion-display-width</CODE>
-<DD><A NAME="IDX9"></A>
+<DD><A NAME="IDX11"></A>
The number of screen columns used to display possible matches
when performing completion.
The value is ignored if it is less than 0 or greater than the terminal
@@ -624,21 +640,21 @@ The default value is -1.
<P>
<DT><CODE>completion-ignore-case</CODE>
-<DD><A NAME="IDX10"></A>
+<DD><A NAME="IDX12"></A>
If set to <SAMP>`on'</SAMP>, Readline performs filename matching and completion
in a case-insensitive fashion.
The default value is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>completion-map-case</CODE>
-<DD><A NAME="IDX11"></A>
+<DD><A NAME="IDX13"></A>
If set to <SAMP>`on'</SAMP>, and <VAR>completion-ignore-case</VAR> is enabled, Readline
treats hyphens (<SAMP>`-'</SAMP>) and underscores (<SAMP>`_'</SAMP>) as equivalent when
performing case-insensitive filename matching and completion.
<P>
<DT><CODE>completion-prefix-display-length</CODE>
-<DD><A NAME="IDX12"></A>
+<DD><A NAME="IDX14"></A>
The length in characters of the common prefix of a list of possible
completions that is displayed without modification. When set to a
value greater than zero, common prefixes longer than this value are
@@ -646,7 +662,7 @@ replaced with an ellipsis when displaying possible completions.
<P>
<DT><CODE>completion-query-items</CODE>
-<DD><A NAME="IDX13"></A>
+<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,
@@ -658,36 +674,60 @@ The default limit is <CODE>100</CODE>.
<P>
<DT><CODE>convert-meta</CODE>
-<DD><A NAME="IDX14"></A>
+<DD><A NAME="IDX16"></A>
If set to <SAMP>`on'</SAMP>, Readline will convert characters with the
eighth bit set to an ASCII key sequence by stripping the eighth
bit and prefixing an <KBD>ESC</KBD> character, converting them to a
-meta-prefixed key sequence. The default value is <SAMP>`on'</SAMP>.
+meta-prefixed key sequence. The default value is <SAMP>`on'</SAMP>, but
+will be set to <SAMP>`off'</SAMP> if the locale is one that contains
+eight-bit characters.
<P>
<DT><CODE>disable-completion</CODE>
-<DD><A NAME="IDX15"></A>
+<DD><A NAME="IDX17"></A>
If set to <SAMP>`On'</SAMP>, Readline will inhibit word completion.
Completion characters will be inserted into the line as if they had
been mapped to <CODE>self-insert</CODE>. The default is <SAMP>`off'</SAMP>.
<P>
+<DT><CODE>echo-control-characters</CODE>
+<DD><A NAME="IDX18"></A>
+When set to <SAMP>`on'</SAMP>, on operating systems that indicate they support it,
+readline echoes a character corresponding to a signal generated from the
+keyboard. The default is <SAMP>`on'</SAMP>.
+<P>
+
<DT><CODE>editing-mode</CODE>
-<DD><A NAME="IDX16"></A>
+<DD><A NAME="IDX19"></A>
The <CODE>editing-mode</CODE> variable controls which default set of
key bindings is used. By default, Readline starts up in Emacs editing
mode, where the keystrokes are most similar to Emacs. This variable can be
set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
<P>
-<DT><CODE>echo-control-characters</CODE>
-<DD>When set to <SAMP>`on'</SAMP>, on operating systems that indicate they support it,
-readline echoes a character corresponding to a signal generated from the
-keyboard. The default is <SAMP>`on'</SAMP>.
+<DT><CODE>emacs-mode-string</CODE>
+<DD><A NAME="IDX20"></A>
+This string is displayed immediately before the last line of the primary
+prompt when emacs editing mode is active. 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 <SAMP>`\1'</SAMP> and <SAMP>`\2'</SAMP> escapes to begin and end sequences of
+non-printing characters, which can be used to embed a terminal control
+sequence into the mode string.
+The default is <SAMP>`@'</SAMP>.
+<P>
+
+<DT><CODE>enable-bracketed-paste</CODE>
+<DD><A NAME="IDX21"></A>
+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>.
<P>
<DT><CODE>enable-keypad</CODE>
-<DD><A NAME="IDX17"></A>
+<DD><A NAME="IDX22"></A>
When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
keypad when it is called. Some systems need this to enable the
arrow keys. The default is <SAMP>`off'</SAMP>.
@@ -701,13 +741,13 @@ The default is <SAMP>`on'</SAMP>.
<P>
<DT><CODE>expand-tilde</CODE>
-<DD><A NAME="IDX18"></A>
+<DD><A NAME="IDX23"></A>
If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
attempts word completion. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>history-preserve-point</CODE>
-<DD><A NAME="IDX19"></A>
+<DD><A NAME="IDX24"></A>
If set to <SAMP>`on'</SAMP>, the history code attempts to place the point (the
current cursor position) at the
same location on each history line retrieved with <CODE>previous-history</CODE>
@@ -715,17 +755,19 @@ or <CODE>next-history</CODE>. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>history-size</CODE>
-<DD><A NAME="IDX20"></A>
+<DD><A NAME="IDX25"></A>
Set the maximum number of history entries saved in the history list.
If set to zero, any existing history entries are deleted and no new entries
are saved.
If set to a value less than zero, the number of history entries is not
limited.
By default, the number of history entries is not limited.
+If an attempt is made to set <VAR>history-size</VAR> to a non-numeric value,
+the maximum number of history entries will be set to 500.
<P>
<DT><CODE>horizontal-scroll-mode</CODE>
-<DD><A NAME="IDX21"></A>
+<DD><A NAME="IDX26"></A>
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
@@ -734,17 +776,18 @@ this variable is set to <SAMP>`off'</SAMP>.
<P>
<DT><CODE>input-meta</CODE>
-<DD><A NAME="IDX22"></A>
-<A NAME="IDX23"></A>
+<DD><A NAME="IDX27"></A>
+<A NAME="IDX28"></A>
If set to <SAMP>`on'</SAMP>, Readline will enable eight-bit input (it
will not clear the eighth bit in the characters it reads),
regardless of what the terminal claims it can support. The
-default value is <SAMP>`off'</SAMP>. The name <CODE>meta-flag</CODE> is a
-synonym for this variable.
+default value is <SAMP>`off'</SAMP>, but Readline will set it to <SAMP>`on'</SAMP> if the
+locale contains eight-bit characters.
+The name <CODE>meta-flag</CODE> is a synonym for this variable.
<P>
<DT><CODE>isearch-terminators</CODE>
-<DD><A NAME="IDX24"></A>
+<DD><A NAME="IDX29"></A>
The string of characters that should terminate an incremental search without
subsequently executing the character as a command (see section <A HREF="readline.html#SEC8">1.2.5 Searching for Commands in the History</A>).
If this variable has not been given a value, the characters <KBD>ESC</KBD> and
@@ -752,7 +795,7 @@ If this variable has not been given a value, the characters <KBD>ESC</KBD> and
<P>
<DT><CODE>keymap</CODE>
-<DD><A NAME="IDX25"></A>
+<DD><A NAME="IDX30"></A>
Sets Readline's idea of the current keymap for key binding commands.
Acceptable <CODE>keymap</CODE> names are
<CODE>emacs</CODE>,
@@ -763,8 +806,9 @@ Acceptable <CODE>keymap</CODE> names are
<CODE>vi-move</CODE>,
<CODE>vi-command</CODE>, and
<CODE>vi-insert</CODE>.
-<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE>; <CODE>emacs</CODE> is
-equivalent to <CODE>emacs-standard</CODE>. The default value is <CODE>emacs</CODE>.
+<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE> (<CODE>vi-move</CODE> is also a
+synonym); <CODE>emacs</CODE> is equivalent to <CODE>emacs-standard</CODE>.
+The default value is <CODE>emacs</CODE>.
The value of the <CODE>editing-mode</CODE> variable also affects the
default keymap.
<P>
@@ -792,14 +836,14 @@ appended. The default is <SAMP>`on'</SAMP>.
<P>
<DT><CODE>mark-modified-lines</CODE>
-<DD><A NAME="IDX26"></A>
+<DD><A NAME="IDX31"></A>
This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an
asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
This variable is <SAMP>`off'</SAMP> by default.
<P>
<DT><CODE>mark-symlinked-directories</CODE>
-<DD><A NAME="IDX27"></A>
+<DD><A NAME="IDX32"></A>
If set to <SAMP>`on'</SAMP>, completed names which are symbolic links
to directories have a slash appended (subject to the value of
<CODE>mark-directories</CODE>).
@@ -807,7 +851,7 @@ The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>match-hidden-files</CODE>
-<DD><A NAME="IDX28"></A>
+<DD><A NAME="IDX33"></A>
This variable, when set to <SAMP>`on'</SAMP>, causes Readline to match files whose
names begin with a <SAMP>`.'</SAMP> (hidden files) when performing filename
completion.
@@ -817,21 +861,23 @@ This variable is <SAMP>`on'</SAMP> by default.
<P>
<DT><CODE>menu-complete-display-prefix</CODE>
-<DD><A NAME="IDX29"></A>
+<DD><A NAME="IDX34"></A>
If set to <SAMP>`on'</SAMP>, menu completion displays the common prefix of the
list of possible completions (which may be empty) before cycling through
the list. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>output-meta</CODE>
-<DD><A NAME="IDX30"></A>
+<DD><A NAME="IDX35"></A>
If set to <SAMP>`on'</SAMP>, Readline will display characters with the
eighth bit set directly rather than as a meta-prefixed escape
-sequence. The default is <SAMP>`off'</SAMP>.
+sequence.
+The default is <SAMP>`off'</SAMP>, but Readline will set it to <SAMP>`on'</SAMP> if the
+locale contains eight-bit characters.
<P>
<DT><CODE>page-completions</CODE>
-<DD><A NAME="IDX31"></A>
+<DD><A NAME="IDX36"></A>
If set to <SAMP>`on'</SAMP>, Readline uses an internal <CODE>more</CODE>-like pager
to display a screenful of possible completions at a time.
This variable is <SAMP>`on'</SAMP> by default.
@@ -844,7 +890,7 @@ The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>revert-all-at-newline</CODE>
-<DD><A NAME="IDX32"></A>
+<DD><A NAME="IDX37"></A>
If set to <SAMP>`on'</SAMP>, Readline will undo all changes to history lines
before returning when <CODE>accept-line</CODE> is executed. By default,
history lines may be modified and retain individual undo lists across
@@ -852,7 +898,7 @@ calls to <CODE>readline</CODE>. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>show-all-if-ambiguous</CODE>
-<DD><A NAME="IDX33"></A>
+<DD><A NAME="IDX38"></A>
This alters the default behavior of the completion functions. If
set to <SAMP>`on'</SAMP>,
words which have more than one possible completion cause the
@@ -861,7 +907,7 @@ The default value is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>show-all-if-unmodified</CODE>
-<DD><A NAME="IDX34"></A>
+<DD><A NAME="IDX39"></A>
This alters the default behavior of the completion functions in
a fashion similar to <VAR>show-all-if-ambiguous</VAR>.
If set to <SAMP>`on'</SAMP>,
@@ -873,15 +919,15 @@ The default value is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>show-mode-in-prompt</CODE>
-<DD><A NAME="IDX35"></A>
+<DD><A NAME="IDX40"></A>
If set to <SAMP>`on'</SAMP>, add a character to the beginning of the prompt
-indicating the editing mode: emacs (<SAMP>`@'</SAMP>), vi command (<SAMP>`:'</SAMP>),
-or vi insertion (<SAMP>`+'</SAMP>).
+indicating the editing mode: emacs, vi command, or vi insertion.
+The mode strings are user-settable.
The default value is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>skip-completed-text</CODE>
-<DD><A NAME="IDX36"></A>
+<DD><A NAME="IDX41"></A>
If set to <SAMP>`on'</SAMP>, 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
@@ -895,8 +941,34 @@ completion.
The default value is <SAMP>`off'</SAMP>.
<P>
+<DT><CODE>vi-cmd-mode-string</CODE>
+<DD><A NAME="IDX42"></A>
+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 is expanded like a
+key binding, so the standard set of meta- and control prefixes and
+backslash escape sequences is available.
+Use the <SAMP>`\1'</SAMP> and <SAMP>`\2'</SAMP> escapes to begin and end sequences of
+non-printing characters, which can be used to embed a terminal control
+sequence into the mode string.
+The default is <SAMP>`(cmd)'</SAMP>.
+<P>
+
+<DT><CODE>vi-ins-mode-string</CODE>
+<DD><A NAME="IDX43"></A>
+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 <SAMP>`\1'</SAMP> and <SAMP>`\2'</SAMP> escapes to begin and end sequences of
+non-printing characters, which can be used to embed a terminal control
+sequence into the mode string.
+The default is <SAMP>`(ins)'</SAMP>.
+<P>
+
<DT><CODE>visible-stats</CODE>
-<DD><A NAME="IDX37"></A>
+<DD><A NAME="IDX44"></A>
If set to <SAMP>`on'</SAMP>, a character denoting a file's type
is appended to the filename when listing possible
completions. The default is <SAMP>`off'</SAMP>.
@@ -1312,54 +1384,54 @@ The text between the point and mark is referred to as the <EM>region</EM>.
<H3> 1.4.1 Commands For Moving </H3>
<!--docid::SEC14::-->
<DL COMPACT>
-<A NAME="IDX38"></A>
+<A NAME="IDX45"></A>
<DT><CODE>beginning-of-line (C-a)</CODE>
-<DD><A NAME="IDX39"></A>
+<DD><A NAME="IDX46"></A>
Move to the start of the current line.
<P>
-<A NAME="IDX40"></A>
+<A NAME="IDX47"></A>
<DT><CODE>end-of-line (C-e)</CODE>
-<DD><A NAME="IDX41"></A>
+<DD><A NAME="IDX48"></A>
Move to the end of the line.
<P>
-<A NAME="IDX42"></A>
+<A NAME="IDX49"></A>
<DT><CODE>forward-char (C-f)</CODE>
-<DD><A NAME="IDX43"></A>
+<DD><A NAME="IDX50"></A>
Move forward a character.
<P>
-<A NAME="IDX44"></A>
+<A NAME="IDX51"></A>
<DT><CODE>backward-char (C-b)</CODE>
-<DD><A NAME="IDX45"></A>
+<DD><A NAME="IDX52"></A>
Move back a character.
<P>
-<A NAME="IDX46"></A>
+<A NAME="IDX53"></A>
<DT><CODE>forward-word (M-f)</CODE>
-<DD><A NAME="IDX47"></A>
+<DD><A NAME="IDX54"></A>
Move forward to the end of the next word.
Words are composed of letters and digits.
<P>
-<A NAME="IDX48"></A>
+<A NAME="IDX55"></A>
<DT><CODE>backward-word (M-b)</CODE>
-<DD><A NAME="IDX49"></A>
+<DD><A NAME="IDX56"></A>
Move back to the start of the current or previous word.
Words are composed of letters and digits.
<P>
-<A NAME="IDX50"></A>
+<A NAME="IDX57"></A>
<DT><CODE>clear-screen (C-l)</CODE>
-<DD><A NAME="IDX51"></A>
+<DD><A NAME="IDX58"></A>
Clear the screen and redraw the current line,
leaving the current line at the top of the screen.
<P>
-<A NAME="IDX52"></A>
+<A NAME="IDX59"></A>
<DT><CODE>redraw-current-line ()</CODE>
-<DD><A NAME="IDX53"></A>
+<DD><A NAME="IDX60"></A>
Refresh the current line. By default, this is unbound.
<P>
@@ -1385,9 +1457,9 @@ Refresh the current line. By default, this is unbound.
<P>
<DL COMPACT>
-<A NAME="IDX54"></A>
+<A NAME="IDX61"></A>
<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX55"></A>
+<DD><A NAME="IDX62"></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
@@ -1396,64 +1468,66 @@ If this line is a modified history line, the history line is restored
to its original state.
<P>
-<A NAME="IDX56"></A>
+<A NAME="IDX63"></A>
<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX57"></A>
+<DD><A NAME="IDX64"></A>
Move `back' through the history list, fetching the previous command.
<P>
-<A NAME="IDX58"></A>
+<A NAME="IDX65"></A>
<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX59"></A>
+<DD><A NAME="IDX66"></A>
Move `forward' through the history list, fetching the next command.
<P>
-<A NAME="IDX60"></A>
+<A NAME="IDX67"></A>
<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX61"></A>
+<DD><A NAME="IDX68"></A>
Move to the first line in the history.
<P>
-<A NAME="IDX62"></A>
+<A NAME="IDX69"></A>
<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX63"></A>
+<DD><A NAME="IDX70"></A>
Move to the end of the input history, i.e., the line currently
being entered.
<P>
-<A NAME="IDX64"></A>
+<A NAME="IDX71"></A>
<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX65"></A>
+<DD><A NAME="IDX72"></A>
Search backward starting at the current line and moving `up' through
the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX66"></A>
+<A NAME="IDX73"></A>
<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX67"></A>
+<DD><A NAME="IDX74"></A>
Search forward starting at the current line and moving `down' through
-the the history as necessary. This is an incremental search.
+the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX68"></A>
+<A NAME="IDX75"></A>
<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX69"></A>
+<DD><A NAME="IDX76"></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="IDX70"></A>
+<A NAME="IDX77"></A>
<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX71"></A>
+<DD><A NAME="IDX78"></A>
Search forward starting at the current line and moving `down'
-through the the history as necessary using a non-incremental search
+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="IDX72"></A>
+<A NAME="IDX79"></A>
<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX73"></A>
+<DD><A NAME="IDX80"></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.
@@ -1461,9 +1535,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX74"></A>
+<A NAME="IDX81"></A>
<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX75"></A>
+<DD><A NAME="IDX82"></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.
@@ -1471,9 +1545,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX76"></A>
+<A NAME="IDX83"></A>
<DT><CODE>history-substr-search-forward ()</CODE>
-<DD><A NAME="IDX77"></A>
+<DD><A NAME="IDX84"></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.
@@ -1481,9 +1555,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX78"></A>
+<A NAME="IDX85"></A>
<DT><CODE>history-substr-search-backward ()</CODE>
-<DD><A NAME="IDX79"></A>
+<DD><A NAME="IDX86"></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.
@@ -1491,9 +1565,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX80"></A>
+<A NAME="IDX87"></A>
<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX81"></A>
+<DD><A NAME="IDX88"></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>,
@@ -1504,9 +1578,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="IDX82"></A>
+<A NAME="IDX89"></A>
<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX83"></A>
+<DD><A NAME="IDX90"></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>.
@@ -1543,60 +1617,71 @@ as if the <SAMP>`!$'</SAMP> history expansion had been specified.
<DL COMPACT>
-<A NAME="IDX84"></A>
+<A NAME="IDX91"></A>
<DT><CODE><I>end-of-file</I> (usually C-d)</CODE>
-<DD><A NAME="IDX85"></A>
+<DD><A NAME="IDX92"></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="IDX86"></A>
+<A NAME="IDX93"></A>
<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX87"></A>
+<DD><A NAME="IDX94"></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="IDX88"></A>
+<A NAME="IDX95"></A>
<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX89"></A>
+<DD><A NAME="IDX96"></A>
Delete the character behind the cursor. A numeric argument means
to kill the characters instead of deleting them.
<P>
-<A NAME="IDX90"></A>
+<A NAME="IDX97"></A>
<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX91"></A>
+<DD><A NAME="IDX98"></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="IDX92"></A>
+<A NAME="IDX99"></A>
<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX93"></A>
+<DD><A NAME="IDX100"></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="IDX94"></A>
+<A NAME="IDX101"></A>
<DT><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX95"></A>
+<DD><A NAME="IDX102"></A>
Insert a tab character.
<P>
-<A NAME="IDX96"></A>
+<A NAME="IDX103"></A>
<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX97"></A>
+<DD><A NAME="IDX104"></A>
Insert yourself.
<P>
-<A NAME="IDX98"></A>
+<A NAME="IDX105"></A>
+<DT><CODE>bracketed-paste-begin ()</CODE>
+<DD><A NAME="IDX106"></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
+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</CODE>) instead of
+executing any editing commands.
+<P>
+
+<A NAME="IDX107"></A>
<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX99"></A>
+<DD><A NAME="IDX108"></A>
Drag the character before the cursor forward over
the character at the cursor, moving the
cursor forward as well. If the insertion point
@@ -1605,39 +1690,39 @@ transposes the last two characters of the line.
Negative arguments have no effect.
<P>
-<A NAME="IDX100"></A>
+<A NAME="IDX109"></A>
<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX101"></A>
+<DD><A NAME="IDX110"></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="IDX102"></A>
+<A NAME="IDX111"></A>
<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX103"></A>
+<DD><A NAME="IDX112"></A>
Uppercase the current (or following) word. With a negative argument,
uppercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX104"></A>
+<A NAME="IDX113"></A>
<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX105"></A>
+<DD><A NAME="IDX114"></A>
Lowercase the current (or following) word. With a negative argument,
lowercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX106"></A>
+<A NAME="IDX115"></A>
<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX107"></A>
+<DD><A NAME="IDX116"></A>
Capitalize the current (or following) word. With a negative argument,
capitalize the previous word, but do not move the cursor.
<P>
-<A NAME="IDX108"></A>
+<A NAME="IDX117"></A>
<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX109"></A>
+<DD><A NAME="IDX118"></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
@@ -1677,106 +1762,106 @@ By default, this command is unbound.
<DL COMPACT>
-<A NAME="IDX110"></A>
+<A NAME="IDX119"></A>
<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX111"></A>
+<DD><A NAME="IDX120"></A>
Kill the text from point to the end of the line.
<P>
-<A NAME="IDX112"></A>
+<A NAME="IDX121"></A>
<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX113"></A>
-Kill backward to the beginning of the line.
+<DD><A NAME="IDX122"></A>
+Kill backward from the cursor to the beginning of the current line.
<P>
-<A NAME="IDX114"></A>
+<A NAME="IDX123"></A>
<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX115"></A>
+<DD><A NAME="IDX124"></A>
Kill backward from the cursor to the beginning of the current line.
<P>
-<A NAME="IDX116"></A>
+<A NAME="IDX125"></A>
<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX117"></A>
+<DD><A NAME="IDX126"></A>
Kill all characters on the current line, no matter where point is.
By default, this is unbound.
<P>
-<A NAME="IDX118"></A>
+<A NAME="IDX127"></A>
<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX119"></A>
+<DD><A NAME="IDX128"></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="IDX120"></A>
+<A NAME="IDX129"></A>
<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX121"></A>
+<DD><A NAME="IDX130"></A>
Kill the word behind point.
Word boundaries are the same as <CODE>backward-word</CODE>.
<P>
-<A NAME="IDX122"></A>
+<A NAME="IDX131"></A>
<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX123"></A>
+<DD><A NAME="IDX132"></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="IDX124"></A>
+<A NAME="IDX133"></A>
<DT><CODE>unix-filename-rubout ()</CODE>
-<DD><A NAME="IDX125"></A>
+<DD><A NAME="IDX134"></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="IDX126"></A>
+<A NAME="IDX135"></A>
<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX127"></A>
+<DD><A NAME="IDX136"></A>
Delete all spaces and tabs around point. By default, this is unbound.
<P>
-<A NAME="IDX128"></A>
+<A NAME="IDX137"></A>
<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX129"></A>
+<DD><A NAME="IDX138"></A>
Kill the text in the current region.
By default, this command is unbound.
<P>
-<A NAME="IDX130"></A>
+<A NAME="IDX139"></A>
<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX131"></A>
+<DD><A NAME="IDX140"></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="IDX132"></A>
+<A NAME="IDX141"></A>
<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX133"></A>
+<DD><A NAME="IDX142"></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="IDX134"></A>
+<A NAME="IDX143"></A>
<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX135"></A>
+<DD><A NAME="IDX144"></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="IDX136"></A>
+<A NAME="IDX145"></A>
<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX137"></A>
+<DD><A NAME="IDX146"></A>
Yank the top of the kill ring into the buffer at point.
<P>
-<A NAME="IDX138"></A>
+<A NAME="IDX147"></A>
<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX139"></A>
+<DD><A NAME="IDX148"></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>
@@ -1800,23 +1885,23 @@ the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
<!--docid::SEC18::-->
<DL COMPACT>
-<A NAME="IDX140"></A>
+<A NAME="IDX149"></A>
<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX141"></A>
+<DD><A NAME="IDX150"></A>
Add this digit to the argument already accumulating, or start a new
argument. <KBD>M--</KBD> starts a negative argument.
<P>
-<A NAME="IDX142"></A>
+<A NAME="IDX151"></A>
<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX143"></A>
+<DD><A NAME="IDX152"></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.
If the command is followed by digits, executing <CODE>universal-argument</CODE>
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
+character that is neither a digit nor 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 argument count four, a second time makes the
@@ -1844,33 +1929,33 @@ By default, this is not bound to a key.
<P>
<DL COMPACT>
-<A NAME="IDX144"></A>
+<A NAME="IDX153"></A>
<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX145"></A>
+<DD><A NAME="IDX154"></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="IDX146"></A>
+<A NAME="IDX155"></A>
<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX147"></A>
+<DD><A NAME="IDX156"></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="IDX148"></A>
+<A NAME="IDX157"></A>
<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX149"></A>
+<DD><A NAME="IDX158"></A>
Insert all completions of the text before point that would have
been generated by <CODE>possible-completions</CODE>.
<P>
-<A NAME="IDX150"></A>
+<A NAME="IDX159"></A>
<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX151"></A>
+<DD><A NAME="IDX160"></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
@@ -1885,17 +1970,17 @@ This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
by default.
<P>
-<A NAME="IDX152"></A>
+<A NAME="IDX161"></A>
<DT><CODE>menu-complete-backward ()</CODE>
-<DD><A NAME="IDX153"></A>
+<DD><A NAME="IDX162"></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="IDX154"></A>
+<A NAME="IDX163"></A>
<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX155"></A>
+<DD><A NAME="IDX164"></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
@@ -1924,29 +2009,29 @@ This command is unbound by default.
<!--docid::SEC20::-->
<DL COMPACT>
-<A NAME="IDX156"></A>
+<A NAME="IDX165"></A>
<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX157"></A>
+<DD><A NAME="IDX166"></A>
Begin saving the characters typed into the current keyboard macro.
<P>
-<A NAME="IDX158"></A>
+<A NAME="IDX167"></A>
<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX159"></A>
+<DD><A NAME="IDX168"></A>
Stop saving the characters typed into the current keyboard macro
and save the definition.
<P>
-<A NAME="IDX160"></A>
+<A NAME="IDX169"></A>
<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX161"></A>
+<DD><A NAME="IDX170"></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="IDX162"></A>
+<A NAME="IDX171"></A>
<DT><CODE>print-last-kbd-macro ()</CODE>
-<DD><A NAME="IDX163"></A>
+<DD><A NAME="IDX172"></A>
Print the last keboard macro defined in a format suitable for the
<VAR>inputrc</VAR> file.
<P>
@@ -1972,87 +2057,87 @@ Print the last keboard macro defined in a format suitable for the
<!--docid::SEC21::-->
<DL COMPACT>
-<A NAME="IDX164"></A>
+<A NAME="IDX173"></A>
<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX165"></A>
+<DD><A NAME="IDX174"></A>
Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
any bindings or variable assignments found there.
<P>
-<A NAME="IDX166"></A>
+<A NAME="IDX175"></A>
<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX167"></A>
+<DD><A NAME="IDX176"></A>
Abort the current editing command and
ring the terminal's bell (subject to the setting of
<CODE>bell-style</CODE>).
<P>
-<A NAME="IDX168"></A>
+<A NAME="IDX177"></A>
<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX169"></A>
+<DD><A NAME="IDX178"></A>
If the metafied character <VAR>x</VAR> is lowercase, run the command
that is bound to the corresponding uppercase character.
<P>
-<A NAME="IDX170"></A>
+<A NAME="IDX179"></A>
<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX171"></A>
+<DD><A NAME="IDX180"></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="IDX172"></A>
+<A NAME="IDX181"></A>
<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX173"></A>
+<DD><A NAME="IDX182"></A>
Incremental undo, separately remembered for each line.
<P>
-<A NAME="IDX174"></A>
+<A NAME="IDX183"></A>
<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX175"></A>
+<DD><A NAME="IDX184"></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="IDX176"></A>
+<A NAME="IDX185"></A>
<DT><CODE>tilde-expand (M-~)</CODE>
-<DD><A NAME="IDX177"></A>
+<DD><A NAME="IDX186"></A>
Perform tilde expansion on the current word.
<P>
-<A NAME="IDX178"></A>
+<A NAME="IDX187"></A>
<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX179"></A>
+<DD><A NAME="IDX188"></A>
Set the mark to the point. If a
numeric argument is supplied, the mark is set to that position.
<P>
-<A NAME="IDX180"></A>
+<A NAME="IDX189"></A>
<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX181"></A>
+<DD><A NAME="IDX190"></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="IDX182"></A>
+<A NAME="IDX191"></A>
<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX183"></A>
+<DD><A NAME="IDX192"></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="IDX184"></A>
+<A NAME="IDX193"></A>
<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX185"></A>
+<DD><A NAME="IDX194"></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="IDX186"></A>
+<A NAME="IDX195"></A>
<DT><CODE>skip-csi-sequence ()</CODE>
-<DD><A NAME="IDX187"></A>
+<DD><A NAME="IDX196"></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
@@ -2062,9 +2147,9 @@ stray characters into the editing buffer. This is unbound by default,
but usually bound to ESC-[.
<P>
-<A NAME="IDX188"></A>
+<A NAME="IDX197"></A>
<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX189"></A>
+<DD><A NAME="IDX198"></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
@@ -2075,43 +2160,43 @@ the line.
In either case, the line is accepted as if a newline had been typed.
<P>
-<A NAME="IDX190"></A>
+<A NAME="IDX199"></A>
<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX191"></A>
+<DD><A NAME="IDX200"></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="IDX192"></A>
+<A NAME="IDX201"></A>
<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX193"></A>
+<DD><A NAME="IDX202"></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="IDX194"></A>
+<A NAME="IDX203"></A>
<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX195"></A>
+<DD><A NAME="IDX204"></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="IDX196"></A>
+<A NAME="IDX205"></A>
<DT><CODE>emacs-editing-mode (C-e)</CODE>
-<DD><A NAME="IDX197"></A>
+<DD><A NAME="IDX206"></A>
When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
editing mode.
<P>
-<A NAME="IDX198"></A>
+<A NAME="IDX207"></A>
<DT><CODE>vi-editing-mode (M-C-j)</CODE>
-<DD><A NAME="IDX199"></A>
+<DD><A NAME="IDX208"></A>
When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
editing mode.
<P>
@@ -2162,7 +2247,7 @@ in the consistency of user interface across discrete programs that need
to provide a command line interface.
</P><P>
-Copyright (C) 1988--2014 Free Software Foundation, Inc.
+Copyright (C) 1988--2016 Free Software Foundation, Inc.
</P><P>
Permission is granted to make and distribute verbatim copies of
@@ -2246,8 +2331,8 @@ the simplest way possible, perhaps to replace calls in your code to
<CODE>gets()</CODE> or <CODE>fgets()</CODE>.
</P><P>
-<A NAME="IDX200"></A>
-<A NAME="IDX201"></A>
+<A NAME="IDX209"></A>
+<A NAME="IDX210"></A>
</P><P>
The function <CODE>readline()</CODE> prints a prompt <VAR>prompt</VAR>
@@ -2537,7 +2622,7 @@ negative argument.
</P><P>
A command function should return 0 if its action completes successfully,
-and a non-zero value if some error occurs.
+and a value greater than zero if some error occurs.
This is the convention obeyed by all of the builtin Readline bindable
command functions.
</P><P>
@@ -2563,7 +2648,7 @@ command functions.
These variables are available to function writers.
</P><P>
-<A NAME="IDX202"></A>
+<A NAME="IDX211"></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
@@ -2573,7 +2658,7 @@ the memory allocated to <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX203"></A>
+<A NAME="IDX212"></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>
@@ -2581,7 +2666,7 @@ the memory allocated to <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX204"></A>
+<A NAME="IDX213"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_end</B>
<DD>The number of characters present in <CODE>rl_line_buffer</CODE>. When
@@ -2590,7 +2675,7 @@ the memory allocated to <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX205"></A>
+<A NAME="IDX214"></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
@@ -2598,7 +2683,7 @@ and point define a <EM>region</EM>.
</DL>
</P><P>
-<A NAME="IDX206"></A>
+<A NAME="IDX215"></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
@@ -2606,7 +2691,7 @@ line immediately.
</DL>
</P><P>
-<A NAME="IDX207"></A>
+<A NAME="IDX216"></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
@@ -2615,7 +2700,7 @@ than reading up to a character bound to <CODE>accept-line</CODE>.
</DL>
</P><P>
-<A NAME="IDX208"></A>
+<A NAME="IDX217"></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
@@ -2623,7 +2708,7 @@ way to stuff a single character into the input stream.
</DL>
</P><P>
-<A NAME="IDX209"></A>
+<A NAME="IDX218"></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;
@@ -2632,7 +2717,7 @@ they were called directly or by Readline's dispatching mechanism.
</DL>
</P><P>
-<A NAME="IDX210"></A>
+<A NAME="IDX219"></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
@@ -2642,7 +2727,7 @@ the beginning of the newly-blank line.
</DL>
</P><P>
-<A NAME="IDX211"></A>
+<A NAME="IDX220"></A>
<DL>
<DT><U>Variable:</U> char * <B>rl_prompt</B>
<DD>The prompt Readline uses. This is set from the argument to
@@ -2652,7 +2737,7 @@ be used to modify the prompt string after calling <CODE>readline()</CODE>.
</DL>
</P><P>
-<A NAME="IDX212"></A>
+<A NAME="IDX221"></A>
<DL>
<DT><U>Variable:</U> char * <B>rl_display_prompt</B>
<DD>The string displayed as the prompt. This is usually identical to
@@ -2661,7 +2746,7 @@ use the prompt string as a message area, such as incremental search.
</DL>
</P><P>
-<A NAME="IDX213"></A>
+<A NAME="IDX222"></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
@@ -2674,14 +2759,14 @@ never sets it.
</DL>
</P><P>
-<A NAME="IDX214"></A>
+<A NAME="IDX223"></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="IDX215"></A>
+<A NAME="IDX224"></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
@@ -2692,7 +2777,7 @@ value 0x0402.
</DL>
</P><P>
-<A NAME="IDX216"></A>
+<A NAME="IDX225"></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
@@ -2700,7 +2785,7 @@ emulation.
</DL>
</P><P>
-<A NAME="IDX217"></A>
+<A NAME="IDX226"></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,
@@ -2709,7 +2794,7 @@ the first time it is called.
</DL>
</P><P>
-<A NAME="IDX218"></A>
+<A NAME="IDX227"></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.
@@ -2718,7 +2803,7 @@ The value allows conditional parsing of the inputrc file
</DL>
</P><P>
-<A NAME="IDX219"></A>
+<A NAME="IDX228"></A>
<DL>
<DT><U>Variable:</U> FILE * <B>rl_instream</B>
<DD>The stdio stream from which Readline reads input.
@@ -2726,7 +2811,7 @@ If <CODE>NULL</CODE>, Readline defaults to <VAR>stdin</VAR>.
</DL>
</P><P>
-<A NAME="IDX220"></A>
+<A NAME="IDX229"></A>
<DL>
<DT><U>Variable:</U> FILE * <B>rl_outstream</B>
<DD>The stdio stream to which Readline performs output.
@@ -2734,7 +2819,7 @@ If <CODE>NULL</CODE>, Readline defaults to <VAR>stdout</VAR>.
</DL>
</P><P>
-<A NAME="IDX221"></A>
+<A NAME="IDX230"></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
@@ -2743,7 +2828,7 @@ from the kernel when computing the screen dimensions.
</DL>
</P><P>
-<A NAME="IDX222"></A>
+<A NAME="IDX231"></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
@@ -2752,7 +2837,7 @@ example.
</DL>
</P><P>
-<A NAME="IDX223"></A>
+<A NAME="IDX232"></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
@@ -2760,7 +2845,7 @@ before <CODE>readline</CODE> prints the first prompt.
</DL>
</P><P>
-<A NAME="IDX224"></A>
+<A NAME="IDX233"></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
@@ -2769,7 +2854,7 @@ starts reading input characters.
</DL>
</P><P>
-<A NAME="IDX225"></A>
+<A NAME="IDX234"></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
@@ -2779,7 +2864,7 @@ is no keyboard input.
</DL>
</P><P>
-<A NAME="IDX226"></A>
+<A NAME="IDX235"></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
@@ -2791,7 +2876,7 @@ setting <VAR>rl_input_available_hook</VAR> as well.
</DL>
</P><P>
-<A NAME="IDX227"></A>
+<A NAME="IDX236"></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
@@ -2799,7 +2884,7 @@ call is interrupted when Readline is reading terminal input.
</DL>
</P><P>
-<A NAME="IDX228"></A>
+<A NAME="IDX237"></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
@@ -2824,7 +2909,7 @@ setting <VAR>rl_input_available_hook</VAR> as well.
</DL>
</P><P>
-<A NAME="IDX229"></A>
+<A NAME="IDX238"></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
@@ -2834,7 +2919,7 @@ redisplay function (see section <A HREF="readline.html#SEC35">2.4.6 Redisplay</A
</DL>
</P><P>
-<A NAME="IDX230"></A>
+<A NAME="IDX239"></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
@@ -2845,7 +2930,7 @@ By default, this is set to <CODE>rl_prep_terminal</CODE>
</DL>
</P><P>
-<A NAME="IDX231"></A>
+<A NAME="IDX240"></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
@@ -2856,7 +2941,7 @@ By default, this is set to <CODE>rl_deprep_terminal</CODE>
</DL>
</P><P>
-<A NAME="IDX232"></A>
+<A NAME="IDX241"></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
@@ -2864,7 +2949,7 @@ currently executing readline function was found.
</DL>
</P><P>
-<A NAME="IDX233"></A>
+<A NAME="IDX242"></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
@@ -2872,21 +2957,21 @@ last key binding occurred.
</DL>
</P><P>
-<A NAME="IDX234"></A>
+<A NAME="IDX243"></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="IDX235"></A>
+<A NAME="IDX244"></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="IDX236"></A>
+<A NAME="IDX245"></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
@@ -2894,14 +2979,14 @@ Readline function.
</DL>
</P><P>
-<A NAME="IDX237"></A>
+<A NAME="IDX246"></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="IDX238"></A>
+<A NAME="IDX247"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_readline_state</B>
<DD>A variable with bit values that encapsulate the current Readline state.
@@ -2971,7 +3056,7 @@ and is about to return the line to the caller.
</DL>
</P><P>
-<A NAME="IDX239"></A>
+<A NAME="IDX248"></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
@@ -2979,7 +3064,7 @@ the user. Only valid in a bindable command function.
</DL>
</P><P>
-<A NAME="IDX240"></A>
+<A NAME="IDX249"></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
@@ -2988,7 +3073,7 @@ command function.
</DL>
</P><P>
-<A NAME="IDX241"></A>
+<A NAME="IDX250"></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
@@ -3067,7 +3152,7 @@ programmer, should bind the functions you write to descriptive names as
well. Readline provides a function for doing that:
</P><P>
-<A NAME="IDX242"></A>
+<A NAME="IDX251"></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
@@ -3107,7 +3192,7 @@ get run. You can make your own keymaps, copy existing keymaps, and tell
Readline which keymap to use.
</P><P>
-<A NAME="IDX243"></A>
+<A NAME="IDX252"></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
@@ -3116,14 +3201,14 @@ Readline which keymap to use.
</DL>
</P><P>
-<A NAME="IDX244"></A>
+<A NAME="IDX253"></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="IDX245"></A>
+<A NAME="IDX254"></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,
@@ -3132,7 +3217,7 @@ the Meta digits bound to produce numeric arguments.
</DL>
</P><P>
-<A NAME="IDX246"></A>
+<A NAME="IDX255"></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>.
@@ -3140,7 +3225,7 @@ The caller should free <VAR>keymap</VAR>.
</DL>
</P><P>
-<A NAME="IDX247"></A>
+<A NAME="IDX256"></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
@@ -3152,21 +3237,21 @@ Readline has several internal keymaps. These functions allow you to
change which keymap is active.
</P><P>
-<A NAME="IDX248"></A>
+<A NAME="IDX257"></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="IDX249"></A>
+<A NAME="IDX258"></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="IDX250"></A>
+<A NAME="IDX259"></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
@@ -3174,7 +3259,7 @@ be supplied in a <CODE>set keymap</CODE> inputrc line (see section <A HREF="read
</DL>
</P><P>
-<A NAME="IDX251"></A>
+<A NAME="IDX260"></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
@@ -3219,7 +3304,7 @@ initialization function assigned to the <CODE>rl_startup_hook</CODE> variable
These functions manage key bindings.
</P><P>
-<A NAME="IDX252"></A>
+<A NAME="IDX261"></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.
@@ -3227,7 +3312,7 @@ Returns non-zero in the case of an invalid <VAR>key</VAR>.
</DL>
</P><P>
-<A NAME="IDX253"></A>
+<A NAME="IDX262"></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>.
@@ -3235,7 +3320,7 @@ Returns non-zero in the case of an invalid <VAR>key</VAR>.
</DL>
</P><P>
-<A NAME="IDX254"></A>
+<A NAME="IDX263"></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
@@ -3245,7 +3330,7 @@ already bound.
</DL>
</P><P>
-<A NAME="IDX255"></A>
+<A NAME="IDX264"></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>.
@@ -3254,7 +3339,7 @@ already bound.
</DL>
</P><P>
-<A NAME="IDX256"></A>
+<A NAME="IDX265"></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.
@@ -3262,7 +3347,7 @@ Returns non-zero in case of error.
</DL>
</P><P>
-<A NAME="IDX257"></A>
+<A NAME="IDX266"></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>.
@@ -3270,21 +3355,21 @@ Returns non-zero in case of error.
</DL>
</P><P>
-<A NAME="IDX258"></A>
+<A NAME="IDX267"></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="IDX259"></A>
+<A NAME="IDX268"></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="IDX260"></A>
+<A NAME="IDX269"></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
@@ -3294,7 +3379,7 @@ The return value is non-zero if <VAR>keyseq</VAR> is invalid.
</DL>
</P><P>
-<A NAME="IDX261"></A>
+<A NAME="IDX270"></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
@@ -3304,14 +3389,14 @@ The return value is non-zero if <VAR>keyseq</VAR> is invalid.
</DL>
</P><P>
-<A NAME="IDX262"></A>
+<A NAME="IDX271"></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="IDX263"></A>
+<A NAME="IDX272"></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
@@ -3321,7 +3406,7 @@ already bound.
</DL>
</P><P>
-<A NAME="IDX264"></A>
+<A NAME="IDX273"></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>.
@@ -3330,7 +3415,7 @@ already bound.
</DL>
</P><P>
-<A NAME="IDX265"></A>
+<A NAME="IDX274"></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
@@ -3341,7 +3426,7 @@ necessary. The initial keymap in which to do bindings is <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX266"></A>
+<A NAME="IDX275"></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
@@ -3350,7 +3435,7 @@ perform any key bindings and variable assignments found
</DL>
</P><P>
-<A NAME="IDX267"></A>
+<A NAME="IDX276"></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>
@@ -3381,14 +3466,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="IDX268"></A>
+<A NAME="IDX277"></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="IDX269"></A>
+<A NAME="IDX278"></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>.
@@ -3398,7 +3483,7 @@ it points to (one of <CODE>ISFUNC</CODE>, <CODE>ISKMAP</CODE>, or <CODE>ISMACR</
</DL>
</P><P>
-<A NAME="IDX270"></A>
+<A NAME="IDX279"></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
@@ -3406,7 +3491,7 @@ invoke <VAR>function</VAR> in the current keymap.
</DL>
</P><P>
-<A NAME="IDX271"></A>
+<A NAME="IDX280"></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
@@ -3414,7 +3499,7 @@ invoke <VAR>function</VAR> in the keymap <VAR>map</VAR>.
</DL>
</P><P>
-<A NAME="IDX272"></A>
+<A NAME="IDX281"></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
@@ -3424,14 +3509,14 @@ the list is formatted in such a way that it can be made part of an
</DL>
</P><P>
-<A NAME="IDX273"></A>
+<A NAME="IDX282"></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="IDX274"></A>
+<A NAME="IDX283"></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
@@ -3441,7 +3526,7 @@ should free the array, but not the pointers, using <CODE>free</CODE> or
</DL>
</P><P>
-<A NAME="IDX275"></A>
+<A NAME="IDX284"></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
@@ -3496,7 +3581,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="IDX276"></A>
+<A NAME="IDX285"></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
@@ -3506,7 +3591,7 @@ information usually comes from calls to <CODE>rl_insert_text()</CODE> and
</DL>
</P><P>
-<A NAME="IDX277"></A>
+<A NAME="IDX286"></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
@@ -3515,7 +3600,7 @@ for each call to <CODE>rl_begin_undo_group()</CODE>.
</DL>
</P><P>
-<A NAME="IDX278"></A>
+<A NAME="IDX287"></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
@@ -3523,14 +3608,14 @@ text runs from <VAR>start</VAR> to <VAR>end</VAR>, and encompasses <VAR>text</VA
</DL>
</P><P>
-<A NAME="IDX279"></A>
+<A NAME="IDX288"></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="IDX280"></A>
+<A NAME="IDX289"></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
@@ -3544,7 +3629,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="IDX281"></A>
+<A NAME="IDX290"></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
@@ -3571,7 +3656,7 @@ that text.
<!--docid::SEC35::-->
<P>
-<A NAME="IDX282"></A>
+<A NAME="IDX291"></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
@@ -3579,7 +3664,7 @@ of <CODE>rl_line_buffer</CODE>.
</DL>
</P><P>
-<A NAME="IDX283"></A>
+<A NAME="IDX292"></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
@@ -3587,7 +3672,7 @@ Readline thinks the screen display is correct.
</DL>
</P><P>
-<A NAME="IDX284"></A>
+<A NAME="IDX293"></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,
@@ -3595,7 +3680,7 @@ usually after outputting a newline.
</DL>
</P><P>
-<A NAME="IDX285"></A>
+<A NAME="IDX294"></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
@@ -3607,7 +3692,14 @@ It should be used after setting <VAR>rl_already_prompted</VAR>.
</DL>
</P><P>
-<A NAME="IDX286"></A>
+<A NAME="IDX295"></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="IDX296"></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
@@ -3615,14 +3707,14 @@ starting on a new line.
</DL>
</P><P>
-<A NAME="IDX287"></A>
+<A NAME="IDX297"></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="IDX288"></A>
+<A NAME="IDX298"></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>.
@@ -3633,7 +3725,7 @@ redisplay.
</DL>
</P><P>
-<A NAME="IDX289"></A>
+<A NAME="IDX299"></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>,
@@ -3646,7 +3738,7 @@ before calling this function.
</DL>
</P><P>
-<A NAME="IDX290"></A>
+<A NAME="IDX300"></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
@@ -3655,7 +3747,7 @@ call <CODE>rl_restore_prompt</CODE> before calling this function.
</DL>
</P><P>
-<A NAME="IDX291"></A>
+<A NAME="IDX301"></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
@@ -3663,7 +3755,7 @@ displaying a new message in the message area with <CODE>rl_message()</CODE>.
</DL>
</P><P>
-<A NAME="IDX292"></A>
+<A NAME="IDX302"></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
@@ -3674,7 +3766,7 @@ corresponding call to <CODE>rl_clear_message</CODE>.
</DL>
</P><P>
-<A NAME="IDX293"></A>
+<A NAME="IDX303"></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
@@ -3687,12 +3779,12 @@ It returns the number of visible characters on the last line of the
Applications may indicate that the prompt contains characters that take
up no physical screen space when displayed by bracketing a sequence of
such characters with the special markers <CODE>RL_PROMPT_START_IGNORE</CODE>
-and <CODE>RL_PROMPT_END_IGNORE</CODE> (declared in <TT>`readline.h'</TT>. This may
+and <CODE>RL_PROMPT_END_IGNORE</CODE> (declared in <TT>`readline.h'</TT>). This may
be used to embed terminal-specific escape sequences in prompts.
</DL>
</P><P>
-<A NAME="IDX294"></A>
+<A NAME="IDX304"></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
@@ -3719,7 +3811,7 @@ to the result.
<!--docid::SEC36::-->
<P>
-<A NAME="IDX295"></A>
+<A NAME="IDX305"></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.
@@ -3727,7 +3819,7 @@ Returns the number of characters inserted.
</DL>
</P><P>
-<A NAME="IDX296"></A>
+<A NAME="IDX306"></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.
@@ -3735,7 +3827,7 @@ Returns the number of characters deleted.
</DL>
</P><P>
-<A NAME="IDX297"></A>
+<A NAME="IDX307"></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
@@ -3743,7 +3835,7 @@ the current line.
</DL>
</P><P>
-<A NAME="IDX298"></A>
+<A NAME="IDX308"></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
@@ -3755,7 +3847,7 @@ not a kill, a new kill ring slot is used.
</DL>
</P><P>
-<A NAME="IDX299"></A>
+<A NAME="IDX309"></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
@@ -3782,7 +3874,7 @@ by a key bound to a macro. Not especially useful; use
<!--docid::SEC37::-->
<P>
-<A NAME="IDX300"></A>
+<A NAME="IDX310"></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.
@@ -3794,7 +3886,7 @@ the <CODE>rl_event_hook</CODE> variable.
</DL>
</P><P>
-<A NAME="IDX301"></A>
+<A NAME="IDX311"></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
@@ -3802,7 +3894,7 @@ be the keyboard.
</DL>
</P><P>
-<A NAME="IDX302"></A>
+<A NAME="IDX312"></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"
@@ -3813,7 +3905,7 @@ before Readline attempts to read characters from the terminal with
</DL>
</P><P>
-<A NAME="IDX303"></A>
+<A NAME="IDX313"></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>
@@ -3821,7 +3913,7 @@ is called. This sets <VAR>rl_pending_input</VAR>.
</DL>
</P><P>
-<A NAME="IDX304"></A>
+<A NAME="IDX314"></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
@@ -3830,7 +3922,7 @@ pending input has not already been read with <CODE>rl_read_key()</CODE>.
</DL>
</P><P>
-<A NAME="IDX305"></A>
+<A NAME="IDX315"></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
@@ -3860,7 +3952,7 @@ Returns the old timeout value.
<!--docid::SEC38::-->
<P>
-<A NAME="IDX306"></A>
+<A NAME="IDX316"></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>
@@ -3870,7 +3962,7 @@ read eight-bit input.
</DL>
</P><P>
-<A NAME="IDX307"></A>
+<A NAME="IDX317"></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
@@ -3879,7 +3971,7 @@ the state in which it was before the most recent call to
</DL>
</P><P>
-<A NAME="IDX308"></A>
+<A NAME="IDX318"></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
@@ -3888,7 +3980,7 @@ The bindings are performed in <VAR>kmap</VAR>.
</DL>
</P><P>
-<A NAME="IDX309"></A>
+<A NAME="IDX319"></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
@@ -3897,7 +3989,18 @@ The bindings are performed in <VAR>kmap</VAR>.
</DL>
</P><P>
-<A NAME="IDX310"></A>
+<A NAME="IDX320"></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
+stream (<VAR>rl_outstream</VAR>). If <VAR>value</VAR> is 0, Readline does not display
+output to <VAR>rl_outstream</VAR>; any other value enables output. The initial
+value is set when Readline initializes the terminal settings.
+This function returns the previous value.
+</DL>
+</P><P>
+
+<A NAME="IDX321"></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
@@ -3925,7 +4028,7 @@ environment variable is used.
<!--docid::SEC39::-->
<P>
-<A NAME="IDX311"></A>
+<A NAME="IDX322"></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>.
@@ -3935,7 +4038,7 @@ The caller is responsible for allocating the structure.
</DL>
</P><P>
-<A NAME="IDX312"></A>
+<A NAME="IDX323"></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
@@ -3946,7 +4049,7 @@ The caller is responsible for freeing the structure.
</DL>
</P><P>
-<A NAME="IDX313"></A>
+<A NAME="IDX324"></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
@@ -3954,7 +4057,7 @@ allocated by <CODE>malloc</CODE>.
</DL>
</P><P>
-<A NAME="IDX314"></A>
+<A NAME="IDX325"></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>.
@@ -3964,7 +4067,7 @@ current line is cleared.
</DL>
</P><P>
-<A NAME="IDX315"></A>
+<A NAME="IDX326"></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>
@@ -3972,7 +4075,7 @@ characters, possibly reallocating it if necessary.
</DL>
</P><P>
-<A NAME="IDX316"></A>
+<A NAME="IDX327"></A>
<DL>
<DT><U>Function:</U> int <B>rl_initialize</B> <I>(void)</I>
<DD>Initialize or re-initialize Readline's internal state.
@@ -3981,21 +4084,21 @@ reading any input.
</DL>
</P><P>
-<A NAME="IDX317"></A>
+<A NAME="IDX328"></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="IDX318"></A>
+<A NAME="IDX329"></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="IDX319"></A>
+<A NAME="IDX330"></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
@@ -4015,28 +4118,28 @@ The following are implemented as macros, defined in <CODE>chardefs.h</CODE>.
Applications should refrain from using them.
</P><P>
-<A NAME="IDX320"></A>
+<A NAME="IDX331"></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="IDX321"></A>
+<A NAME="IDX332"></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="IDX322"></A>
+<A NAME="IDX333"></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="IDX323"></A>
+<A NAME="IDX334"></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
@@ -4044,7 +4147,7 @@ uppercase character.
</DL>
</P><P>
-<A NAME="IDX324"></A>
+<A NAME="IDX335"></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
@@ -4052,7 +4155,7 @@ lowercase character.
</DL>
</P><P>
-<A NAME="IDX325"></A>
+<A NAME="IDX336"></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.
@@ -4077,7 +4180,7 @@ lowercase character.
<!--docid::SEC40::-->
<P>
-<A NAME="IDX326"></A>
+<A NAME="IDX337"></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>.
@@ -4087,7 +4190,7 @@ use <CODE>rl_generic_bind()</CODE> instead.
</DL>
</P><P>
-<A NAME="IDX327"></A>
+<A NAME="IDX338"></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
@@ -4097,7 +4200,7 @@ that it can be made part of an <CODE>inputrc</CODE> file and re-read.
</DL>
</P><P>
-<A NAME="IDX328"></A>
+<A NAME="IDX339"></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>.
@@ -4107,7 +4210,7 @@ file (see section <A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax<
</DL>
</P><P>
-<A NAME="IDX329"></A>
+<A NAME="IDX340"></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>.
@@ -4115,7 +4218,7 @@ For boolean variables, this string is either <SAMP>`on'</SAMP> or <SAMP>`off'</S
</DL>
</P><P>
-<A NAME="IDX330"></A>
+<A NAME="IDX341"></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
@@ -4125,7 +4228,7 @@ that it can be made part of an <CODE>inputrc</CODE> file and re-read.
</DL>
</P><P>
-<A NAME="IDX331"></A>
+<A NAME="IDX342"></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
@@ -4133,7 +4236,7 @@ a balancing character when <CODE>blink-matching-paren</CODE> has been enabled.
</DL>
</P><P>
-<A NAME="IDX332"></A>
+<A NAME="IDX343"></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>.
@@ -4145,7 +4248,7 @@ values for only those capabilities Readline uses.
</DL>
</P><P>
-<A NAME="IDX333"></A>
+<A NAME="IDX344"></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
@@ -4181,7 +4284,7 @@ also be invoked as a `callback' function from an event loop. There
are functions available to make this easy.
</P><P>
-<A NAME="IDX334"></A>
+<A NAME="IDX345"></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
@@ -4189,10 +4292,12 @@ expanded value of <VAR>prompt</VAR>. Save the value of <VAR>lhandler</VAR> to
use as a handler function to call when a complete line of input has been
entered.
The handler function receives the text of the line as an argument.
+As with <CODE>readline()</CODE>, the handler function should <CODE>free</CODE> the
+line when it it finished with it.
</DL>
</P><P>
-<A NAME="IDX335"></A>
+<A NAME="IDX346"></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
@@ -4212,11 +4317,22 @@ the terminal settings are modified for Readline's use again.
</DL>
</P><P>
-<A NAME="IDX336"></A>
+<A NAME="IDX347"></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
+between calls to rl_callback_read_char (e.g., the state of any active
+incremental searches). This is intended to be used by applications that
+wish to perform their own signal handling; Readline's internal signal handler
+calls this when appropriate.
+</DL>
+</P><P>
+
+<A NAME="IDX348"></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.
-This may be called from within a callback as well as independently.
+You may call this function from within a callback as well as independently.
If the <VAR>lhandler</VAR> installed by <CODE>rl_callback_handler_install</CODE>
does not exit the program, either this function or the function referred
to by the value of <CODE>rl_deprep_term_function</CODE> should be called before
@@ -4332,12 +4448,16 @@ It understands the EOF character or "exit" to exit the program.
<TABLE><tr><td>&nbsp;</td><td class=example><pre>/* Standard include files. stdio.h is required. */
#include &#60;stdlib.h&#62;
+#include &#60;string.h&#62;
#include &#60;unistd.h&#62;
+#include &#60;locale.h&#62;
/* Used for select(2) */
#include &#60;sys/types.h&#62;
#include &#60;sys/select.h&#62;
+#include &#60;signal.h&#62;
+
#include &#60;stdio.h&#62;
/* Standard readline include files. */
@@ -4345,10 +4465,20 @@ It understands the EOF character or "exit" to exit the program.
#include &#60;readline/history.h&#62;
static void cb_linehandler (char *);
+static void sighandler (int);
int running;
+int sigwinch_received;
const char *prompt = "rltest$ ";
+/* Handle SIGWINCH and window size changes when readline is not active and
+ reading a character. */
+static void
+sighandler (int sig)
+{
+ sigwinch_received = 1;
+}
+
/* Callback function called for each line when accept-line executed, EOF
seen, or EOF character read. This sets a flag and returns; it could
also call exit(3). */
@@ -4383,6 +4513,13 @@ main (int c, char **v)
fd_set fds;
int r;
+ /* Set the default locale values according to environment variables. */
+ setlocale (LC_ALL, "");
+
+ /* Handle window size changes when readline is not active and reading
+ characters. */
+ signal (SIGWINCH, sighandler);
+
/* Install the line handler. */
rl_callback_handler_install (prompt, cb_linehandler);
@@ -4397,12 +4534,19 @@ main (int c, char **v)
FD_SET (fileno (rl_instream), &#38;fds);
r = select (FD_SETSIZE, &#38;fds, NULL, NULL, NULL);
- if (r &#60; 0)
+ if (r &#60; 0 &#38;&#38; errno != EINTR)
{
perror ("rltest: select");
rl_callback_handler_remove ();
break;
}
+ if (sigwinch_received)
+ {
+ rl_resize_terminal ();
+ sigwinch_received = 0;
+ }
+ if (r &#60; 0)
+ continue;
if (FD_ISSET (fileno (rl_instream), &#38;fds))
rl_callback_read_char ();
@@ -4468,7 +4612,32 @@ resetting the terminal to its original state. If the application's signal
handler does more than update its idea of the terminal size and return (for
example, a <CODE>longjmp</CODE> back to a main processing loop), it <EM>must</EM>
call <CODE>rl_cleanup_after_signal()</CODE> (described below), to restore the
-terminal state.
+terminal state.
+</P><P>
+
+When an application is using the callback interface
+(see section <A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A>), Readline installs signal handlers only for
+the duration of the call to <CODE>rl_callback_read_char</CODE>. Applications
+using the callback interface should be prepared to clean up Readline's
+state if they wish to handle the signal before the line handler completes
+and restores the terminal state.
+</P><P>
+
+If an application using the callback interface wishes to have Readline
+install its signal handlers at the time the application calls
+<CODE>rl_callback_handler_install</CODE> and remove them only when a complete
+line of input has been read, it should set the
+<CODE>rl_persistent_signal_handlers</CODE> variable to a non-zero value.
+This allows an application to defer all of the handling of the signals
+Readline catches to Readline.
+Applications should use this variable with care; it can result in Readline
+catching signals and not acting on them (or allowing the application to react
+to them) until the application calls <CODE>rl_callback_read_char</CODE>. This
+can result in an application becoming less responsive to keyboard signals
+like SIGINT.
+If an application does not want or need to perform any signal handling, or
+does not need to do any processing between calls to <CODE>rl_callback_read_char</CODE>,
+setting this variable may be desirable.
</P><P>
Readline provides two variables that allow application writers to
@@ -4478,7 +4647,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="IDX337"></A>
+<A NAME="IDX349"></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
@@ -4490,7 +4659,7 @@ The default value of <CODE>rl_catch_signals</CODE> is 1.
</DL>
</P><P>
-<A NAME="IDX338"></A>
+<A NAME="IDX350"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_catch_sigwinch</B>
<DD>If this variable is set to a non-zero value,
@@ -4501,7 +4670,20 @@ The default value of <CODE>rl_catch_sigwinch</CODE> is 1.
</DL>
</P><P>
-<A NAME="IDX339"></A>
+<A NAME="IDX351"></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
+handlers to be installed and active during the set of calls to
+<CODE>rl_callback_read_char</CODE> that constitutes an entire single line,
+it should set this variable to a non-zero value.
+</P><P>
+
+The default value of <CODE>rl_persistent_signal_handlers</CODE> is 0.
+</DL>
+</P><P>
+
+<A NAME="IDX352"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_change_environment</B>
<DD>If this variable is set to a non-zero value,
@@ -4521,7 +4703,15 @@ Readline provides convenience functions to do the necessary terminal
and internal state cleanup upon receipt of a signal.
</P><P>
-<A NAME="IDX340"></A>
+<A NAME="IDX353"></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
+has not yet handled, or 0 if there is no pending signal.
+</DL>
+</P><P>
+
+<A NAME="IDX354"></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
@@ -4531,7 +4721,7 @@ all signals, depending on the values of <CODE>rl_catch_signals</CODE> and
</DL>
</P><P>
-<A NAME="IDX341"></A>
+<A NAME="IDX355"></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
@@ -4543,7 +4733,7 @@ current input line.
</DL>
</P><P>
-<A NAME="IDX342"></A>
+<A NAME="IDX356"></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
@@ -4558,7 +4748,7 @@ Readline to update its idea of the terminal size when a <CODE>SIGWINCH</CODE>
is received.
</P><P>
-<A NAME="IDX343"></A>
+<A NAME="IDX357"></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
@@ -4568,14 +4758,14 @@ function with <VAR>sig</VAR> set to <CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>, o
</DL>
</P><P>
-<A NAME="IDX344"></A>
+<A NAME="IDX358"></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="IDX345"></A>
+<A NAME="IDX359"></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
@@ -4589,7 +4779,7 @@ is still interested in the screen dimensions, Readline's idea of the screen
size may be queried.
</P><P>
-<A NAME="IDX346"></A>
+<A NAME="IDX360"></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
@@ -4597,7 +4787,7 @@ variables pointed to by the arguments.
</DL>
</P><P>
-<A NAME="IDX347"></A>
+<A NAME="IDX361"></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.
@@ -4607,7 +4797,7 @@ variables pointed to by the arguments.
The following functions install and remove Readline's signal handlers.
</P><P>
-<A NAME="IDX348"></A>
+<A NAME="IDX362"></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>,
@@ -4617,7 +4807,7 @@ The following functions install and remove Readline's signal handlers.
</DL>
</P><P>
-<A NAME="IDX349"></A>
+<A NAME="IDX363"></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
@@ -4730,7 +4920,7 @@ Such a generator function is referred to as an
</OL>
<P>
-<A NAME="IDX350"></A>
+<A NAME="IDX364"></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
@@ -4739,7 +4929,7 @@ that does the initial simple matching selection algorithm (see
</DL>
</P><P>
-<A NAME="IDX351"></A>
+<A NAME="IDX365"></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
@@ -4775,7 +4965,7 @@ Here is the complete list of callable completion functions present in
Readline.
</P><P>
-<A NAME="IDX352"></A>
+<A NAME="IDX366"></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
@@ -4789,7 +4979,7 @@ a common prefix.
</DL>
</P><P>
-<A NAME="IDX353"></A>
+<A NAME="IDX367"></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
@@ -4801,7 +4991,7 @@ argument depending on <VAR>invoking_key</VAR>.
</DL>
</P><P>
-<A NAME="IDX354"></A>
+<A NAME="IDX368"></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
@@ -4810,7 +5000,7 @@ argument depending on <VAR>invoking_key</VAR>.
</DL>
</P><P>
-<A NAME="IDX355"></A>
+<A NAME="IDX369"></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
@@ -4819,7 +5009,7 @@ This calls <CODE>rl_complete_internal()</CODE> with an argument of <SAMP>`*'</SA
</DL>
</P><P>
-<A NAME="IDX356"></A>
+<A NAME="IDX370"></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>
@@ -4831,7 +5021,7 @@ the same interface as <CODE>rl_complete()</CODE>.
</DL>
</P><P>
-<A NAME="IDX357"></A>
+<A NAME="IDX371"></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
@@ -4849,7 +5039,7 @@ when there are no more matches.
</DL>
</P><P>
-<A NAME="IDX358"></A>
+<A NAME="IDX372"></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.
@@ -4860,7 +5050,7 @@ Readline functions).
</DL>
</P><P>
-<A NAME="IDX359"></A>
+<A NAME="IDX373"></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
@@ -4888,7 +5078,7 @@ for subsequent calls.
<!--docid::SEC48::-->
<P>
-<A NAME="IDX360"></A>
+<A NAME="IDX374"></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>.
@@ -4897,7 +5087,7 @@ the default filename completer.
</DL>
</P><P>
-<A NAME="IDX361"></A>
+<A NAME="IDX375"></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.
@@ -4914,7 +5104,7 @@ completion even if this function returns no matches.
</DL>
</P><P>
-<A NAME="IDX362"></A>
+<A NAME="IDX376"></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
@@ -4931,7 +5121,7 @@ to reset this character.
</DL>
</P><P>
-<A NAME="IDX363"></A>
+<A NAME="IDX377"></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
@@ -4944,7 +5134,7 @@ that delimits the filename (usually <SAMP>`''</SAMP> or <SAMP>`"'</SAMP>). If
</DL>
</P><P>
-<A NAME="IDX364"></A>
+<A NAME="IDX378"></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
@@ -4957,7 +5147,7 @@ used to break words for the completer.
</DL>
</P><P>
-<A NAME="IDX365"></A>
+<A NAME="IDX379"></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
@@ -4970,7 +5160,7 @@ from the array must be freed.
</DL>
</P><P>
-<A NAME="IDX366"></A>
+<A NAME="IDX380"></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
@@ -4993,7 +5183,7 @@ The function should not modify the directory argument if it returns 0.
</DL>
</P><P>
-<A NAME="IDX367"></A>
+<A NAME="IDX381"></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
@@ -5013,7 +5203,7 @@ The function should not modify the directory argument if it returns 0.
</DL>
</P><P>
-<A NAME="IDX368"></A>
+<A NAME="IDX382"></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
@@ -5029,7 +5219,7 @@ The function should not modify the directory argument if it returns 0.
</DL>
</P><P>
-<A NAME="IDX369"></A>
+<A NAME="IDX383"></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
@@ -5048,7 +5238,7 @@ allocated string.
</DL>
</P><P>
-<A NAME="IDX370"></A>
+<A NAME="IDX384"></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
@@ -5060,12 +5250,12 @@ where <VAR>matches</VAR> is the array of matching strings,
<VAR>num_matches</VAR> is the number of strings in that array, and
<VAR>max_length</VAR> is the length of the longest string in that array.
Readline provides a convenience function, <CODE>rl_display_match_list</CODE>,
-that takes care of doing the display to Readline's output stream. That
-function may be called from this hook.
+that takes care of doing the display to Readline's output stream.
+You may call that function from this hook.
</DL>
</P><P>
-<A NAME="IDX371"></A>
+<A NAME="IDX385"></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
@@ -5075,14 +5265,14 @@ which break words for completion in Bash:
</DL>
</P><P>
-<A NAME="IDX372"></A>
+<A NAME="IDX386"></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="IDX373"></A>
+<A NAME="IDX387"></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
@@ -5091,7 +5281,7 @@ which break words for completion in Bash:
</DL>
</P><P>
-<A NAME="IDX374"></A>
+<A NAME="IDX388"></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
@@ -5103,7 +5293,7 @@ returns <CODE>NULL</CODE>, <CODE>rl_completer_word_break_characters</CODE> is us
</DL>
</P><P>
-<A NAME="IDX375"></A>
+<A NAME="IDX389"></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.
@@ -5113,7 +5303,7 @@ unless they also appear within this list.
</DL>
</P><P>
-<A NAME="IDX376"></A>
+<A NAME="IDX390"></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
@@ -5121,7 +5311,7 @@ when they appear in a completed filename. The default is the null string.
</DL>
</P><P>
-<A NAME="IDX377"></A>
+<A NAME="IDX391"></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
@@ -5132,7 +5322,7 @@ shell variables and hostnames.
</DL>
</P><P>
-<A NAME="IDX378"></A>
+<A NAME="IDX392"></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
@@ -5142,7 +5332,7 @@ indicates that Readline should never ask the user.
</DL>
</P><P>
-<A NAME="IDX379"></A>
+<A NAME="IDX393"></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
@@ -5155,7 +5345,7 @@ an application-specific command line syntax specification.
</DL>
</P><P>
-<A NAME="IDX380"></A>
+<A NAME="IDX394"></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
@@ -5165,7 +5355,7 @@ is called, and may only be changed within such a function.
</DL>
</P><P>
-<A NAME="IDX381"></A>
+<A NAME="IDX395"></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
@@ -5175,7 +5365,7 @@ This is set before any application-specific completion function is called.
</DL>
</P><P>
-<A NAME="IDX382"></A>
+<A NAME="IDX396"></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
@@ -5185,7 +5375,7 @@ is called, and may only be changed within such a function.
</DL>
</P><P>
-<A NAME="IDX383"></A>
+<A NAME="IDX397"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_completion_found_quote</B>
<DD>When Readline is completing quoted text, it sets this variable
@@ -5195,7 +5385,7 @@ This is set before any application-specific completion function is called.
</DL>
</P><P>
-<A NAME="IDX384"></A>
+<A NAME="IDX398"></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
@@ -5210,7 +5400,7 @@ function modifies the value, the user's preferences are honored.
</DL>
</P><P>
-<A NAME="IDX385"></A>
+<A NAME="IDX399"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_ignore_completion_duplicates</B>
<DD>If non-zero, then duplicates in the matches are removed.
@@ -5218,7 +5408,7 @@ The default is 1.
</DL>
</P><P>
-<A NAME="IDX386"></A>
+<A NAME="IDX400"></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
@@ -5232,7 +5422,7 @@ characters in <CODE>rl_filename_quote_characters</CODE> and
</DL>
</P><P>
-<A NAME="IDX387"></A>
+<A NAME="IDX401"></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
@@ -5246,7 +5436,7 @@ by <CODE>rl_filename_quoting_function</CODE>.
</DL>
</P><P>
-<A NAME="IDX388"></A>
+<A NAME="IDX402"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_attempted_completion_over</B>
<DD>If an application-specific completion function assigned to
@@ -5257,7 +5447,7 @@ It should be set only by an application's completion function.
</DL>
</P><P>
-<A NAME="IDX389"></A>
+<A NAME="IDX403"></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
@@ -5269,7 +5459,7 @@ matches.
</DL>
</P><P>
-<A NAME="IDX390"></A>
+<A NAME="IDX404"></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
@@ -5281,7 +5471,7 @@ the same interface as <CODE>rl_complete()</CODE>.
</DL>
</P><P>
-<A NAME="IDX391"></A>
+<A NAME="IDX405"></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
@@ -5291,7 +5481,7 @@ function is called.
</DL>
</P><P>
-<A NAME="IDX392"></A>
+<A NAME="IDX406"></A>
<DL>
<DT><U>Variable:</U> int <B>rl_inhibit_completion</B>
<DD>If this variable is non-zero, completion is inhibited. The completion
@@ -6438,7 +6628,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#IDX201">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#IDX210">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>
@@ -6530,433 +6720,447 @@ 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#IDX322"><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#IDX325"><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#IDX321"><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#IDX324"><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#IDX323"><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#IDX320"><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#IDX333"><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#IDX336"><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#IDX332"><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#IDX335"><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#IDX334"><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#IDX331"><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#IDX166"><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#IDX167"><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#IDX54"><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#IDX55"><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#IDX175"><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#IDX176"><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#IDX61"><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#IDX62"><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#IDX44"><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#IDX45"><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#IDX88"><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#IDX89"><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#IDX112"><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#IDX113"><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#IDX120"><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#IDX121"><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#IDX48"><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#IDX49"><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#IDX60"><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#IDX61"><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#IDX38"><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#IDX39"><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#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#IDX95"><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#IDX96"><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#IDX121"><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#IDX122"><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#IDX129"><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#IDX130"><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#IDX67"><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#IDX68"><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#IDX105"><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#IDX106"><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#IDX160"><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#IDX161"><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#IDX106"><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#IDX107"><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#IDX182"><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#IDX183"><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#IDX184"><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#IDX185"><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#IDX50"><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#IDX51"><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#IDX7">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#IDX8">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#IDX144"><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#IDX145"><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#IDX9">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#IDX10">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#IDX11">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#IDX12">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#IDX13">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#IDX14">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#IDX132"><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#IDX133"><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#IDX134"><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#IDX135"><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#IDX130"><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#IDX131"><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#IDX169"><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#IDX170"><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#IDX115"><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#IDX116"><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#IDX191"><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#IDX192"><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#IDX193"><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#IDX194"><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#IDX57"><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#IDX58"><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#IDX153"><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#IDX154"><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#IDX141"><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#IDX142"><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#IDX143"><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#IDX144"><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#IDX139"><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#IDX140"><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#IDX86"><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#IDX87"><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#IDX154"><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#IDX155"><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#IDX126"><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#IDX127"><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>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#IDX141"><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#IDX15">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#IDX168"><CODE>do-uppercase-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#IDX169"><CODE>do-uppercase-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#IDX104"><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#IDX105"><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#IDX190"><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#IDX191"><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#IDX194"><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#IDX195"><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#IDX192"><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#IDX193"><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#IDX93"><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#IDX94"><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#IDX163"><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#IDX164"><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#IDX135"><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#IDX136"><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#IDX149"><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#IDX150"><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#IDX177"><CODE>do-uppercase-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#IDX178"><CODE>do-uppercase-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#IDX113"><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#IDX114"><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#IDX199"><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#IDX200"><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#IDX203"><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#IDX204"><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#IDX201"><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#IDX202"><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#IDX16">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#IDX196"><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#IDX197"><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#IDX17">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#IDX158"><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#IDX159"><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#IDX84"><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#IDX85"><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#IDX62"><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#IDX63"><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#IDX40"><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#IDX41"><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#IDX180"><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#IDX181"><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#IDX18">expand-tilde</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#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#IDX205"><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#IDX206"><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#IDX167"><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#IDX168"><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#IDX91"><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#IDX92"><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#IDX69"><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#IDX70"><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#IDX189"><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#IDX190"><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#IDX90"><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#IDX91"><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#IDX42"><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#IDX43"><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#IDX66"><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#IDX67"><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#IDX46"><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#IDX47"><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#IDX97"><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#IDX98"><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#IDX73"><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#IDX74"><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#IDX19">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#IDX74"><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#IDX75"><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#IDX72"><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#IDX73"><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#IDX20">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#IDX78"><CODE>history-substr-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#IDX79"><CODE>history-substr-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#IDX76"><CODE>history-substr-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#IDX77"><CODE>history-substr-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#IDX21">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></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#IDX81"><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#IDX82"><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#IDX79"><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#IDX80"><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#IDX85"><CODE>history-substr-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-substr-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-substr-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-substr-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#IDX22">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#IDX188"><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#IDX189"><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#IDX148"><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#IDX149"><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#IDX24">isearch-terminators</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#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#IDX197"><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#IDX198"><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#IDX157"><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#IDX158"><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#IDX25">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#IDX110"><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#IDX111"><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-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-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#IDX116"><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#IDX117"><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#IDX118"><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#IDX119"><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#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#IDX119"><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#IDX120"><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#IDX137"><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#IDX138"><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#IDX125"><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#IDX126"><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#IDX127"><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#IDX128"><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#IDX26">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#IDX27">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#IDX28">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#IDX150"><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#IDX151"><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#IDX152"><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#IDX153"><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#IDX29">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#IDX23">meta-flag</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#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#IDX159"><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#IDX160"><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#IDX161"><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#IDX162"><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#IDX58"><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-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>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#IDX71"><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#IDX68"><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#IDX69"><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#IDX65"><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#IDX66"><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#IDX77"><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#IDX78"><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#IDX75"><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#IDX76"><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#IDX30">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#IDX108"><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#IDX109"><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#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#IDX117"><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#IDX118"><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#IDX31">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#IDX146"><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#IDX147"><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#IDX170"><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#IDX171"><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#IDX56"><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-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#IDX162"><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#IDX163"><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#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#IDX155"><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#IDX156"><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#IDX179"><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#IDX180"><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#IDX63"><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#IDX64"><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#IDX171"><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#IDX172"><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#IDX92"><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#IDX93"><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#IDX99"><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#IDX100"><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#IDX164"><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#IDX165"><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#IDX200"><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#IDX52"><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#IDX53"><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>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#IDX65"><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#IDX32">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#IDX174"><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#IDX175"><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#IDX242"><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#IDX275"><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#IDX278"><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#IDX318"><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#IDX213">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#IDX361">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#IDX388">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#IDX372">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#IDX371">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#IDX276"><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#IDX252"><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#IDX254"><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#IDX255"><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#IDX253"><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#IDX260"><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#IDX263"><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#IDX264"><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#IDX261"><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#IDX233">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#IDX334"><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#IDX336"><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#IDX335"><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#IDX337">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#IDX338">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#IDX339">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#IDX364">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#IDX340"><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#IDX333"><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#IDX290"><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#IDX304"><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#IDX349"><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#IDX350"><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#IDX353"><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#IDX352"><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#IDX375">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#IDX373">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#IDX379">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#IDX370">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#IDX351">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#IDX360">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#IDX383">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#IDX391">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#IDX384">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#IDX357"><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#IDX356"><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#IDX378">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#IDX381">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#IDX380">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#IDX382">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#IDX390">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#IDX374">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#IDX244"><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#IDX297"><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#IDX287"><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#IDX296"><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#IDX231">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#IDX307"><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#IDX317"><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#IDX366">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#IDX367">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#IDX246"><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#IDX209">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#IDX319"><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#IDX212">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#IDX280"><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#IDX206">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#IDX343"><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#IDX241">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#IDX204">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#IDX277"><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#IDX210">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#IDX225">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#IDX303"><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#IDX235">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#IDX232">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#IDX236">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#IDX234">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#IDX293"><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#IDX239">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#IDX315"><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#IDX386">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#IDX358"><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#IDX363">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#IDX376">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#IDX387">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#IDX362">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#IDX369">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#IDX368">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#IDX283"><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#IDX313"><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#IDX247"><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#IDX341"><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#IDX279"><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#IDX272"><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#IDX269"><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#IDX274"><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#IDX265"><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#IDX248"><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#IDX250"><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#IDX251"><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#IDX346"><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#IDX332"><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#IDX301"><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#IDX226">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#IDX216">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#IDX385">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#IDX365">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#IDX392">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#IDX316"><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#IDX228">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#IDX355"><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#IDX295"><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#IDX219">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#IDX270"><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#IDX271"><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#IDX237">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#IDX298"><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#IDX222">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#IDX214">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#IDX202">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#IDX273"><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#IDX326"><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#IDX327"><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#IDX243"><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#IDX245"><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#IDX205">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#IDX289"><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#IDX281"><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#IDX268"><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#IDX207">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#IDX240">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#IDX284"><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#IDX285"><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#IDX220">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#IDX266"><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#IDX208">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#IDX203">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#IDX354"><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#IDX224">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#IDX221">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#IDX230">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#IDX306"><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#IDX211">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#IDX299"><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#IDX267"><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#IDX300"><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#IDX218">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#IDX238">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#IDX215">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#IDX282"><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#IDX229">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#IDX314"><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#IDX342"><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#IDX286"><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#IDX347"><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#IDX310"><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#IDX344"><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#IDX292"><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#IDX312"><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#IDX291"><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#IDX311"><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#IDX262"><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#IDX305"><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#IDX249"><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#IDX331"><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#IDX294"><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#IDX345"><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#IDX348"><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#IDX288"><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#IDX227">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#IDX389">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#IDX377">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#IDX223">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#IDX302"><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#IDX217">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#IDX308"><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#IDX309"><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#IDX259"><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#IDX258"><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#IDX256"><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#IDX257"><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#IDX359"><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#IDX328"><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#IDX330"><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#IDX329"><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#IDX173"><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#IDX174"><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#IDX209"><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#IDX59"><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#IDX60"><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#IDX71"><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#IDX72"><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#IDX183"><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#IDX184"><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#IDX251"><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#IDX284"><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#IDX287"><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#IDX329"><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#IDX222">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#IDX375">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#IDX402">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#IDX386">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#IDX385">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#IDX285"><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#IDX261"><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#IDX263"><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#IDX264"><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#IDX262"><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#IDX269"><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#IDX272"><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#IDX273"><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#IDX270"><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#IDX242">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#IDX345"><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#IDX348"><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#IDX346"><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#IDX347"><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#IDX349">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#IDX350">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#IDX352">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#IDX378">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#IDX354"><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#IDX344"><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#IDX300"><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#IDX314"><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#IDX363"><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#IDX295"><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#IDX364"><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#IDX367"><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#IDX366"><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#IDX389">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#IDX387">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#IDX393">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#IDX384">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#IDX365">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#IDX374">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#IDX397">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#IDX405">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#IDX398">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#IDX371"><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#IDX370"><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#IDX392">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#IDX395">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#IDX394">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#IDX396">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#IDX404">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#IDX388">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#IDX253"><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#IDX307"><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#IDX297"><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#IDX306"><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#IDX240">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#IDX317"><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#IDX328"><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#IDX380">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#IDX381">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#IDX255"><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#IDX218">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#IDX330"><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#IDX221">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#IDX289"><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#IDX215">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#IDX357"><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#IDX250">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#IDX213">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#IDX286"><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#IDX219">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#IDX234">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#IDX313"><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#IDX244">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#IDX241">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#IDX245">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#IDX243">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#IDX303"><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#IDX248">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#IDX326"><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#IDX400">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#IDX372"><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#IDX377">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#IDX390">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#IDX401">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#IDX376">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#IDX383">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#IDX382">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#IDX292"><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#IDX324"><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#IDX256"><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#IDX355"><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#IDX288"><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#IDX281"><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#IDX278"><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#IDX283"><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#IDX274"><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#IDX257"><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#IDX259"><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#IDX260"><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#IDX360"><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#IDX343"><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#IDX311"><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#IDX235">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#IDX225">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#IDX399">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#IDX379">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#IDX406">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#IDX327"><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#IDX237">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#IDX369"><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#IDX305"><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#IDX228">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#IDX279"><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#IDX280"><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#IDX246">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#IDX308"><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#IDX231">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#IDX223">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#IDX211">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#IDX282"><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#IDX337"><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#IDX338"><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#IDX252"><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#IDX254"><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#IDX214">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#IDX299"><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#IDX290"><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#IDX277"><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#IDX216">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#IDX249">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#IDX293"><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#IDX294"><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#IDX229">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#IDX275"><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#IDX217">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#IDX353"><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#IDX351">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#IDX212">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#IDX368"><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#IDX233">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#IDX230">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#IDX239">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#IDX316"><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#IDX220">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#IDX309"><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#IDX276"><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#IDX310"><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#IDX227">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#IDX247">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#IDX224">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#IDX291"><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#IDX238">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#IDX325"><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#IDX356"><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#IDX296"><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#IDX361"><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#IDX321"><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#IDX358"><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#IDX302"><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#IDX323"><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#IDX301"><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#IDX322"><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#IDX271"><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#IDX315"><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#IDX258"><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#IDX342"><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#IDX304"><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#IDX359"><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#IDX362"><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#IDX298"><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#IDX236">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#IDX403">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#IDX391">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#IDX232">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#IDX312"><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#IDX226">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#IDX318"><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#IDX320"><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#IDX319"><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#IDX268"><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#IDX267"><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#IDX265"><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#IDX266"><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#IDX373"><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#IDX339"><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#IDX341"><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#IDX340"><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#IDX96"><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#IDX97"><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#IDX178"><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#IDX179"><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#IDX33">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#IDX34">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#IDX35">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#IDX36">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#IDX186"><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#IDX187"><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#IDX156"><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#IDX157"><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#IDX103"><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#IDX104"><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#IDX187"><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#IDX188"><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#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#IDX195"><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#IDX196"><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#IDX165"><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#IDX166"><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#IDX94"><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#IDX95"><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#IDX176"><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#IDX177"><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#IDX98"><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#IDX99"><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#IDX100"><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#IDX101"><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#IDX101"><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#IDX102"><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#IDX185"><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#IDX186"><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#IDX107"><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#IDX108"><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#IDX109"><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#IDX110"><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#IDX172"><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#IDX173"><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#IDX142"><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>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#IDX124"><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#IDX125"><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#IDX114"><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#IDX115"><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#IDX122"><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#IDX123"><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#IDX102"><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#IDX103"><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#IDX181"><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#IDX182"><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#IDX151"><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#IDX152"><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#IDX133"><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#IDX134"><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#IDX123"><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#IDX124"><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#IDX131"><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#IDX132"><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#IDX111"><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#IDX112"><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#IDX198"><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#IDX199"><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#IDX37">visible-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#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#IDX207"><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#IDX208"><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#IDX136"><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#IDX137"><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#IDX82"><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#IDX83"><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#IDX80"><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#IDX81"><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#IDX138"><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#IDX139"><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#IDX145"><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#IDX146"><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#IDX89"><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#IDX90"><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#IDX87"><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#IDX88"><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#IDX147"><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#IDX148"><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;
@@ -7165,7 +7369,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>February, 11 2014</I>
+This document was generated by <I>chet</I> on <I>September, 7 2016</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -7327,7 +7531,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>February, 11 2014</I>
+by <I>chet</I> on <I>September, 7 2016</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 344e1dd..6eb3efa 100644
--- a/doc/readline.info
+++ b/doc/readline.info
@@ -1,11 +1,10 @@
-This is readline.info, produced by makeinfo version 4.13 from
-/usr/homes/chet/src/bash/readline-src/doc/rlman.texi.
+This is readline.info, produced by makeinfo version 6.1 from rlman.texi.
-This manual describes the GNU Readline Library (version 6.3, 6 January
-2014), a library which aids in the consistency of user interface across
+This manual describes the GNU Readline Library (version 7.0, 16 July
+2016), a library which aids in the consistency of user interface across
discrete programs which provide a command line interface.
- Copyright (C) 1988-2014 Free Software Foundation, Inc.
+ Copyright (C) 1988-2016 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -14,7 +13,6 @@ discrete programs which provide a command line interface.
no Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License".
-
INFO-DIR-SECTION Libraries
START-INFO-DIR-ENTRY
* Readline: (readline). The GNU readline library API.
@@ -29,7 +27,7 @@ GNU Readline Library
This document describes the GNU Readline Library, a utility which aids
in the consistency of user interface across discrete programs which
provide a command line interface. The Readline home page is
-`http://www.gnu.org/software/readline/'.
+<http://www.gnu.org/software/readline/>.
* Menu:
@@ -68,10 +66,10 @@ File: readline.info, Node: Introduction and Notation, Next: Readline Interacti
The following paragraphs describe the notation used to represent
keystrokes.
- The text `C-k' is read as `Control-K' and describes the character
+ The text 'C-k' is read as 'Control-K' and describes the character
produced when the <k> key is pressed while the Control key is depressed.
- The text `M-k' is read as `Meta-K' and describes the character
+ The text 'M-k' is read as 'Meta-K' and describes the character
produced when the Meta key (if you have one) is depressed, and the <k>
key is pressed. The Meta key is labeled <ALT> on many keyboards. On
keyboards with two keys labeled <ALT> (usually to either side of the
@@ -85,15 +83,15 @@ Meta key, the identical keystroke can be generated by typing <ESC>
_first_, and then typing <k>. Either process is known as "metafying"
the <k> key.
- The text `M-C-k' is read as `Meta-Control-k' and describes the
-character produced by "metafying" `C-k'.
+ The text 'M-C-k' is read as 'Meta-Control-k' and describes the
+character produced by "metafying" 'C-k'.
- In addition, several keys have their own names. Specifically,
-<DEL>, <ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves
-when seen in this text, or in an init file (*note Readline Init File::).
-If your keyboard lacks a <LFD> key, typing <C-j> will produce the
-desired character. The <RET> key may be labeled <Return> or <Enter> on
-some keyboards.
+ In addition, several keys have their own names. Specifically, <DEL>,
+<ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves when seen
+in this text, or in an init file (*note Readline Init File::). If your
+keyboard lacks a <LFD> key, typing <C-j> will produce the desired
+character. The <RET> key may be labeled <Return> or <Enter> on some
+keyboards.

File: readline.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing
@@ -131,41 +129,35 @@ character appears where the cursor was, and then the cursor moves one
space to the right. If you mistype a character, you can use your erase
character to back up and delete the mistyped character.
- Sometimes you may mistype a character, and not notice the error
-until you have typed several other characters. In that case, you can
-type `C-b' to move the cursor to the left, and then correct your
-mistake. Afterwards, you can move the cursor to the right with `C-f'.
+ Sometimes you may mistype a character, and not notice the error until
+you have typed several other characters. In that case, you can type
+'C-b' to move the cursor to the left, and then correct your mistake.
+Afterwards, you can move the cursor to the right with 'C-f'.
When you add text in the middle of a line, you will notice that
-characters to the right of the cursor are `pushed over' to make room
-for the text that you have inserted. Likewise, when you delete text
-behind the cursor, characters to the right of the cursor are `pulled
-back' to fill in the blank space created by the removal of the text. A
-list of the bare essentials for editing the text of an input line
-follows.
-
-`C-b'
- Move back one character.
+characters to the right of the cursor are 'pushed over' to make room for
+the text that you have inserted. Likewise, when you delete text behind
+the cursor, characters to the right of the cursor are 'pulled back' to
+fill in the blank space created by the removal of the text. A list of
+the bare essentials for editing the text of an input line follows.
-`C-f'
+'C-b'
+ Move back one character.
+'C-f'
Move forward one character.
-
<DEL> or <Backspace>
Delete the character to the left of the cursor.
-
-`C-d'
+'C-d'
Delete the character underneath the cursor.
-
Printing characters
Insert the character into the line at the cursor.
-
-`C-_' or `C-x C-u'
+'C-_' or 'C-x C-u'
Undo the last editing command. You can undo all the way back to an
empty line.
(Depending on your configuration, the <Backspace> key be set to delete
the character to the left of the cursor and the <DEL> key set to delete
-the character underneath the cursor, like `C-d', rather than the
+the character underneath the cursor, like 'C-d', rather than the
character to the left of the cursor.)

@@ -175,29 +167,25 @@ File: readline.info, Node: Readline Movement Commands, Next: Readline Killing
--------------------------------
The above table describes the most basic keystrokes that you need in
-order to do editing of the input line. For your convenience, many
-other commands have been added in addition to `C-b', `C-f', `C-d', and
-<DEL>. Here are some commands for moving more rapidly about the line.
+order to do editing of the input line. For your convenience, many other
+commands have been added in addition to 'C-b', 'C-f', 'C-d', and <DEL>.
+Here are some commands for moving more rapidly about the line.
-`C-a'
+'C-a'
Move to the start of the line.
-
-`C-e'
+'C-e'
Move to the end of the line.
-
-`M-f'
+'M-f'
Move forward a word, where a word is composed of letters and
digits.
-
-`M-b'
+'M-b'
Move backward a word.
-
-`C-l'
+'C-l'
Clear the screen, reprinting the current line at the top.
- Notice how `C-f' moves forward a character, while `M-f' moves
-forward a word. It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
+ Notice how 'C-f' moves forward a character, while 'M-f' moves forward
+a word. It is a loose convention that control keystrokes operate on
+characters while meta keystrokes operate on words.

File: readline.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction
@@ -206,51 +194,49 @@ File: readline.info, Node: Readline Killing Commands, Next: Readline Arguments
-------------------------------
"Killing" text means to delete the text from the line, but to save it
-away for later use, usually by "yanking" (re-inserting) it back into
-the line. (`Cut' and `paste' are more recent jargon for `kill' and
-`yank'.)
+away for later use, usually by "yanking" (re-inserting) it back into the
+line. ('Cut' and 'paste' are more recent jargon for 'kill' and 'yank'.)
- If the description for a command says that it `kills' text, then you
+ If the description for a command says that it 'kills' text, then you
can be sure that you can get the text back in a different (or the same)
place later.
- When you use a kill command, the text is saved in a "kill-ring".
-Any number of consecutive kills save all of the killed text together, so
+ When you use a kill command, the text is saved in a "kill-ring". Any
+number of consecutive kills save all of the killed text together, so
that when you yank it back, you get it all. The kill ring is not line
specific; the text that you killed on a previously typed line is
-available to be yanked back later, when you are typing another line.
+available to be yanked back later, when you are typing another line.
Here is the list of commands for killing text.
-`C-k'
+'C-k'
Kill the text from the current cursor position to the end of the
line.
-`M-d'
+'M-d'
Kill from the cursor to 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 `M-f'.
+ as those used by 'M-f'.
-`M-<DEL>'
+'M-<DEL>'
Kill from the cursor the start of the current word, or, if between
words, to the start of the previous word. Word boundaries are the
- same as those used by `M-b'.
-
-`C-w'
- Kill from the cursor to the previous whitespace. This is
- different than `M-<DEL>' because the word boundaries differ.
+ same as those used by 'M-b'.
+'C-w'
+ Kill from the cursor to the previous whitespace. This is different
+ than 'M-<DEL>' because the word boundaries differ.
Here is how to "yank" the text back into the line. Yanking means to
copy the most-recently-killed text from the kill buffer.
-`C-y'
+'C-y'
Yank the most recently killed text back into the buffer at the
cursor.
-`M-y'
+'M-y'
Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is `C-y' or `M-y'.
+ if the prior command is 'C-y' or 'M-y'.

File: readline.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction
@@ -263,15 +249,15 @@ argument acts as a repeat count, other times it is the sign of the
argument that is significant. If you pass a negative argument to a
command which normally acts in a forward direction, that command will
act in a backward direction. For example, to kill text back to the
-start of the line, you might type `M-- C-k'.
+start of the line, you might type 'M-- C-k'.
The general way to pass numeric arguments to a command is to type
-meta digits before the command. If the first `digit' typed is a minus
-sign (`-'), then the sign of the argument will be negative. Once you
+meta digits before the command. If the first 'digit' typed is a minus
+sign ('-'), then the sign of the argument will be negative. Once you
have typed one meta digit to get the argument started, you can type the
-remainder of the digits, and then the command. For example, to give
-the `C-d' command an argument of 10, you could type `M-1 0 C-d', which
-will delete the next ten characters on the input line.
+remainder of the digits, and then the command. For example, to give the
+'C-d' command an argument of 10, you could type 'M-1 0 C-d', which will
+delete the next ten characters on the input line.

File: readline.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction
@@ -279,36 +265,36 @@ File: readline.info, Node: Searching, Prev: Readline Arguments, Up: Readline
1.2.5 Searching for Commands in the History
-------------------------------------------
-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,
Readline 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
-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
+typed 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 <ESC> 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 current line.
-
- To find other matching entries in the history list, type `C-r' or
-`C-s' as appropriate. This will search backward or forward in the
-history for the next entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate the
-search and execute that command. For instance, a <RET> will terminate
-the search and accept the line, thereby executing the command from the
+'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
+current line.
+
+ To find other matching entries in the history list, type 'C-r' or
+'C-s' as appropriate. This will search backward or forward in the
+history for the next entry matching the search string typed so far. Any
+other key sequence bound to a Readline command will terminate the search
+and execute that command. For instance, a <RET> 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.
- Readline remembers the last incremental search string. If two
-`C-r's are typed without any intervening characters defining a new
-search string, any remembered search string is used.
+ Readline remembers the last incremental search string. If two 'C-r's
+are typed without any intervening characters defining a new search
+string, any remembered search string is used.
Non-incremental searches read the entire search string before
starting to search for matching history lines. The search string may be
@@ -320,19 +306,19 @@ File: readline.info, Node: Readline Init File, Next: Bindable Readline Command
1.3 Readline Init File
======================
-Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings. Any user can customize programs that use Readline by
+Although the Readline library comes with a set of Emacs-like keybindings
+installed by default, it is possible to use a different set of
+keybindings. Any user can customize programs that use Readline by
putting commands in an "inputrc" file, conventionally in his home
directory. The name of this file is taken from the value of the
-environment variable `INPUTRC'. If that variable is unset, the default
-is `~/.inputrc'. If that file does not exist or cannot be read, the
-ultimate default is `/etc/inputrc'.
+environment variable 'INPUTRC'. If that variable is unset, the default
+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 are set.
- In addition, the `C-x C-r' command re-reads this init file, thus
+ In addition, the 'C-x C-r' command re-reads this init file, thus
incorporating any changes that you might have made to it.
* Menu:
@@ -349,21 +335,21 @@ File: readline.info, Node: Readline Init File Syntax, Next: Conditional Init C
1.3.1 Readline Init File Syntax
-------------------------------
-There are only a few basic constructs allowed in the Readline init
-file. Blank lines are ignored. Lines beginning with a `#' are
-comments. Lines beginning with a `$' indicate conditional constructs
-(*note Conditional Init Constructs::). Other lines denote variable
-settings and key bindings.
+There are only a few basic constructs allowed in the Readline init file.
+Blank lines are ignored. Lines beginning with a '#' are comments.
+Lines beginning with a '$' indicate conditional constructs (*note
+Conditional Init Constructs::). Other lines denote variable settings
+and key bindings.
Variable Settings
You can modify the run-time behavior of Readline by altering the
- values of variables in Readline using the `set' command within the
+ values of variables in Readline using the 'set' command within the
init file. The syntax is simple:
set VARIABLE VALUE
- Here, for example, is how to change from the default Emacs-like
- key binding to use `vi' line editing commands:
+ Here, for example, is how to change from the default Emacs-like key
+ binding to use 'vi' line editing commands:
set editing-mode vi
@@ -371,258 +357,315 @@ Variable Settings
without regard to case. Unrecognized variable names are ignored.
Boolean variables (those that can be set to on or off) are set to
- on if the value is null or empty, ON (case-insensitive), or 1.
- Any other value results in the variable being set to off.
+ on if the value is null or empty, ON (case-insensitive), or 1. Any
+ other value results in the variable being set to off.
A great deal of run-time behavior is changeable with the following
variables.
- `bell-style'
- Controls what happens when Readline wants to ring the
- terminal bell. If set to `none', Readline never rings the
- bell. If set to `visible', Readline uses a visible bell if
- one is available. If set to `audible' (the default),
- Readline attempts to ring the terminal's bell.
-
- `bind-tty-special-chars'
- If set to `on', Readline attempts to bind the control
- characters treated specially by the kernel's terminal driver
- to their Readline equivalents.
-
- `colored-stats'
- If set to `on', Readline displays possible completions using
+ 'bell-style'
+ Controls what happens when Readline wants to ring the terminal
+ bell. If set to 'none', Readline never rings the bell. If
+ set to 'visible', Readline uses a visible bell if one is
+ available. If set to 'audible' (the default), Readline
+ attempts to ring the terminal's bell.
+
+ 'bind-tty-special-chars'
+ If set to 'on' (the default), Readline attempts to bind the
+ control characters treated specially by the kernel's terminal
+ driver to their Readline equivalents.
+
+ 'blink-matching-paren'
+ If set to 'on', Readline attempts to briefly move the cursor
+ to an opening parenthesis when a closing parenthesis is
+ inserted. The default is 'off'.
+
+ 'colored-completion-prefix'
+ If set to 'on', when listing completions, Readline displays
+ the common prefix of the set of possible completions using a
+ different color. The color definitions are taken from the
+ value of the 'LS_COLORS' environment variable. The default is
+ 'off'.
+
+ 'colored-stats'
+ If set to 'on', Readline displays possible completions using
different colors to indicate their file type. The color
- definitions are taken from the value of the `LS_COLORS'
- environment variable. The default is `off'.
+ definitions are taken from the value of the 'LS_COLORS'
+ environment variable. The default is 'off'.
- `comment-begin'
+ 'comment-begin'
The string to insert at the beginning of the line when the
- `insert-comment' command is executed. The default value is
- `"#"'.
+ 'insert-comment' command is executed. The default value is
+ '"#"'.
- `completion-display-width'
+ 'completion-display-width'
The number of screen columns used to display possible matches
when performing completion. The value is ignored if it is
less than 0 or greater than the terminal screen width. A
value of 0 will cause matches to be displayed one per line.
The default value is -1.
- `completion-ignore-case'
- If set to `on', Readline performs filename matching and
+ 'completion-ignore-case'
+ If set to 'on', Readline performs filename matching and
completion in a case-insensitive fashion. The default value
- is `off'.
+ is 'off'.
- `completion-map-case'
- If set to `on', and COMPLETION-IGNORE-CASE is enabled,
- Readline treats hyphens (`-') and underscores (`_') as
+ 'completion-map-case'
+ If set to 'on', and COMPLETION-IGNORE-CASE is enabled,
+ Readline treats hyphens ('-') and underscores ('_') as
equivalent when performing case-insensitive filename matching
and completion.
- `completion-prefix-display-length'
+ 'completion-prefix-display-length'
The length in characters of the common prefix of a list of
possible completions that is displayed without modification.
When set to a value greater than zero, common prefixes longer
than this value are replaced with an ellipsis when displaying
possible completions.
- `completion-query-items'
+ '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. 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'.
+ 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
+ 'convert-meta'
+ If set to 'on', Readline will convert characters with the
eighth bit set to an ASCII key sequence by stripping the
eighth bit and prefixing an <ESC> character, converting them
- to a meta-prefixed key sequence. The default value is `on'.
-
- `disable-completion'
- If set to `On', Readline will inhibit word completion.
- Completion characters will be inserted into the line as if
- they had been mapped to `self-insert'. The default is `off'.
+ to a meta-prefixed key sequence. The default value is 'on',
+ but will be set to 'off' if the locale is one that contains
+ eight-bit characters.
- `editing-mode'
- The `editing-mode' variable controls which default set of key
- bindings is used. By default, Readline starts up in Emacs
- editing mode, where the keystrokes are most similar to Emacs.
- This variable can be set to either `emacs' or `vi'.
+ 'disable-completion'
+ If set to 'On', Readline will inhibit word completion.
+ Completion characters will be inserted into the line as if
+ they had been mapped to 'self-insert'. The default is 'off'.
- `echo-control-characters'
- When set to `on', on operating systems that indicate they
+ 'echo-control-characters'
+ When set to 'on', on operating systems that indicate they
support it, readline echoes a character corresponding to a
- signal generated from the keyboard. The default is `on'.
+ signal generated from the keyboard. The default is 'on'.
- `enable-keypad'
- When set to `on', Readline will try to enable the application
+ 'editing-mode'
+ The 'editing-mode' variable controls which default set of key
+ bindings is used. By default, Readline starts up in Emacs
+ editing mode, where the keystrokes are most similar to Emacs.
+ This variable can be set to either 'emacs' or 'vi'.
+
+ 'emacs-mode-string'
+ This string is displayed immediately before the last line of
+ the primary prompt when emacs editing mode is active. 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 control sequence into the mode string. The
+ default is '@'.
+
+ 'enable-bracketed-paste'
+ 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 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'.
+
+ 'enable-keypad'
+ When set to 'on', Readline will try to enable the application
keypad when it is called. Some systems need this to enable
- the arrow keys. The default is `off'.
+ the arrow keys. The default is 'off'.
- `enable-meta-key'
- 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. The default is `on'.
+ 'enable-meta-key'
+ 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. The default is 'on'.
- `expand-tilde'
- If set to `on', tilde expansion is performed when Readline
- attempts word completion. The default is `off'.
+ 'expand-tilde'
+ If set to 'on', tilde expansion is performed when Readline
+ attempts word completion. The default is 'off'.
- `history-preserve-point'
- If set to `on', the history code attempts to place the point
+ 'history-preserve-point'
+ If set to 'on', the history code attempts to place the point
(the current cursor position) at the same location on each
- history line retrieved with `previous-history' or
- `next-history'. The default is `off'.
-
- `history-size'
- Set the maximum number of history entries saved in the
- history list. If set to zero, any existing history entries
- are deleted and no new entries are saved. If set to a value
- less than zero, the number of history entries is not limited.
- By default, the number of history entries is not limited.
-
- `horizontal-scroll-mode'
- This variable can be set to either `on' or `off'. Setting it
- to `on' means that the text of the lines being edited will
+ history line retrieved with 'previous-history' or
+ 'next-history'. The default is 'off'.
+
+ 'history-size'
+ Set the maximum number of history entries saved in the history
+ list. If set to zero, any existing history entries are
+ deleted and no new entries are saved. If set to a value less
+ than zero, the number of history entries is not limited. By
+ default, the number of history entries is not limited. If an
+ attempt is made to set HISTORY-SIZE to a non-numeric value,
+ the maximum number of history entries will be set to 500.
+
+ 'horizontal-scroll-mode'
+ This variable can be set to either 'on' or 'off'. Setting it
+ 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. By default, this variable is set to 'off'.
- `input-meta'
- If set to `on', Readline will enable eight-bit input (it will
+ 'input-meta'
+ If set to 'on', Readline will enable eight-bit input (it will
not clear the eighth bit in the characters it reads),
regardless of what the terminal claims it can support. The
- default value is `off'. The name `meta-flag' is a synonym
- for this variable.
+ default value is 'off', but Readline will set it to 'on' if
+ the locale contains eight-bit characters. The name
+ 'meta-flag' is a synonym for this variable.
- `isearch-terminators'
+ 'isearch-terminators'
The string of characters that should terminate an incremental
search without subsequently executing the character as a
command (*note Searching::). If this variable has not been
- given a value, the characters <ESC> and `C-J' will terminate
+ given a value, the characters <ESC> and 'C-J' will terminate
an incremental search.
- `keymap'
+ 'keymap'
Sets Readline's idea of the current keymap for key binding
- commands. Acceptable `keymap' names are `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 the `editing-mode'
- variable also affects the default keymap.
-
- `keyseq-timeout'
- 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. Readline uses this
- value to determine whether or not input is available on the
- current input source (`rl_instream' by default). The value
- is specified in milliseconds, so a value of 1000 means that
+ commands. Acceptable 'keymap' names are 'emacs',
+ 'emacs-standard', 'emacs-meta', 'emacs-ctlx', 'vi', 'vi-move',
+ 'vi-command', and 'vi-insert'. 'vi' is equivalent to
+ 'vi-command' ('vi-move' is also a synonym); 'emacs' is
+ equivalent to 'emacs-standard'. The default value is 'emacs'.
+ The value of the 'editing-mode' variable also affects the
+ default keymap.
+
+ 'keyseq-timeout'
+ 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. Readline uses this value
+ to determine whether or not input is available on the current
+ input source ('rl_instream' by default). 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. The
- default value is `500'.
+ pressed to decide which key sequence to complete. The default
+ value is '500'.
- `mark-directories'
- If set to `on', completed directory names have a slash
- appended. The default is `on'.
+ 'mark-directories'
+ If set to 'on', completed directory names have a slash
+ appended. The default is 'on'.
- `mark-modified-lines'
- This variable, when set to `on', causes Readline to display an
- asterisk (`*') at the start of history lines which have been
- modified. This variable is `off' by default.
+ 'mark-modified-lines'
+ This variable, when set to 'on', causes Readline to display an
+ asterisk ('*') at the start of history lines which have been
+ modified. This variable is 'off' by default.
- `mark-symlinked-directories'
- If set to `on', completed names which are symbolic links to
+ 'mark-symlinked-directories'
+ If set to 'on', completed names which are symbolic links to
directories have a slash appended (subject to the value of
- `mark-directories'). The default is `off'.
+ 'mark-directories'). The default is 'off'.
- `match-hidden-files'
- 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. This variable is `on' by default.
+ 'match-hidden-files'
+ 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. This variable is 'on' by default.
- `menu-complete-display-prefix'
- If set to `on', menu completion displays the common prefix of
+ 'menu-complete-display-prefix'
+ 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. The default is `off'.
+ cycling through the list. The default is 'off'.
- `output-meta'
- If set to `on', Readline will display characters with the
+ 'output-meta'
+ 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'.
+ sequence. The default is 'off', but Readline will set it to
+ 'on' if the locale contains eight-bit characters.
- `page-completions'
- If set to `on', Readline uses an internal `more'-like pager
- to display a screenful of possible completions at a time.
- This variable is `on' by default.
+ 'page-completions'
+ If set to 'on', Readline uses an internal 'more'-like pager to
+ display a screenful of possible completions at a time. This
+ variable is 'on' by default.
- `print-completions-horizontally'
- If set to `on', Readline will display completions with matches
+ 'print-completions-horizontally'
+ If set to 'on', Readline will display completions with matches
sorted horizontally in alphabetical order, rather than down
- the screen. The default is `off'.
+ the screen. The default is 'off'.
- `revert-all-at-newline'
- If set to `on', Readline will undo all changes to history
- lines before returning when `accept-line' is executed. By
+ 'revert-all-at-newline'
+ If set to 'on', Readline will undo all changes to history
+ lines before returning when 'accept-line' is executed. By
default, history lines may be modified and retain individual
- undo lists across calls to `readline'. The default is `off'.
+ undo lists across calls to 'readline'. The default is 'off'.
- `show-all-if-ambiguous'
+ 'show-all-if-ambiguous'
This alters the default behavior of the completion functions.
- If set to `on', words which have more than one possible
+ If set to 'on', words which have more than one possible
completion cause the matches to be listed immediately instead
- of ringing the bell. The default value is `off'.
+ of ringing the bell. The default value is 'off'.
- `show-all-if-unmodified'
+ 'show-all-if-unmodified'
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
+ 'on', words which have more than one possible completion
without any possible partial completion (the possible
completions don't share a common prefix) cause the matches to
be listed immediately instead of ringing the bell. The
- default value is `off'.
-
- `show-mode-in-prompt'
- If set to `on', add a character to the beginning of the prompt
- indicating the editing mode: emacs (`@'), vi command (`:'),
- or vi insertion (`+'). The default value is `off'.
-
- `skip-completed-text'
- 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. For instance, if this is enabled,
- attempting completion when the cursor is after the `e' in
- `Makefile' will result in `Makefile' rather than
- `Makefilefile', assuming there is a single possible
- completion. The default value is `off'.
-
- `visible-stats'
- If set to `on', a character denoting a file's type is
- appended to the filename when listing possible completions.
- The default is `off'.
-
+ default value is 'off'.
+
+ 'show-mode-in-prompt'
+ If set to 'on', add a character to the beginning of the prompt
+ indicating the editing mode: emacs, vi command, or vi
+ insertion. The mode strings are user-settable. The default
+ value is 'off'.
+
+ 'skip-completed-text'
+ 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. For instance, if this is enabled, attempting
+ completion when the cursor is after the 'e' in 'Makefile' will
+ result in 'Makefile' rather than 'Makefilefile', assuming
+ there is a single possible completion. The default value is
+ 'off'.
+
+ 'vi-cmd-mode-string'
+ 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 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 control sequence into the mode
+ string. The default is '(cmd)'.
+
+ 'vi-ins-mode-string'
+ 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 control sequence into the mode
+ string. The default is '(ins)'.
+
+ 'visible-stats'
+ If set to 'on', a character denoting a file's type is appended
+ to the filename when listing possible completions. The
+ default is 'off'.
Key Bindings
- The syntax for controlling key bindings in the init file is
- simple. First you need to find the name of the command that you
- want to change. The following sections contain tables of the
- command name, the default keybinding, if any, and a short
- description of what the command does.
+ The syntax for controlling key bindings in the init file is simple.
+ First you need to find the name of the command that you want to
+ change. The following sections contain tables of the command name,
+ the default keybinding, if any, and a short description of what the
+ command does.
Once you know the name of the command, simply place on a line in
the init file the name of the key you wish to bind the command to,
@@ -631,27 +674,27 @@ Key Bindings
part of the key name. The name of the key can be expressed in
different ways, depending on what you find most comfortable.
- In addition to command names, readline allows keys to be bound to
- a string that is inserted when the key is pressed (a MACRO).
+ In addition to command names, readline allows keys to be bound to a
+ string that is inserted when the key is pressed (a MACRO).
- KEYNAME: FUNCTION-NAME or MACRO
+ KEYNAME: FUNCTION-NAME or MACRO
KEYNAME is the name of a key spelled out in English. For
example:
Control-u: universal-argument
Meta-Rubout: backward-kill-word
Control-o: "> output"
- In the above example, `C-u' is bound to the function
- `universal-argument', `M-DEL' is bound to the function
- `backward-kill-word', and `C-o' is bound to run the macro
+ In the above example, 'C-u' is bound to the function
+ 'universal-argument', 'M-DEL' is bound to the function
+ 'backward-kill-word', and 'C-o' is bound to run the macro
expressed on the right hand side (that is, to insert the text
- `> output' into the line).
+ '> output' into the line).
A number of symbolic character names are recognized while
processing this key binding syntax: DEL, ESC, ESCAPE, LFD,
NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB.
- "KEYSEQ": FUNCTION-NAME or MACRO
+ "KEYSEQ": FUNCTION-NAME or MACRO
KEYSEQ differs from KEYNAME above in that strings denoting an
entire key sequence can be specified, by placing the key
sequence in double quotes. Some GNU Emacs style key escapes
@@ -662,66 +705,51 @@ Key Bindings
"\C-x\C-r": re-read-init-file
"\e[11~": "Function Key 1"
- In the above example, `C-u' is again bound to the function
- `universal-argument' (just as it was in the first example),
- `C-x C-r' is bound to the function `re-read-init-file', and
- `<ESC> <[> <1> <1> <~>' is bound to insert the text `Function
- Key 1'.
-
+ In the above example, 'C-u' is again bound to the function
+ 'universal-argument' (just as it was in the first example),
+ ''C-x' 'C-r'' is bound to the function 're-read-init-file',
+ and '<ESC> <[> <1> <1> <~>' is bound to insert the text
+ 'Function Key 1'.
The following GNU Emacs style escape sequences are available when
specifying key sequences:
- `\C-'
+ '\C-'
control prefix
-
- `\M-'
+ '\M-'
meta prefix
-
- `\e'
+ '\e'
an escape character
-
- `\\'
+ '\\'
backslash
-
- `\"'
+ '\"'
<">, a double quotation mark
-
- `\''
+ '\''
<'>, a single quote or apostrophe
In addition to the GNU Emacs style escape sequences, a second set
of backslash escapes is available:
- `\a'
+ '\a'
alert (bell)
-
- `\b'
+ '\b'
backspace
-
- `\d'
+ '\d'
delete
-
- `\f'
+ '\f'
form feed
-
- `\n'
+ '\n'
newline
-
- `\r'
+ '\r'
carriage return
-
- `\t'
+ '\t'
horizontal tab
-
- `\v'
+ '\v'
vertical tab
-
- `\NNN'
+ '\NNN'
the eight-bit character whose value is the octal value NNN
(one to three digits)
-
- `\xHH'
+ '\xHH'
the eight-bit character whose value is the hexadecimal value
HH (one or two hex digits)
@@ -729,12 +757,11 @@ Key Bindings
used to indicate a macro definition. Unquoted text is assumed to
be a function name. In the macro body, the backslash escapes
described above are expanded. Backslash will quote any other
- character in the macro text, including `"' and `''. For example,
- the following binding will make `C-x \' insert a single `\' into
+ character in the macro text, including '"' and '''. For example,
+ the following binding will make ''C-x' \' insert a single '\' into
the line:
"\C-x\\": "\\"
-

File: readline.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File
@@ -742,33 +769,32 @@ File: readline.info, Node: Conditional Init Constructs, Next: Sample Init File
---------------------------------
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
- editing mode, the terminal being used, or the application using
- Readline. The text of the test extends to the end of the line; no
- characters 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.
-
- `term'
- The `term=' form may be used to include terminal-specific key
+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 editing
+ mode, the terminal being used, or the application using Readline.
+ The text of the test extends to the end of the line; no characters
+ 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.
+
+ '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 both 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.
+ '=' is tested against both 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.
- `application'
+ 'application'
The APPLICATION construct is used to include
application-specific settings. Each program using the
Readline library sets the APPLICATION NAME, and you can test
@@ -781,18 +807,18 @@ are four parser directives used.
"\C-xq": "\eb\"\ef\""
$endif
-`$endif'
- This command, as seen in the previous example, terminates an `$if'
+'$endif'
+ This command, as seen in the previous example, terminates an '$if'
command.
-`$else'
- Commands in this branch of the `$if' directive are executed if the
+'$else'
+ Commands in this branch of the '$if' directive are executed if the
test fails.
-`$include'
+'$include'
This directive takes a single filename as an argument and reads
commands and bindings from that file. For example, the following
- directive reads from `/etc/inputrc':
+ directive reads from '/etc/inputrc':
$include /etc/inputrc

@@ -804,7 +830,6 @@ File: readline.info, Node: Sample Init File, Prev: Conditional Init Constructs
Here is an example of an INPUTRC file. This illustrates key binding,
variable assignment, and conditional syntax.
-
# This file controls the behaviour of line input editing for
# programs that use the GNU Readline library. Existing
# programs include FTP, Bash, and GDB.
@@ -922,14 +947,14 @@ File: readline.info, Node: Bindable Readline Commands, Next: Readline vi Mode,
* Keyboard Macros:: Saving and re-executing typed characters
* Miscellaneous Commands:: Other miscellaneous commands.
- This section describes Readline commands that may be bound to key
+This section describes Readline commands that may be bound to key
sequences. Command names without an accompanying key sequence are
unbound by default.
In the following descriptions, "point" refers to the current cursor
-position, and "mark" refers to a cursor position saved by the
-`set-mark' command. The text between the point and mark is referred to
-as the "region".
+position, and "mark" refers to a cursor position saved by the 'set-mark'
+command. The text between the point and mark is referred to as the
+"region".

File: readline.info, Node: Commands For Moving, Next: Commands For History, Up: Bindable Readline Commands
@@ -937,125 +962,123 @@ File: readline.info, Node: Commands For Moving, Next: Commands For History, U
1.4.1 Commands For Moving
-------------------------
-`beginning-of-line (C-a)'
+'beginning-of-line (C-a)'
Move to the start of the current line.
-`end-of-line (C-e)'
+'end-of-line (C-e)'
Move to the end of the line.
-`forward-char (C-f)'
+'forward-char (C-f)'
Move forward a character.
-`backward-char (C-b)'
+'backward-char (C-b)'
Move back a character.
-`forward-word (M-f)'
+'forward-word (M-f)'
Move forward to the end of the next word. Words are composed of
letters and digits.
-`backward-word (M-b)'
+'backward-word (M-b)'
Move back to the start of the current or previous word. Words are
composed of letters and digits.
-`clear-screen (C-l)'
+'clear-screen (C-l)'
Clear the screen and redraw the current line, leaving the current
line at the top of the screen.
-`redraw-current-line ()'
+'redraw-current-line ()'
Refresh the current line. By default, this is unbound.
-

File: readline.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands
1.4.2 Commands For Manipulating The History
-------------------------------------------
-`accept-line (Newline or Return)'
+'accept-line (Newline or 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 this line is a modified history line,
- the history line is restored to its original state.
+ with 'add_history()'. If this line is a modified history line, the
+ history line is restored to its original state.
-`previous-history (C-p)'
- Move `back' through the history list, fetching the previous
+'previous-history (C-p)'
+ Move 'back' through the history list, fetching the previous
command.
-`next-history (C-n)'
- Move `forward' through the history list, fetching the next command.
+'next-history (C-n)'
+ Move 'forward' through the history list, fetching the next command.
-`beginning-of-history (M-<)'
+'beginning-of-history (M-<)'
Move to the first line in the history.
-`end-of-history (M->)'
+'end-of-history (M->)'
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'
+'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.
-`forward-search-history (C-s)'
- Search forward starting at the current line and moving `down'
- through the 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.
-`non-incremental-reverse-search-history (M-p)'
- 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.
+'non-incremental-reverse-search-history (M-p)'
+ 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.
-`non-incremental-forward-search-history (M-n)'
- Search forward starting at the current line and moving `down'
- through the the history as necessary using a non-incremental search
- for a string supplied by the user.
+'non-incremental-forward-search-history (M-n)'
+ 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.
-`history-search-forward ()'
+'history-search-forward ()'
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. By default, this command is unbound.
-`history-search-backward ()'
+'history-search-backward ()'
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. This is a
non-incremental search. By default, this command is unbound.
-`history-substr-search-forward ()'
+'history-substr-search-forward ()'
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. By default, this command is unbound.
-`history-substr-search-backward ()'
+'history-substr-search-backward ()'
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. This is a
non-incremental search. By default, this command is unbound.
-`yank-nth-arg (M-C-y)'
+'yank-nth-arg (M-C-y)'
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 `!N'
+ argument N is computed, the argument is extracted as if the '!N'
history expansion had been specified.
-`yank-last-arg (M-. or M-_)'
+'yank-last-arg (M-. or M-_)'
Insert 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 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 (back or
- forward). The history expansion facilities are used to extract
- the last argument, as if the `!$' history expansion had been
- specified.
-
+ 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 (back or forward). The
+ history expansion facilities are used to extract the last argument,
+ as if the '!$' history expansion had been specified.

File: readline.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
@@ -1063,139 +1086,147 @@ File: readline.info, Node: Commands For Text, Next: Commands For Killing, Pre
1.4.3 Commands For Changing Text
--------------------------------
-`end-of-file (usually C-d)'
+'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 characters on
+ 'stty'. 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.
-`delete-char (C-d)'
+'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
+ same character as the tty EOF character, as 'C-d' commonly is, see
above for the effects.
-`backward-delete-char (Rubout)'
+'backward-delete-char (Rubout)'
Delete the character behind the cursor. A numeric argument means
to kill the characters instead of deleting them.
-`forward-backward-delete-char ()'
+'forward-backward-delete-char ()'
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.
-`quoted-insert (C-q or C-v)'
+'quoted-insert (C-q or C-v)'
Add the next character typed to the line verbatim. This is how to
- insert key sequences like `C-q', for example.
+ insert key sequences like 'C-q', for example.
-`tab-insert (M-<TAB>)'
+'tab-insert (M-<TAB>)'
Insert a tab character.
-`self-insert (a, b, A, 1, !, ...)'
+'self-insert (a, b, A, 1, !, ...)'
Insert yourself.
-`transpose-chars (C-t)'
+'bracketed-paste-begin ()'
+ This function is intended to be bound to the "bracketed paste"
+ escape sequence sent by some terminals, and such a binding is
+ assigned by default. It allows Readline to insert the pasted text
+ as a single unit without treating each character as if it had been
+ read from the keyboard. The characters are inserted as if each one
+ was bound to 'self-insert') instead of executing any editing
+ commands.
+
+'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
point is at the end of the line, then this transposes the last two
characters of the line. Negative arguments have no effect.
-`transpose-words (M-t)'
+'transpose-words (M-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.
-`upcase-word (M-u)'
+'upcase-word (M-u)'
Uppercase the current (or following) word. With a negative
argument, uppercase the previous word, but do not move the cursor.
-`downcase-word (M-l)'
+'downcase-word (M-l)'
Lowercase the current (or following) word. With a negative
argument, lowercase the previous word, but do not move the cursor.
-`capitalize-word (M-c)'
+'capitalize-word (M-c)'
Capitalize the current (or following) word. With a negative
argument, capitalize the previous word, but do not move the cursor.
-`overwrite-mode ()'
+'overwrite-mode ()'
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
- `emacs' mode; `vi' mode does overwrite differently. Each call to
- `readline()' starts in insert mode.
+ 'emacs' mode; 'vi' mode does overwrite differently. Each call to
+ 'readline()' starts in insert mode.
- In overwrite mode, characters bound to `self-insert' replace the
+ In overwrite mode, characters bound to 'self-insert' replace the
text at point rather than pushing the text to the right.
- Characters bound to `backward-delete-char' replace the character
+ Characters bound to 'backward-delete-char' replace the character
before point with a space.
By default, this command is unbound.
-

File: readline.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands
1.4.4 Killing And Yanking
-------------------------
-`kill-line (C-k)'
+'kill-line (C-k)'
Kill the text from point to the end of the line.
-`backward-kill-line (C-x Rubout)'
- Kill backward to the beginning of the line.
+'backward-kill-line (C-x Rubout)'
+ Kill backward from the cursor to the beginning of the current line.
-`unix-line-discard (C-u)'
+'unix-line-discard (C-u)'
Kill backward from the cursor to the beginning of the current line.
-`kill-whole-line ()'
+'kill-whole-line ()'
Kill all characters on the current line, no matter where point is.
By default, this is unbound.
-`kill-word (M-d)'
+'kill-word (M-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 `forward-word'.
+ as 'forward-word'.
-`backward-kill-word (M-<DEL>)'
+'backward-kill-word (M-<DEL>)'
Kill the word behind point. Word boundaries are the same as
- `backward-word'.
+ 'backward-word'.
-`unix-word-rubout (C-w)'
+'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.
-`unix-filename-rubout ()'
+'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 the
kill-ring.
-`delete-horizontal-space ()'
+'delete-horizontal-space ()'
Delete all spaces and tabs around point. By default, this is
unbound.
-`kill-region ()'
+'kill-region ()'
Kill the text in the current region. By default, this command is
unbound.
-`copy-region-as-kill ()'
+'copy-region-as-kill ()'
Copy the text in the region to the kill buffer, so it can be yanked
right away. By default, this command is unbound.
-`copy-backward-word ()'
- Copy the word before point to the kill buffer. The word
- boundaries are the same as `backward-word'. By default, this
- command is unbound.
+'copy-backward-word ()'
+ Copy the word before point to the kill buffer. The word boundaries
+ are the same as 'backward-word'. By default, this command is
+ unbound.
-`copy-forward-word ()'
+'copy-forward-word ()'
Copy the word following point to the kill buffer. The word
- boundaries are the same as `forward-word'. By default, this
+ boundaries are the same as 'forward-word'. By default, this
command is unbound.
-`yank (C-y)'
+'yank (C-y)'
Yank the top of the kill ring into the buffer at point.
-`yank-pop (M-y)'
+'yank-pop (M-y)'
Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is `yank' or `yank-pop'.
+ if the prior command is 'yank' or 'yank-pop'.

File: readline.info, Node: Numeric Arguments, Next: Commands For Completion, Prev: Commands For Killing, Up: Bindable Readline Commands
@@ -1203,22 +1234,22 @@ File: readline.info, Node: Numeric Arguments, Next: Commands For Completion,
1.4.5 Specifying Numeric Arguments
----------------------------------
-`digit-argument (M-0, M-1, ... M--)'
+'digit-argument (M-0, M-1, ... M--)'
Add this digit to the argument already accumulating, or start a new
- argument. `M--' starts a negative argument.
+ argument. 'M--' starts a negative argument.
-`universal-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
- followed 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 argument
- count four, a second time makes the argument count sixteen, and so
- on. By default, this is not bound to a key.
+ sign, those digits define the argument. If the command is followed
+ 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 nor 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 argument count
+ four, a second time makes the argument count sixteen, and so on.
+ By default, this is not bound to a key.

File: readline.info, Node: Commands For Completion, Next: Keyboard Macros, Prev: Numeric Arguments, Up: Bindable Readline Commands
@@ -1226,199 +1257,195 @@ File: readline.info, Node: Commands For Completion, Next: Keyboard Macros, Pr
1.4.6 Letting Readline Type For You
-----------------------------------
-`complete (<TAB>)'
- Attempt to perform completion on the text before point. The
- actual completion performed is application-specific. The default
- is filename completion.
+'complete (<TAB>)'
+ Attempt to perform completion on the text before point. The actual
+ completion performed is application-specific. The default is
+ filename completion.
-`possible-completions (M-?)'
+'possible-completions (M-?)'
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
- that order.
+ 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-completions (M-*)'
Insert all completions of the text before point that would have
- been generated by `possible-completions'.
+ 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
+'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 list
of completions, the bell is rung (subject to the setting of
- `bell-style') and the original text is restored. An argument of N
+ '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.
-`menu-complete-backward ()'
- Identical to `menu-complete', but moves backward through the list
- of possible completions, as if `menu-complete' had been given a
+'menu-complete-backward ()'
+ Identical to 'menu-complete', but moves backward through the list
+ of possible completions, as if 'menu-complete' had been given a
negative argument.
-`delete-char-or-list ()'
+'delete-char-or-list ()'
Deletes the character under the cursor if not at the beginning or
- end of the line (like `delete-char'). If at the end of the line,
- behaves identically to `possible-completions'. This command is
+ end of the line (like 'delete-char'). If at the end of the line,
+ behaves identically to 'possible-completions'. This command is
unbound by default.
-

File: readline.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands
1.4.7 Keyboard Macros
---------------------
-`start-kbd-macro (C-x ()'
+'start-kbd-macro (C-x ()'
Begin saving the characters typed into the current keyboard macro.
-`end-kbd-macro (C-x ))'
+'end-kbd-macro (C-x ))'
Stop saving the characters typed into the current keyboard macro
and save the definition.
-`call-last-kbd-macro (C-x e)'
+'call-last-kbd-macro (C-x e)'
Re-execute the last keyboard macro defined, by making the
characters in the macro appear as if typed at the keyboard.
-`print-last-kbd-macro ()'
+'print-last-kbd-macro ()'
Print the last keboard macro defined in a format suitable for the
INPUTRC file.
-

File: readline.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands
1.4.8 Some Miscellaneous Commands
---------------------------------
-`re-read-init-file (C-x C-r)'
+'re-read-init-file (C-x C-r)'
Read in the contents of the INPUTRC file, and incorporate any
bindings or variable assignments found there.
-`abort (C-g)'
+'abort (C-g)'
Abort the current editing command and ring the terminal's bell
- (subject to the setting of `bell-style').
+ (subject to the setting of 'bell-style').
-`do-uppercase-version (M-a, M-b, M-X, ...)'
+'do-uppercase-version (M-a, M-b, M-X, ...)'
If the metafied character X is lowercase, run the command that is
bound to the corresponding uppercase character.
-`prefix-meta (<ESC>)'
+'prefix-meta (<ESC>)'
Metafy the next character typed. This is for keyboards without a
- meta key. Typing `<ESC> f' is equivalent to typing `M-f'.
+ meta key. Typing '<ESC> f' is equivalent to typing 'M-f'.
-`undo (C-_ or C-x C-u)'
+'undo (C-_ or C-x C-u)'
Incremental undo, separately remembered for each line.
-`revert-line (M-r)'
+'revert-line (M-r)'
Undo all changes made to this line. This is like executing the
- `undo' command enough times to get back to the beginning.
+ 'undo' command enough times to get back to the beginning.
-`tilde-expand (M-~)'
+'tilde-expand (M-~)'
Perform tilde expansion on the current word.
-`set-mark (C-@)'
+'set-mark (C-@)'
Set the mark to the point. If a numeric argument is supplied, the
mark is set to that position.
-`exchange-point-and-mark (C-x C-x)'
+'exchange-point-and-mark (C-x C-x)'
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.
-`character-search (C-])'
+'character-search (C-])'
A character is read and point is moved to the next occurrence of
that character. A negative count searches for previous
occurrences.
-`character-search-backward (M-C-])'
+'character-search-backward (M-C-])'
A character is read and point is moved to the previous occurrence
of that character. A negative count searches for subsequent
occurrences.
-`skip-csi-sequence ()'
+'skip-csi-sequence ()'
Read enough characters to consume a multi-key sequence such as
those defined for keys like Home and End. Such sequences begin
with a Control Sequence Indicator (CSI), usually ESC-[. If this
- sequence is bound to "\e[", keys producing such sequences will
- have no effect unless explicitly bound to a readline command,
- instead of inserting stray characters into the editing buffer.
- This is unbound by default, but usually bound to ESC-[.
+ sequence is bound to "\e[", keys producing such sequences will have
+ no effect unless explicitly bound to a readline command, instead of
+ inserting stray characters into the editing buffer. This is
+ unbound by default, but usually bound to ESC-[.
-`insert-comment (M-#)'
- Without a numeric argument, the value of the `comment-begin'
+'insert-comment (M-#)'
+ Without a numeric argument, the value of the 'comment-begin'
variable is inserted at the beginning of the current line. If a
- numeric argument is supplied, this command acts as a toggle: if
- the characters at the beginning of the line do not match the value
- of `comment-begin', the value is inserted, otherwise the
- characters in `comment-begin' are deleted from the beginning of
- the line. In either case, the line is accepted as if a newline
- had been typed.
-
-`dump-functions ()'
+ numeric argument is supplied, this command acts as a toggle: if the
+ characters at the beginning of the line do not match the value of
+ 'comment-begin', the value is inserted, otherwise the characters in
+ 'comment-begin' are deleted from the beginning of the line. In
+ either case, the line is accepted as if a newline had been typed.
+
+'dump-functions ()'
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 INPUTRC
file. This command is unbound by default.
-`dump-variables ()'
+'dump-variables ()'
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
INPUTRC file. This command is unbound by default.
-`dump-macros ()'
+'dump-macros ()'
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
- INPUTRC file. This command is unbound by default.
+ 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 INPUTRC
+ file. This command is unbound by default.
-`emacs-editing-mode (C-e)'
- When in `vi' command mode, this causes a switch to `emacs' editing
+'emacs-editing-mode (C-e)'
+ When in 'vi' command mode, this causes a switch to 'emacs' editing
mode.
-`vi-editing-mode (M-C-j)'
- When in `emacs' editing mode, this causes a switch to `vi' editing
+'vi-editing-mode (M-C-j)'
+ When in 'emacs' editing mode, this causes a switch to 'vi' editing
mode.
-

File: readline.info, Node: Readline vi Mode, Prev: Bindable Readline Commands, Up: Command Line Editing
1.5 Readline vi Mode
====================
-While the Readline library does not have a full set of `vi' editing
+While the Readline library does not have a full set of 'vi' editing
functions, it does contain enough to allow simple editing of the line.
-The Readline `vi' mode behaves as specified in the POSIX standard.
+The Readline 'vi' mode behaves as specified in the POSIX standard.
- In order to switch interactively between `emacs' and `vi' editing
-modes, use the command `M-C-j' (bound to emacs-editing-mode when in
-`vi' mode and to vi-editing-mode in `emacs' mode). The Readline
-default is `emacs' mode.
+ In order to switch interactively between 'emacs' and 'vi' editing
+modes, use the command 'M-C-j' (bound to emacs-editing-mode when in 'vi'
+mode and to vi-editing-mode in 'emacs' mode). The Readline default is
+'emacs' mode.
- When you enter a line in `vi' mode, you are already placed in
-`insertion' mode, as if you had typed an `i'. Pressing <ESC> switches
-you into `command' mode, where you can edit the text of the line with
-the standard `vi' movement keys, move to previous history lines with
-`k' and subsequent lines with `j', and so forth.
+ When you enter a line in 'vi' mode, you are already placed in
+'insertion' mode, as if you had typed an 'i'. Pressing <ESC> switches
+you into 'command' mode, where you can edit the text of the line with
+the standard 'vi' movement keys, move to previous history lines with 'k'
+and subsequent lines with 'j', and so forth.
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-2014 Free Software Foundation, Inc.
+ Copyright (C) 1988-2016 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
preserved on all copies.
Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
+this manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this
@@ -1434,9 +1461,9 @@ File: readline.info, Node: Programming with GNU Readline, Next: GNU Free Docum
This chapter describes the interface between the GNU Readline Library
and other programs. If you are a programmer, and you wish to include
-the features found in GNU Readline such as completion, line editing,
-and interactive history manipulation in your own programs, this section
-is for you.
+the features found in GNU Readline such as completion, line editing, and
+interactive history manipulation in your own programs, this section is
+for you.
* Menu:
@@ -1457,41 +1484,41 @@ File: readline.info, Node: Basic Behavior, Next: Custom Functions, Up: Progra
2.1 Basic Behavior
==================
-Many programs provide a command line interface, such as `mail', `ftp',
-and `sh'. For such programs, the default behaviour of Readline is
+Many programs provide a command line interface, such as 'mail', 'ftp',
+and 'sh'. For such programs, the default behaviour of Readline is
sufficient. This section describes how to use Readline in the simplest
-way possible, perhaps to replace calls in your code to `gets()' or
-`fgets()'.
+way possible, perhaps to replace calls in your code to 'gets()' or
+'fgets()'.
- The function `readline()' prints a prompt PROMPT and then reads and
-returns a single line of text from the user. If PROMPT is `NULL' or
-the empty string, no prompt is displayed. The line `readline' returns
-is allocated with `malloc()'; the caller should `free()' the line when
-it has finished with it. The declaration for `readline' in ANSI C is
+ The function 'readline()' prints a prompt PROMPT and then reads and
+returns a single line of text from the user. If PROMPT is 'NULL' or the
+empty string, no prompt is displayed. The line 'readline' returns is
+allocated with 'malloc()'; the caller should 'free()' the line when it
+has finished with it. The declaration for 'readline' in ANSI C is
- `char *readline (const char *PROMPT);'
+ char *readline (const char *PROMPT);
So, one might say
- `char *line = readline ("Enter a line: ");'
- in order to read a line of text from the user. The line returned
-has the final newline removed, so only the text remains.
+ char *line = readline ("Enter a line: ");
+in order to read a line of text from the user. The line returned has
+the final newline removed, so only the text remains.
- If `readline' encounters an `EOF' while reading the line, and the
-line is empty at that point, then `(char *)NULL' is returned.
+ If 'readline' encounters an 'EOF' while reading the line, and the
+line is empty at that point, then '(char *)NULL' is returned.
Otherwise, the line is ended just as if a newline had been typed.
- If you want the user to be able to get at the line later, (with
-<C-p> for example), you must call `add_history()' to save the line away
-in a "history" list of such lines.
+ If you want the user to be able to get at the line later, (with <C-p>
+for example), you must call 'add_history()' to save the line away in a
+"history" list of such lines.
- `add_history (line)';
+ add_history (line);
For full details on the GNU History Library, see the associated manual.
It is preferable to avoid saving empty lines on the history list,
-since users rarely have a burning need to reuse a blank line. Here is
-a function which usefully replaces the standard `gets()' library
-function, and has the advantage of no static buffer to overflow:
+since users rarely have a burning need to reuse a blank line. Here is a
+function which usefully replaces the standard 'gets()' library function,
+and has the advantage of no static buffer to overflow:
/* A static variable for holding the line. */
static char *line_read = (char *)NULL;
@@ -1523,21 +1550,21 @@ function, and has the advantage of no static buffer to overflow:
This function gives the user the default behaviour of <TAB>
completion: completion on file names. If you do not want Readline to
complete on filenames, you can change the binding of the <TAB> key with
-`rl_bind_key()'.
+'rl_bind_key()'.
- `int rl_bind_key (int KEY, rl_command_func_t *FUNCTION);'
+ int rl_bind_key (int KEY, rl_command_func_t *FUNCTION);
- `rl_bind_key()' takes two arguments: KEY is the character that you
+ 'rl_bind_key()' takes two arguments: KEY is the character that you
want to bind, and FUNCTION is the address of the function to call when
-KEY is pressed. Binding <TAB> to `rl_insert()' makes <TAB> insert
-itself. `rl_bind_key()' returns non-zero if KEY is not a valid ASCII
+KEY is pressed. Binding <TAB> to 'rl_insert()' makes <TAB> insert
+itself. 'rl_bind_key()' returns non-zero if KEY is not a valid ASCII
character code (between 0 and 255).
Thus, to disable the default <TAB> behavior, the following suffices:
- `rl_bind_key ('\t', rl_insert);'
+ rl_bind_key ('\t', rl_insert);
This code should be executed once at the start of your program; you
-might write a function called `initialize_readline()' which performs
+might write a function called 'initialize_readline()' which performs
this and other desired initializations, such as installing custom
completers (*note Custom Completers::).
@@ -1549,25 +1576,24 @@ File: readline.info, Node: Custom Functions, Next: Readline Variables, Prev:
Readline provides many functions for manipulating the text of the line,
but it isn't possible to anticipate the needs of all programs. This
-section describes the various functions and variables defined within
-the Readline library which allow a user program to add customized
+section describes the various functions and variables defined within the
+Readline library which allow a user program to add customized
functionality to Readline.
Before declaring any functions that customize Readline's behavior, or
using any functionality Readline provides in other code, an application
-writer should include the file `<readline/readline.h>' in any file that
-uses Readline's features. Since some of the definitions in
-`readline.h' use the `stdio' library, the file `<stdio.h>' should be
-included before `readline.h'.
-
- `readline.h' defines a C preprocessor variable that should be
-treated as an integer, `RL_READLINE_VERSION', which may be used to
-conditionally compile application code depending on the installed
-Readline version. The value is a hexadecimal encoding of the major and
-minor version numbers of the library, of the form 0xMMMM. MM is the
-two-digit major version number; MM is the two-digit minor version
-number. For Readline 4.2, for example, the value of
-`RL_READLINE_VERSION' would be `0x0402'.
+writer should include the file '<readline/readline.h>' in any file that
+uses Readline's features. Since some of the definitions in 'readline.h'
+use the 'stdio' library, the file '<stdio.h>' should be included before
+'readline.h'.
+
+ 'readline.h' defines a C preprocessor variable that should be treated
+as an integer, 'RL_READLINE_VERSION', which may be used to conditionally
+compile application code depending on the installed Readline version.
+The value is a hexadecimal encoding of the major and minor version
+numbers of the library, of the form 0xMMMM. MM is the two-digit major
+version number; MM is the two-digit minor version number. For Readline
+4.2, for example, the value of 'RL_READLINE_VERSION' would be '0x0402'.
* Menu:
@@ -1588,57 +1614,51 @@ write code describing pointers to C functions with appropriately
prototyped arguments and return values.
For instance, say we want to declare a variable FUNC as a pointer to
-a function which takes two `int' arguments and returns an `int' (this
-is the type of all of the Readline bindable functions). Instead of the
+a function which takes two 'int' arguments and returns an 'int' (this is
+the type of all of the Readline bindable functions). Instead of the
classic C declaration
- `int (*func)();'
+ 'int (*func)();'
or the ANSI-C style declaration
- `int (*func)(int, int);'
+ 'int (*func)(int, int);'
we may write
- `rl_command_func_t *func;'
+ 'rl_command_func_t *func;'
The full list of function pointer types available is
-`typedef int rl_command_func_t (int, int);'
+'typedef int rl_command_func_t (int, int);'
-`typedef char *rl_compentry_func_t (const char *, int);'
+'typedef char *rl_compentry_func_t (const char *, int);'
-`typedef char **rl_completion_func_t (const char *, int, int);'
+'typedef char **rl_completion_func_t (const char *, int, int);'
-`typedef char *rl_quote_func_t (char *, int, char *);'
+'typedef char *rl_quote_func_t (char *, int, char *);'
-`typedef char *rl_dequote_func_t (char *, int);'
+'typedef char *rl_dequote_func_t (char *, int);'
-`typedef int rl_compignore_func_t (char **);'
+'typedef int rl_compignore_func_t (char **);'
-`typedef void rl_compdisp_func_t (char **, int, int);'
+'typedef void rl_compdisp_func_t (char **, int, int);'
-`typedef int rl_hook_func_t (void);'
+'typedef int rl_hook_func_t (void);'
-`typedef int rl_getc_func_t (FILE *);'
+'typedef int rl_getc_func_t (FILE *);'
-`typedef int rl_linebuf_func_t (char *, int);'
+'typedef int rl_linebuf_func_t (char *, int);'
-`typedef int rl_intfunc_t (int);'
+'typedef int rl_intfunc_t (int);'
+'#define rl_ivoidfunc_t rl_hook_func_t'
+'typedef int rl_icpfunc_t (char *);'
+'typedef int rl_icppfunc_t (char **);'
-`#define rl_ivoidfunc_t rl_hook_func_t'
-
-`typedef int rl_icpfunc_t (char *);'
-
-`typedef int rl_icppfunc_t (char **);'
-
-`typedef void rl_voidfunc_t (void);'
-
-`typedef void rl_vintfunc_t (int);'
-
-`typedef void rl_vcpfunc_t (char *);'
-
-`typedef void rl_vcppfunc_t (char **);'
+'typedef void rl_voidfunc_t (void);'
+'typedef void rl_vintfunc_t (int);'
+'typedef void rl_vcpfunc_t (char *);'
+'typedef void rl_vcppfunc_t (char **);'

File: readline.info, Node: Function Writing, Prev: Readline Typedefs, Up: Custom Functions
@@ -1650,9 +1670,9 @@ In order to write new functions for Readline, you need to know the
calling conventions for keyboard-invoked functions, and the names of the
variables that describe the current state of the line read so far.
- The calling sequence for a command `foo' looks like
+ The calling sequence for a command 'foo' looks like
- `int foo (int count, int key)'
+ int foo (int count, int key)
where COUNT is the numeric argument (or 1 if defaulted) and KEY is the
key that invoked this function.
@@ -1667,8 +1687,8 @@ negative and positive arguments. At the very least, it should be aware
that it can be passed a negative argument.
A command function should return 0 if its action completes
-successfully, and a non-zero value if some error occurs. This is the
-convention obeyed by all of the builtin Readline bindable command
+successfully, and a value greater than zero if some error occurs. This
+is the convention obeyed by all of the builtin Readline bindable command
functions.

@@ -1682,16 +1702,16 @@ These variables are available to function writers.
-- Variable: char * rl_line_buffer
This is the line gathered so far. You are welcome to modify the
contents of the line, but see *note Allowing Undoing::. The
- function `rl_extend_line_buffer' is available to increase the
- memory allocated to `rl_line_buffer'.
+ function 'rl_extend_line_buffer' is available to increase the
+ memory allocated to 'rl_line_buffer'.
-- Variable: int rl_point
- The offset of the current cursor position in `rl_line_buffer' (the
+ The offset of the current cursor position in 'rl_line_buffer' (the
_point_).
-- Variable: int rl_end
- The number of characters present in `rl_line_buffer'. When
- `rl_point' is at the end of the line, `rl_point' and `rl_end' are
+ The number of characters present in 'rl_line_buffer'. When
+ 'rl_point' is at the end of the line, 'rl_point' and 'rl_end' are
equal.
-- Variable: int rl_mark
@@ -1703,9 +1723,9 @@ These variables are available to function writers.
current line immediately.
-- Variable: int rl_num_chars_to_read
- Setting this to a positive value before calling `readline()' causes
+ Setting this to a positive value before calling 'readline()' causes
Readline to return after accepting that many characters, rather
- than reading up to a character bound to `accept-line'.
+ than reading up to a character bound to 'accept-line'.
-- Variable: int rl_pending_input
Setting this to a value makes it the next keystroke read. This is
@@ -1719,27 +1739,27 @@ These variables are available to function writers.
-- Variable: int rl_erase_empty_line
Setting this to a non-zero value causes Readline to completely
- erase the current line, including any prompt, any time a newline
- is typed as the only character on an otherwise-empty line. The
- cursor is moved to the beginning of the newly-blank line.
+ erase the current line, including any prompt, any time a newline is
+ typed as the only character on an otherwise-empty line. The cursor
+ is moved to the beginning of the newly-blank line.
-- Variable: char * rl_prompt
The prompt Readline uses. This is set from the argument to
- `readline()', and should not be assigned to directly. The
- `rl_set_prompt()' function (*note Redisplay::) may be used to
- modify the prompt string after calling `readline()'.
+ 'readline()', and should not be assigned to directly. The
+ 'rl_set_prompt()' function (*note Redisplay::) may be used to
+ modify the prompt string after calling 'readline()'.
-- Variable: char * rl_display_prompt
The string displayed as the prompt. This is usually identical to
- RL_PROMPT, but may be changed temporarily by functions that use
- the prompt string as a message area, such as incremental search.
+ RL_PROMPT, but may be changed temporarily by functions that use the
+ prompt string as a message area, such as incremental search.
-- Variable: int rl_already_prompted
If an application wishes to display the prompt itself, rather than
- have Readline do it the first time `readline()' is called, it
+ have Readline do it the first time 'readline()' is called, it
should set this variable to a non-zero value after displaying the
prompt. The prompt must also be passed as the argument to
- `readline()' so the redisplay functions can update the display
+ 'readline()' so the redisplay functions can update the display
properly. The calling application is responsible for managing the
value; Readline never sets it.
@@ -1750,7 +1770,7 @@ These variables are available to function writers.
An integer encoding the current version of the library. The
encoding is of the form 0xMMMM, where MM is the two-digit major
version number, and MM is the two-digit minor version number. For
- example, for Readline-4.2, `rl_readline_version' would have the
+ example, for Readline-4.2, 'rl_readline_version' would have the
value 0x0402.
-- Variable: int rl_gnu_readline_p
@@ -1759,7 +1779,7 @@ These variables are available to function writers.
-- Variable: const char * rl_terminal_name
The terminal type, used for initialization. If not set by the
- application, Readline sets this to the value of the `TERM'
+ application, Readline sets this to the value of the 'TERM'
environment variable the first time it is called.
-- Variable: const char * rl_readline_name
@@ -1768,89 +1788,88 @@ These variables are available to function writers.
(*note Conditional Init Constructs::).
-- Variable: FILE * rl_instream
- The stdio stream from which Readline reads input. If `NULL',
+ The stdio stream from which Readline reads input. If 'NULL',
Readline defaults to STDIN.
-- Variable: FILE * rl_outstream
- The stdio stream to which Readline performs output. If `NULL',
+ The stdio stream to which Readline performs output. If 'NULL',
Readline defaults to STDOUT.
-- Variable: int rl_prefer_env_winsize
- If non-zero, Readline gives values found in the `LINES' and
- `COLUMNS' environment variables greater precedence than values
+ If non-zero, Readline gives values found in the 'LINES' and
+ 'COLUMNS' environment variables greater precedence than values
fetched from the kernel when computing the screen dimensions.
-- Variable: rl_command_func_t * rl_last_func
- The address of the last command function Readline executed. May
- be used to test whether or not a function is being executed twice
- in succession, for example.
+ The address of the last command function Readline executed. May be
+ used to test whether or not a function is being executed twice in
+ succession, for example.
-- Variable: rl_hook_func_t * rl_startup_hook
If non-zero, this is the address of a function to call just before
- `readline' prints the first prompt.
+ 'readline' prints the first prompt.
-- Variable: rl_hook_func_t * rl_pre_input_hook
If non-zero, this is the address of a function to call after the
- first prompt has been printed and just before `readline' starts
+ first prompt has been printed and just before 'readline' starts
reading input characters.
-- Variable: rl_hook_func_t * rl_event_hook
If non-zero, this is the address of a function to call periodically
- when Readline is waiting for terminal input. By default, this
- will be called at most ten times a second if there is no keyboard
- input.
+ when Readline is waiting for terminal input. By default, this will
+ be called at most ten times a second if there is no keyboard input.
-- Variable: rl_getc_func_t * rl_getc_function
If non-zero, Readline will call indirectly through this pointer to
get a character from the input stream. By default, it is set to
- `rl_getc', the default Readline character input function (*note
+ 'rl_getc', the default Readline character input function (*note
Character Input::). In general, an application that sets
- RL_GETC_FUNCTION should consider setting RL_INPUT_AVAILABLE_HOOK
- as well.
+ RL_GETC_FUNCTION should consider setting RL_INPUT_AVAILABLE_HOOK as
+ well.
-- Variable: rl_hook_func_t * rl_signal_event_hook
If non-zero, this is the address of a function to call if a read
system call is interrupted when Readline is reading terminal input.
-- Variable: rl_hook_func_t * rl_input_available_hook
- If non-zero, Readline will use this function's return value when
- it needs to determine whether or not there is available input on
- the current input source. The default hook checks `rl_instream';
- if an application is using a different input source, it should set
- the hook appropriately. Readline queries for available input when
+ If non-zero, Readline will use this function's return value when it
+ needs to determine whether or not there is available input on the
+ current input source. The default hook checks 'rl_instream'; if an
+ application is using a different input source, it should set the
+ hook appropriately. Readline queries for available input when
implementing intra-key-sequence timeouts during input and
- incremental searches. This may use an application-specific
- timeout before returning a value; Readline uses the value passed
- to `rl_set_keyboard_input_timeout()' or the value of the
- user-settable KEYSEQ-TIMEOUT variable. This is designed for use
- by applications using Readline's callback interface (*note
- Alternate Interface::), which may not use the traditional
- `read(2)' and file descriptor interface, or other applications
- using a different input mechanism. If an application uses an
- input mechanism or hook that can potentially exceed the value of
- KEYSEQ-TIMEOUT, it should increase the timeout or set this hook
- appropriately even when not using the callback interface. In
- general, an application that sets RL_GETC_FUNCTION should consider
- setting RL_INPUT_AVAILABLE_HOOK as well.
+ incremental searches. This may use an application-specific timeout
+ before returning a value; Readline uses the value passed to
+ 'rl_set_keyboard_input_timeout()' or the value of the user-settable
+ KEYSEQ-TIMEOUT variable. This is designed for use by applications
+ using Readline's callback interface (*note Alternate Interface::),
+ which may not use the traditional 'read(2)' and file descriptor
+ interface, or other applications using a different input mechanism.
+ If an application uses an input mechanism or hook that can
+ potentially exceed the value of KEYSEQ-TIMEOUT, it should increase
+ the timeout or set this hook appropriately even when not using the
+ callback interface. In general, an application that sets
+ RL_GETC_FUNCTION should consider setting RL_INPUT_AVAILABLE_HOOK as
+ well.
-- Variable: rl_voidfunc_t * rl_redisplay_function
If non-zero, Readline will call indirectly through this pointer to
update the display with the current contents of the editing buffer.
- By default, it is set to `rl_redisplay', the default Readline
+ By default, it is set to 'rl_redisplay', the default Readline
redisplay function (*note Redisplay::).
-- Variable: rl_vintfunc_t * rl_prep_term_function
If non-zero, Readline will call indirectly through this pointer to
initialize the terminal. The function takes a single argument, an
- `int' flag that says whether or not to use eight-bit characters.
- By default, this is set to `rl_prep_terminal' (*note Terminal
+ 'int' flag that says whether or not to use eight-bit characters.
+ By default, this is set to 'rl_prep_terminal' (*note Terminal
Management::).
-- Variable: rl_voidfunc_t * rl_deprep_term_function
If non-zero, Readline will call indirectly through this pointer to
reset the terminal. This function should undo the effects of
- `rl_prep_term_function'. By default, this is set to
- `rl_deprep_terminal' (*note Terminal Management::).
+ 'rl_prep_term_function'. By default, this is set to
+ 'rl_deprep_terminal' (*note Terminal Management::).
-- Variable: Keymap rl_executing_keymap
This variable is set to the keymap (*note Keymaps::) in which the
@@ -1876,98 +1895,73 @@ These variables are available to function writers.
-- Variable: int rl_readline_state
A variable with bit values that encapsulate the current Readline
- state. A bit is set with the `RL_SETSTATE' macro, and unset with
- the `RL_UNSETSTATE' macro. Use the `RL_ISSTATE' macro to test
+ state. A bit is set with the 'RL_SETSTATE' macro, and unset with
+ the 'RL_UNSETSTATE' macro. Use the 'RL_ISSTATE' macro to test
whether a particular state bit is set. Current state bits include:
- `RL_STATE_NONE'
+ 'RL_STATE_NONE'
Readline has not yet been called, nor has it begun to
initialize.
-
- `RL_STATE_INITIALIZING'
+ 'RL_STATE_INITIALIZING'
Readline is initializing its internal data structures.
-
- `RL_STATE_INITIALIZED'
+ 'RL_STATE_INITIALIZED'
Readline has completed its initialization.
-
- `RL_STATE_TERMPREPPED'
+ 'RL_STATE_TERMPREPPED'
Readline has modified the terminal modes to do its own input
and redisplay.
-
- `RL_STATE_READCMD'
+ 'RL_STATE_READCMD'
Readline is reading a command from the keyboard.
-
- `RL_STATE_METANEXT'
+ 'RL_STATE_METANEXT'
Readline is reading more input after reading the meta-prefix
character.
-
- `RL_STATE_DISPATCHING'
+ 'RL_STATE_DISPATCHING'
Readline is dispatching to a command.
-
- `RL_STATE_MOREINPUT'
+ 'RL_STATE_MOREINPUT'
Readline is reading more input while executing an editing
command.
-
- `RL_STATE_ISEARCH'
+ 'RL_STATE_ISEARCH'
Readline is performing an incremental history search.
-
- `RL_STATE_NSEARCH'
+ 'RL_STATE_NSEARCH'
Readline is performing a non-incremental history search.
-
- `RL_STATE_SEARCH'
+ 'RL_STATE_SEARCH'
Readline is searching backward or forward through the history
for a string.
-
- `RL_STATE_NUMERICARG'
+ 'RL_STATE_NUMERICARG'
Readline is reading a numeric argument.
-
- `RL_STATE_MACROINPUT'
+ 'RL_STATE_MACROINPUT'
Readline is currently getting its input from a
previously-defined keyboard macro.
-
- `RL_STATE_MACRODEF'
+ 'RL_STATE_MACRODEF'
Readline is currently reading characters defining a keyboard
macro.
-
- `RL_STATE_OVERWRITE'
+ 'RL_STATE_OVERWRITE'
Readline is in overwrite mode.
-
- `RL_STATE_COMPLETING'
+ 'RL_STATE_COMPLETING'
Readline is performing word completion.
-
- `RL_STATE_SIGHANDLER'
+ 'RL_STATE_SIGHANDLER'
Readline is currently executing the readline signal handler.
-
- `RL_STATE_UNDOING'
+ 'RL_STATE_UNDOING'
Readline is performing an undo.
-
- `RL_STATE_INPUTPENDING'
+ 'RL_STATE_INPUTPENDING'
Readline has input pending due to a call to
- `rl_execute_next()'.
-
- `RL_STATE_TTYCSAVED'
+ 'rl_execute_next()'.
+ 'RL_STATE_TTYCSAVED'
Readline has saved the values of the terminal's special
characters.
-
- `RL_STATE_CALLBACK'
+ 'RL_STATE_CALLBACK'
Readline is currently using the alternate (callback) interface
(*note Alternate Interface::).
-
- `RL_STATE_VIMOTION'
+ 'RL_STATE_VIMOTION'
Readline is reading the argument to a vi-mode "motion"
command.
-
- `RL_STATE_MULTIKEY'
+ 'RL_STATE_MULTIKEY'
Readline is reading a multiple-keystroke command.
-
- `RL_STATE_VICMDONCE'
+ 'RL_STATE_VICMDONCE'
Readline has entered vi command (movement) mode at least one
- time during the current call to `readline()'.
-
- `RL_STATE_DONE'
- Readline has read a key sequence bound to `accept-line' and
- is about to return the line to the caller.
-
+ time during the current call to 'readline()'.
+ 'RL_STATE_DONE'
+ Readline has read a key sequence bound to 'accept-line' and is
+ about to return the line to the caller.
-- Variable: int rl_explicit_arg
Set to a non-zero value if an explicit numeric argument was
@@ -1998,12 +1992,12 @@ File: readline.info, Node: Readline Convenience Functions, Next: Readline Sign
key sequences.
* Allowing Undoing:: How to make your functions undoable.
* Redisplay:: Functions to control line display.
-* Modifying Text:: Functions to modify `rl_line_buffer'.
+* Modifying Text:: Functions to modify 'rl_line_buffer'.
* Character Input:: Functions to read keyboard input.
* Terminal Management:: Functions to manage terminal settings.
* Utility Functions:: Generally useful functions and hooks.
* Miscellaneous Functions:: Functions that don't fall into any category.
-* Alternate Interface:: Using Readline in a `callback' fashion.
+* Alternate Interface:: Using Readline in a 'callback' fashion.
* A Readline Example:: An example Readline function.
* Alternate Interface Example:: An example program using the alternate interface.
@@ -2021,7 +2015,7 @@ the function. Thus, in an init file, one might find
Meta-Rubout: backward-kill-word
This binds the keystroke <Meta-Rubout> to the function
-_descriptively_ named `backward-kill-word'. You, as the programmer,
+_descriptively_ named 'backward-kill-word'. You, as the programmer,
should bind the functions you write to descriptive names as well.
Readline provides a function for doing that:
@@ -2029,13 +2023,13 @@ Readline provides a function for doing that:
*function, int key)
Add NAME to the list of named functions. Make FUNCTION be the
function that gets called. If KEY is not -1, then bind it to
- FUNCTION using `rl_bind_key()'.
+ FUNCTION using 'rl_bind_key()'.
- Using this function alone is sufficient for most applications. It
-is the recommended way to add a few functions to the default functions
-that Readline has built in. If you need to do something other than
-adding a function to Readline, you may need to use the underlying
-functions described below.
+ Using this function alone is sufficient for most applications. It is
+the recommended way to add a few functions to the default functions that
+Readline has built in. If you need to do something other than adding a
+function to Readline, you may need to use the underlying functions
+described below.

File: readline.info, Node: Keymaps, Next: Binding Keys, Prev: Function Naming, Up: Readline Convenience Functions
@@ -2049,9 +2043,9 @@ You can make your own keymaps, copy existing keymaps, and tell Readline
which keymap to use.
-- Function: Keymap rl_make_bare_keymap (void)
- Returns a new, empty keymap. The space for the keymap is
- allocated with `malloc()'; the caller should free it by calling
- `rl_free_keymap()' when done.
+ Returns a new, empty keymap. The space for the keymap is allocated
+ with 'malloc()'; the caller should free it by calling
+ 'rl_free_keymap()' when done.
-- Function: Keymap rl_copy_keymap (Keymap map)
Return a new keymap which is a copy of MAP.
@@ -2068,7 +2062,7 @@ which keymap to use.
-- Function: void rl_free_keymap (Keymap keymap)
Free all storage associated with KEYMAP. This calls
- `rl_discard_keymap' to free subordindate keymaps and macros.
+ 'rl_discard_keymap' to free subordindate keymaps and macros.
Readline has several internal keymaps. These functions allow you to
change which keymap is active.
@@ -2081,12 +2075,12 @@ change which keymap is active.
-- Function: Keymap rl_get_keymap_by_name (const char *name)
Return the keymap matching NAME. NAME is one which would be
- supplied in a `set keymap' inputrc line (*note Readline Init
+ supplied in a 'set keymap' inputrc line (*note Readline Init
File::).
-- Function: char * rl_get_keymap_name (Keymap keymap)
Return the name matching KEYMAP. NAME is one which would be
- supplied in a `set keymap' inputrc line (*note Readline Init
+ supplied in a 'set keymap' inputrc line (*note Readline Init
File::).

@@ -2095,17 +2089,17 @@ File: readline.info, Node: Binding Keys, Next: Associating Function Names and
2.4.3 Binding Keys
------------------
-Key sequences are associate with functions through the keymap.
-Readline has several internal keymaps: `emacs_standard_keymap',
-`emacs_meta_keymap', `emacs_ctlx_keymap', `vi_movement_keymap', and
-`vi_insertion_keymap'. `emacs_standard_keymap' is the default, and the
+Key sequences are associate with functions through the keymap. Readline
+has several internal keymaps: 'emacs_standard_keymap',
+'emacs_meta_keymap', 'emacs_ctlx_keymap', 'vi_movement_keymap', and
+'vi_insertion_keymap'. 'emacs_standard_keymap' is the default, and the
examples in this manual assume that.
- Since `readline()' installs a set of default key bindings the first
+ Since 'readline()' installs a set of default key bindings the first
time it is called, there is always the danger that a custom binding
-installed before the first call to `readline()' will be overridden. An
+installed before the first call to 'readline()' will be overridden. An
alternate mechanism is to install custom key bindings in an
-initialization function assigned to the `rl_startup_hook' variable
+initialization function assigned to the 'rl_startup_hook' variable
(*note Readline Variables::).
These functions manage key bindings.
@@ -2149,9 +2143,9 @@ initialization function assigned to the `rl_startup_hook' variable
-- Function: int rl_bind_keyseq (const char *keyseq, rl_command_func_t
*function)
Bind the key sequence represented by the string KEYSEQ to the
- function FUNCTION, beginning in the current keymap. This makes
- new keymaps as necessary. The return value is non-zero if KEYSEQ
- is invalid.
+ function FUNCTION, beginning in the current keymap. This makes new
+ keymaps as necessary. The return value is non-zero if KEYSEQ is
+ invalid.
-- Function: int rl_bind_keyseq_in_map (const char *keyseq,
rl_command_func_t *function, Keymap map)
@@ -2162,7 +2156,7 @@ initialization function assigned to the `rl_startup_hook' variable
-- Function: int rl_set_key (const char *keyseq, rl_command_func_t
*function, Keymap map)
- Equivalent to `rl_bind_keyseq_in_map'.
+ Equivalent to 'rl_bind_keyseq_in_map'.
-- Function: int rl_bind_keyseq_if_unbound (const char *keyseq,
rl_command_func_t *function)
@@ -2180,12 +2174,12 @@ initialization function assigned to the `rl_startup_hook' variable
*data, Keymap map)
Bind the key sequence represented by the string KEYSEQ to the
arbitrary pointer DATA. TYPE says what kind of data is pointed to
- by DATA; this can be a function (`ISFUNC'), a macro (`ISMACR'), or
- a keymap (`ISKMAP'). This makes new keymaps as necessary. The
+ by DATA; this can be a function ('ISFUNC'), a macro ('ISMACR'), or
+ a keymap ('ISKMAP'). This makes new keymaps as necessary. The
initial keymap in which to do bindings is MAP.
-- Function: int rl_parse_and_bind (char *line)
- Parse LINE as if it had been read from the `inputrc' file and
+ Parse LINE as if it had been read from the 'inputrc' file and
perform any key bindings and variable assignments found (*note
Readline Init File::).
@@ -2209,9 +2203,9 @@ associate a new function name with an arbitrary function.
-- Function: rl_command_func_t * rl_function_of_keyseq (const char
*keyseq, Keymap map, int *type)
Return the function invoked by KEYSEQ in keymap MAP. If MAP is
- `NULL', the current keymap is used. If TYPE is not `NULL', the
- type of the object is returned in the `int' variable it points to
- (one of `ISFUNC', `ISKMAP', or `ISMACR').
+ 'NULL', the current keymap is used. If TYPE is not 'NULL', the
+ type of the object is returned in the 'int' variable it points to
+ (one of 'ISFUNC', 'ISKMAP', or 'ISMACR').
-- Function: char ** rl_invoking_keyseqs (rl_command_func_t *function)
Return an array of strings representing the key sequences used to
@@ -2224,19 +2218,19 @@ associate a new function name with an arbitrary function.
-- Function: void rl_function_dumper (int readable)
Print the readline function names and the key sequences currently
- bound to them to `rl_outstream'. If READABLE is non-zero, the
- list is formatted in such a way that it can be made part of an
- `inputrc' file and re-read.
+ bound to them to 'rl_outstream'. If READABLE is non-zero, the list
+ is formatted in such a way that it can be made part of an 'inputrc'
+ file and re-read.
-- Function: void rl_list_funmap_names (void)
Print the names of all bindable Readline functions to
- `rl_outstream'.
+ 'rl_outstream'.
-- Function: const char ** rl_funmap_names (void)
Return a NULL terminated array of known function names. The array
is sorted. The array itself is allocated, but not the strings
inside. You should free the array, but not the pointers, using
- `free' or `rl_free' when you are done.
+ 'free' or 'rl_free' when you are done.
-- Function: int rl_add_funmap_entry (const char *name,
rl_command_func_t *function)
@@ -2254,36 +2248,36 @@ functions much more useful. It is certainly easy to try something if
you know you can undo it.
If your function simply inserts text once, or deletes text once, and
-uses `rl_insert_text()' or `rl_delete_text()' to do it, then undoing is
+uses 'rl_insert_text()' or 'rl_delete_text()' to do it, then undoing is
already done for you automatically.
If you do multiple insertions or multiple deletions, or any
-combination of these operations, you should group them together into
-one operation. This is done with `rl_begin_undo_group()' and
-`rl_end_undo_group()'.
+combination of these operations, you should group them together into one
+operation. This is done with 'rl_begin_undo_group()' and
+'rl_end_undo_group()'.
The types of events that can be undone are:
enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END };
- Notice that `UNDO_DELETE' means to insert some text, and
-`UNDO_INSERT' means to delete some text. That is, the undo code tells
-what to undo, not how to undo it. `UNDO_BEGIN' and `UNDO_END' are tags
-added by `rl_begin_undo_group()' and `rl_end_undo_group()'.
+ Notice that 'UNDO_DELETE' means to insert some text, and
+'UNDO_INSERT' means to delete some text. That is, the undo code tells
+what to undo, not how to undo it. 'UNDO_BEGIN' and 'UNDO_END' are tags
+added by 'rl_begin_undo_group()' and 'rl_end_undo_group()'.
-- Function: int rl_begin_undo_group (void)
Begins saving undo information in a group construct. The undo
- information usually comes from calls to `rl_insert_text()' and
- `rl_delete_text()', but could be the result of calls to
- `rl_add_undo()'.
+ information usually comes from calls to 'rl_insert_text()' and
+ 'rl_delete_text()', but could be the result of calls to
+ 'rl_add_undo()'.
-- Function: int rl_end_undo_group (void)
- Closes the current undo group started with `rl_begin_undo_group
- ()'. There should be one call to `rl_end_undo_group()' for each
- call to `rl_begin_undo_group()'.
+ Closes the current undo group started with 'rl_begin_undo_group
+ ()'. There should be one call to 'rl_end_undo_group()' for each
+ call to 'rl_begin_undo_group()'.
- -- Function: void rl_add_undo (enum undo_code what, int start, int
- end, char *text)
+ -- Function: void rl_add_undo (enum undo_code what, int start, int end,
+ char *text)
Remember how to undo an event (according to WHAT). The affected
text runs from START to END, and encompasses TEXT.
@@ -2291,11 +2285,11 @@ added by `rl_begin_undo_group()' and `rl_end_undo_group()'.
Free the existing undo list.
-- Function: int rl_do_undo (void)
- Undo the first thing on the undo list. Returns `0' if there was
+ Undo the first thing on the undo list. Returns '0' if there was
nothing to undo, non-zero if something was undone.
Finally, if you neither insert nor delete text, but directly modify
-the existing text (e.g., change its case), call `rl_modifying()' once,
+the existing text (e.g., change its case), call 'rl_modifying()' once,
just before you modify the text. You must supply the indices of the
text range that you are going to modify.
@@ -2312,7 +2306,7 @@ File: readline.info, Node: Redisplay, Next: Modifying Text, Prev: Allowing Un
-- Function: void rl_redisplay (void)
Change what's displayed on the screen to reflect the current
- contents of `rl_line_buffer'.
+ contents of 'rl_line_buffer'.
-- Function: int rl_forced_update_display (void)
Force the line to be updated and redisplayed, whether or not
@@ -2326,8 +2320,12 @@ File: readline.info, Node: Redisplay, Next: Modifying Text, Prev: Allowing Un
Tell the update functions that we have moved onto a new line, with
RL_PROMPT already displayed. This could be used by applications
that want to output the prompt string themselves, but still need
- Readline to know the prompt string length for redisplay. It
- should be used after setting RL_ALREADY_PROMPTED.
+ Readline to know the prompt string length for redisplay. It should
+ be used after setting RL_ALREADY_PROMPTED.
+
+ -- Function: int rl_clear_visible_line (void)
+ Clear the screen lines corresponding to the current line's
+ contents.
-- Function: int rl_reset_line_state (void)
Reset the display state to a clean state and redisplay the current
@@ -2337,53 +2335,52 @@ File: readline.info, Node: Redisplay, Next: Modifying Text, Prev: Allowing Un
Move the cursor to the start of the next screen line.
-- Function: int rl_show_char (int c)
- Display character C on `rl_outstream'. If Readline has not been
+ Display character C on 'rl_outstream'. If Readline has not been
set to display meta characters directly, this will convert meta
characters to a meta-prefixed key sequence. This is intended for
use by applications which wish to do their own redisplay.
-- Function: int rl_message (const char *, ...)
- The arguments are a format string as would be supplied to `printf',
- possibly containing conversion specifications such as `%d', and
- any additional arguments necessary to satisfy the conversion
+ The arguments are a format string as would be supplied to 'printf',
+ possibly containing conversion specifications such as '%d', and any
+ additional arguments necessary to satisfy the conversion
specifications. The resulting string is displayed in the "echo
- area". The echo area is also used to display numeric arguments
- and search strings. You should call `rl_save_prompt' to save the
+ area". The echo area is also used to display numeric arguments and
+ search strings. You should call 'rl_save_prompt' to save the
prompt information before calling this function.
-- Function: int rl_clear_message (void)
- Clear the message in the echo area. If the prompt was saved with
- a call to `rl_save_prompt' before the last call to `rl_message',
- call `rl_restore_prompt' before calling this function.
+ Clear the message in the echo area. If the prompt was saved with a
+ call to 'rl_save_prompt' before the last call to 'rl_message', call
+ 'rl_restore_prompt' before calling this function.
-- Function: void rl_save_prompt (void)
Save the local Readline prompt display state in preparation for
- displaying a new message in the message area with `rl_message()'.
+ displaying a new message in the message area with 'rl_message()'.
-- Function: void rl_restore_prompt (void)
Restore the local Readline prompt display state saved by the most
- recent call to `rl_save_prompt'. if `rl_save_prompt' was called
- to save the prompt before a call to `rl_message', this function
- should be called before the corresponding call to
- `rl_clear_message'.
+ recent call to 'rl_save_prompt'. if 'rl_save_prompt' was called to
+ save the prompt before a call to 'rl_message', this function should
+ be called before the corresponding call to 'rl_clear_message'.
-- Function: int rl_expand_prompt (char *prompt)
Expand any special character sequences in PROMPT and set up the
- local Readline prompt redisplay variables. This function is
- called by `readline()'. It may also be called to expand the
- primary prompt if the `rl_on_new_line_with_prompt()' function or
- `rl_already_prompted' variable is used. It returns the number of
+ local Readline prompt redisplay variables. This function is called
+ by 'readline()'. It may also be called to expand the primary
+ prompt if the 'rl_on_new_line_with_prompt()' function or
+ 'rl_already_prompted' variable is used. It returns the number of
visible characters on the last line of the (possibly multi-line)
prompt. Applications may indicate that the prompt contains
characters that take up no physical screen space when displayed by
bracketing a sequence of such characters with the special markers
- `RL_PROMPT_START_IGNORE' and `RL_PROMPT_END_IGNORE' (declared in
- `readline.h'. This may be used to embed terminal-specific escape
+ 'RL_PROMPT_START_IGNORE' and 'RL_PROMPT_END_IGNORE' (declared in
+ 'readline.h'). This may be used to embed terminal-specific escape
sequences in prompts.
-- Function: int rl_set_prompt (const char *prompt)
Make Readline use PROMPT for subsequent redisplay. This calls
- `rl_expand_prompt()' to expand the prompt and sets `rl_prompt' to
+ 'rl_expand_prompt()' to expand the prompt and sets 'rl_prompt' to
the result.

@@ -2397,24 +2394,24 @@ File: readline.info, Node: Modifying Text, Next: Character Input, Prev: Redis
the number of characters inserted.
-- Function: int rl_delete_text (int start, int end)
- Delete the text between START and END in the current line.
- Returns the number of characters deleted.
+ Delete the text between START and END in the current line. Returns
+ the number of characters deleted.
-- Function: char * rl_copy_text (int start, int end)
Return a copy of the text between START and END in the current
line.
-- Function: int rl_kill_text (int start, int end)
- Copy the text between START and END in the current line to the
- kill ring, appending or prepending to the last kill if the last
- command was a kill command. The text is deleted. If START is
- less than END, the text is appended, otherwise prepended. If the
- last command was not a kill, a new kill ring slot is used.
+ Copy the text between START and END in the current line to the kill
+ ring, appending or prepending to the last kill if the last command
+ was a kill command. The text is deleted. If START is less than
+ END, the text is appended, otherwise prepended. If the last
+ command was not a kill, a new kill ring slot is used.
-- Function: int rl_push_macro_input (char *macro)
Cause MACRO to be inserted into the line, as if it had been invoked
by a key bound to a macro. Not especially useful; use
- `rl_insert_text()' instead.
+ 'rl_insert_text()' instead.

File: readline.info, Node: Character Input, Next: Terminal Management, Prev: Modifying Text, Up: Readline Convenience Functions
@@ -2426,9 +2423,9 @@ File: readline.info, Node: Character Input, Next: Terminal Management, Prev:
Return the next character available from Readline's current input
stream. This handles input inserted into the input stream via
RL_PENDING_INPUT (*note Readline Variables::) and
- `rl_stuff_char()', macros, and characters read from the keyboard.
+ 'rl_stuff_char()', macros, and characters read from the keyboard.
While waiting for input, this function will call any function
- assigned to the `rl_event_hook' variable.
+ assigned to the 'rl_event_hook' variable.
-- Function: int rl_getc (FILE *stream)
Return the next character available from STREAM, which is assumed
@@ -2437,23 +2434,23 @@ File: readline.info, Node: Character Input, Next: Terminal Management, Prev:
-- Function: int rl_stuff_char (int c)
Insert C into the Readline input stream. It will be "read" before
Readline attempts to read characters from the terminal with
- `rl_read_key()'. Up to 512 characters may be pushed back.
- `rl_stuff_char' returns 1 if the character was successfully
+ 'rl_read_key()'. Up to 512 characters may be pushed back.
+ 'rl_stuff_char' returns 1 if the character was successfully
inserted; 0 otherwise.
-- Function: int rl_execute_next (int c)
- Make C be the next command to be executed when `rl_read_key()' is
+ Make C be the next command to be executed when 'rl_read_key()' is
called. This sets RL_PENDING_INPUT.
-- Function: int rl_clear_pending_input (void)
Unset RL_PENDING_INPUT, effectively negating the effect of any
- previous call to `rl_execute_next()'. This works only if the
- pending input has not already been read with `rl_read_key()'.
+ previous call to 'rl_execute_next()'. This works only if the
+ pending input has not already been read with 'rl_read_key()'.
-- Function: int rl_set_keyboard_input_timeout (int u)
- While waiting for keyboard input in `rl_read_key()', Readline will
+ While waiting for keyboard input in 'rl_read_key()', Readline will
wait for U microseconds for input before calling any function
- assigned to `rl_event_hook'. U must be greater than or equal to
+ assigned to 'rl_event_hook'. U must be greater than or equal to
zero (a zero-length timeout is equivalent to a poll). The default
waiting period is one-tenth of a second. Returns the old timeout
value.
@@ -2465,30 +2462,37 @@ File: readline.info, Node: Terminal Management, Next: Utility Functions, Prev
-------------------------
-- Function: void rl_prep_terminal (int meta_flag)
- Modify the terminal settings for Readline's use, so `readline()'
+ Modify the terminal settings for Readline's use, so 'readline()'
can read a single character at a time from the keyboard. The
META_FLAG argument should be non-zero if Readline should read
eight-bit input.
-- Function: void rl_deprep_terminal (void)
- Undo the effects of `rl_prep_terminal()', leaving the terminal in
+ Undo the effects of 'rl_prep_terminal()', leaving the terminal in
the state in which it was before the most recent call to
- `rl_prep_terminal()'.
+ 'rl_prep_terminal()'.
-- Function: void rl_tty_set_default_bindings (Keymap kmap)
Read the operating system's terminal editing characters (as would
- be displayed by `stty') to their Readline equivalents. The
+ be displayed by 'stty') to their Readline equivalents. The
bindings are performed in KMAP.
-- Function: void rl_tty_unset_default_bindings (Keymap kmap)
- Reset the bindings manipulated by `rl_tty_set_default_bindings' so
- that the terminal editing characters are bound to `rl_insert'.
- The bindings are performed in KMAP.
+ Reset the bindings manipulated by 'rl_tty_set_default_bindings' so
+ that the terminal editing characters are bound to 'rl_insert'. The
+ bindings are performed in KMAP.
+
+ -- Function: int rl_tty_set_echoing (int value)
+ Set Readline's idea of whether or not it is echoing output to its
+ output stream (RL_OUTSTREAM). If VALUE is 0, Readline does not
+ display output to RL_OUTSTREAM; any other value enables output.
+ The initial value is set when Readline initializes the terminal
+ settings. This function returns the previous value.
-- Function: int rl_reset_terminal (const char *terminal_name)
Reinitialize Readline's idea of the terminal settings using
- TERMINAL_NAME as the terminal type (e.g., `vt100'). If
- TERMINAL_NAME is `NULL', the value of the `TERM' environment
+ TERMINAL_NAME as the terminal type (e.g., 'vt100'). If
+ TERMINAL_NAME is 'NULL', the value of the 'TERM' environment
variable is used.

@@ -2499,54 +2503,54 @@ File: readline.info, Node: Utility Functions, Next: Miscellaneous Functions,
-- Function: int rl_save_state (struct readline_state *sp)
Save a snapshot of Readline's internal state to SP. The contents
- of the READLINE_STATE structure are documented in `readline.h'.
+ of the READLINE_STATE structure are documented in 'readline.h'.
The caller is responsible for allocating the structure.
-- Function: int rl_restore_state (struct readline_state *sp)
Restore Readline's internal state to that stored in SP, which must
- have been saved by a call to `rl_save_state'. The contents of the
- READLINE_STATE structure are documented in `readline.h'. The
+ have been saved by a call to 'rl_save_state'. The contents of the
+ READLINE_STATE structure are documented in 'readline.h'. The
caller is responsible for freeing the structure.
-- Function: void rl_free (void *mem)
Deallocate the memory pointed to by MEM. MEM must have been
- allocated by `malloc'.
+ allocated by 'malloc'.
-- Function: void rl_replace_line (const char *text, int clear_undo)
- Replace the contents of `rl_line_buffer' with TEXT. The point and
+ Replace the contents of 'rl_line_buffer' with TEXT. The point and
mark are preserved, if possible. If CLEAR_UNDO is non-zero, the
undo list associated with the current line is cleared.
-- Function: void rl_extend_line_buffer (int len)
- Ensure that `rl_line_buffer' has enough space to hold LEN
+ Ensure that 'rl_line_buffer' has enough space to hold LEN
characters, possibly reallocating it if necessary.
-- Function: int rl_initialize (void)
Initialize or re-initialize Readline's internal state. It's not
- strictly necessary to call this; `readline()' calls it before
+ strictly necessary to call this; 'readline()' calls it before
reading any input.
-- Function: int rl_ding (void)
- Ring the terminal bell, obeying the setting of `bell-style'.
+ Ring the terminal bell, obeying the setting of 'bell-style'.
-- Function: int rl_alphabetic (int c)
Return 1 if C is an alphabetic character.
-- Function: void rl_display_match_list (char **matches, int len, int
max)
- A convenience function for displaying a list of strings in
- columnar format on Readline's output stream. `matches' is the list
- of strings, in argv format, such as a list of completion matches.
- `len' is the number of strings in `matches', and `max' is the
- length of the longest string in `matches'. This function uses the
- setting of `print-completions-horizontally' to select how the
+ A convenience function for displaying a list of strings in columnar
+ format on Readline's output stream. 'matches' is the list of
+ strings, in argv format, such as a list of completion matches.
+ 'len' is the number of strings in 'matches', and 'max' is the
+ length of the longest string in 'matches'. This function uses the
+ setting of 'print-completions-horizontally' to select how the
matches are displayed (*note Readline Init File Syntax::). When
displaying completions, this function 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,
+ used for display to the value of 'completion-display-width', the
+ value of the environment variable 'COLUMNS', or the screen width,
in that order.
- The following are implemented as macros, defined in `chardefs.h'.
+ The following are implemented as macros, defined in 'chardefs.h'.
Applications should refrain from using them.
-- Function: int _rl_uppercase_p (int c)
@@ -2580,34 +2584,34 @@ File: readline.info, Node: Miscellaneous Functions, Next: Alternate Interface,
Bind the key sequence KEYSEQ to invoke the macro MACRO. The
binding is performed in MAP. When KEYSEQ is invoked, the MACRO
will be inserted into the line. This function is deprecated; use
- `rl_generic_bind()' instead.
+ 'rl_generic_bind()' instead.
-- Function: void rl_macro_dumper (int readable)
- Print the key sequences bound to macros and their values, using
- the current keymap, to `rl_outstream'. If READABLE is non-zero,
- the list is formatted in such a way that it can be made part of an
- `inputrc' file and re-read.
+ Print the key sequences bound to macros and their values, using the
+ current keymap, to 'rl_outstream'. If READABLE is non-zero, the
+ list is formatted in such a way that it can be made part of an
+ 'inputrc' file and re-read.
-- Function: int rl_variable_bind (const char *variable, const char
*value)
- Make the Readline variable VARIABLE have VALUE. This behaves as
- if the readline command `set VARIABLE VALUE' had been executed in
- an `inputrc' file (*note Readline Init File Syntax::).
+ Make the Readline variable VARIABLE have VALUE. This behaves as if
+ the readline command 'set VARIABLE VALUE' had been executed in an
+ 'inputrc' file (*note Readline Init File Syntax::).
-- Function: char * rl_variable_value (const char *variable)
Return a string representing the value of the Readline variable
- VARIABLE. For boolean variables, this string is either `on' or
- `off'.
+ VARIABLE. For boolean variables, this string is either 'on' or
+ 'off'.
-- Function: void rl_variable_dumper (int readable)
Print the readline variable names and their current values to
- `rl_outstream'. If READABLE is non-zero, the list is formatted in
- such a way that it can be made part of an `inputrc' file and
+ 'rl_outstream'. If READABLE is non-zero, the list is formatted in
+ such a way that it can be made part of an 'inputrc' file and
re-read.
-- Function: int rl_set_paren_blink_timeout (int u)
Set the time interval (in microseconds) that Readline waits when
- showing a balancing character when `blink-matching-paren' has been
+ showing a balancing character when 'blink-matching-paren' has been
enabled.
-- Function: char * rl_get_termcap (const char *cap)
@@ -2620,9 +2624,9 @@ File: readline.info, Node: Miscellaneous Functions, Next: Alternate Interface,
-- Function: void rl_clear_history (void)
Clear the history list by deleting all of the entries, in the same
- manner as the History library's `clear_history()' function. This
- differs from `clear_history' because it frees private data
- Readline saves in the history list.
+ manner as the History library's 'clear_history()' function. This
+ differs from 'clear_history' because it frees private data Readline
+ saves in the history list.

File: readline.info, Node: Alternate Interface, Next: A Readline Example, Prev: Miscellaneous Functions, Up: Readline Convenience Functions
@@ -2630,11 +2634,11 @@ File: readline.info, Node: Alternate Interface, Next: A Readline Example, Pre
2.4.12 Alternate Interface
--------------------------
-An alternate interface is available to plain `readline()'. Some
+An alternate interface is available to plain 'readline()'. Some
applications need to interleave keyboard I/O with file, device, or
-window system I/O, typically by using a main loop to `select()' on
+window system I/O, typically by using a main loop to 'select()' on
various file descriptors. To accommodate this need, readline can also
-be invoked as a `callback' function from an event loop. There are
+be invoked as a 'callback' function from an event loop. There are
functions available to make this easy.
-- Function: void rl_callback_handler_install (const char *prompt,
@@ -2643,29 +2647,37 @@ functions available to make this easy.
expanded value of PROMPT. Save the value of LHANDLER to use as a
handler function to call when a complete line of input has been
entered. The handler function receives the text of the line as an
- argument.
+ argument. As with 'readline()', the handler function should 'free'
+ the line when it it finished with it.
-- Function: void rl_callback_read_char (void)
Whenever an application determines that keyboard input is
- available, it should call `rl_callback_read_char()', which will
+ available, it should call 'rl_callback_read_char()', which will
read the next character from the current input source. If that
- character completes the line, `rl_callback_read_char' will invoke
- the LHANDLER function installed by `rl_callback_handler_install'
- to process the line. Before calling the LHANDLER function, the
+ character completes the line, 'rl_callback_read_char' will invoke
+ the LHANDLER function installed by 'rl_callback_handler_install' to
+ process the line. Before calling the LHANDLER function, the
terminal settings are reset to the values they had before calling
- `rl_callback_handler_install'. If the LHANDLER function returns,
+ 'rl_callback_handler_install'. If the LHANDLER function returns,
and the line handler remains installed, the terminal settings are
- modified for Readline's use again. `EOF' is indicated by calling
- LHANDLER with a `NULL' line.
+ modified for Readline's use again. 'EOF' is indicated by calling
+ LHANDLER with a 'NULL' line.
+
+ -- Function: void rl_callback_sigcleanup (void)
+ Clean up any internal state the callback interface uses to maintain
+ state between calls to rl_callback_read_char (e.g., the state of
+ any active incremental searches). This is intended to be used by
+ applications that wish to perform their own signal handling;
+ Readline's internal signal handler calls this when appropriate.
-- Function: void rl_callback_handler_remove (void)
Restore the terminal to its initial state and remove the line
- handler. This may be called from within a callback as well as
- independently. If the LHANDLER installed by
- `rl_callback_handler_install' does not exit the program, either
+ handler. You may call this function from within a callback as well
+ as independently. If the LHANDLER installed by
+ 'rl_callback_handler_install' does not exit the program, either
this function or the function referred to by the value of
- `rl_deprep_term_function' should be called before the program
- exits to reset the terminal settings.
+ 'rl_deprep_term_function' should be called before the program exits
+ to reset the terminal settings.

File: readline.info, Node: A Readline Example, Next: Alternate Interface Example, Prev: Alternate Interface, Up: Readline Convenience Functions
@@ -2675,8 +2687,8 @@ File: readline.info, Node: A Readline Example, Next: Alternate Interface Examp
Here is a function which changes lowercase characters to their uppercase
equivalents, and uppercase characters to lowercase. If this function
-was bound to `M-c', then typing `M-c' would change the case of the
-character under point. Typing `M-1 0 M-c' would change the case of the
+was bound to 'M-c', then typing 'M-c' would change the case of the
+character under point. Typing 'M-1 0 M-c' would change the case of the
following 10 characters, leaving the cursor on the last character
changed.
@@ -2748,12 +2760,16 @@ understands the EOF character or "exit" to exit the program.
/* Standard include files. stdio.h is required. */
#include <stdlib.h>
+ #include <string.h>
#include <unistd.h>
+ #include <locale.h>
/* Used for select(2) */
#include <sys/types.h>
#include <sys/select.h>
+ #include <signal.h>
+
#include <stdio.h>
/* Standard readline include files. */
@@ -2761,10 +2777,20 @@ understands the EOF character or "exit" to exit the program.
#include <readline/history.h>
static void cb_linehandler (char *);
+ static void sighandler (int);
int running;
+ int sigwinch_received;
const char *prompt = "rltest$ ";
+ /* Handle SIGWINCH and window size changes when readline is not active and
+ reading a character. */
+ static void
+ sighandler (int sig)
+ {
+ sigwinch_received = 1;
+ }
+
/* Callback function called for each line when accept-line executed, EOF
seen, or EOF character read. This sets a flag and returns; it could
also call exit(3). */
@@ -2799,6 +2825,13 @@ understands the EOF character or "exit" to exit the program.
fd_set fds;
int r;
+ /* Set the default locale values according to environment variables. */
+ setlocale (LC_ALL, "");
+
+ /* Handle window size changes when readline is not active and reading
+ characters. */
+ signal (SIGWINCH, sighandler);
+
/* Install the line handler. */
rl_callback_handler_install (prompt, cb_linehandler);
@@ -2813,12 +2846,19 @@ understands the EOF character or "exit" to exit the program.
FD_SET (fileno (rl_instream), &fds);
r = select (FD_SETSIZE, &fds, NULL, NULL, NULL);
- if (r < 0)
+ if (r < 0 && errno != EINTR)
{
perror ("rltest: select");
rl_callback_handler_remove ();
break;
}
+ if (sigwinch_received)
+ {
+ rl_resize_terminal ();
+ sigwinch_received = 0;
+ }
+ if (r < 0)
+ continue;
if (FD_ISSET (fileno (rl_instream), &fds))
rl_callback_read_char ();
@@ -2838,96 +2878,131 @@ Signals are asynchronous events sent to a process by the Unix kernel,
sometimes on behalf of another process. They are intended to indicate
exceptional events, like a user pressing the interrupt key on his
terminal, or a network connection being broken. There is a class of
-signals that can be sent to the process currently reading input from
-the keyboard. Since Readline changes the terminal attributes when it
-is called, it needs to perform special processing when such a signal is
+signals that can be sent to the process currently reading input from the
+keyboard. Since Readline changes the terminal attributes when it is
+called, it needs to perform special processing when such a signal is
received in order to restore the terminal to a sane state, or provide
application writers with functions to do so manually.
Readline contains an internal signal handler that is installed for a
-number of signals (`SIGINT', `SIGQUIT', `SIGTERM', `SIGHUP', `SIGALRM',
-`SIGTSTP', `SIGTTIN', and `SIGTTOU'). When one of these signals is
-received, the signal handler will reset the terminal attributes to
-those that were in effect before `readline()' was called, reset the
-signal handling to what it was before `readline()' was called, and
-resend the signal to the calling application. If and when the calling
+number of signals ('SIGINT', 'SIGQUIT', 'SIGTERM', 'SIGHUP', 'SIGALRM',
+'SIGTSTP', 'SIGTTIN', and 'SIGTTOU'). When one of these signals is
+received, the signal handler will reset the terminal attributes to those
+that were in effect before 'readline()' was called, reset the signal
+handling to what it was before 'readline()' was called, and resend the
+signal to the calling application. If and when the calling
application's signal handler returns, Readline will reinitialize the
-terminal and continue to accept input. When a `SIGINT' is received,
-the Readline signal handler performs some additional work, which will
-cause any partially-entered line to be aborted (see the description of
-`rl_free_line_state()' below).
+terminal and continue to accept input. When a 'SIGINT' is received, the
+Readline signal handler performs some additional work, which will cause
+any partially-entered line to be aborted (see the description of
+'rl_free_line_state()' below).
- There is an additional Readline signal handler, for `SIGWINCH', which
+ There is an additional Readline signal handler, for 'SIGWINCH', which
the kernel sends to a process whenever the terminal's size changes (for
-example, if a user resizes an `xterm'). The Readline `SIGWINCH'
-handler updates Readline's internal screen size information, and then
-calls any `SIGWINCH' signal handler the calling application has
-installed. Readline calls the application's `SIGWINCH' signal handler
-without resetting the terminal to its original state. If the
-application's signal handler does more than update its idea of the
-terminal size and return (for example, a `longjmp' back to a main
-processing loop), it _must_ call `rl_cleanup_after_signal()' (described
-below), to restore the terminal state.
+example, if a user resizes an 'xterm'). The Readline 'SIGWINCH' handler
+updates Readline's internal screen size information, and then calls any
+'SIGWINCH' signal handler the calling application has installed.
+Readline calls the application's 'SIGWINCH' signal handler without
+resetting the terminal to its original state. If the application's
+signal handler does more than update its idea of the terminal size and
+return (for example, a 'longjmp' back to a main processing loop), it
+_must_ call 'rl_cleanup_after_signal()' (described below), to restore
+the terminal state.
+
+ When an application is using the callback interface (*note Alternate
+Interface::), Readline installs signal handlers only for the duration of
+the call to 'rl_callback_read_char'. Applications using the callback
+interface should be prepared to clean up Readline's state if they wish
+to handle the signal before the line handler completes and restores the
+terminal state.
+
+ If an application using the callback interface wishes to have
+Readline install its signal handlers at the time the application calls
+'rl_callback_handler_install' and remove them only when a complete line
+of input has been read, it should set the
+'rl_persistent_signal_handlers' variable to a non-zero value. This
+allows an application to defer all of the handling of the signals
+Readline catches to Readline. Applications should use this variable
+with care; it can result in Readline catching signals and not acting on
+them (or allowing the application to react to them) until the
+application calls 'rl_callback_read_char'. This can result in an
+application becoming less responsive to keyboard signals like SIGINT. If
+an application does not want or need to perform any signal handling, or
+does not need to do any processing between calls to
+'rl_callback_read_char', setting this variable may be desirable.
Readline provides two variables that allow application writers to
control whether or not it will catch certain signals and act on them
when they are received. It is important that applications change the
-values of these variables only when calling `readline()', not in a
+values of these variables only when calling 'readline()', not in a
signal handler, so Readline's internal signal state is not corrupted.
-- Variable: int rl_catch_signals
- If this variable is non-zero, Readline will install signal
- handlers for `SIGINT', `SIGQUIT', `SIGTERM', `SIGHUP', `SIGALRM',
- `SIGTSTP', `SIGTTIN', and `SIGTTOU'.
+ If this variable is non-zero, Readline will install signal handlers
+ for 'SIGINT', 'SIGQUIT', 'SIGTERM', 'SIGHUP', 'SIGALRM', 'SIGTSTP',
+ 'SIGTTIN', and 'SIGTTOU'.
- The default value of `rl_catch_signals' is 1.
+ The default value of 'rl_catch_signals' is 1.
-- Variable: int rl_catch_sigwinch
If this variable is set to a non-zero value, Readline will install
- a signal handler for `SIGWINCH'.
+ a signal handler for 'SIGWINCH'.
+
+ The default value of 'rl_catch_sigwinch' is 1.
+
+ -- Variable: int rl_persistent_signal_handlers
+ If an application using the callback interface wishes Readline's
+ signal handlers to be installed and active during the set of calls
+ to 'rl_callback_read_char' that constitutes an entire single line,
+ it should set this variable to a non-zero value.
- The default value of `rl_catch_sigwinch' is 1.
+ The default value of 'rl_persistent_signal_handlers' is 0.
-- Variable: int rl_change_environment
If this variable is set to a non-zero value, and Readline is
- handling `SIGWINCH', Readline will modify the LINES and COLUMNS
- environment variables upon receipt of a `SIGWINCH'
+ handling 'SIGWINCH', Readline will modify the LINES and COLUMNS
+ environment variables upon receipt of a 'SIGWINCH'
- The default value of `rl_change_environment' is 1.
+ The default value of 'rl_change_environment' is 1.
If an application does not wish to have Readline catch any signals,
-or to handle signals other than those Readline catches (`SIGHUP', for
+or to handle signals other than those Readline catches ('SIGHUP', for
example), Readline provides convenience functions to do the necessary
terminal and internal state cleanup upon receipt of a signal.
+ -- Function: int rl_pending_signal (void)
+ Return the signal number of the most recent signal Readline
+ received but has not yet handled, or 0 if there is no pending
+ signal.
+
-- Function: void rl_cleanup_after_signal (void)
This function will reset the state of the terminal to what it was
- before `readline()' was called, and remove the Readline signal
+ before 'readline()' was called, and remove the Readline signal
handlers for all signals, depending on the values of
- `rl_catch_signals' and `rl_catch_sigwinch'.
+ 'rl_catch_signals' and 'rl_catch_sigwinch'.
-- Function: void rl_free_line_state (void)
This will free any partial state associated with the current input
line (undo information, any partial history entry, any
- partially-entered keyboard macro, and any partially-entered
- numeric argument). This should be called before
- `rl_cleanup_after_signal()'. The Readline signal handler for
- `SIGINT' calls this to abort the current input line.
+ partially-entered keyboard macro, and any partially-entered numeric
+ argument). This should be called before
+ 'rl_cleanup_after_signal()'. The Readline signal handler for
+ 'SIGINT' calls this to abort the current input line.
-- Function: void rl_reset_after_signal (void)
This will reinitialize the terminal and reinstall any Readline
- signal handlers, depending on the values of `rl_catch_signals' and
- `rl_catch_sigwinch'.
+ signal handlers, depending on the values of 'rl_catch_signals' and
+ 'rl_catch_sigwinch'.
- 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.
+ 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.
-- Function: void rl_echo_signal_char (int sig)
If an application wishes to install its own signal handlers, but
still have readline display characters that generate signals,
- calling this function with SIG set to `SIGINT', `SIGQUIT', or
- `SIGTSTP' will display the character generating that signal.
+ calling this function with SIG set to 'SIGINT', 'SIGQUIT', or
+ 'SIGTSTP' will display the character generating that signal.
-- Function: void rl_resize_terminal (void)
Update Readline's internal screen size by reading values from the
@@ -2938,7 +3013,7 @@ to update its idea of the terminal size when a `SIGWINCH' is received.
columns. If either ROWS or COLUMNS is less than or equal to 0,
Readline's idea of that terminal dimension is unchanged.
- If an application does not want to install a `SIGWINCH' handler, but
+ 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.
@@ -2954,14 +3029,14 @@ screen size may be queried.
handlers.
-- Function: int rl_set_signals (void)
- Install Readline's signal handler for `SIGINT', `SIGQUIT',
- `SIGTERM', `SIGHUP', `SIGALRM', `SIGTSTP', `SIGTTIN', `SIGTTOU',
- and `SIGWINCH', depending on the values of `rl_catch_signals' and
- `rl_catch_sigwinch'.
+ Install Readline's signal handler for 'SIGINT', 'SIGQUIT',
+ 'SIGTERM', 'SIGHUP', 'SIGALRM', 'SIGTSTP', 'SIGTTIN', 'SIGTTOU',
+ and 'SIGWINCH', depending on the values of 'rl_catch_signals' and
+ 'rl_catch_sigwinch'.
-- Function: int rl_clear_signals (void)
Remove all of the Readline signal handlers installed by
- `rl_set_signals()'.
+ 'rl_set_signals()'.

File: readline.info, Node: Custom Completers, Prev: Readline Signal Handling, Up: Programming with GNU Readline
@@ -2992,58 +3067,56 @@ In order to complete some text, the full list of possible completions
must be available. That is, it is not possible to accurately expand a
partial word without knowing all of the possible words which make sense
in that context. The Readline library provides the user interface to
-completion, and two of the most common completion functions: filename
+completion, and two of the most common completion functions: filename
and username. For completing other types of text, you must write your
own completion function. This section describes exactly what such
functions must do, and provides an example.
There are three major functions used to perform completion:
- 1. The user-interface function `rl_complete()'. This function is
+ 1. The user-interface function 'rl_complete()'. This function is
called with the same arguments as other bindable Readline
functions: COUNT and INVOKING_KEY. It isolates the word to be
- completed and calls `rl_completion_matches()' to generate a list
- of possible completions. It then either lists the possible
- completions, inserts the possible completions, or actually
- performs the completion, depending on which behavior is desired.
+ completed and calls 'rl_completion_matches()' to generate a list of
+ possible completions. It then either lists the possible
+ completions, inserts the possible completions, or actually performs
+ the completion, depending on which behavior is desired.
- 2. The internal function `rl_completion_matches()' uses an
+ 2. The internal function 'rl_completion_matches()' uses an
application-supplied "generator" function to generate the list of
- possible matches, and then returns the array of these matches.
- The caller should place the address of its generator function in
- `rl_completion_entry_function'.
+ possible matches, and then returns the array of these matches. The
+ caller should place the address of its generator function in
+ 'rl_completion_entry_function'.
3. The generator function is called repeatedly from
- `rl_completion_matches()', returning a string each time. The
+ 'rl_completion_matches()', returning a string each time. The
arguments to the generator function are TEXT and STATE. TEXT is
- the partial word to be completed. STATE is zero the first time
- the function is called, allowing the generator to perform any
- necessary initialization, and a positive non-zero integer for each
- subsequent call. The generator function returns `(char *)NULL' to
- inform `rl_completion_matches()' that there are no more
- possibilities left. Usually the generator function computes the
- list of possible completions when STATE is zero, and returns them
- one at a time on subsequent calls. Each string the generator
- function returns as a match must be allocated with `malloc()';
- Readline frees the strings when it has finished with them. Such a
- generator function is referred to as an "application-specific
- completion function".
-
+ the partial word to be completed. STATE is zero the first time the
+ function is called, allowing the generator to perform any necessary
+ initialization, and a positive non-zero integer for each subsequent
+ call. The generator function returns '(char *)NULL' to inform
+ 'rl_completion_matches()' that there are no more possibilities
+ left. Usually the generator function computes the list of possible
+ completions when STATE is zero, and returns them one at a time on
+ subsequent calls. Each string the generator function returns as a
+ match must be allocated with 'malloc()'; Readline frees the strings
+ when it has finished with them. Such a generator function is
+ referred to as an "application-specific completion function".
-- Function: int rl_complete (int ignore, int invoking_key)
Complete the word at or before point. You have supplied the
function that does the initial simple matching selection algorithm
- (see `rl_completion_matches()'). The default is to do filename
+ (see 'rl_completion_matches()'). The default is to do filename
completion.
-- Variable: rl_compentry_func_t * rl_completion_entry_function
This is a pointer to the generator function for
- `rl_completion_matches()'. If the value of
- `rl_completion_entry_function' is `NULL' then the default filename
- generator function, `rl_filename_completion_function()', is used.
+ 'rl_completion_matches()'. If the value of
+ 'rl_completion_entry_function' is 'NULL' then the default filename
+ generator function, 'rl_filename_completion_function()', is used.
An "application-specific completion function" is a function whose
- address is assigned to `rl_completion_entry_function' and whose
- return values are used to generate possible completions.
+ address is assigned to 'rl_completion_entry_function' and whose
+ return values are used to generate possible completions.

File: readline.info, Node: Completion Functions, Next: Completion Variables, Prev: How Completing Works, Up: Custom Completers
@@ -3056,51 +3129,51 @@ Readline.
-- Function: int rl_complete_internal (int what_to_do)
Complete the word at or before point. WHAT_TO_DO says what to do
- with the completion. A value of `?' means list the possible
- completions. `TAB' means do standard completion. `*' means
- insert all of the possible completions. `!' means to display all
- of the possible completions, if there is more than one, as well as
- performing partial completion. `@' is similar to `!', but
- possible completions are not listed if the possible completions
- share a common prefix.
+ with the completion. A value of '?' means list the possible
+ completions. 'TAB' means do standard completion. '*' means insert
+ all of the possible completions. '!' means to display all of the
+ possible completions, if there is more than one, as well as
+ performing partial completion. '@' is similar to '!', but possible
+ completions are not listed if the possible completions share a
+ common prefix.
-- Function: int rl_complete (int ignore, int invoking_key)
Complete the word at or before point. You have supplied the
function that does the initial simple matching selection algorithm
- (see `rl_completion_matches()' and `rl_completion_entry_function').
+ (see 'rl_completion_matches()' and 'rl_completion_entry_function').
The default is to do filename completion. This calls
- `rl_complete_internal()' with an argument depending on
+ 'rl_complete_internal()' with an argument depending on
INVOKING_KEY.
-- Function: int rl_possible_completions (int count, int invoking_key)
- List the possible completions. See description of `rl_complete
- ()'. This calls `rl_complete_internal()' with an argument of `?'.
+ List the possible completions. See description of 'rl_complete
+ ()'. This calls 'rl_complete_internal()' with an argument of '?'.
-- Function: int rl_insert_completions (int count, int invoking_key)
Insert the list of possible completions into the line, deleting the
- partially-completed word. See description of `rl_complete()'.
- This calls `rl_complete_internal()' with an argument of `*'.
+ partially-completed word. See description of 'rl_complete()'.
+ This calls 'rl_complete_internal()' with an argument of '*'.
-- Function: int rl_completion_mode (rl_command_func_t *cfunc)
- Returns the appropriate value to pass to `rl_complete_internal()'
+ Returns the appropriate value to pass to 'rl_complete_internal()'
depending on whether CFUNC was called twice in succession and the
- values of the `show-all-if-ambiguous' and `show-all-if-unmodified'
+ values of the 'show-all-if-ambiguous' and 'show-all-if-unmodified'
variables. Application-specific completion functions may use this
- function to present the same interface as `rl_complete()'.
+ function to present the same interface as 'rl_complete()'.
-- Function: char ** rl_completion_matches (const char *text,
rl_compentry_func_t *entry_func)
Returns an array of strings which is a list of completions for
- TEXT. If there are no completions, returns `NULL'. The first
+ TEXT. If there are no completions, returns 'NULL'. The first
entry in the returned array is the substitution for TEXT. The
remaining entries are the possible completions. The array is
- terminated with a `NULL' pointer.
+ terminated with a 'NULL' pointer.
- ENTRY_FUNC is a function of two args, and returns a `char *'. The
- first argument is TEXT. The second is a state argument; it is
- zero on the first call, and non-zero on subsequent calls.
- ENTRY_FUNC returns a `NULL' pointer to the caller when there are
- no more matches.
+ ENTRY_FUNC is a function of two args, and returns a 'char *'. The
+ first argument is TEXT. The second is a state argument; it is zero
+ on the first call, and non-zero on subsequent calls. ENTRY_FUNC
+ returns a 'NULL' pointer to the caller when there are no more
+ matches.
-- Function: char * rl_filename_completion_function (const char *text,
int state)
@@ -3112,7 +3185,7 @@ Readline.
-- Function: char * rl_username_completion_function (const char *text,
int state)
A completion generator for usernames. TEXT contains a partial
- username preceded by a random character (usually `~'). As with all
+ username preceded by a random character (usually '~'). As with all
completion generators, STATE is zero on the first call and non-zero
for subsequent calls.
@@ -3123,31 +3196,31 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
--------------------------
-- Variable: rl_compentry_func_t * rl_completion_entry_function
- A pointer to the generator function for `rl_completion_matches()'.
- `NULL' means to use `rl_filename_completion_function()', the
+ A pointer to the generator function for 'rl_completion_matches()'.
+ 'NULL' means to use 'rl_filename_completion_function()', the
default filename completer.
-- Variable: rl_completion_func_t * rl_attempted_completion_function
A pointer to an alternative function to create matches. The
function is called with TEXT, START, and END. START and END are
- indices in `rl_line_buffer' defining the boundaries of TEXT, which
- is a character string. If this function exists and returns
- `NULL', or if this variable is set to `NULL', then `rl_complete()'
- will call the value of `rl_completion_entry_function' to generate
+ indices in 'rl_line_buffer' defining the boundaries of TEXT, which
+ is a character string. If this function exists and returns 'NULL',
+ or if this variable is set to 'NULL', then 'rl_complete()' will
+ call the value of 'rl_completion_entry_function' to generate
matches, otherwise the array of strings returned will be used. If
- this function sets the `rl_attempted_completion_over' variable to
- a non-zero value, Readline will not perform its default completion
+ this function sets the 'rl_attempted_completion_over' variable to a
+ non-zero value, Readline will not perform its default completion
even if this function returns no matches.
-- Variable: rl_quote_func_t * rl_filename_quoting_function
A pointer to a function that will quote a filename in an
application-specific fashion. This is called if filename
completion is being attempted and one of the characters in
- `rl_filename_quote_characters' appears in a completed filename.
+ 'rl_filename_quote_characters' appears in a completed filename.
The function is called with TEXT, MATCH_TYPE, and QUOTE_POINTER.
The TEXT is the filename to be quoted. The MATCH_TYPE is either
- `SINGLE_MATCH', if there is only one completion match, or
- `MULT_MATCH'. Some functions use this to decide whether or not to
+ 'SINGLE_MATCH', if there is only one completion match, or
+ 'MULT_MATCH'. Some functions use this to decide whether or not to
insert a closing quote character. The QUOTE_POINTER is a pointer
to any opening quote character the user typed. Some functions
choose to reset this character.
@@ -3155,11 +3228,11 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
-- Variable: rl_dequote_func_t * rl_filename_dequoting_function
A pointer to a function that will remove application-specific
quoting characters from a filename before completion is attempted,
- so those characters do not interfere with matching the text
- against names in the filesystem. It is called with TEXT, the text
- of the word to be dequoted, and QUOTE_CHAR, which is the quoting
- character that delimits the filename (usually `'' or `"'). If
- QUOTE_CHAR is zero, the filename was not in an embedded string.
+ so those characters do not interfere with matching the text against
+ names in the filesystem. It is called with TEXT, the text of the
+ word to be dequoted, and QUOTE_CHAR, which is the quoting character
+ that delimits the filename (usually ''' or '"'). If QUOTE_CHAR is
+ zero, the filename was not in an embedded string.
-- Variable: rl_linebuf_func_t * rl_char_is_quoted_p
A pointer to a function to call that determines whether or not a
@@ -3168,30 +3241,30 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
function is called with two arguments: TEXT, the text of the line,
and INDEX, the index of the character in the line. It is used to
decide whether a character found in
- `rl_completer_word_break_characters' should be used to break words
+ 'rl_completer_word_break_characters' should be used to break words
for the completer.
-- Variable: rl_compignore_func_t * rl_ignore_some_completions_function
This function, if defined, is called by the completer when real
- filename completion is done, after all the matching names have
- been generated. It is passed a `NULL' terminated array of matches.
- The first element (`matches[0]') is the maximal substring common
- to all matches. This function can re-arrange the list of matches
- as required, but each element deleted from the array must be freed.
+ filename completion is done, after all the matching names have been
+ generated. It is passed a 'NULL' terminated array of matches. The
+ first element ('matches[0]') is the maximal substring common to all
+ matches. This function can re-arrange the list of matches as
+ required, but each element deleted from the array must be freed.
-- Variable: rl_icppfunc_t * rl_directory_completion_hook
This function, if defined, is allowed to modify the directory
portion of filenames Readline completes. It could be used to
expand symbolic links or shell variables in pathnames. It is
- called with the address of a string (the current directory name)
- as an argument, and may modify that string. If the string is
- replaced with a new string, the old value should be freed. Any
- modified directory name should have a trailing slash. The
- modified value will be used as part of the completion, replacing
- the directory portion of the pathname the user typed. At the
- least, even if no other expansion is performed, this function
- should remove any quote characters from the directory name,
- because its result will be passed directly to `opendir()'.
+ called with the address of a string (the current directory name) as
+ an argument, and may modify that string. If the string is replaced
+ with a new string, the old value should be freed. Any modified
+ directory name should have a trailing slash. The modified value
+ will be used as part of the completion, replacing the directory
+ portion of the pathname the user typed. At the least, even if no
+ other expansion is performed, this function should remove any quote
+ characters from the directory name, because its result will be
+ passed directly to 'opendir()'.
The directory completion hook returns an integer that should be
non-zero if the function modifies its directory argument. The
@@ -3201,13 +3274,13 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
If non-zero, this is the address of a function to call when
completing a directory name. This function takes the address of
the directory name to be modified as an argument. Unlike
- `rl_directory_completion_hook', it only modifies the directory
- name used in `opendir', not what is displayed when the possible
+ 'rl_directory_completion_hook', it only modifies the directory name
+ used in 'opendir', not what is displayed when the possible
completions are printed or inserted. It is called before
rl_directory_completion_hook. At the least, even if no other
expansion is performed, this function should remove any quote
characters from the directory name, because its result will be
- passed directly to `opendir()'.
+ passed directly to 'opendir()'.
The directory rewrite hook returns an integer that should be
non-zero if the function modfies its directory argument. The
@@ -3216,9 +3289,9 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
-- Variable: rl_icppfunc_t * rl_filename_stat_hook
If non-zero, this is the address of a function for the completer to
call before deciding which character to append to a completed name.
- This function modifies its filename name argument, and the
- modified value is passed to `stat()' to determine the file's type
- and characteristics. This function does not need to remove quote
+ This function modifies its filename name argument, and the modified
+ value is passed to '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
@@ -3244,19 +3317,19 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
If non-zero, then this is the address of a function to call when
completing a word would normally display the list of possible
matches. This function is called in lieu of Readline displaying
- the list. It takes three arguments: (`char **'MATCHES, `int'
- NUM_MATCHES, `int' MAX_LENGTH) where MATCHES is the array of
+ the list. It takes three arguments: ('char **'MATCHES, 'int'
+ NUM_MATCHES, 'int' MAX_LENGTH) where MATCHES is the array of
matching strings, NUM_MATCHES is the number of strings in that
array, and MAX_LENGTH is the length of the longest string in that
array. Readline provides a convenience function,
- `rl_display_match_list', that takes care of doing the display to
- Readline's output stream. That function may be called from this
+ 'rl_display_match_list', that takes care of doing the display to
+ Readline's output stream. You may call that function from this
hook.
-- Variable: const char * rl_basic_word_break_characters
The basic list of characters that signal a break between words for
the completer routine. The default value of this variable is the
- characters which break words for completion in Bash: `"
+ characters which break words for completion in Bash: '"
\t\n\"\\'`@$><=;|&{("'.
-- Variable: const char * rl_basic_quote_characters
@@ -3264,28 +3337,28 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
-- Variable: const char * rl_completer_word_break_characters
The list of characters that signal a break between words for
- `rl_complete_internal()'. The default list is the value of
- `rl_basic_word_break_characters'.
+ 'rl_complete_internal()'. The default list is the value of
+ 'rl_basic_word_break_characters'.
-- Variable: rl_cpvfunc_t * rl_completion_word_break_hook
If non-zero, this is the address of a function to call when
Readline is deciding where to separate words for word completion.
It should return a character string like
- `rl_completer_word_break_characters' to be used to perform the
+ 'rl_completer_word_break_characters' to be used to perform the
current completion. The function may choose to set
- `rl_completer_word_break_characters' itself. If the function
- returns `NULL', `rl_completer_word_break_characters' is used.
+ 'rl_completer_word_break_characters' itself. If the function
+ returns 'NULL', 'rl_completer_word_break_characters' is used.
-- Variable: const char * rl_completer_quote_characters
A list of characters which can be used to quote a substring of the
line. Completion occurs on the entire substring, and within the
- substring `rl_completer_word_break_characters' are treated as any
+ substring 'rl_completer_word_break_characters' are treated as any
other character, unless they also appear within this list.
-- Variable: const char * rl_filename_quote_characters
A list of characters that cause a filename to be quoted by the
- completer when they appear in a completed filename. The default
- is the null string.
+ completer when they appear in a completed filename. The default is
+ the null string.
-- Variable: const char * rl_special_prefixes
The list of characters that are word break characters, but should
@@ -3302,13 +3375,13 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
-- Variable: int rl_completion_append_character
When a single completion alternative matches at the end of the
- command line, this character is appended to the inserted
- completion text. The default is a space character (` '). Setting
- this to the null character (`\0') prevents anything being appended
+ command line, this character is appended to the inserted completion
+ text. The default is a space character (' '). Setting this to the
+ null character ('\0') prevents anything being appended
automatically. This can be changed in application-specific
completion functions to provide the "most sensible word separator
- character" according to an application-specific command line
- syntax specification.
+ character" according to an application-specific command line syntax
+ specification.
-- Variable: int rl_completion_suppress_append
If non-zero, RL_COMPLETION_APPEND_CHARACTER is not appended to
@@ -3329,11 +3402,10 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
may only be changed within such a function.
-- Variable: int rl_completion_found_quote
- When Readline is completing quoted text, it sets this variable to
- a non-zero value if the word being completed contains or is
- delimited by any quoting characters, including backslashes. This
- is set before any application-specific completion function is
- called.
+ When Readline is completing quoted text, it sets this variable to a
+ non-zero value if the word being completed contains or is delimited
+ by any quoting characters, including backslashes. This is set
+ before any application-specific completion function is called.
-- Variable: int rl_completion_mark_symlink_dirs
If non-zero, a slash will be appended to completed filenames that
@@ -3343,8 +3415,8 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
user's global preference (set via the MARK-SYMLINKED-DIRECTORIES
Readline variable) if appropriate. This variable is set to the
user's preference before any application-specific completion
- function is called, so unless that function modifies the value,
- the user's preferences are honored.
+ function is called, so unless that function modifies the value, the
+ user's preferences are honored.
-- Variable: int rl_ignore_completion_duplicates
If non-zero, then duplicates in the matches are removed. The
@@ -3352,27 +3424,27 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
-- Variable: int rl_filename_completion_desired
Non-zero means that the results of the matches are to be treated as
- filenames. This is _always_ zero when completion is attempted,
- and can only be changed within an application-specific completion
+ filenames. This is _always_ zero when completion is attempted, and
+ can only be changed within an application-specific completion
function. If it is set to a non-zero value by such a function,
directory names have a slash appended and Readline attempts to
quote completed filenames if they contain any characters in
- `rl_filename_quote_characters' and `rl_filename_quoting_desired'
- is set to a non-zero value.
+ 'rl_filename_quote_characters' and 'rl_filename_quoting_desired' is
+ set to a non-zero value.
-- Variable: int rl_filename_quoting_desired
Non-zero means that the results of the matches are to be quoted
using double quotes (or an application-specific quoting mechanism)
if the completed filename contains any characters in
- `rl_filename_quote_chars'. This is _always_ non-zero when
+ 'rl_filename_quote_chars'. This is _always_ non-zero when
completion is attempted, and can only be changed within an
application-specific completion function. The quoting is effected
via a call to the function pointed to by
- `rl_filename_quoting_function'.
+ 'rl_filename_quoting_function'.
-- Variable: int rl_attempted_completion_over
If an application-specific completion function assigned to
- `rl_attempted_completion_function' sets this variable to a non-zero
+ 'rl_attempted_completion_function' sets this variable to a non-zero
value, Readline will not perform its default filename completion
even if the application's completion function returns no matches.
It should be set only by an application's completion function.
@@ -3382,27 +3454,27 @@ File: readline.info, Node: Completion Variables, Next: A Short Completion Exam
the list of completions (which implies that it cannot remove any
duplicate completions). The default value is 1, which means that
Readline will sort the completions and, depending on the value of
- `rl_ignore_completion_duplicates', will attempt to remove duplicate
+ 'rl_ignore_completion_duplicates', will attempt to remove duplicate
matches.
-- Variable: int rl_completion_type
Set to a character describing the type of completion Readline is
currently attempting; see the description of
- `rl_complete_internal()' (*note Completion Functions::) for the
+ 'rl_complete_internal()' (*note Completion Functions::) for the
list of characters. This is set to the appropriate value before
any application-specific completion function is called, allowing
- such functions to present the same interface as `rl_complete()'.
+ such functions to present the same interface as 'rl_complete()'.
-- Variable: int rl_completion_invoking_key
Set to the final character in the key sequence that invoked one of
- the completion functions that call `rl_complete_internal()'. This
+ the completion functions that call 'rl_complete_internal()'. This
is set to the appropriate value before any application-specific
completion function is called.
-- Variable: int rl_inhibit_completion
If this variable is non-zero, completion is inhibited. The
completion character will be inserted as any other bound to
- `self-insert'.
+ 'self-insert'.

File: readline.info, Node: A Short Completion Example, Prev: Completion Variables, Up: Custom Completers
@@ -3411,8 +3483,8 @@ File: readline.info, Node: A Short Completion Example, Prev: Completion Variab
--------------------------------
Here is a small application demonstrating the use of the GNU Readline
-library. It is called `fileman', and the source code resides in
-`examples/fileman.c'. This sample application provides completion of
+library. It is called 'fileman', and the source code resides in
+'examples/fileman.c'. This sample application provides completion of
command names, line editing features, and access to the history list.
/* fileman.c -- A tiny application which demonstrates how to use the
@@ -3887,7 +3959,7 @@ Appendix A GNU Free Documentation License
Version 1.3, 3 November 2008
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
- `http://fsf.org/'
+ <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -3912,21 +3984,21 @@ Appendix A GNU Free Documentation License
free program should come with manuals providing the same freedoms
that the software does. But this License is not limited to
software manuals; it can be used for any textual work, regardless
- of subject matter or whether it is published as a printed book.
- We recommend this License principally for works whose purpose is
+ of subject matter or whether it is published as a printed book. We
+ recommend this License principally for works whose purpose is
instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium,
- that contains a notice placed by the copyright holder saying it
- can be distributed under the terms of this License. Such a notice
+ that contains a notice placed by the copyright holder saying it can
+ be distributed under the terms of this License. Such a notice
grants a world-wide, royalty-free license, unlimited in duration,
to use that work under the conditions stated herein. The
"Document", below, refers to any such manual or work. Any member
- of the public is a licensee, and is addressed as "you". You
- accept the license if you copy, modify or distribute the work in a
- way requiring permission under copyright law.
+ of the public is a licensee, and is addressed as "you". You accept
+ the license if you copy, modify or distribute the work in a way
+ requiring permission under copyright law.
A "Modified Version" of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
@@ -3944,12 +4016,12 @@ Appendix A GNU Free Documentation License
regarding them.
The "Invariant Sections" are certain Secondary Sections whose
- titles are designated, as being those of Invariant Sections, in
- the notice that says that the Document is released under this
- License. If a section does not fit the above definition of
- Secondary then it is not allowed to be designated as Invariant.
- The Document may contain zero Invariant Sections. If the Document
- does not identify any Invariant Sections then there are none.
+ titles are designated, as being those of Invariant Sections, in the
+ notice that says that the Document is released under this License.
+ If a section does not fit the above definition of Secondary then it
+ is not allowed to be designated as Invariant. The Document may
+ contain zero Invariant Sections. If the Document does not identify
+ any Invariant Sections then there are none.
The "Cover Texts" are certain short passages of text that are
listed, as Front-Cover Texts or Back-Cover Texts, in the notice
@@ -3960,27 +4032,27 @@ Appendix A GNU Free Documentation License
A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, that is suitable for revising the document
- straightforwardly with generic text editors or (for images
- composed of pixels) generic paint programs or (for drawings) some
- widely available drawing editor, and that is suitable for input to
- text formatters or for automatic translation to a variety of
- formats suitable for input to text formatters. A copy made in an
- otherwise Transparent file format whose markup, or absence of
- markup, has been arranged to thwart or discourage subsequent
- modification by readers is not Transparent. An image format is
- not Transparent if used for any substantial amount of text. A
- copy that is not "Transparent" is called "Opaque".
+ straightforwardly with generic text editors or (for images composed
+ of pixels) generic paint programs or (for drawings) some widely
+ available drawing editor, and that is suitable for input to text
+ formatters or for automatic translation to a variety of formats
+ suitable for input to text formatters. A copy made in an otherwise
+ Transparent file format whose markup, or absence of markup, has
+ been arranged to thwart or discourage subsequent modification by
+ readers is not Transparent. An image format is not Transparent if
+ used for any substantial amount of text. A copy that is not
+ "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain
ASCII without markup, Texinfo input format, LaTeX input format,
- SGML or XML using a publicly available DTD, and
- standard-conforming simple HTML, PostScript or PDF designed for
- human modification. Examples of transparent image formats include
- PNG, XCF and JPG. Opaque formats include proprietary formats that
- can be read and edited only by proprietary word processors, SGML or
- XML for which the DTD and/or processing tools are not generally
- available, and the machine-generated HTML, PostScript or PDF
- produced by some word processors for output purposes only.
+ SGML or XML using a publicly available DTD, and standard-conforming
+ simple HTML, PostScript or PDF designed for human modification.
+ Examples of transparent image formats include PNG, XCF and JPG.
+ Opaque formats include proprietary formats that can be read and
+ edited only by proprietary word processors, SGML or XML for which
+ the DTD and/or processing tools are not generally available, and
+ the machine-generated HTML, PostScript or PDF produced by some word
+ processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the
@@ -4018,8 +4090,8 @@ Appendix A GNU Free Documentation License
may not use technical measures to obstruct or control the reading
or further copying of the copies you make or distribute. However,
you may accept compensation in exchange for copies. If you
- distribute a large enough number of copies you must also follow
- the conditions in section 3.
+ distribute a large enough number of copies you must also follow the
+ conditions in section 3.
You may also lend copies, under the same conditions stated above,
and you may publicly display copies.
@@ -4033,12 +4105,11 @@ Appendix A GNU Free Documentation License
these Cover Texts: Front-Cover Texts on the front cover, and
Back-Cover Texts on the back cover. Both covers must also clearly
and legibly identify you as the publisher of these copies. The
- front cover must present the full title with all words of the
- title equally prominent and visible. You may add other material
- on the covers in addition. Copying with changes limited to the
- covers, as long as they preserve the title of the Document and
- satisfy these conditions, can be treated as verbatim copying in
- other respects.
+ front cover must present the full title with all words of the title
+ equally prominent and visible. You may add other material on the
+ covers in addition. Copying with changes limited to the covers, as
+ long as they preserve the title of the Document and satisfy these
+ conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
@@ -4046,40 +4117,39 @@ Appendix A GNU Free Documentation License
adjacent pages.
If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a
- machine-readable Transparent copy along with each Opaque copy, or
- state in or with each Opaque copy a computer-network location from
- which the general network-using public has access to download
- using public-standard network protocols a complete Transparent
- copy of the Document, free of added material. If you use the
- latter option, you must take reasonably prudent steps, when you
- begin distribution of Opaque copies in quantity, to ensure that
- this Transparent copy will remain thus accessible at the stated
- location until at least one year after the last time you
- distribute an Opaque copy (directly or through your agents or
- retailers) of that edition to the public.
+ numbering more than 100, you must either include a machine-readable
+ Transparent copy along with each Opaque copy, or state in or with
+ each Opaque copy a computer-network location from which the general
+ network-using public has access to download using public-standard
+ network protocols a complete Transparent copy of the Document, free
+ of added material. If you use the latter option, you must take
+ reasonably prudent steps, when you begin distribution of Opaque
+ copies in quantity, to ensure that this Transparent copy will
+ remain thus accessible at the stated location until at least one
+ year after the last time you distribute an Opaque copy (directly or
+ through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of
- the Document well before redistributing any large number of
- copies, to give them a chance to provide you with an updated
- version of the Document.
+ the Document well before redistributing any large number of copies,
+ to give them a chance to provide you with an updated version of the
+ Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document
under the conditions of sections 2 and 3 above, provided that you
- release the Modified Version under precisely this License, with
- the Modified Version filling the role of the Document, thus
- licensing distribution and modification of the Modified Version to
- whoever possesses a copy of it. In addition, you must do these
- things in the Modified Version:
+ release the Modified Version under precisely this License, with the
+ Modified Version filling the role of the Document, thus licensing
+ distribution and modification of the Modified Version to whoever
+ possesses a copy of it. In addition, you must do these things in
+ the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title
- distinct from that of the Document, and from those of
- previous versions (which should, if there were any, be listed
- in the History section of the Document). You may use the
- same title as a previous version if the original publisher of
- that version gives permission.
+ distinct from that of the Document, and from those of previous
+ versions (which should, if there were any, be listed in the
+ History section of the Document). You may use the same title
+ as a previous version if the original publisher of that
+ version gives permission.
B. List on the Title Page, as authors, one or more persons or
entities responsible for authorship of the modifications in
@@ -4109,31 +4179,30 @@ Appendix A GNU Free Documentation License
I. Preserve the section Entitled "History", Preserve its Title,
and add to it an item stating at least the title, year, new
- authors, and publisher of the Modified Version as given on
- the Title Page. If there is no section Entitled "History" in
- the Document, create one stating the title, year, authors,
- and publisher of the Document as given on its Title Page,
- then add an item describing the Modified Version as stated in
- the previous sentence.
+ authors, and publisher of the Modified Version as given on the
+ Title Page. If there is no section Entitled "History" in the
+ Document, create one stating the title, year, authors, and
+ publisher of the Document as given on its Title Page, then add
+ an item describing the Modified Version as stated in the
+ previous sentence.
J. Preserve the network location, if any, given in the Document
for public access to a Transparent copy of the Document, and
likewise the network locations given in the Document for
- previous versions it was based on. These may be placed in
- the "History" section. You may omit a network location for a
- work that was published at least four years before the
- Document itself, or if the original publisher of the version
- it refers to gives permission.
+ previous versions it was based on. These may be placed in the
+ "History" section. You may omit a network location for a work
+ that was published at least four years before the Document
+ itself, or if the original publisher of the version it refers
+ to gives permission.
K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the
- section all the substance and tone of each of the contributor
+ Preserve the Title of the section, and preserve in the section
+ all the substance and tone of each of the contributor
acknowledgements and/or dedications given therein.
- L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section
- titles.
+ L. Preserve all the Invariant Sections of the Document, unaltered
+ in their text and in their titles. Section numbers or the
+ equivalent are not considered part of the section titles.
M. Delete any section Entitled "Endorsements". Such a section
may not be included in the Modified Version.
@@ -4146,11 +4215,11 @@ Appendix A GNU Free Documentation License
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option
- designate some or all of these sections as invariant. To do this,
- add their titles to the list of Invariant Sections in the Modified
- Version's license notice. These titles must be distinct from any
- other section titles.
+ material copied from the Document, you may at your option designate
+ some or all of these sections as invariant. To do this, add their
+ titles to the list of Invariant Sections in the Modified Version's
+ license notice. These titles must be distinct from any other
+ section titles.
You may add a section Entitled "Endorsements", provided it contains
nothing but endorsements of your Modified Version by various
@@ -4159,15 +4228,15 @@ Appendix A GNU Free Documentation License
definition of a standard.
You may add a passage of up to five words as a Front-Cover Text,
- and a passage of up to 25 words as a Back-Cover Text, to the end
- of the list of Cover Texts in the Modified Version. Only one
- passage of Front-Cover Text and one of Back-Cover Text may be
- added by (or through arrangements made by) any one entity. If the
- Document already includes a cover text for the same cover,
- previously added by you or by arrangement made by the same entity
- you are acting on behalf of, you may not add another; but you may
- replace the old one, on explicit permission from the previous
- publisher that added the old one.
+ and a passage of up to 25 words as a Back-Cover Text, to the end of
+ the list of Cover Texts in the Modified Version. Only one passage
+ of Front-Cover Text and one of Back-Cover Text may be added by (or
+ through arrangements made by) any one entity. If the Document
+ already includes a cover text for the same cover, previously added
+ by you or by arrangement made by the same entity you are acting on
+ behalf of, you may not add another; but you may replace the old
+ one, on explicit permission from the previous publisher that added
+ the old one.
The author(s) and publisher(s) of the Document do not by this
License give permission to use their names for publicity for or to
@@ -4177,8 +4246,8 @@ Appendix A GNU Free Documentation License
You may combine the Document with other documents released under
this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination
- all of the Invariant Sections of all of the original documents,
+ modified versions, provided that you include in the combination all
+ of the Invariant Sections of all of the original documents,
unmodified, and list them all as Invariant Sections of your
combined work in its license notice, and that you preserve all
their Warranty Disclaimers.
@@ -4205,20 +4274,20 @@ Appendix A GNU Free Documentation License
documents released under this License, and replace the individual
copies of this License in the various documents with a single copy
that is included in the collection, provided that you follow the
- rules of this License for verbatim copying of each of the
- documents in all other respects.
+ rules of this License for verbatim copying of each of the documents
+ in all other respects.
You may extract a single document from such a collection, and
distribute it individually under this License, provided you insert
- a copy of this License into the extracted document, and follow
- this License in all other respects regarding verbatim copying of
- that document.
+ a copy of this License into the extracted document, and follow this
+ License in all other respects regarding verbatim copying of that
+ document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume of
- a storage or distribution medium, is called an "aggregate" if the
+ separate and independent documents or works, in or on a volume of a
+ storage or distribution medium, is called an "aggregate" if the
copyright resulting from the compilation is not used to limit the
legal rights of the compilation's users beyond what the individual
works permit. When the Document is included in an aggregate, this
@@ -4263,8 +4332,8 @@ Appendix A GNU Free Documentation License
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
- provisionally, unless and until the copyright holder explicitly
- and finally terminates your license, and (b) permanently, if the
+ provisionally, unless and until the copyright holder explicitly and
+ finally terminates your license, and (b) permanently, if the
copyright holder fails to notify you of the violation by some
reasonable means prior to 60 days after the cessation.
@@ -4276,33 +4345,33 @@ Appendix A GNU Free Documentation License
after your receipt of the notice.
Termination of your rights under this section does not terminate
- the licenses of parties who have received copies or rights from
- you under this License. If your rights have been terminated and
- not permanently reinstated, receipt of a copy of some or all of
- the same material does not give you any rights to use it.
+ the licenses of parties who have received copies or rights from you
+ under this License. If your rights have been terminated and not
+ permanently reinstated, receipt of a copy of some or all of the
+ same material does not give you any rights to use it.
- 10. FUTURE REVISIONS OF THIS LICENSE
+ 10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of
the GNU Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
- `http://www.gnu.org/copyleft/'.
+ <http://www.gnu.org/copyleft/>.
Each version of the License is given a distinguishing version
number. If the Document specifies that a particular numbered
version of this License "or any later version" applies to it, you
have the option of following the terms and conditions either of
that specified version or of any later version that has been
- published (not as a draft) by the Free Software Foundation. If
- the Document does not specify a version number of this License,
- you may choose any version ever published (not as a draft) by the
- Free Software Foundation. If the Document specifies that a proxy
- can decide which future versions of this License can be used, that
+ published (not as a draft) by the Free Software Foundation. If the
+ Document does not specify a version number of this License, you may
+ choose any version ever published (not as a draft) by the Free
+ Software Foundation. If the Document specifies that a proxy can
+ decide which future versions of this License can be used, that
proxy's public statement of acceptance of a version permanently
authorizes you to choose that version for the Document.
- 11. RELICENSING
+ 11. RELICENSING
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
World Wide Web server that publishes copyrightable works and also
@@ -4332,7 +4401,6 @@ Appendix A GNU Free Documentation License
site under CC-BY-SA on the same site at any time before August 1,
2009, provided the MMC is eligible for relicensing.
-
ADDENDUM: How to use this License for your documents
====================================================
@@ -4349,7 +4417,7 @@ notices just after the title page:
Free Documentation License''.
If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
+Texts, replace the "with...Texts." line with this:
with the Invariant Sections being LIST THEIR TITLES, with
the Front-Cover Texts being LIST, and with the Back-Cover Texts
@@ -4360,9 +4428,9 @@ combination of the three, merge those two alternatives to suit the
situation.
If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
+recommend releasing these examples in parallel under your choice of free
+software license, such as the GNU General Public License, to permit
+their use in free software.

File: readline.info, Node: Concept Index, Next: Function and Variable Index, Prev: GNU Free Documentation License, Up: Top
@@ -4382,7 +4450,7 @@ Concept Index
* initialization file, readline: Readline Init File. (line 6)
* interaction, readline: Readline Interaction. (line 6)
* kill ring: Readline Killing Commands.
- (line 19)
+ (line 18)
* killing text: Readline Killing Commands.
(line 6)
* notation, readline: Readline Bare Essentials.
@@ -4402,12 +4470,12 @@ Function and Variable Index
* Menu:
-* _rl_digit_p: Utility Functions. (line 65)
-* _rl_digit_value: Utility Functions. (line 76)
-* _rl_lowercase_p: Utility Functions. (line 62)
-* _rl_to_lower: Utility Functions. (line 72)
-* _rl_to_upper: Utility Functions. (line 68)
-* _rl_uppercase_p: Utility Functions. (line 59)
+* _rl_digit_p: Utility Functions. (line 64)
+* _rl_digit_value: Utility Functions. (line 75)
+* _rl_lowercase_p: Utility Functions. (line 61)
+* _rl_to_lower: Utility Functions. (line 71)
+* _rl_to_upper: Utility Functions. (line 67)
+* _rl_uppercase_p: Utility Functions. (line 58)
* abort (C-g): Miscellaneous Commands.
(line 10)
* accept-line (Newline or Return): Commands For History.
@@ -4426,31 +4494,36 @@ Function and Variable Index
(line 35)
* bind-tty-special-chars: Readline Init File Syntax.
(line 42)
+* blink-matching-paren: Readline Init File Syntax.
+ (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 55)
+* capitalize-word (M-c): Commands For Text. (line 64)
* character-search (C-]): Miscellaneous Commands.
(line 41)
* character-search-backward (M-C-]): Miscellaneous Commands.
(line 46)
* clear-screen (C-l): Commands For Moving. (line 26)
+* colored-completion-prefix: Readline Init File Syntax.
+ (line 52)
* colored-stats: Readline Init File Syntax.
- (line 47)
+ (line 59)
* comment-begin: Readline Init File Syntax.
- (line 53)
+ (line 65)
* complete (<TAB>): Commands For Completion.
(line 6)
* completion-display-width: Readline Init File Syntax.
- (line 58)
+ (line 70)
* completion-ignore-case: Readline Init File Syntax.
- (line 65)
+ (line 77)
* completion-map-case: Readline Init File Syntax.
- (line 70)
+ (line 82)
* completion-prefix-display-length: Readline Init File Syntax.
- (line 76)
+ (line 88)
* completion-query-items: Readline Init File Syntax.
- (line 83)
+ (line 95)
* convert-meta: Readline Init File Syntax.
- (line 93)
+ (line 105)
* copy-backward-word (): Commands For Killing.
(line 49)
* copy-forward-word (): Commands For Killing.
@@ -4464,20 +4537,28 @@ Function and Variable Index
(line 37)
* digit-argument (M-0, M-1, ... M--): Numeric Arguments. (line 6)
* disable-completion: Readline Init File Syntax.
- (line 99)
+ (line 113)
* do-uppercase-version (M-a, M-b, M-X, ...): Miscellaneous Commands.
(line 14)
-* downcase-word (M-l): Commands For Text. (line 51)
+* downcase-word (M-l): Commands For Text. (line 60)
* dump-functions (): Miscellaneous Commands.
- (line 70)
+ (line 69)
* dump-macros (): Miscellaneous Commands.
- (line 82)
+ (line 81)
* dump-variables (): Miscellaneous Commands.
- (line 76)
+ (line 75)
+* echo-control-characters: Readline Init File Syntax.
+ (line 118)
* editing-mode: Readline Init File Syntax.
- (line 104)
+ (line 123)
+* emacs-editing-mode (C-e): Miscellaneous Commands.
+ (line 87)
+* emacs-mode-string: Readline Init File Syntax.
+ (line 129)
+* enable-bracketed-paste: Readline Init File Syntax.
+ (line 139)
* enable-keypad: Readline Init File Syntax.
- (line 115)
+ (line 147)
* end-kbd-macro (C-x )): Keyboard Macros. (line 9)
* end-of-file (usually C-d): Commands For Text. (line 6)
* end-of-history (M->): Commands For History.
@@ -4486,36 +4567,36 @@ Function and Variable Index
* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
(line 36)
* expand-tilde: Readline Init File Syntax.
- (line 126)
+ (line 158)
* 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)
* forward-word (M-f): Commands For Moving. (line 18)
* history-preserve-point: Readline Init File Syntax.
- (line 130)
+ (line 162)
* history-search-backward (): Commands For History.
- (line 51)
+ (line 52)
* history-search-forward (): Commands For History.
- (line 45)
+ (line 46)
* history-size: Readline Init File Syntax.
- (line 136)
+ (line 168)
* history-substr-search-backward (): Commands For History.
- (line 63)
+ (line 64)
* history-substr-search-forward (): Commands For History.
- (line 57)
+ (line 58)
* horizontal-scroll-mode: Readline Init File Syntax.
- (line 143)
+ (line 177)
* input-meta: Readline Init File Syntax.
- (line 150)
+ (line 184)
* insert-comment (M-#): Miscellaneous Commands.
(line 60)
* insert-completions (M-*): Commands For Completion.
(line 18)
* isearch-terminators: Readline Init File Syntax.
- (line 157)
+ (line 192)
* keymap: Readline Init File Syntax.
- (line 164)
+ (line 199)
* kill-line (C-k): Commands For Killing.
(line 6)
* kill-region (): Commands For Killing.
@@ -4525,30 +4606,30 @@ Function and Variable Index
* kill-word (M-d): Commands For Killing.
(line 19)
* mark-modified-lines: Readline Init File Syntax.
- (line 193)
+ (line 229)
* mark-symlinked-directories: Readline Init File Syntax.
- (line 198)
+ (line 234)
* match-hidden-files: Readline Init File Syntax.
- (line 203)
+ (line 239)
* menu-complete (): Commands For Completion.
(line 22)
* menu-complete-backward (): Commands For Completion.
(line 34)
* menu-complete-display-prefix: Readline Init File Syntax.
- (line 210)
+ (line 246)
* meta-flag: Readline Init File Syntax.
- (line 150)
+ (line 184)
* next-history (C-n): Commands For History.
(line 16)
* non-incremental-forward-search-history (M-n): Commands For History.
(line 40)
* non-incremental-reverse-search-history (M-p): Commands For History.
- (line 35)
+ (line 34)
* output-meta: Readline Init File Syntax.
- (line 215)
-* overwrite-mode (): Commands For Text. (line 59)
+ (line 251)
+* overwrite-mode (): Commands For Text. (line 68)
* page-completions: Readline Init File Syntax.
- (line 220)
+ (line 257)
* possible-completions (M-?): Commands For Completion.
(line 11)
* prefix-meta (<ESC>): Miscellaneous Commands.
@@ -4564,282 +4645,292 @@ Function and Variable Index
* reverse-search-history (C-r): Commands For History.
(line 26)
* revert-all-at-newline: Readline Init File Syntax.
- (line 230)
+ (line 267)
* revert-line (M-r): Miscellaneous Commands.
(line 25)
-* rl_add_defun: Function Naming. (line 20)
+* rl_add_defun: Function Naming. (line 18)
* rl_add_funmap_entry: Associating Function Names and Bindings.
- (line 47)
-* rl_add_undo: Allowing Undoing. (line 41)
-* rl_alphabetic: Utility Functions. (line 39)
-* rl_already_prompted: Readline Variables. (line 64)
+ (line 45)
+* rl_add_undo: Allowing Undoing. (line 39)
+* rl_alphabetic: Utility Functions. (line 38)
+* rl_already_prompted: Readline Variables. (line 63)
* rl_attempted_completion_function: Completion Variables.
- (line 12)
+ (line 11)
* rl_attempted_completion_over: Completion Variables.
- (line 255)
+ (line 253)
* rl_basic_quote_characters: Completion Variables.
- (line 144)
+ (line 143)
* rl_basic_word_break_characters: Completion Variables.
- (line 138)
-* rl_begin_undo_group: Allowing Undoing. (line 29)
-* rl_bind_key: Binding Keys. (line 22)
-* rl_bind_key_if_unbound: Binding Keys. (line 32)
-* rl_bind_key_if_unbound_in_map: Binding Keys. (line 38)
-* rl_bind_key_in_map: Binding Keys. (line 27)
-* rl_bind_keyseq: Binding Keys. (line 59)
-* rl_bind_keyseq_if_unbound: Binding Keys. (line 77)
-* rl_bind_keyseq_if_unbound_in_map: Binding Keys. (line 83)
-* rl_bind_keyseq_in_map: Binding Keys. (line 66)
-* rl_binding_keymap: Readline Variables. (line 186)
-* rl_callback_handler_install: Alternate Interface. (line 15)
-* rl_callback_handler_remove: Alternate Interface. (line 35)
+ (line 137)
+* rl_begin_undo_group: Allowing Undoing. (line 28)
+* rl_binding_keymap: Readline Variables. (line 184)
+* rl_bind_key: Binding Keys. (line 21)
+* rl_bind_keyseq: Binding Keys. (line 57)
+* rl_bind_keyseq_if_unbound: Binding Keys. (line 75)
+* rl_bind_keyseq_if_unbound_in_map: Binding Keys. (line 81)
+* rl_bind_keyseq_in_map: Binding Keys. (line 64)
+* rl_bind_key_if_unbound: Binding Keys. (line 30)
+* rl_bind_key_if_unbound_in_map: Binding Keys. (line 36)
+* rl_bind_key_in_map: Binding Keys. (line 25)
+* rl_callback_handler_install: Alternate Interface. (line 13)
+* rl_callback_handler_remove: Alternate Interface. (line 42)
* rl_callback_read_char: Alternate Interface. (line 22)
+* rl_callback_sigcleanup: Alternate Interface. (line 35)
* rl_catch_signals: Readline Signal Handling.
- (line 48)
+ (line 69)
* rl_catch_sigwinch: Readline Signal Handling.
- (line 55)
+ (line 76)
* rl_change_environment: Readline Signal Handling.
- (line 61)
+ (line 90)
* rl_char_is_quoted_p: Completion Variables.
- (line 46)
+ (line 45)
* rl_cleanup_after_signal: Readline Signal Handling.
- (line 73)
+ (line 107)
* rl_clear_history: Miscellaneous Functions.
- (line 50)
-* rl_clear_message: Redisplay. (line 48)
-* rl_clear_pending_input: Character Input. (line 30)
-* rl_clear_signals: Readline Signal Handling.
- (line 132)
-* rl_complete <1>: How Completing Works.
(line 49)
-* rl_complete: Completion Functions.
- (line 20)
-* rl_complete_internal: Completion Functions.
- (line 10)
+* rl_clear_message: Redisplay. (line 51)
+* rl_clear_pending_input: Character Input. (line 29)
+* rl_clear_signals: Readline Signal Handling.
+ (line 166)
+* rl_clear_visible_line: Redisplay. (line 25)
+* rl_complete: How Completing Works.
+ (line 46)
+* rl_complete <1>: Completion Functions.
+ (line 19)
* rl_completer_quote_characters: Completion Variables.
- (line 161)
+ (line 160)
* rl_completer_word_break_characters: Completion Variables.
- (line 147)
+ (line 146)
+* rl_complete_internal: Completion Functions.
+ (line 9)
* rl_completion_append_character: Completion Variables.
- (line 185)
+ (line 184)
* rl_completion_display_matches_hook: Completion Variables.
- (line 125)
-* rl_completion_entry_function <1>: How Completing Works.
- (line 55)
-* rl_completion_entry_function: Completion Variables.
- (line 7)
+ (line 124)
+* rl_completion_entry_function: How Completing Works.
+ (line 52)
+* rl_completion_entry_function <1>: Completion Variables.
+ (line 6)
* rl_completion_found_quote: Completion Variables.
- (line 213)
+ (line 212)
* rl_completion_invoking_key: Completion Variables.
- (line 278)
+ (line 276)
* rl_completion_mark_symlink_dirs: Completion Variables.
- (line 220)
+ (line 218)
* rl_completion_matches: Completion Functions.
- (line 45)
+ (line 43)
* rl_completion_mode: Completion Functions.
- (line 37)
+ (line 36)
* rl_completion_query_items: Completion Variables.
- (line 179)
+ (line 178)
* rl_completion_quote_character: Completion Variables.
- (line 201)
+ (line 200)
* rl_completion_suppress_append: Completion Variables.
- (line 195)
+ (line 194)
* rl_completion_suppress_quote: Completion Variables.
- (line 207)
+ (line 206)
* rl_completion_type: Completion Variables.
- (line 270)
+ (line 268)
* rl_completion_word_break_hook: Completion Variables.
- (line 152)
-* rl_copy_keymap: Keymaps. (line 17)
-* rl_copy_text: Modifying Text. (line 15)
-* rl_crlf: Redisplay. (line 30)
-* rl_delete_text: Modifying Text. (line 11)
-* rl_deprep_term_function: Readline Variables. (line 176)
-* rl_deprep_terminal: Terminal Management. (line 13)
-* rl_ding: Utility Functions. (line 36)
+ (line 151)
+* rl_copy_keymap: Keymaps. (line 16)
+* rl_copy_text: Modifying Text. (line 14)
+* rl_crlf: Redisplay. (line 33)
+* rl_delete_text: Modifying Text. (line 10)
+* rl_deprep_terminal: Terminal Management. (line 12)
+* rl_deprep_term_function: Readline Variables. (line 174)
+* rl_ding: Utility Functions. (line 35)
* rl_directory_completion_hook: Completion Variables.
- (line 64)
+ (line 63)
* rl_directory_rewrite_hook;: Completion Variables.
- (line 82)
-* rl_discard_keymap: Keymaps. (line 26)
-* rl_dispatching: Readline Variables. (line 41)
-* rl_display_match_list: Utility Functions. (line 43)
-* rl_display_prompt: Readline Variables. (line 59)
-* rl_do_undo: Allowing Undoing. (line 48)
-* rl_done: Readline Variables. (line 28)
+ (line 81)
+* rl_discard_keymap: Keymaps. (line 25)
+* rl_dispatching: Readline Variables. (line 40)
+* rl_display_match_list: Utility Functions. (line 41)
+* rl_display_prompt: Readline Variables. (line 58)
+* rl_done: Readline Variables. (line 27)
+* rl_do_undo: Allowing Undoing. (line 47)
* rl_echo_signal_char: Readline Signal Handling.
- (line 96)
-* rl_editing_mode: Readline Variables. (line 308)
-* rl_end: Readline Variables. (line 19)
-* rl_end_undo_group: Allowing Undoing. (line 35)
-* rl_erase_empty_line: Readline Variables. (line 47)
-* rl_event_hook: Readline Variables. (line 124)
-* rl_execute_next: Character Input. (line 26)
-* rl_executing_key: Readline Variables. (line 193)
-* rl_executing_keymap: Readline Variables. (line 182)
-* rl_executing_keyseq: Readline Variables. (line 197)
-* rl_executing_macro: Readline Variables. (line 190)
-* rl_expand_prompt: Redisplay. (line 64)
-* rl_explicit_arg: Readline Variables. (line 299)
-* rl_extend_line_buffer: Utility Functions. (line 27)
+ (line 130)
+* rl_editing_mode: Readline Variables. (line 281)
+* rl_end: Readline Variables. (line 18)
+* rl_end_undo_group: Allowing Undoing. (line 34)
+* rl_erase_empty_line: Readline Variables. (line 46)
+* rl_event_hook: Readline Variables. (line 123)
+* rl_execute_next: Character Input. (line 25)
+* rl_executing_key: Readline Variables. (line 191)
+* rl_executing_keymap: Readline Variables. (line 180)
+* rl_executing_keyseq: Readline Variables. (line 195)
+* rl_executing_macro: Readline Variables. (line 188)
+* rl_expand_prompt: Redisplay. (line 66)
+* rl_explicit_arg: Readline Variables. (line 272)
+* rl_extend_line_buffer: Utility Functions. (line 26)
* rl_filename_completion_desired: Completion Variables.
- (line 235)
+ (line 233)
* rl_filename_completion_function: Completion Functions.
- (line 59)
+ (line 57)
* rl_filename_dequoting_function: Completion Variables.
- (line 37)
+ (line 36)
* rl_filename_quote_characters: Completion Variables.
- (line 167)
+ (line 166)
* rl_filename_quoting_desired: Completion Variables.
- (line 245)
+ (line 243)
* rl_filename_quoting_function: Completion Variables.
- (line 24)
+ (line 23)
* rl_filename_rewrite_hook: Completion Variables.
- (line 110)
+ (line 109)
* rl_filename_stat_hook: Completion Variables.
- (line 98)
-* rl_forced_update_display: Redisplay. (line 11)
-* rl_free: Utility Functions. (line 18)
-* rl_free_keymap: Keymaps. (line 30)
+ (line 97)
+* rl_forced_update_display: Redisplay. (line 10)
+* rl_free: Utility Functions. (line 17)
+* rl_free_keymap: Keymaps. (line 29)
* rl_free_line_state: Readline Signal Handling.
- (line 79)
-* rl_free_undo_list: Allowing Undoing. (line 45)
+ (line 113)
+* rl_free_undo_list: Allowing Undoing. (line 44)
* rl_function_dumper: Associating Function Names and Bindings.
- (line 30)
+ (line 29)
* rl_function_of_keyseq: Associating Function Names and Bindings.
- (line 15)
+ (line 13)
* rl_funmap_names: Associating Function Names and Bindings.
- (line 40)
-* rl_generic_bind: Binding Keys. (line 89)
-* rl_get_keymap: Keymaps. (line 37)
-* rl_get_keymap_by_name: Keymaps. (line 43)
-* rl_get_keymap_name: Keymaps. (line 48)
+ (line 39)
+* rl_generic_bind: Binding Keys. (line 87)
+* rl_getc: Character Input. (line 14)
+* rl_getc_function: Readline Variables. (line 128)
+* rl_get_keymap: Keymaps. (line 36)
+* rl_get_keymap_by_name: Keymaps. (line 42)
+* rl_get_keymap_name: Keymaps. (line 47)
* rl_get_screen_size: Readline Signal Handling.
- (line 115)
+ (line 149)
* rl_get_termcap: Miscellaneous Functions.
- (line 42)
-* rl_getc: Character Input. (line 15)
-* rl_getc_function: Readline Variables. (line 130)
-* rl_gnu_readline_p: Readline Variables. (line 83)
+ (line 41)
+* rl_gnu_readline_p: Readline Variables. (line 82)
* rl_ignore_completion_duplicates: Completion Variables.
- (line 231)
+ (line 229)
* rl_ignore_some_completions_function: Completion Variables.
- (line 56)
+ (line 55)
* rl_inhibit_completion: Completion Variables.
- (line 284)
-* rl_initialize: Utility Functions. (line 31)
-* rl_input_available_hook: Readline Variables. (line 142)
+ (line 282)
+* rl_initialize: Utility Functions. (line 30)
+* rl_input_available_hook: Readline Variables. (line 140)
* rl_insert_completions: Completion Functions.
- (line 32)
-* rl_insert_text: Modifying Text. (line 7)
-* rl_instream: Readline Variables. (line 97)
+ (line 31)
+* rl_insert_text: Modifying Text. (line 6)
+* rl_instream: Readline Variables. (line 96)
* rl_invoking_keyseqs: Associating Function Names and Bindings.
- (line 21)
+ (line 20)
* rl_invoking_keyseqs_in_map: Associating Function Names and Bindings.
- (line 26)
-* rl_key_sequence_length: Readline Variables. (line 201)
-* rl_kill_text: Modifying Text. (line 19)
-* rl_last_func: Readline Variables. (line 110)
-* rl_library_version: Readline Variables. (line 73)
-* rl_line_buffer: Readline Variables. (line 9)
+ (line 24)
+* rl_key_sequence_length: Readline Variables. (line 199)
+* rl_kill_text: Modifying Text. (line 18)
+* rl_last_func: Readline Variables. (line 109)
+* rl_library_version: Readline Variables. (line 72)
+* rl_line_buffer: Readline Variables. (line 8)
* rl_list_funmap_names: Associating Function Names and Bindings.
- (line 36)
+ (line 35)
* rl_macro_bind: Miscellaneous Functions.
- (line 8)
+ (line 6)
* rl_macro_dumper: Miscellaneous Functions.
- (line 14)
-* rl_make_bare_keymap: Keymaps. (line 12)
-* rl_make_keymap: Keymaps. (line 20)
-* rl_mark: Readline Variables. (line 24)
-* rl_message: Redisplay. (line 39)
-* rl_modifying: Allowing Undoing. (line 57)
+ (line 13)
+* rl_make_bare_keymap: Keymaps. (line 11)
+* rl_make_keymap: Keymaps. (line 19)
+* rl_mark: Readline Variables. (line 23)
+* rl_message: Redisplay. (line 42)
+* rl_modifying: Allowing Undoing. (line 56)
* rl_named_function: Associating Function Names and Bindings.
- (line 11)
-* rl_num_chars_to_read: Readline Variables. (line 32)
-* rl_numeric_arg: Readline Variables. (line 303)
-* rl_on_new_line: Redisplay. (line 15)
-* rl_on_new_line_with_prompt: Redisplay. (line 19)
-* rl_outstream: Readline Variables. (line 101)
-* rl_parse_and_bind: Binding Keys. (line 96)
-* rl_pending_input: Readline Variables. (line 37)
-* rl_point: Readline Variables. (line 15)
+ (line 10)
+* rl_numeric_arg: Readline Variables. (line 276)
+* rl_num_chars_to_read: Readline Variables. (line 31)
+* rl_on_new_line: Redisplay. (line 14)
+* rl_on_new_line_with_prompt: Redisplay. (line 18)
+* rl_outstream: Readline Variables. (line 100)
+* rl_parse_and_bind: Binding Keys. (line 95)
+* rl_pending_input: Readline Variables. (line 36)
+* rl_pending_signal: Readline Signal Handling.
+ (line 102)
+* rl_persistent_signal_handlers: Readline Signal Handling.
+ (line 82)
+* rl_point: Readline Variables. (line 14)
* rl_possible_completions: Completion Functions.
- (line 28)
-* rl_pre_input_hook: Readline Variables. (line 119)
-* rl_prefer_env_winsize: Readline Variables. (line 105)
-* rl_prep_term_function: Readline Variables. (line 169)
-* rl_prep_terminal: Terminal Management. (line 7)
-* rl_prompt: Readline Variables. (line 53)
-* rl_push_macro_input: Modifying Text. (line 26)
-* rl_read_init_file: Binding Keys. (line 101)
-* rl_read_key: Character Input. (line 7)
-* rl_readline_name: Readline Variables. (line 92)
-* rl_readline_state: Readline Variables. (line 204)
-* rl_readline_version: Readline Variables. (line 76)
-* rl_redisplay: Redisplay. (line 7)
-* rl_redisplay_function: Readline Variables. (line 163)
-* rl_replace_line: Utility Functions. (line 22)
+ (line 27)
+* rl_prefer_env_winsize: Readline Variables. (line 104)
+* rl_prep_terminal: Terminal Management. (line 6)
+* rl_prep_term_function: Readline Variables. (line 167)
+* rl_pre_input_hook: Readline Variables. (line 118)
+* rl_prompt: Readline Variables. (line 52)
+* rl_push_macro_input: Modifying Text. (line 25)
+* rl_readline_name: Readline Variables. (line 91)
+* rl_readline_state: Readline Variables. (line 202)
+* rl_readline_version: Readline Variables. (line 75)
+* rl_read_init_file: Binding Keys. (line 100)
+* rl_read_key: Character Input. (line 6)
+* rl_redisplay: Redisplay. (line 6)
+* rl_redisplay_function: Readline Variables. (line 161)
+* rl_replace_line: Utility Functions. (line 21)
* rl_reset_after_signal: Readline Signal Handling.
- (line 87)
-* rl_reset_line_state: Redisplay. (line 26)
+ (line 121)
+* rl_reset_line_state: Redisplay. (line 29)
* rl_reset_screen_size: Readline Signal Handling.
- (line 119)
-* rl_reset_terminal: Terminal Management. (line 28)
+ (line 153)
+* rl_reset_terminal: Terminal Management. (line 34)
* rl_resize_terminal: Readline Signal Handling.
- (line 102)
-* rl_restore_prompt: Redisplay. (line 57)
-* rl_restore_state: Utility Functions. (line 12)
-* rl_save_prompt: Redisplay. (line 53)
-* rl_save_state: Utility Functions. (line 7)
-* rl_set_key: Binding Keys. (line 73)
-* rl_set_keyboard_input_timeout: Character Input. (line 35)
-* rl_set_keymap: Keymaps. (line 40)
+ (line 136)
+* rl_restore_prompt: Redisplay. (line 60)
+* rl_restore_state: Utility Functions. (line 11)
+* rl_save_prompt: Redisplay. (line 56)
+* rl_save_state: Utility Functions. (line 6)
+* rl_set_key: Binding Keys. (line 71)
+* rl_set_keyboard_input_timeout: Character Input. (line 34)
+* rl_set_keymap: Keymaps. (line 39)
* rl_set_paren_blink_timeout: Miscellaneous Functions.
- (line 37)
-* rl_set_prompt: Redisplay. (line 78)
+ (line 36)
+* rl_set_prompt: Redisplay. (line 80)
* rl_set_screen_size: Readline Signal Handling.
- (line 106)
+ (line 140)
* rl_set_signals: Readline Signal Handling.
- (line 126)
-* rl_show_char: Redisplay. (line 33)
-* rl_signal_event_hook: Readline Variables. (line 138)
+ (line 160)
+* rl_show_char: Redisplay. (line 36)
+* rl_signal_event_hook: Readline Variables. (line 136)
* rl_sort_completion_matches: Completion Variables.
- (line 262)
+ (line 260)
* rl_special_prefixes: Completion Variables.
- (line 172)
-* rl_startup_hook: Readline Variables. (line 115)
-* rl_stuff_char: Character Input. (line 19)
-* rl_terminal_name: Readline Variables. (line 87)
-* rl_tty_set_default_bindings: Terminal Management. (line 18)
-* rl_tty_unset_default_bindings: Terminal Management. (line 23)
-* rl_unbind_command_in_map: Binding Keys. (line 55)
-* rl_unbind_function_in_map: Binding Keys. (line 51)
-* rl_unbind_key: Binding Keys. (line 42)
-* rl_unbind_key_in_map: Binding Keys. (line 46)
+ (line 171)
+* rl_startup_hook: Readline Variables. (line 114)
+* rl_stuff_char: Character Input. (line 18)
+* rl_terminal_name: Readline Variables. (line 86)
+* rl_tty_set_default_bindings: Terminal Management. (line 17)
+* rl_tty_set_echoing: Terminal Management. (line 27)
+* rl_tty_unset_default_bindings: Terminal Management. (line 22)
+* rl_unbind_command_in_map: Binding Keys. (line 53)
+* rl_unbind_function_in_map: Binding Keys. (line 49)
+* rl_unbind_key: Binding Keys. (line 41)
+* rl_unbind_key_in_map: Binding Keys. (line 45)
* rl_username_completion_function: Completion Functions.
- (line 66)
+ (line 64)
* rl_variable_bind: Miscellaneous Functions.
- (line 21)
+ (line 19)
* rl_variable_dumper: Miscellaneous Functions.
- (line 31)
+ (line 30)
* rl_variable_value: Miscellaneous Functions.
- (line 26)
+ (line 25)
* self-insert (a, b, A, 1, !, ...): Commands For Text. (line 33)
* set-mark (C-@): Miscellaneous Commands.
(line 32)
* show-all-if-ambiguous: Readline Init File Syntax.
- (line 236)
+ (line 273)
* show-all-if-unmodified: Readline Init File Syntax.
- (line 242)
+ (line 279)
* show-mode-in-prompt: Readline Init File Syntax.
- (line 251)
+ (line 288)
* skip-completed-text: Readline Init File Syntax.
- (line 256)
+ (line 294)
* skip-csi-sequence (): Miscellaneous Commands.
(line 51)
* start-kbd-macro (C-x (): Keyboard Macros. (line 6)
-* transpose-chars (C-t): Commands For Text. (line 36)
-* transpose-words (M-t): Commands For Text. (line 42)
+* tab-insert (M-<TAB>): Commands For Text. (line 30)
+* tilde-expand (M-~): Miscellaneous Commands.
+ (line 29)
+* transpose-chars (C-t): Commands For Text. (line 45)
+* transpose-words (M-t): Commands For Text. (line 51)
* undo (C-_ or C-x C-u): Miscellaneous Commands.
(line 22)
* universal-argument (): Numeric Arguments. (line 10)
@@ -4849,73 +4940,79 @@ Function and Variable Index
(line 12)
* unix-word-rubout (C-w): Commands For Killing.
(line 28)
-* upcase-word (M-u): Commands For Text. (line 47)
+* upcase-word (M-u): Commands For Text. (line 56)
+* vi-cmd-mode-string: Readline Init File Syntax.
+ (line 307)
+* vi-editing-mode (M-C-j): Miscellaneous Commands.
+ (line 91)
+* vi-ins-mode-string: Readline Init File Syntax.
+ (line 317)
* visible-stats: Readline Init File Syntax.
- (line 269)
+ (line 327)
* yank (C-y): Commands For Killing.
(line 59)
* yank-last-arg (M-. or M-_): Commands For History.
- (line 78)
+ (line 79)
* yank-nth-arg (M-C-y): Commands For History.
- (line 69)
+ (line 70)
* yank-pop (M-y): Commands For Killing.
(line 62)

Tag Table:
-Node: Top907
-Node: Command Line Editing1632
-Node: Introduction and Notation2284
-Node: Readline Interaction3907
-Node: Readline Bare Essentials5099
-Node: Readline Movement Commands6889
-Node: Readline Killing Commands7855
-Node: Readline Arguments9776
-Node: Searching10821
-Node: Readline Init File12973
-Node: Readline Init File Syntax14127
-Node: Conditional Init Constructs30832
-Node: Sample Init File33366
-Node: Bindable Readline Commands36485
-Node: Commands For Moving37543
-Node: Commands For History38405
-Node: Commands For Text42560
-Node: Commands For Killing45543
-Node: Numeric Arguments47686
-Node: Commands For Completion48826
-Node: Keyboard Macros50796
-Node: Miscellaneous Commands51485
-Node: Readline vi Mode55342
-Node: Programming with GNU Readline57159
-Node: Basic Behavior58145
-Node: Custom Functions61562
-Node: Readline Typedefs63046
-Node: Function Writing64686
-Node: Readline Variables65993
-Node: Readline Convenience Functions78671
-Node: Function Naming79743
-Node: Keymaps81005
-Node: Binding Keys82998
-Node: Associating Function Names and Bindings87545
-Node: Allowing Undoing89830
-Node: Redisplay92380
-Node: Modifying Text96281
-Node: Character Input97527
-Node: Terminal Management99425
-Node: Utility Functions100861
-Node: Miscellaneous Functions104189
-Node: Alternate Interface106778
-Node: A Readline Example109012
-Node: Alternate Interface Example110951
-Node: Readline Signal Handling113724
-Node: Custom Completers120246
-Node: How Completing Works120966
-Node: Completion Functions124280
-Node: Completion Variables127854
-Node: A Short Completion Example143502
-Node: GNU Free Documentation License156281
-Node: Concept Index181474
-Node: Function and Variable Index182995
+Node: Top861
+Node: Command Line Editing1586
+Node: Introduction and Notation2238
+Node: Readline Interaction3862
+Node: Readline Bare Essentials5054
+Node: Readline Movement Commands6838
+Node: Readline Killing Commands7799
+Node: Readline Arguments9718
+Node: Searching10763
+Node: Readline Init File12916
+Node: Readline Init File Syntax14070
+Node: Conditional Init Constructs33977
+Node: Sample Init File36503
+Node: Bindable Readline Commands39621
+Node: Commands For Moving40676
+Node: Commands For History41537
+Node: Commands For Text45796
+Node: Commands For Killing49239
+Node: Numeric Arguments51406
+Node: Commands For Completion52546
+Node: Keyboard Macros54515
+Node: Miscellaneous Commands55203
+Node: Readline vi Mode59054
+Node: Programming with GNU Readline60871
+Node: Basic Behavior61857
+Node: Custom Functions65261
+Node: Readline Typedefs66744
+Node: Function Writing68378
+Node: Readline Variables69692
+Node: Readline Convenience Functions82364
+Node: Function Naming83436
+Node: Keymaps84698
+Node: Binding Keys86691
+Node: Associating Function Names and Bindings91239
+Node: Allowing Undoing93524
+Node: Redisplay96074
+Node: Modifying Text100098
+Node: Character Input101345
+Node: Terminal Management103243
+Node: Utility Functions105066
+Node: Miscellaneous Functions108394
+Node: Alternate Interface110983
+Node: A Readline Example113725
+Node: Alternate Interface Example115664
+Node: Readline Signal Handling119196
+Node: Custom Completers127579
+Node: How Completing Works128299
+Node: Completion Functions131606
+Node: Completion Variables135180
+Node: A Short Completion Example150824
+Node: GNU Free Documentation License163603
+Node: Concept Index188777
+Node: Function and Variable Index190298

End Tag Table
diff --git a/doc/readline.pdf b/doc/readline.pdf
index 0667918..01d26a6 100644
--- a/doc/readline.pdf
+++ b/doc/readline.pdf
Binary files differ
diff --git a/doc/readline.ps b/doc/readline.ps
index 9f922f5..03ab0fa 100644
--- a/doc/readline.ps
+++ b/doc/readline.ps
@@ -1,8 +1,8 @@
%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.991 Copyright 2011 Radical Eye Software
+%%Creator: dvips(k) 5.996 Copyright 2016 Radical Eye Software
%%Title: readline.dvi
-%%CreationDate: Tue Feb 11 16:57:25 2014
-%%Pages: 77
+%%CreationDate: Wed Sep 7 17:16:25 2016
+%%Pages: 80
%%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 2014.02.11:1657
+%DVIPSSource: TeX output 2016.09.07:1716
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -98,7 +98,6 @@ FontDirectory/CMMI9 known{/CMMI9 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMMI9 def
/FontBBox {-29 -250 1075 750 }readonly def
-/UniqueID 5087384 def
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
@@ -334,7 +333,6 @@ FontDirectory/CMR9 known{/CMR9 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMR9 def
/FontBBox {-39 -250 1036 750 }readonly def
-/UniqueID 5000792 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -867,7 +865,6 @@ FontDirectory/CMSLTT10 known{/CMSLTT10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMSLTT10 def
/FontBBox {-20 -233 617 696 }readonly def
-/UniqueID 5000800 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -1317,7 +1314,6 @@ FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMR10 def
/FontBBox {-40 -250 1009 750 }readonly def
-/UniqueID 5000793 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -2196,7 +2192,6 @@ FontDirectory/CMTT9 known{/CMTT9 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMTT9 def
/FontBBox {-6 -233 542 698 }readonly def
-/UniqueID 5000831 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -2873,6 +2868,643 @@ F8A078
cleartomark
{restore}if
%%EndFont
+%%BeginFont: CMSL10
+%!PS-AdobeFont-1.0: CMSL10 003.002
+%%Title: CMSL10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSL10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSL10 known{/CMSL10 findfont dup/UniqueID known{dup
+/UniqueID get 5000798 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSL10 def
+/FontBBox {-62 -250 1123 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSL10.) readonly def
+/FullName (CMSL10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -9.46 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 12 /fi put
+dup 13 /fl put
+dup 42 /asterisk put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 48 /zero put
+dup 49 /one put
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 72 /H put
+dup 73 /I put
+dup 75 /K put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 85 /U put
+dup 87 /W put
+dup 97 /a put
+dup 98 /b put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 112 /p put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7
+5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99
+8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716
+EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C
+02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D
+46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A
+4B60D020D325E4C2450F3BCF59223103D20DB6943DE1BA6FC8D4362C3CE32E0D
+DCE118A7394CB72B56624142B74A3863C1D054C7CB14F89CBAFF08A4162FC384
+7FEDA760DD8E09028C461D7C8C765390E13667DD233EA2E20063634941F668C0
+C14657504A30C0C298F341B0EC9D1247E084CC760B7D4F27874744CDC5D76814
+25E2367955EA15B0B5CD2C4A0B21F3653FCC70D32D6AC6E28FB470EB246D6ED5
+7872201EF784EE43930DC4801FC99043C93D789F5ED9A09946EC104C430B5581
+299CB76590919D5538B16837F966CF6B213D6E40238F55B4E0F715DBD2A8B8B8
+80A4B633D128EB01BB783569E827F83AF61665C0510C7EA8E6FC89A30B0BC0EB
+5A53E5E67EF62D8855F6606E421BD351916549C569C7368AAFB714E22A023584
+8B1D6B52FC6F635E44058690002C6BA02CEC21C54CC8875B408A8BB84F445894
+5D6B3E4841CA20AF852A660FE9C832F773691DC6F7197FF3DEAEE97418A5ED2F
+F2AE65300416227CD3BB03C29003C770CD7D2A7A2E4C1DCA193651C2CDDBF93B
+966938788694BFB562AB0010268955FC3555E5984CCAB0A9B7590C77C9BC713E
+A29E5BD7193A4E971D1752DDD0F0AA4648E7E87BBCE66A1E836C715C408B07A5
+9EB56BEFD4596706CF839BA4CFA90CAD4038C1E006B51913279A2C31FBEE5BD4
+A7D74F9103CE6124F5B439CB860987DF44FE17EF88EF1BF62C67060D25696BCD
+94ADF08F04E349CEBDF9D3389D870D94CC05E393B3F4362A13A6A672EE5E8F5A
+DFE7046AFE3EBAEA58FFEBA4A47BF61F92E2003756DA643CCF2C9DFCCAB62669
+E3C2A18D690B64D907F50BCA155A85E47C3A6954C6FF7ACA36D8DFCE777B7929
+5F5D5F787B9C247ABF13D6D7B4A8F06BA25CCB342F8A5071325CDA86AD71BA23
+8A9695C7D1D50D0AAC267AB7CDBA7AAF46A264B7B081B7E79AD937FEE4969FD5
+155A99E652461EFFB4BD010E5885631E2B2497D6B8C43CE77D7D47FE201DD46E
+4482FFDCE150A1183C22C004A0AF0E1F42AA6804E038E1DFC8B0A3CE26B52038
+44D2E7F759DA5C252489E5525963D68BC27C82247BEB18818C7D4CF0BC5CC97D
+8C701034B8DF798DD4CE36C3F8B1FD40B2DA14EA75583852875031AF8C909EE0
+04495FDCD04B05A5EFEBA56A8CAC1F57F1B8AB91FB25C81CD51EE69D6E0F52CC
+A0E12CF7E3187D67DF71A599FFD895FAA7BF80E2E6B96592BE77AE96905BAF0F
+F547355A36C443797DDA7C414AA606CF9153E03450B77D1BA4088D739DF55F07
+111B9E11AF37F45B6EDE6D7AC126E05886A57C83886DA87761BE600DEECD1344
+8A82BD652BE7ABFE6A0F50ED7C6F4EE12CDFD80CA7A5518692F267C51C3FE76C
+567BB8DDBE09A2AF901F79AD02B435287CB8057B3D5EE6655071F67B00438728
+C4C3EBD648BAF650993AFE5E2B29074A99ED0FB725D9B8CE8B0292B08A280214
+C3AF252BEEAD30C88F72E322FAC3E9D78A1038F5DFC41F7BF1AE3744A0677094
+51B77C2D630B67853FE5E975A395C06A4D4DA744040B272C2B88D8B7ED3A2C01
+66F503C9DFD3C7DDAC865900D2A4F2CDF517F449851DB1963468D0266D7A3E58
+9F6B2A1843E6444274F16A9930302DACD8D2BC4588765099A86BCCD8A31DF0E6
+2853114DFF2D19F812F19AE6C2E419D7AC1BC024D1195074FD0C6717BFB389A4
+4D5428E7BB2E4F9E9FDEDED7BDCBDD3460805AEA0B5F6460C2FDF19273CE5BA7
+5D3AAE0DB94C6AFA8339646191C23B0149E7CBF136FC4C844E025A38935DF256
+0A0A6466A45EE8B9B23B6A055856FB084F87C73BA28F1883E3B184CD813C72F9
+233B78CA4E125ABD26F29B92CD9DF39D6FDC2A217E2B6B45D9B0A4D536790A5D
+BC0903069565A442FA7466414D948AC432C6B75D8D0E1DBB217CA3DC38A52DEF
+62E9D5AE9E753956C13819D93148C7683BE4F71B80BC066D8C19FC807FB1C086
+B49215DCF56A91A42089F0D063B9981925691F7DDE3237403AC714F5CC3ACA88
+DB2F1DD205578C00472FD70C8BA4F752E3923ACF3164D442A6B639902ED060D0
+C5777BC20F9A3BDA60FA3BC986C38136FBD2E8F910E32EF36377C9CC187F4AFA
+CCEC423DB925B378522B748BDF12D523804CABA83CB5A7ED69FAB9AAB75EE8FC
+38D9866E3754C4E2F2B9AEFA804044D878DED0E114EA0E9682FCF38F6628E63D
+FE1C1B5615E54FAE8684566EDC4B616F76EEFD6207E0386F06D3BFFA26425F24
+303CC7C8A8D7021E7D09B202616988287838C3DBCE3179B4FB5C726E603A47F2
+8248CB508F327D1291CF3F08F7C88298DC2D0F778D24304EFCF6E074182BF5B1
+8E6551811FD6991971692108E289B61053D6DCBA2925B3903E8916EBD09D97A2
+C6D08E89DE4C0CDF7185E1E00DF456B249F0BFC686E04FDAAD2772DC2C39DD53
+9C23A41471267F53A87E5C2B8CBCDB66CE0B9844BC506428E6150B48D2FA6363
+4FDB2CEDFBAE0B7DBCE4D83E29B2955F8966272CB865EDB360C8A8C19EC62A29
+03066483E4083524A1E8D80FE3867BC1AA91753C26ACBE8489AB0E3330206212
+93E07ED473DBF457EB8489E66FB4B8ED8A9EA8911CF9308CFE3E6D6F36810EE8
+91CCB11BD548617B2C683C354452B9229E7C9E68828BBEC324420DF7C188CCE0
+FBB514547553A7E9B38AC265783891F42DA472388569C8E7594F7E8810895A27
+06E456902A8D9F65CA808F1FD475D011C4572F8A654BA01D67942226A663D179
+95149FFF41A9F55AE84EEB9A6A39C017D7E4FD6EFEEE7FF3CE847CDB064A4954
+9DCD273B810E0F259501BA4003A3EC1ABA6E13D24C0B57FF82D6DF077833B6A2
+7EA54801BA81DB961C261689C0887FAD83771E55D3D137AFBB21779397E11972
+6C6CA922F45AFA5C0526863A5AD8B9C0775CCBA17FFD37A44CED4710884DBC31
+5C9D3F5441595B86CF7CA2EEE42AE87896E9E60EBF5F35C2B7FDBF9A9CDAE262
+3F48396F0F741E9DDF1D4FEF75E68AFB020D06CC29B3A7B2ED819D1AABC12B91
+CA2A65F1AFDDA2F3FB322E0268DBBA024663E49EFF076455338FE31A16B04EC1
+797EAB0B49AFFB906A0690A1E8E2F5314773E1CCFFF43E6FB3875AC907F0C5D0
+DCB9BCC127014D472463560CA0CB1C2CE614D94177C7A52A5B089316689C8112
+CA57E35D716D956DBF9013B1E5B9626456B1433C8C15FA906458F957133B9E19
+8D46DC3AC015F7602538C2AE3927C6DDBACF38E59220C2F5AF36B68DE9117C51
+04CF7DF32B1AF55B87D1D8A5F4BCFEC66F63B32B6548DEDA3AAB06C5310E4757
+78AFF947DA22809B360FE535506A554DDDE5A6F2411246653710ECE5CD3185BE
+730520A766C47E1ED01890059882BE1432586864E1A86A7F586438C8DD35C00F
+021A741ED47E0F16DB6070ED0C50038632CA4AC2975578A8372A080CC0447C79
+CEABDF2BCD5E78564247B0F0025F556DA8FB62125227849EACFB724A4AE3EF57
+90C07A5B27D2E59425F56BF8AD84C5F5310FEB1BC73D536339FC2E6A5BE2DAFD
+97FC835E0D52F680F80ACA37DB498AACF152B9B44626CD89E3302C3EE1623EE0
+F998FA78305960AAB9F483F731F5F67A8C963C23DB8E48FB804EF8B86FAFE7F9
+4C09641915FA7E3930AC922682313408BC1607C76751CEEAFD660206A39CF394
+40ABE2A313AB7D5FD6444E219DC5C26734D322BA268D330AC17959A390D6C8E7
+3A155095BDD66516DAD5D65519A7FB871ECDA77061EFB21F359158B4470EF79B
+362C35C06B85C9A9505C8361939C6AC013F2CFE8EEF46FD8CB4452AAB3EF1FA7
+DC066557BADC2ADDDF7DDC2A0E1DD4A357E27A2073427EACF9B9035DA5272136
+7DF37E26D96ED4B2ACD60596E039BCB15E259C72FEB3344E3EEE3D4F17DF4233
+04C1416BCADE80BD483DD8C9AF979E1C7D50C4CF015870703F88B92C4FE46AB8
+DE6717B55C460C805B391B84333097E116F4A51F631FAFAB34CFC925BEE8B72B
+C9FD5F5A79D8F2295FBFAE649DC6AB47794AC7D73431FFE5BE992F2B5AC67049
+B5208251C0E442385A9FACF25E3A98D7F5D4C2A1ABDC600AABE84769CA83350F
+9B87F71CEAD3600E02FF9AC03C1B5C21C84F911511A0CF0111BAC7605EE31229
+3C526A79D943D92E1CC3C38ABE82D560CFD4172F318030852A5FCC0534B8B3FE
+D7365987C8B48A072907B26CDC2108130A33233E8E0BB5FDF14FB55098A10EA2
+B51AD9EFB119F82B08D256D396D3263FBD9DBF172D43A90ACD1A31F3E89E8571
+74BE98B9560E2CD661A2F93C69FEA3FF26B00772AE2C2C24B98D3D122EA2AA8A
+44652CCDF4EF4F01CA7D62A976E23E8A86291F43BFAF38FD9C325E70F9C36CB5
+A181DAD30156E98339E6A0498D3420B7BB3B4E651A9090D4A17604AE386273A8
+3D4AE8CC18345E6E19DF06BA848F203F74B161D6A8882991CBA7385F308696A1
+BEEB0130D938A764B98A2001A38489B1334025EA848CA44A116D64926D460D64
+01159E77EA7ED9ECE7BA77635BE564A4ED89315BDFF54ACE6AA1A26591D13CD4
+6D6425CA7933769B842192858D10998509396829263290A3A7CFEBBDA3EE6CDD
+DF1E492AECDFF7941B53573F01F623CA0A5ECC9D05A3D0954F7AE8CE94AC3B2A
+CD4E27519B2E16F033EB732AA024BBAF74626DB55DC74B1FDDB07FAE98B4AC5C
+683CFD8744F361838D343B657EBF52DEEE7AEA7565C5BEEFE455DDDBC4DCCA7D
+87D6D769C5ECCF14118A14A85A86865777C8E28F953160D5E82844AE54D541DF
+550D5F1519E183E0C42BE88F0458CE8087F2CD4B1B49A8E9E3D127C4A4CB74A6
+2E73BF4CC317781D03FF04BC36AC0E4AF99E2ACAD20F6F8029DE8A035DAB40DB
+17D237850BCDD05931FF4B0FE2D0B79EC5A88FE0236271CCB075BD194AA25AFB
+3FB93A5206F61A14602E4EB6F1C31C654527CE0C02D04314DF9AFD710D0EBB9E
+F8721B97F5FB18E27507E1F800B5509A58A1A8296C72B7B73F99B6CFE42E9C2F
+B63B3555475E562672645CD374BCDE937A9B05A157FB3E74C8297507253E957B
+1A9DC421946734CEFA3D5EE357DAC7E9DE17A5BDDEF6B2D2A740BC58128FC514
+61154664412BA1C05209EC992A77B7CA45AB7C0EEBF590A5B5652866008CDEF7
+124A3003AE6A7CF9DF3C72750CBD281358CD2FF25B162B78CBB971DB3477F8D2
+ECA3EE9CBC90323B2C236E375337EA0848CD7CB5781A2B0A42DE7E4D99DB2746
+0B26796CEE129D23C76794B7CE21C13C7D4A998B752C8CF43A4821B736EBE246
+D2A2BD7BA3351FBCD1B0A501EC1EAABE60D06DA2FE39BE1F0AD629769FDDC933
+F9D02F9686EC8C2D7455C26AF4DD3F6860B2289E3A30E1C254AD17D731CB73B2
+BF4DFE90CAEECE3ED0CD3FB4C8F4C7BE1C056AB4E9B95781A8968E3CC1010003
+75DFBC4AB9F6B27C5A9AD88D94441A8ADF09EB275E5F0E5E6F3BFEA0FA8C308A
+8593ABA0645ECA8FDC3F0E264B35D4B0DDB86B93CD8A047FC409E18196B501C3
+B003622999C47BAC04FD1ABD8AD359C977766E9643EF3BD6385306B08EE3E13E
+7DA5A06AE33D17A3D574C6390DB6E9429754B210F0C349C359559C7EAA2350BD
+F61D4D8A92B1AF697BC620FA0351E67E0D9F41A95A47EE0BF210C2C48691901F
+F905F65693DCB85BE412F097480F6A7266AE0A928729DA0F691CBFFF3B276EA7
+322BCD2206D96E3DAFDFB992CA8F2955F0E8B882729DFF840569D12E4DA1775E
+523AA734552AAB6F2F16B89B39F1A3FF0E07EA08D13E612F201716C67F327017
+6C041760DA30374434808273062C1FFA2C47B3FB578807BC26537F542040FF77
+66C995EF3E8B08B09FCD3EE89C30F157158A739606D2CEAA26694A4F1CEA6633
+B54933141CB85C60AB262E2D4E824A3B85C2BEF810DD774F296AB37D0BAE7182
+5648CD18556ACB124246A75474B232D712C2358908B5D9A76F82C626BFDE01A1
+093B8FA6AA0B32F2CDEF737B28BC0448FF816DDB5812131DA0DD5979D77C3838
+B978CC3F6778A4BFCE9A7087EFB19749285AE4C92B99A6649DA349A2E0889D72
+6D4FC664522F06C8C4D86D30BA43ED4E42211217D01636A4E17E2A132D26F394
+EC34EA12D84594AED9C6CDBBC0908860F39B240FA7D7B3003DB10322498691CF
+A294C0FC7ACC0BAD1EED3E9D60AAE3F7429695892D1A21CEBF062C6129B33966
+8B2EF6E932F9891DE6028B81C5E9B23278D35B7F0D83989BCBA25E20E9D503DE
+144DC485F09A4EFA1268AC5E4B551C5B2F1D51E9B9B9C0FEE585204F869D0BE0
+7287D7570A12940A47C1F51AC6134F03B415C30E147C49F89228855D093EE55F
+172711F37776E97A99CC4B36E2F10713E36FB279FD3FA5A0EB9F3938F42E2BB9
+254EB8F0C0F30391735019E02BFDA21D9813C6A22279B898EAF01AA892B14DC6
+5912B9275167AB46EBC420836CC1A5F38A4EB47C039A7BCA62BC3FCE4199FC71
+011DD6E5FFA0F3D7F04AC02AF91B9249B9F993AE346572329DA852115BEF8460
+B94690E790003586F473F37EAB5AC2922F5F663EE2C3C0C336A8DB71650631AC
+0A923A389AC911CB215EC2EC7D50CF8AEFD59EBFFA53A9F1FFB7E6215F17093E
+3975F186FE23BB5FA5474C11408FABD223E1E6F62035B5A5C1AEFD8899F00FFB
+E729C2D5FD551E80716CEA4E8281660286A802AAE8D5834F37F2EAC46297E57E
+993B09251DD7789D3467417E393B7DEABD06676B96241B0E43ED1A1A9FC3B12E
+0D34B2B0792B79AA648FE9450C3B209FB6D7D91F50C52A5DAB0BC81A8B698BD9
+18946EFF691912D7348D48FE68CD876FC6F71F81165D0C3272DA1A992308D9E0
+ED6D0A4DAD679AF495F62B78D462B463BD4A40931172290C615B3B3B6B47E45F
+CEBB85E0A6AB6832067CA6D403C239530D07F199788AA4DD52553836851C5228
+1072406F6D7323A334E7A7FCA588897C4FBA6D4F7DEB65525EFB74E539C988C3
+A685A98752F7198E77E456A545F0D23A1BEF81EF58B02D289CF980A3F17BEC8A
+6F83DD90C4A917EB0E5E2B444A608E2E9D2FF80620E16AC1D7775C0A10C1299B
+BEE0E1AB24C50647E5CA1DA65CFF3B2C295F0644CA7826E1DC6FADEA93D66A20
+DE852F20AD224D28DB900519EB1569837139C833F24B799F7EBE3FDC14235323
+1D0BCD4991C861F38DF413A5A5588B73AEC3BBFDB885CE17BB3E97B4E6A79761
+93EC8418C2BC4725CD61B5E30C07352F647C3FD50083878C13CFAC241DDCB082
+E53703D182068727F9EB6FACEC25F6D901D7309ED7370867E34E267519E22D62
+4FC7093448BD0D6B1C43D318A3E14C92032325C132AE0FF7ED707E1FA4A955FB
+F5224BE0045CB14ECC321D0F333FE24EEFCC504F7C756451D7693C3E6CA87526
+4912E1B6DB935BDE76FBFAFCA4ED473F1D2618812CFF25A6859C626A216603C1
+361BE3E071FCFEC2D4BF2FEBDE07DBD56A1BFF8303901168FA06488BA6B76F36
+95B0A90D7724E9ADB567C2ADC65CF3482CF47FD1D16F70AA19A97D0F9EFC611C
+AEA5E1ACCDA7FB2DF05E9480936281484BC329F0B771775E73F7FD72FE3F45F0
+50ADBD03932B38F37A8F0A66B2F739EA3AC8811C8F514E68C5643E4AFF485C81
+88475A523D7FCCA5C8809BD49846C77795A38DC6406082000236A4D2628B5932
+AB7916D44EC2210CB941B1422DEB13896DD78CB7B7F400EA5A6CD639D9CC828F
+52311A11F2A84E566DE98826F1E28D55FB08ED70950205DE52C207CF14238446
+084FB4DCE04C781858BB4E0744C023EB0B563769751AF1D807EED20E4AFFDC46
+3C1510C782FD92902761F7557FEF701AA67B20A9B019C760B2BBA8A048BA3681
+35DB440925CABA05B8A13B2D30D14FA875D3E200A018C78BE2E930457BC33AD2
+FE3610314A268E9A30EB41F7C771758410E7D1179567B22CFEB5163F7CADBC40
+4D40860E83BD5DF2BAB4822B55B863D0793D3B60F0DDDB6DB993711C4C7C2F39
+31D02C7D8EE36FFF8FF2179534EE4F2DF388C96C9AF6978D929610EBAA615EE2
+FA163D8C52E5810E94456BE63570A6878E791DF4958E60C057FAE0FFA4C2B7F6
+192AF8786E14A6C6379C6E13A9C528A198B8EC8654AD69CCB5C209964A2B26E4
+E636DDD749286B80A5C22474B49FC5C093A8215D49B30ADA383485030AEE93AF
+BABB827D996E563D1681528F54353D1245ED78D1915CFBB5595E3B9272ACF503
+8FEE0B65C4CD9D5783F948ECAB51BA25F77DFA440C1D8B636FF6A15E6BB0800B
+AD6C7A22C4F0BF6C9A19F0E696B103D8150AAA337C303ABE10C87D87549D150C
+2D9665F99AADD64B2A8D89FCF9E50C08878645F932A79211C3D5E20F52D4D829
+0635C9A1AD845676304507AE33C76AFB216A17417C0DAF7735D8ADC647BA2AD6
+1970A15C7CB7720F527DAEC4E528E2D4DE4F6E2525A655331FE2C56415A28389
+E7FD57B9C79522C1D822F82CFE0BC3F399DCDB9414D5478F9966438C3C6B4D54
+621D44ABB27135B7EF06B892E86D1403C8874230F10B839B587645725DC3264A
+0A093A5326A2152DDFA19E2F2D4FD9F85BE5E8B5AE8B1A5885CB61B5EFEAEB48
+1B83E387773E29896C843F8B7FF6C85FC1513ECDA95D5A73767C032C26AA7958
+78DB1B6A9AF5F3FBD623AD518C8264DD237FF9444A3FEE0CD66100EC6C3E0885
+5F54DD846625251635E6050885500B6BFAD25B26E1656C13224728657C5A9D8C
+028A05FA2C2667C93490FECE298C6B5FC086BDECD05A09FE01CC0C3A2962B81A
+B06DD897304FECF8707F5EE7C591F5082371B34305B0B6C5C6560DB03E56B066
+895CC11D2EC8A8483943FEFD6714A5B4E2113DD3DA3292B1A4537F90AF4F7EF7
+9600048D2178DCD1CCC9B5B35A4B4D3BE6DDA1B26846E695CF293C39AA20C283
+5D25314A601B53948B679FDD50C77FBBDB381F7FDD9EB1D56142D848902897A0
+37879477BF786B2E5B7EC5C4B362B1C22E1061B76774E42DFD6B5DC8945D7EC6
+BB58102CE5A47903E87D629839AC651F1319485AF8535EEB1792F5BC0A24DF5A
+747BA7A8D638A14CD46408DCC140AF3EB7A16352476E2377503A0ED24E30BBB2
+3709D90FC7FDDC3303450FEA53923C7D8D6B8830C25017C03091C9A41E13B8C2
+504D710E1CBACF18BA8C822C839852F9CC032ADAA6B30D189F0B0C44F44E1F1D
+618C2F7EC4992C1B50443DBB0B797408296965B9887EDB1B4DE1D3E13130D728
+CAB5DB991669B762F59D5FCA766486B5C1B2824F8513ED8A13DF27B58114722C
+8288DE27F5F532DEED0CE260E1AF0DDF996C15B201C57152D48454D9454AAD60
+21A9C6F5030DA7735ADEFA843470D6B80512E38207C7D67AB521B582EE2A0462
+B25A4CE6B0844FD99BE4F6FBF7A1046412C358EE796204CD4DD02384B50A9DB1
+A5EA96C4300311D01E444A43A97B1EA4DCF3CDF1A1FD7012569DC6C94C56DCF9
+AB3A7A354160A14F23BDCD300E4DA56184BE96770AFB9920BE1641E4F4189EB5
+421319F90FDEAE7877148E8760458AED89CD92B5F85D81A961D856BF1ABC9A44
+714C7CAC016BFE8BE8AFC5A7F6574851BE740A89DBB24A5640EDDDEAA73D25B3
+5CC35177701510F2C8622792554F2CEDFF22747DD82489AC2BF0529BECAC2FC2
+383EFF6986DCF54BF651144AD9555D469F5CD25D03BC8F791E58E217CF046889
+A817AC7A65317C64169B288FCD4C32589D9CB0D2DD2C9A6B78E6AC615258373E
+4A370F122D5AB9C61096615B0034C575C77B3F691BE431FD668D5A6997C566DB
+102675B020C2E6D6E8CB5D0F98065ECA2C7C8406157AE8554865358C320105A3
+5FE5A04FA7C00BB61322A161225592572F036972562BFA92C9261CF5F5FBC338
+66E0C7CFAAB786E0F2109806055AA2BC02E07D035A3B9F40598349EB8955AE1C
+2AD9EF253E24FF4AA72AD9119BEFC7D030AC460C72D8A6485D71FD6E64F26605
+7F216F1262CCEF6C7788EEA2D5045B50EFBCE201002F2DA952663E700CB1E7DE
+2E5595B63C15A74DD4AFC43F49A17B98F280A0DB93468483E303CEFD6BAC0A25
+01133CC56A739542E161824C00AB14838C919465400B7A63AF39D275F74EF7A7
+CEE565D6B27CF60C0CF051DECE02760CB9557BF8733E5D2650AAC9AEFBCFFF4E
+16F166538B4F5CB6DA9FA35F0CFBDDFDC52AC0F6D497CF2371243E544AD82DF7
+A674DE4F5C3210B4A0F2247C5E4D1D9DD52B77FE4820BB31FC7E1A66EDA0D642
+8C4FEA60420D1BBEAE8BD82754959775E085EF4F48908BB872BF9CB489F1045B
+90196A086F4E8206336898862766AF2A788D8515FC2E109715562119541467EA
+7CFABF282AE108C6AB6EBC6E9E2D39148C515BCE60C82C844601BF6C6F60404B
+D4D71550695A36934AFB58E2941038544267DEA004CD70EAA317B35F24B73DC9
+C18E3A7C7F2D15C9684C7B6136E1CA1FB0790BF57ECA4C6E9CF8CA194F7501A3
+40313506C9786CACCFDFC023ADD205B5D2F8969446339E234B1EDEB209A1D8D0
+D83687CBA22D416B03DF86727A90F38A90587B01ACBD191531060EE185DBEDC2
+88D3EFD6D90C4E08F5AC850E7DC2AC401EF71DDAF704AB7342D2E20418451A71
+A053BEE600BB67C08BDAB8F4804314362F7723670B1CAA770FB8BDC0EC7A2940
+F59A3151B37A8D6FD2C33ABC0C4736C499560A8467032160527EE380E2B953E0
+ABE1044F25C916B659AE48F451D5170A6483714FCC1814D63808B3BDA0A6523A
+086F1B5A1BF2AE5AF2386F34FC48755FE08342FB4FA5F8CFDB05C26A2E99017C
+613C1B2559057F85D3F7C6E8FBDB1496FA2EE4277B53B78A7EDADF1DFA092894
+FE49251ABB42A17FAE6D64F89352F81904E2DA683271811C8F57B95024263A1B
+224E5BC6A7960004A06424EA54CA9DF0125FD41D3D9BD7D691991D2318B98213
+082D42D3B3EFF8934378D24C5F324B04789AE0A4D0B85EC7C6FB1F96F70AF4BD
+8E7A2523D4A58F5A886EF68DBC7ACB31DFBC850D521A548AEB32B450B83D94B3
+191E9AD9A76D7896A757EBD70B306CAB141331BE35D1D53029E9170A6150868A
+558BCA6A981DB3F7029A880F99AEDB0729797F1EF3D7E33090BF8AAB8A3A6666
+7594DF11908259DFD243D61E5F58EFD99ACA51FD4F4E301E1035E4D4A68AC20E
+53F38DF2805C5A1391257DBCBA60506F20FB62AAB36F494898AD59E9E3FB35E3
+558A514B0575FCC353E40F669C20062A2B78E34DA785F16707C237841000B2BB
+05B823C7A6F36714393388E545EAABCCED35B2C9EBF246F1C96EAD0CE77776AF
+527064F94ABEF0BFC205D7258DCC8BC27CB9A1D60E29711CBFE6D84BEF1F30EE
+542F38F3E4AB8E2B9642E36A1D0A9BBA1142C4610AC1C526038A5F6C7CF27E66
+913559FD83C607251522E47C0CE7B04E019AAE62096A4A71927EED385F341557
+14571A45D3CE80152DA0E11098A34A4C22A39643542107C38CDEF226DE48E06B
+D5FEF7F519B502430A85CC5962A9D5B21845D95EF65154F1E76043A03F4DDF75
+EEC0BAA7EBC8A050E400EF24C92626151A7CC19937CD582F5C72AB3714363933
+735DA8F18A6EBEDD0D0D3123E1E3B2C3EE63ADD771F3E8E167400A0D9963F4E1
+32989DC5C6A0F8E733C5A8903D51890727FA784AA80EC96ED00068144079F666
+CD56313B9D53F2EC7166130F3535015B54BC74228D18C10BD35BEB3023AAFB05
+9195CFFDF7D720CB475C3113F3FCD8809908BAF80A2DE2DAFF8046B9B6FFC43F
+C05B6352B9ACFC7EABA392E5C093CE878C09A8B4B1683EC28868CF9E1F9F75E3
+E1AEDC271CE1B1F09E23C6F7244B7136EF4E084C43A6B402163FE26193B37BDD
+DD9A0185A72E56698DD9D11A687271AB26EAC04FB31E866CBD1139447D0A3A92
+8FD24A0044295C66581D4F6690290E50CE0722EF268FB1BBE356BDC34763B739
+27E175BD3CE25A737011E2C9E757922B15990BEC4B04E679953668096A092830
+0743B59C1E2847F86F83FCBE1CE581334D0587E09941A7BD130127B4B1F108FC
+1B694ABD46F845E23CB93BBA2578E85D6FE8AC4DB864C2EE10C87FCBE9B48E8C
+0CE58BD562C35B5ACD5A021B393F3ABB5E590F87968990A55BB58112F3E2CBEF
+0F1291BF0CD479680DBF583F7ED63F4729FA31F72C1B2D32B1ED756DC4CA06CC
+D899A042EDE28F1B51B6A79564801C167974D9C29C0A11393D14B683B2B9E0B4
+0ACD7C42AF39FA933792677EC37433C3A300DBF42138AB7D2CB9272E8B9452D9
+33BABDF4EA0018ED50B9380083A0458157F5FFE7B26848990FD109C5C52E3639
+CCC77BDD245835C495C7EF4D0D4F6B918706E59C66A30C25A667016880CFDC40
+629C408A693B1F3FE143F50397DC9A74CA226BAD0E6E692B701E6FD252FCD920
+66E1AE29F2F622F5B187F70CDD2FEAF0BA2E83E2E1FA6B506A008764E9DD9801
+4F71CD55456BF709F29651F3A54E58F0B996AA50DE7F67A3A0A680FB825DFCC6
+08F5AF3229B9552669C989259F604E442A1B203A9ED199AE676E26639A0111AB
+56EE045ADDFDCE371CDE015587DA2D9667E41305A551E6C23502735E4A611BD3
+CE813B0C48B6804795C61CD26DFA9A6FEA35FD220DA021BFCF45F3FBF73FD950
+73BB5FA315FD3CAA11250EC4B885E85DDC2F3D0C57A7D88EA36A61BB73ADE9EA
+EBC099AB8EA6E9D90DF7297D832DF9C7F3342001F47AE7E08BAE6385F9834640
+02E8D3A43A740ACC4839AEE72A6C8C71A271772EFAF4A03837E46A87AE22A75F
+B4D9AE8C3D26FF05F633DE8B7AD207E34283E215BCAB4E49C2F8D1243C4B52F7
+613E33445D78C03DDA5F065517C1D412D851BCD3F1D4FC92EF9B7F4FF0F37402
+68765359BFE1EA54FC7A06A8A5DE12213749AE1EA6398A951FDD77AD67A927AC
+98488F40E8AD555CE99FEE690F90185DE08FB7C79F1BF981BAC33F42A697782A
+3CD23599C95BB79DF38FEED0FF8C65E970BEDB0CDDE79D7400C40E862D1C7950
+FAC3AB2A4D600EB782FA19032D0EA8AA5E407A5ACFEAAE1AF34C635834D1F3FB
+215BE64717C8DFE02C6FC578AEED8E60A38C394FF1086E6B26BD72082B2E5032
+3291F66490B2357EE660B4F1058F59A2C794DF6F5DDD34CAB7B9E3A1BCD45AA9
+CC531DD1B5D82EFC354B126EAFB6B634E8CEF5A6336B093CA092064E5DA4EE2C
+B7DC39A83E4B17468F3C7CAAD1EC9B788A80351F631679C811FF9EBCE1511DFF
+74647868AE47A4ED0CEE23C92C82234A3390BB291B0943EAB7D7C60B01F4CAD7
+849F69EB2F397747F1B4F3627C2017C452ED8681D2036878A2305E991CA7A956
+A70C65C0E00956B1EC2E0B8EC3E3F2245CCB928F38A8BEE3F5562BBFD91B0F53
+1DAAAB37ED748E6206EA88D0D34C8EF8210EB08DD64BB5CF08C2BAD47CA4844D
+37CB18CBC391385D70853FAB7CFA5B3DEA7D680192BFC7AF5D03A4216FF0EAFE
+7D7129FF72747684D23A49DD6BB5757DE2A541FA2DDB1608E2042425D5EA82DC
+6DD4D9E5761AA17E87F228999B2A85D80A2D16151621607B46AA9B937D9F5A6A
+99645BA00E3F283CF4704709B7D9225FA27538A570A81BC5A753A53A3F84AEB6
+7A5768B3544A3544EA3710C8FA9C4A97EFB175806E98F99162DA852A483BE261
+9F9AE8B6D9F992BCBA318A3E1801443F6744913EBF6EA12F57B2AED0EADB0295
+BEAE8F30B98C75D784ABB89A655DD3E52A4A03E53F76291427DC01150F84CD13
+817E383A32F4E7A269161AD523AEABFFAF672893985ABB0FB5BDACCA9FAD6E0A
+4BD3C6548F1D70E09CDF9193DF3FABA096237B5AC0F37DC8E22BB8DBF3A47600
+04D1BBBF3A530DC1D91E43E13E81EC5BBE1679C2FE91BAC7143597952514561E
+49FE6A52A21F74F2C33BBF74137D837270DACAB552A5E383F17C56306FEFC95E
+B01E5784F794AC3537512758A39140197ED8AC44ACA4BD08163BC62AB1088EF0
+57BF3C3F1CD1DDBA1D35F35E38D10218A254CA1F3C1D9A2B09C7CDFFD644D53A
+A774C13D4F3F6649C3592080FEE648BFCB64199FAD9C50BD4629C7558F8B9C85
+2A018ACCE2E97297234A4E8DFD30272B8677CAD5522995C843E42EFC40D9525E
+72F0FF1284D7D9697FD059A9E971752CDD53D107A959ACC95FCD7253E335437E
+EB3681B4F7B294AA20FF64C55B58960857BB5CB135F25B4FE8DC01D8F6221166
+398FDB12803EFCBFEBC10661A6710853C26462359B358E001281714413C6F519
+2A1BF8F8365BD944DFA3D37BFC2615873E5EBBCC9674620DE1289F02B871B9C7
+190D20CFF1C94C63E16D8F650DF31E9184B7B9DCAC498506C4D010E6AA206E44
+F7409FC2397A1A0F4C71996ACD0FFD92438D09AA65980A5C07203DB217DDD304
+577CAB05ED16C95A718D159D0D89F35BC759803A9616C966B2F6B83130875AA9
+E4BA946283AEE9951BDD54BFA2FE97247E55CAAA8C6617A38F1D238A0AE20479
+AD4C38C7128C22DCE47B24243626D80AAEB5589EBBE694601AC2FC8335E0B18C
+2117716DA407DBCBD549F98513144B55B232A8E15A3E91A4B1AE0BF4D05CF529
+3662EF7C1F19840CF7CA1EA8A9C34BB8C131BF28330752940BA745AC7115C12D
+D5F849263DA81315EA568CD449D71DF2DFB48F21593E77967D001135F190E741
+68432760880A8AFC473B8C00FBFF6FB1DC62DF226D4B9A2A2016521310E6C53C
+109997CFD9EE0507398C370D57FD34BD4BAFC43F5F4EFB0B529DE5DEDF2AD861
+CC3A1649767B0337A292587DCBF4790A536799D80DC7D59116CD96CA5AC4D097
+4E0B4636A0E98725577142192C60B4FC0B9EC63B27B79C588349BC6A948F950F
+D420AEAE5960BDD9386A2E9C650DE9F809843B70379A82861715B59CBB6E07B3
+A6936B58CDB867E42155962A4A9716020A76BAD3AB161C177FA5A3B0EA6877B6
+34805971D6BCF456488F8948A26337D333AA4C326AFD40CE92AA4693D7C9C652
+15EA9E1136C627EFE5710ACCC0DE48601AF3C290469BFB99EF9F5C3F9C1E9D28
+7D33B3FA428065F82CA627E6EB3B33DEC6433A9992DB39470C43FED86D9DC51B
+0B8B18B6055859410680CF0729C3C68143672111134D43145B49E7B6078C2DFA
+8D729BDA4C992053A331CC286D48E71D2836FB34955BEE283114B032A254C4A5
+6AA3B04EE180A52340CD2D866C016D8A90CA17FBBFFB590314F6ECC1A0CFD2E1
+EB1E7EDB1CBAFEC81DFD611663374D8F61A79665817FCABC91FD9E8B2DCA54FD
+496471AAE352CDF77DBF77FF8B958CC775FC8987ED56D47436108B532D06C539
+C93BE08C1F15BD0DED5FB4431CA51A0E1D928AB5179980D5C1C72183DEA1B0DB
+4E681C77050E17A237265AF8481F3DFC2577AD81A99755D1060DB6404C0B9192
+71EA08B637D7DFC92F6EA52B2932D6D94EC5466CB4426EA86761667A6472D2E1
+2754B9BC073B6314AE79A0E8E0521AD175E357C64CA94F53FCDBD071D85224D4
+60B860765E061B3535836F0947C662CB46FCEAC11FE4E4BA65DFC244D35C12B4
+EB294D91AF25AA74DD2EFA11B23291EF4D669188032AB782A464DB4A96918A7B
+2CE55A8F366538BD6F662E0B1F16AD17ED31CA54E34CEE6F6CEB7F879227C0AA
+73CE5FAD5716265D89BADC893E8E2A9CD8A5ACC9F526FDECE819C5B59B56DC9B
+2C19DB3AF066857472CCAE64AC15D2A2E83B67D154E4176EF46528FD310ED4E5
+C5597E3633893070E0320C3274C79D93219669C58F960D6AEDB12CDD10271F45
+5687E8051CE7376B3A7BBCE9283841554E59977BCB0FC2712634ACE047725F79
+CE8078234EDE4BCAAC52A7ACE4336A28F01213A933692A93B4CA3FE8F9707F52
+B8036ACA14DD2291AF0B9D6E30097F96F18991C4D22DA7EFB7213CBC7D7EDF1C
+BFE0F8EDC002776574BE8E670F05AD0F187980AC5D4A69FEDE2A2CD2042C9051
+2A6C3EFEC84726F515CFE2D1D85A00AB04AC1CDE10E71FC50BC77164C2F7410D
+D33202303ECAFAE4DD04C1BDABBA55DFDCCFEC85BBD33D1ACA6A014765979996
+6BED212018E18C94A199075B905F844AC71697BAAC57D4C8ADCAB4CC1E009FAC
+94136877462494F7B87B3D4BD407BDC37580D76AFEDB3757034169A5470FDD63
+B259D5C871703076C6EC057CA1D3EA563699ED9745712CFE045A2CAA4013F9BE
+906AD05F241F6594A41AE4F8CA6DCFE4648D07A2812E1E30F842A086821D4E8C
+1F2696BE79AD738F3391B25D76EFA2B538B1F6B8BBC0E2C02DB96E1DE069DC97
+5DA1B3EEF715CF0194F5EB83BFB99A95E2A3C496CC3325975770EAA1FEF1965D
+63118B6D1691CB9BC1DE64F54454EF2F308F4AF8A2912B26C003A6109E74DF2D
+C362F64A2224D9AE5556CE304F36F6E9058FCDA1BCFED037D1566739DB5FC1FC
+515E68EC300DC3030C87964F0B570E04B546BF63C8CFC8E9F7FCC5BE73040878
+4C7970B143BEF493C0E5D3CF30A2A84FF59DE05DE744656C1D1C3D183F20849D
+E7891FB9B089559D92D214ED0B4B5D99F8F62511261AD093C40555378FA2CFA1
+EA3FFFE209EA917E239B0142BD07EDC431A09313968193C9722D346FE6A1DEA7
+472CBC65618518F66BAEF1726AD9732AA80C55C47A77EC300B99E4A93328B082
+5AF089DACF5CF990574746C900737281E317F3049C9D3ABAF1A69CB45ADCB607
+E416EDC17ABECCFBD9522E4FA1ADC791E2702C0733E32DE2399C9DABAB98F1B7
+9A0561A1302E8F796C3D6307611156248C4107AE7D52C096095FE557D451916F
+0D1FFF64FF025CE907539288AD4A78CE4340776D7A3821B44BFB449B3EC06DBF
+B9F206412140FDB39E7B0D4AF9C7954F41ECB2E195D7D534DF808C088D44D05A
+3EDDC8D2AFF98E5A01F0E5EBFD5E111F1E94A6F1192F7773D6DAEB99F5448878
+BBD382441D88FB151BA9049857D1BE43F7EB4F3064040BC09E780B416C602D3C
+7AE80A893E7CE1D1CCB12C9B5C4F117DE2AEBFE58D282E82DF7599D626FDAA56
+B22CB870FBB84CF467F527BAF76BCA9B62E919F985447A4241580C2DDBD4BD84
+895ABD448A3DC9C5E76644601D896F7C661A04973430F256F1101AACC5863852
+3BC66EF61AF2050768BAFFBD4ED3F022AC29AE10966726C96759804EC851B9DB
+189B4182AE046B89C6D8916A2DD1F7BCB905A78F1AE02A2CB792DF650058EB68
+8A883D07831D1C9F17E8D335AFCFBA8EB1B2B1F154D479BE34CEC4A2142D10D0
+4AA292F662B1413DD7F61FD2B078539EADB90B376E79263C16884426737C8966
+AA95ABB6A47334C4FA517BB7ED2631F2E45538EE74509E6B90B0518A84A85EBE
+05DA1345ED923DC890751028B2A87AFA015E780E28BA13BA5EF2D56FD8C28989
+35BD31E51BE528E01DAA7BDEFD6D69DF4FC3D3F3834C733EF9F1D82B293E67C7
+127206FED8469006B75DC4DE58DBD2DFDCFCC0B692A18179CC49588D55B55F5F
+AC6822951DD3523BD80D9A0C621CB55D838F21FBE4AC7DFB5CF649B3812EBA04
+443B87AA2769461CEDCCB7DD165311E8E8301F75E22A3FE070A8AAFDF516A747
+83DBCAC1845EF4908FD4F989DB6C8508E022FC6E418B15325D6FD68207EF6AAA
+F36D4827FCEA6D255853BD4828D5D96120082BF3EAE9D25E853869E7B15772BF
+5D304E9B9402AE5E4785B941D80C6BEE7257F32B06E503714F0F58D2F5A0E4B6
+553D6981BADDDC0FCEDBBFD8A9786F547E2FBE351806E24DBED5E7250434F1C1
+874E27806813B465341F1067408D410CEA11DFD4DD43BD0F7C37137534A7287E
+88645F756C94AE4BF112059DF28206C9C284504534D6918C48844C7F113B2F3F
+60134EB669D44AA8678D567949417246137A07D408D8B2B39307C69C111624BC
+06E9C21AA647BA024693BE1701F0BAF31779AE6604AD8C0BD6704579E3F455D0
+E50AB8CF742BA6B0DB00F3AB9EF2A320D387EC2DC3FBA56882561ECDE05E3DF0
+284468E17427E0380A8EE1F7397A9A68EA44A983F5601B7439798648C44B5002
+2C46DF31C565D6921E4F36F187C80EFEF431D0942A1B826A32E6A086D32A8FB5
+32B9FB8B69830F4E85870FE725FE3A165883C02DA76C52F7B8D5B43E08F28A13
+C334E4C56CA0EB1685B3D31F48EEFBA6CF746AA1354AF678EF9DFB2029F9EF8B
+DA16C4433F7AEB2AC4697E083CDF99967A439F6FD27FA20B6DC0EAB15263E0CE
+D829EFCD81E9B8AE8A10BE6EEE4887D82A90187B3491E640B793C6B737887DE5
+4BD34925B94024F572BAB7337F8FBE9F7555324D0868859714AF3C39C244F090
+9DC75E6B412807FAA6D1CC59372F880C3D92A42252C0BB59C70756110BFAFF17
+7925424D22E44DDDA06282660F297E9408B5BC48F7EFE9F2A6C013DC066D0897
+8F42B0FBEC4661CEF4E32A9B645EF3042168D130EC732251D204C865CF66E8A3
+FC7593C4AB47B7A0458407D897331B59EEDB55E8A756A2A46DF57FF9501B6097
+C5A3F83F886A8D274E551A380110EBFD6114D1128E0C5E150F24C9E4CCCB1F26
+E45C35A5F9DB01DCD9378E75B4E91F5516649E1FE95346EA77025D6A6E097B2A
+A96607E5B00B7DD63056695C91867D81C87F142CBD32A2F406E4364A79809AE8
+678408145904D7953368B76DFB3CE9B515A8100B9BE48F3E06CB5AE0754286AF
+3B74EE8EA53248EA78EE1B3056D99BA82026120445FC5D741256EC188746575D
+98AC261B1F0F3D2F3E9F419528B283E03EA088402F59155B78991524CDFB6972
+36D960944B87BC93A957DA334D1F1A81D1170812DCC54252A2950A1FD0A0C1CC
+1112BE9F025CE692338D0A74044998141172FDC4FA6EBC4308980584B2C9EE93
+BB7F9790855A43B8E56CC7BED417EBD0BAD492ADD5C01A1F828C40A9C204A8D7
+D4702A8DD66970C35F9817ADB93ACF1251DE81515B024BB311C6A0C2AB7B02DC
+67EEADC48F34B4CE9DE97E1C5F9DC4AB9D3F3DFFEC1F33FE6B063A416ACB9550
+79ADBBD5211A5D7AE55598697D97061C33814B16BBC57BE95D85864AA34F09C9
+3CD9F4C680FDD1A0D0287927362AD7208B0CEAC764B170420751EFE0D8FF4EAF
+FA33300D7988AE87B6981DF28042A939EED106192A57514C346F8E3B70C5669E
+0F68F83C831266438CB655C4A528989A6D6DEC65CAB5DC96D96F5ACEC627A0E7
+F65FA1A4DF6632700F75F10570C38C45B251F869625749BC2E36A73DBE3364FB
+41E65DFA56B3D21773759992D2336BEB9FF1B826FE3013DA081B3F9077927B56
+B13D927477C3E6DA953BC596E08C88317C44B8F8A99F214ADED3B37017FBE2C1
+51EBBD6E8154B80200FE79E87AD2DF9F209A6E92650B4959691B81D18FED6922
+8B487845E86F8ED9C278320377324823DA3586BC14EA9F0898BB8758401B4941
+122966004F816E8041EAD238D34D4E1B7522AC8813BCFB3C493156301A8EB727
+DFB2C9AF03D36BE76012262211B6125F3AC3D2696062030EE8C4057D5A440EA3
+2DEFF54AF40847E9DB6FF52CE05A144BF029279D7E7F475EF359F6EEE57CA73C
+766F531239C7C20632F0406E59CBE7B82E748DC4821DC3BB5A9E8839AF394379
+E4414531E9A33357D53E8EEA40C89F305C89D206C76899F6551DC03DE784D1F3
+5406358D090984C821868CFCC802951323FCBDD7889FE605CB59D47DAE70D51F
+2DDB76A4BC12803950CC2D87173A0BC86ACB8F3B8DB8FF6CD368278875C612EB
+321F81BFA21409B2D104C5EDC9513E201B55EE4CB7D277F8E3C31379282EF20D
+E95FD44CE14DEDE46F57CB89B878257C11B44F9C5BD2725FAFDB06F8AE82115C
+82CE9785D532BA6A0D549C7E4A89874D4FCEFCFC953E047CF6C42F192AF98198
+600C0E2FC7ACC70BAEF17E4E6B6BDA55404209B323CEC1175A29EB07D89C90F7
+2781E2E8161BDB1328ACB0B554D55D40DBC70ED35FAD8950B12898AA0C78181D
+969F176B4C5E7A3BAE81E7333CCC72647924C8D81B80CF45FD1961F22C71F997
+48FE909F9FB2FDB4BD34AF3D2970584E5613854E60350B044DBD909F47E08947
+863492B2FD64A09278BE1E871299873B8FE4A369CCFF8FBCA350270C9C21F1DD
+4D45EB8E64CB1AA4992805C054D18B10B850CF4239463BE7E69B66A46B0AE2F4
+8F8D56DB81AE1D7AB5EC1F1E6364839343E7B493750001B900FC4605A79B5280
+CAE81F403638E95F1B808ACD5B869C121D6D0A483EBFE9150CFDEA209F39609E
+BAAB6FD1BAC01238ACC3AA27AD0F14294929F5F7BE6F70BC600E6B0FA8751B78
+AB8BEF76E12F6BDF143939D12D3662FC4E670107737356884C58193DB16913AF
+B71DB7820B8529E3B9CD7B0EFDF4861509B53B84B39E32755481E713142E1CCC
+B4287E676DB8378EEF3886D5C1A822EEF91C2FA58F4596B10B84098A36AC3139
+D5DADED54EB027C01FD1E61C05923E97E796B6A166BC618FBB411F9C566256F5
+42D09809D70124117B1986CF64668A374B899B6685149747D08F20517B8849F2
+E9DC7E236211DF7CB0C30C34B0DD8C7EAEA9F0A437DF2F570F14962987CAA07D
+955CE87C33D9CA3E92325C0FB3AC82201F6960582C328112D212ACF722FFE9D0
+EDDEEEEFC284B9F6E0CAD92CF2CEFF2A8FB9D78F4CC27A868AF2B8B4F796CAD5
+5A890FCD43E629531F5445287FFAEB991AA96330DCB9ED0FEE20D2FFDEAE62DF
+BE40E03F8BFB5E1E5C30D4942C88C2FB01A389DB883FCBAE582013B5A32DF6DE
+719910B94C6A62CD0BBC7F7FDD062BC957D2401F0D0DCFD1425FF9905B9A3ACA
+07A34CCA87A8FEFC7646A0700FFE05FF58C3398EBB4CB3E092DE2D7D447F4A18
+C95E3EB5E50D999C2106C19D101289203D6C14958A61EB6F115C959107B79706
+46760598AD6AF0B0F5179B59C4702F7F59B3122F16D8855BB3BCE8D81811CE0A
+5B617F2FF26A46CF236BF08FD260922E45FE256F0D614AA52573D95B7B52A6A0
+B20B33E944F20A5A63BC06FBFBBE1992B892D6E3DD95E4F4652A687BBC5F459C
+9DAEC07AEDD6F5A888AD4B8B4B8D413AD6FDB60D003B12BDB5453FEE0FAD8361
+4D2E5662AE9DB3C7A1C3BDDF511E7873ACC4DDBB6961B347605B517DD6D224B3
+ED1EC2C9191EF39EBDB04B68F57957C1C1E3F211B2A96D2A92F06881D83DCA6B
+BCBAE478457938C0E3D8D479066886FA42FDE879B2065E0283F96E5F6DDE1F91
+E714C5A6FAF4A993F8AEAE646D74BDC4F925AA3A3AE592F76B5C2158316D9106
+051125B6E0B84B96634DBB43F4A1EF91C6BC3B5CDCCBE5B2C535EA855A76CE56
+E49C7318EF4AC0DF560CFF816CE7603408BEB7B5E9A39290BE3BE3F6B92147C8
+83BB1CFAA6A71287F529CEB22F47CE90EE0802E3DAB53E6DC698FF43DDA214D1
+1E1F03F2FB3DD19385F46BC7C7CF0E019C8906C4EF56FAA9CDC74F90B376C66D
+185FD4BADF2E2C1CB1E4D11321F3D4E9D8D9A2C80A6DDE363EA6787D053E4F2A
+15896B4B3B5E4CF2E031D4465CDCA4E020F93F4EAA0DEB90747F9EE613432089
+CE941380DA8467ED635BF129451851461BC2FA05299C6DF6EE30C9EFDD3553A9
+478FA7AD4F2BC03BD5ADB8C1D0D15878E53C6B4BBF24B481C25872B23E22DE43
+B7FA58FAA3E4EC7C43727BAA5575B566C2EC1872D38427DF0F9A03BA1E1ADEDD
+C9836CDF2D393162243B829986BC12FCEC7ED67482893E4C4914DB0234DEC65E
+CCDA6238417C5F6DE88455EC76690AC15620CC0309B3F08D69EAB599A4CBF73E
+6FE894B59EF90D89EA07EEA16F6EBC0616397E09BC37E6B6100913936FE94F5F
+4605BC819080BDBA1C94B93008AEC817F2E58A0BC111F3458AA8E21F2879CA2A
+0152A04AA78096EF13D556BA218B2BE6C1E109A35A77B0E0E8E4D8004ECA48BE
+8F0521C073A7D2A9CEA815190BB08E7936AC2477A288DA75B049594E5A4B0338
+7CF5BB1543AC24EC1A0192173D1A760BF113428679B20E79EC8C5085DB4B8EB7
+62BDA226163328F00980585550167917C57B736ED6E526107F8337F899866972
+63D7AF32A35FF242426C02AEF00FF556D1E27C47ED1B296852F7A10FE7DB5A83
+17590C0F27D13C7A1B4520DCC32E1D6F986B30DAEF1C7EBA224549F7F8A09B4F
+C9FD2CE806D1E1B09362BE3FA40864A6FC000360C8A66E7B551B02D5C45F4865
+626A8F6A5D715D5DB8D7FBBF15F68F9C6729725445710C599E046A2672C1CD10
+7301199212D7BECEF0F1C3C0397FB5AC9056016A2E2A9DB940418F6A48B59EDA
+2A1B933C94C0C803827A147E73CB788F2C9E1F0F83D91FC05DC2A4A64D8C4A53
+D6E44B74601F9D166EF2659A00F2B7DC48325AC579037A09F5BA742C9907E82C
+5601760A58226B5E2A45A4EEE141AF05160792DA28B6526951F61CF145E09866
+6AB7AE5062F7C067F465F80B8B5D0BAA16578466914D1CD46728CF729E5A5B58
+53AA7B9B6D8584783B3AAFAD6DB6E6D83D3B9E3B49838FABCF15DFD27B942085
+8D558384C6E8FCEC737AE906BE7FD93E064D05F11E2C3FA298EBD79F9ED507F0
+67E63A9872D5098010CF25B37C411D07DC9F031FB010C7580400E0CBC3082B1B
+639DB5CD83E4E2FBE053F6276B4C2E1A377E5272E5F61AD1393628D1271F1674
+036618662105313C2FC28F46A7A1708374E30A286E60AAFF2F59C327932DBB18
+C005CAF3F09C03F4429CF730DD43B999C674182345A6AB3134971967DCA53617
+A774B8C0DCA86B3CC35E55976C7C97350B893EF62A9E27D703C162899318F9C9
+98A6D5B784FFF003447C3E3D37605685B0CE56164B2654439574E7B7B6C64880
+86A1535CA6CBF5A510CCC01F697E70044E628EBA260DAE665B675643D2F0CE79
+0214C9EDCC2358A65AB948CC2DBD91249A89F23533305A186C7CD08406FA5B57
+650F1C8DA43CEA9B43ED008779C479877F3F25E9845D32BB36E060775B504968
+2516885FA691147563DEBE34EE66974F0E1403ED2FCE832F6E4E6487344451AD
+0D11291D5717A0A416A1F18F11C6BD8D7653062D766A3992FF752F4E845ECCE0
+B534CDB4A70A19D18699112324892EAE60B8057A1C5D428E92900D32B0271DC6
+4EB7C7EADB45D72D28982AC53AE8F39ADE725033768D4D0324AF2BEE24723277
+2D8320BB3C763CC0C3E65DAC85DEFAFDCB38E1BA43BE97057713A2404E5BA967
+66FA39408CF01C57790A278289708B026128BD20F4D3C62A374B958332C2B802
+F99A69899D1815751C88EE9D30E5764D7F85AF93914110517E04EF6BB6350006
+4D741B1068C14ADA3D55ED1BBF362A3F3BFBDC3197C5339A8F6274027C9FB9B7
+C5A85C1976B8B80A5148C5C3C016CFD3B3B047459A527588059E67901BB2E636
+3A928D08A457C3D07D94828E7A7C5E42F1AF828223B76F80788F6490CE8A4F2B
+A9FADEC4C4326A3A8E4263C1B50AA3CF512ECCEF138B83D046C63F7E9AF3CB01
+22A817B69E952CC2AC8F8D6DD351CFD35BF1D099224F6F6DCAC634FD1A91C44C
+A43FFAAC51EDE8C70461BE4804D42D6E2C30020C6023C3300499265AB962D2BD
+A525C13DBF57C0667B8326F93AE2407C2F06D2D5000AFADAFEE75306F53DDC29
+FAF38F78E24952875BD5DA26E415E79CD9D235E7B58BEEB622DE88BEFE3A6EA7
+AE071E717C74BE4D2879523E19D1695C5DC9B0CE7747D7BE310A500A328789CF
+F7E13FF4DB930A5C47DAE5A7B60478A073AFF513AB072AFAC7B1D0951289A394
+EB3E1C7C24ABD116231C5AF69B6E9F731B075C029E9181186E362373BE65D8E4
+340911295E477040582DC1900AFF1442D093CD2EC69BF862D30D98623112FE78
+D0FB148C142A676CED55662196C4F3AEA7F00597F76FF5CAD60D69CB509323B5
+B50817BA67D652BAEFAD30E09C8D8BA94CD182C45B9F8E75597E9BD5E5B0FA75
+8328A828460D9F083EA95353A7056C35CED7C51B261400F95F06DCCBEE056234
+9BBAB2170B0B8ACB5317A9BF7B10656522E2E80C6BB4B13926760663EBE24DC9
+9E7A085A48EE1AED815DD696A4E714BE30301253B8D59CB79BDFCAB2D0F3CB3F
+FF287160949649E3DEF014A3067BBC951225F5CB5996CA4AC4B7CE2B48FBC86E
+249FE59F0760D8D29CB89F48CA3794E2EAF4C993A9C9A61169A82EB971A1B8C7
+D3FF801959F0B944C9071716090419A47E14BCE4B5A92F07A7F9F1F85C68607F
+3EE0E5D5BFE6A2A4B1222AFC173C38E527DE7380A560B8C80B1DCC10A2907457
+142853C57D18D002E1CDDA5036A97FD8B1550D069863D8982933C524F8BD759F
+C31EA8FF8363FBCE2464D64CD503C06A81F97D9318D95AD42A297118ED8F941E
+C7229700CDD96B855404A66576242801C480AFD57D7B79AE00C159613807E628
+0F7F370B3929DEB7
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
%%BeginFont: CMSS10
%!PS-AdobeFont-1.0: CMSS10 003.002
%%Title: CMSS10
@@ -2893,7 +3525,6 @@ FontDirectory/CMSS10 known{/CMSS10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMSS10 def
/FontBBox {-61 -250 999 759 }readonly def
-/UniqueID 5000803 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -3135,7 +3766,6 @@ FontDirectory/CMTT10 known{/CMTT10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMTT10 def
/FontBBox {-4 -233 537 696 }readonly def
-/UniqueID 5000832 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -3921,7 +4551,6 @@ FontDirectory/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMBX12 def
/FontBBox {-53 -251 1139 750 }readonly def
-/UniqueID 5000769 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -4530,639 +5159,6 @@ D60ABD6DC5057B11
cleartomark
{restore}if
%%EndFont
-%%BeginFont: CMSL10
-%!PS-AdobeFont-1.0: CMSL10 003.002
-%%Title: CMSL10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSL10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
-%%EndComments
-FontDirectory/CMSL10 known{/CMSL10 findfont dup/UniqueID known{dup
-/UniqueID get 5000798 eq exch/FontType get 1 eq and}{pop false}ifelse
-{save true}{false}ifelse}{false}ifelse
-11 dict begin
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /CMSL10 def
-/FontBBox {-62 -250 1123 750 }readonly def
-/UniqueID 5000798 def
-/PaintType 0 def
-/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSL10.) readonly def
-/FullName (CMSL10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -9.46 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 12 /fi put
-dup 13 /fl put
-dup 42 /asterisk put
-dup 44 /comma put
-dup 45 /hyphen put
-dup 46 /period put
-dup 48 /zero put
-dup 49 /one put
-dup 65 /A put
-dup 66 /B put
-dup 67 /C put
-dup 68 /D put
-dup 69 /E put
-dup 70 /F put
-dup 72 /H put
-dup 73 /I put
-dup 75 /K put
-dup 76 /L put
-dup 77 /M put
-dup 78 /N put
-dup 79 /O put
-dup 80 /P put
-dup 82 /R put
-dup 83 /S put
-dup 84 /T put
-dup 85 /U put
-dup 87 /W put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 107 /k put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 113 /q put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-dup 119 /w put
-dup 120 /x put
-dup 121 /y put
-readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7
-5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99
-8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716
-EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C
-02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D
-46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A
-4B60D020D325E4C2450F3BCF59223103D20DB6943DE1BA6FC8D4362C3CE32E0D
-DCE118A7394CB72B56624142B74A3863C1D054C7CB14F89CBAFF08A4162FC384
-7FEDA760DD8E09028C461D7C8C765390E13667DD233EA2E20063634941F668C0
-C14657504A30C0C298F341B0EC9D1247E084CC760B7D4F27874744CDC5D76814
-25E2367955EA15B0B5CD2C4A0B21F3653FCC70D32D6AC6E28FB470EB246D6ED5
-7872201EF784EE43930DC4801FC99043C93D789F5ED9A09946EC104C430B5581
-299CB76590919D5538B16837F966CF6B213D6E40238F55B4E0F715DBD2A8B8B8
-80A4B633D128EB01BB783569E827F83AF61665C0510C7EA8E6FC89A30B0BC0EB
-5A53E5E67EF62D8855F6606E421BD351916549C569C7368AAFB714E22A023584
-8B1D6B52FC6F635E44058690002C6BA02CEC21C54CC8875B408A8BB84F445894
-5D6B3E4841CA20AF852A660FE9C832F773691DC6F7197FF3DEAEE97418A5ED2F
-F2AE65300416227CD3BB03C29003C770CD7D2A7A2E4C1DCA193651C2CDDBF93B
-966938788694BFB562AB0010268955FC3555E5984CCAB0A9B7590C77C9BC713E
-A29E5BD7193A4E971D1752DDD0F0AA4648E7E87BBCE66A1E836C715C408B07A5
-9EB56BEFD4596706CF839BA4CFA90CAD4038C1E006B51913279A2C31FBEE5BD4
-A7D74F9103CE6124F5B439CB860987DF44FE17EF88EF1BF62C67060D25696BCD
-94ADF08F04E349CEBDF9D3389D870D94CC05E393B3F4362A13A6A672EE5E8F5A
-DFE7046AFE3EBAEA58FFEBA4A47BF61F92E2003756DA643CCF2C9DFCCAB62669
-E3C2A18D690B64D907F50BCA155A85E47C3A6954C6FF7ACA36D8DFCE777B7929
-5F5D5F787B9C247ABF13D6D7B4A8F06BA25CCB342F8A5071325CDA86AD71BA23
-8A9695C7D1D50D0AAC267AB7CDBA7AAF46A264B7B081B7E79AD937FEE4969FD5
-155A99E652461EFFB4BD010E5885631E2B2497D6B8C43CE77D7D47FE201DD46E
-4482FFDCE150A1183C22C004A0AF0E1F42AA6804E038E1DFC8B0A3CE26B52038
-44D2E7F759DA5C252489E5525963D68BC27C82247BEB18818C7D4CF0BC5CC97D
-8C701034B8DF798DD4CE36C3F8B1FD40B2DA14EA75583852875031AF8C909EE0
-04495FDCD04B05A5EFEBA56A8CAC1F57F1B8AB91FB25C81CD51EE69D6E0F52CC
-A0E12CF7E3187D67DF71A599FFD895FAA7BF80E2E6B96592BE77AE96905BAF0F
-F547355A36C443797DDA7C414AA606CF9153E03450B77D1BA4088D739DF55F07
-111B9E11AF37F45B6EDE6D7AC126E05886A57C83886DA87761BE600DEECD1344
-8A82BD652BE7ABFE6A0F50ED7C6F4EE12CDFD80CA7A5518692F267C51C3FE76C
-567BB8DDBE09A2AF901F79AD02B435287CB8057B3D5EE6655071F67B00438728
-C4C3EBD648BAF650993AFE5E2B29074A99ED0FB725D9B8CE8B0292B08A280214
-C3AF252BEEAD30C88F72E322FAC3E9D78A1038F5DFC41F7BF1AE3744A0677094
-51B77C2D630B67853FE5E975A395C06A4D4DA744040B272C2B88D8B7ED3A2C01
-66F503C9DFD3C7DDAC865900D2A4F2CDF517F449851DB1963468D0266D7A3E58
-9F6B2A1843E6444274F16A9930302DACD8D2BC4588765099A86BCCD8A31DF0E6
-2853114DFF2D19F812F19AE6C2E419D7AC1BC024D1195074FD0C6717BFB389A4
-4D5428E7BB2E4F9E9FDEDED7BDCBDD3460805AEA0B5F6460C2FDF19273CE5BA7
-5D3AAE0DB94C6AFA8339646191C23B0149E7CBF136FC4C844E025A38935DF256
-0A0A6466A45EE8B9B23B6A055856FB084F87C73BA28F1883E3B184CD813C72F9
-233B78CA4E125ABD26F29B92CD9DF39D6FDC2A217E2B6B45D9B0A4D536790A5D
-BC0903069565A442FA7466414D948AC432C6B75D8D0E1DBB217CA3DC38A52DEF
-62E9D5AE9E753956C13819D93148C7683BE4F71B80BC066D8C19FC807FB1C086
-B49215DCF56A91A42089F0D063B9981925691F7DDE3237403AC714F5CC3ACA88
-DB2F1DD205578C00472FD70C8BA4F752E3923ACF3164D442A6B639902ED060D0
-C5777BC20F9A3BDA60FA3BC986C38136FBD2E8F910E32EF36377C9CC187F4AFA
-CCEC423DB925B378522B748BDF12D523804CABA83CB5A7ED69FAB9AAB75EE8FC
-38D9866E3754C4E2F2B9AEFA804044D878DED0E114EA0E9682FCF38F6628E63D
-FE1C1B5615E54FAE8684566EDC4B616F76EEFD6207E0386F06D3BFFA26425F24
-303CC7C8A8D7021E7D09B202616988287838C3DBCE3179B4FB5C726E603A47F2
-8248CB508F327D1291CF3F08F7C88298DC2D0F778D24304EFCF6E074182BF5B1
-8E6551811FD6991971692108E289B61053D6DCBA2925B3903E8916EBD09D97A2
-C6D08E89DE4C0CDF7185E1E00DF456B249F0BFC686E04FDAAD2772DC2C39DD53
-9C23A41471267F53A87E5C2B8CBCDB66CE0B9844BC506428E6150B48D2FA6363
-4FDB2CEDFBAE0B7DBCE4D83E29B2955F8966272CB865EDB360C8A8C19EC62A29
-03066483E4083524A1E8D80FE3867BC1AA91753C26ACBE8489AB0E3330206212
-93E07ED473DBF457EB8489E66FB4B8ED8A9EA8911CF9308CFE3E6D6F36810EE8
-91CCB11BD548617B2C683C354452B9229E7C9E68828BBEC324420DF7C188CCE0
-FBB514547553A7E9B38AC265783891F42DA472388569C8E7594F7E8810895A27
-06E456902A8D9F65CA808F1FD475D011C4572F8A654BA01D67942226A663D179
-95149FFF41A9F55AE84EEB9A6A39C017D7E4FD6EFEEE7FF3CE847CDB064A4954
-9DCD273B810E0F259501BA4003A3EC1ABA6E13D24C0B57FF82D6DF077833B6A2
-7EA54801BA81DB961C261689C0887FAD83771E55D3D137AFBB21779397E11972
-6C6CA922F45AFA5C0526863A5AD8B9C0775CCBA17FFD37A44CED4710884DBC31
-5C9D3F5441595B86CF7CA2EEE42AE87896E9E60EBF5F35C2B7FDBF9A9CDAE262
-3F48396F0F741E9DDF1D4FEF75E68AFB020D06CC29B3A7B2ED819D1AABC12B91
-CA2A65F1AFDDA2F3FB322E0268DBBA024663E49EFF076455338FE31A16B04EC1
-797EAB0B49AFFB906A0690A1E8E2F5314773E1CCFFF43E6FB3875AC907F0C5D0
-DCB9BCC127014D472463560CA0CB1C2CE614D94177C7A52A5B089316689C8112
-CA57E35D716D956DBF9013B1E5B9626456B1433C8C15FA906458F957133B9E19
-8D46DC3AC015F7602538C2AE3927C6DDBACF38E59220C2F5AF36B68DE9117C51
-04CF7DF32B1AF55B87D1D8A5F4BCFEC66F63B32B6548DEDA3AAB06C5310E4757
-78AFF947DA22809B360FE535506A554DDDE5A6F2411246653710ECE5CD3185BE
-730520A766C47E1ED01890059882BE1432586864E1A86A7F586438C8DD35C00F
-021A741ED47E0F16DB6070ED0C50038632CA4AC2975578A8372A080CC0447C79
-CEABDF2BCD5E78564247B0F0025F556DA8FB62125227849EACFB724A4AE3EF57
-90C07A5B27D2E59425F56BF8AD84C5F5310FEB1BC73D536339FC2E6A5BE2DAFD
-97FC835E0D52F680F80ACA37DB498AACF152B9B44626CD89E3302C3EE1623EE0
-F998FA78305960AAB9F483F731F5F67A8C963C23DB8E48FB804EF8B86FAFE7F9
-4C09641915FA7E3930AC922682313408BC1607C76751CEEAFD660206A39CF394
-40ABE2A313AB7D5FD6444E219DC5C26734D322BA268D330AC17959A390D6C8E7
-3A155095BDD66516DAD5D65519A7FB871ECDA77061EFB21F359158B4470EF79B
-362C35C06B85C9A9505C8361939C6AC013F2CFE8EEF46FD8CB4452AAB3EF1FA7
-DC066557BADC2ADDDF7DDC2A0E1DD4A357E27A2073427EACF9B9035DA5272136
-7DF37E26D96ED4B2ACD60596E039BCB15E259C72FEB3344E3EEE3D4F17DF4233
-04C1416BCADE80BD483DD8C9AF979E1C7D50C4CF015870703F88B92C4FE46AB8
-DE6717B55C460C805B391B84333097E116F4A51F631FAFAB34CFC925BEE8B72B
-C9FD5F5A79D8F2295FBFAE649DC6AB47794AC7D73431FFE5BE992F2B5AC67049
-B5208251C0E442385A9FACF25E3A98D7F5D4C2A1ABDC600AABE84769CA83350F
-9B87F71CEAD3600E02FF9AC03C1B5C21C84F911511A0CF0111BAC7605EE31229
-3C526A79D943D92E1CC3C38ABE82D560CFD4172F318030852A5FCC0534B8B3FE
-D7365987C8B48A072907B26CDC2108130A33233E8E0BB5FDF14FB55098A10EA2
-B51AD9EFB119F82B08D256D396D3263FBD9DBF172D43A90ACD1A31F3E89E8571
-74BE98B9560E2CD661A2F93C69FEA3FF26B00772AE2C2C24B98D3D122EA2AA8A
-44652CCDF4EF4F01CA7D62A976E23E8A86291F43BFAF38FD9C325E70F9C36CB5
-A181DAD30156E98339E6A0498D3420B7BB3B4E651A9090D4A17604AE386273A8
-3D4AE8CC18345E6E19DF06BA848F203F74B161D6A8882991CBA7385F308696A1
-BEEB0130D938A764B98A2001A38489B1334025EA848CA44A116D64926D460D64
-01159E77EA7ED9ECE7BA77635BE564A4ED89315BDFF54ACE6AA1A26591D13CD4
-6D6425CA7933769B842192858D10998509396829263290A3A7CFEBBDA3EE6CDD
-DF1E492AECDFF7941B53573F01F623CA0A5ECC9D05A3D0954F7AE8CE94AC3B2A
-CD4E27519B2E16F033EB732AA024BBAF74626DB55DC74B1FDDB07FAE98B4AC5C
-683CFD8744F361838D343B657EBF52DEEE7AEA7565C5BEEFE455DDDBC4DCCA7D
-87D6D769C5ECCF14118A14A85A86865777C8E28F953160D5E82844AE54D541DF
-550D5F1519E183E0C42BE88F0458CE8087F2CD4B1B49A8E9E3D127C4A4CB74A6
-2E73BF4CC317781D03FF04BC36AC0E4AF99E2ACAD20F6F8029DE8A035DAB40DB
-17D237850BCDD05931FF4B0FE2D0B79EC5A88FE0236271CCB075BD194AA25AFB
-3FB93A5206F61A14602E4EB6F1C31C654527CE0C02D04314DF9AFD710D0EBB9E
-F8721B97F5FB18E27507E1F800B5509A58A1A8296C72B7B73F99B6CFE42E9C2F
-B63B3555475E562672645CD374BCDE937A9B05A157FB3E74C8297507253E957B
-1A9DC421946734CEFA3D5EE357DAC7E9DE17A5BDDEF6B2D2A740BC58128FC514
-61154664412BA1C05209EC992A77B7CA45AB7C0EEBF590A5B5652866008CDEF7
-124A3003AE6A7CF9DF3C72750CBD281358CD2FF25B162B78CBB971DB3477F8D2
-ECA3EE9CBC90323B2C236E375337EA0848CD7CB5781A2B0A42DE7E4D99DB2746
-0B26796CEE129D23C76794B7CE21C13C7D4A998B752C8CF43A4821B736EBE246
-D2A2BD7BA3351FBCD1B0A501EC1EAABE60D06DA2FE39BE1F0AD629769FDDC933
-F9D02F9686EC8C2D7455C26AF4DD3F6860B2289E3A30E1C254AD17D731CB73B2
-BF4DFE90CAEECE3ED0CD3FB4C8F4C7BE1C056AB4E9B95781A8968E3CC1010003
-75DFBC4AB9F6B27C5A9AD88D94441A8ADF09EB275E5F0E5E6F3BFEA0FA8C308A
-8593ABA0645ECA8FDC3F0E264B35D4B0DDB86B93CD8A047FC409E18196B501C3
-B003622999C47BAC04FD1ABD8AD359C977766E9643EF3BD6385306B08EE3E13E
-7DA5A06AE33D17A3D574C6390DB6E9429754B210F0C349C359559C7EAA2350BD
-F61D4D8A92B1AF697BC620FA0351E67E0D9F41A95A47EE0BF210C2C48691901F
-F905F65693DCB85BE412F097480F6A7266AE0A928729DA0F691CBFFF3B276EA7
-322BCD2206D96E3DAFDFB992CA8F2955F0E8B882729DFF840569D12E4DA1775E
-523AA734552AAB6F2F16B89B39F1A3FF0E07EA08D13E612F201716C67F327017
-6C041760DA30374434808273062C1FFA2C47B3FB578807BC26537F542040FF77
-66C995EF3E8B08B09FCD3EE89C30F157158A739606D2CEAA26694A4F1CEA6633
-B54933141CB85C60AB262E2D4E824A3B85C2BEF810DD774F296AB37D0BAE7182
-5648CD18556ACB124246A75474B232D712C2358908B5D9A76F82C626BFDE01A1
-093B8FA6AA0B32F2CDEF737B28BC0448FF816DDB5812131DA0DD5979D77C3838
-B978CC3F6778A4BFCE9A7087EFB19749285AE4C92B99A6649DA349A2E0889D72
-6D4FC664522F06C8C4D86D30BA43ED4E42211217D01636A4E17E2A132D26F394
-EC34EA12D84594AED9C6CDBBC0908860F39B240FA7D7B3003DB10322498691CF
-A294C0FC7ACC0BAD1EED3E9D60AAE3F7429695892D1A21CEBF062C6129B33966
-8B2EF6E932F9891DE6028B81C5E9B23278D35B7F0D83989BCBA25E20E9D503DE
-144DC485F09A4EFA1268AC5E4B551C5B2F1D51E9B9B9C0FEE585204F869D0BE0
-7287D7570A12940A47C1F51AC6134F03B415C30E147C49F89228855D093EE55F
-172711F37776E97A99CC4B36E2F10713E36FB279FD3FA5A0EB9F3938F42E2BB9
-254EB8F0C0F30391735019E02BFDA21D9813C6A22279B898EAF01AA892B14DC6
-5912B9275167AB46EBC420836CC1A5F38A4EB47C039A7BCA62BC3FCE4199FC71
-011DD6E5FFA0F3D7F04AC02AF91B9249B9F993AE346572329DA852115BEF8460
-B94690E790003586F473F37EAB5AC2922F5F663EE2C3C0C336A8DB71650631AC
-0A923A389AC911CB215EC2EC7D50CF8AEFD59EBFFA53A9F1FFB7E6215F17093E
-3975F186FE23BB5FA5474C11408FABD223E1E6F62035B5A5C1AEFD8899F00FFB
-E729C2D5FD551E80716CEA4E8281660286A802AAE8D5834F37F2EAC46297E57E
-993B09251DD7789D3467417E393B7DEABD06676B96241B0E43ED1A1A9FC3B12E
-0D34B2B0792B79AA648FE9450C3B209FB6D7D91F50C52A5DAB0BC81A8B698BD9
-18946EFF691912D7348D48FE68CD876FC6F71F81165D0C3272DA1A992308D9E0
-ED6D0A4DAD679AF495F62B78D462B463BD4A40931172290C615B3B3B6B47E45F
-CEBB85E0A6AB6832067CA6D403C239530D07F199788AA4DD52553836851C5228
-1072406F6D7323A334E7A7FCA588897C4FBA6D4F7DEB65525EFB74E539C988C3
-A685A98752F7198E77E456A545F0D23A1BEF81EF58B02D289CF980A3F17BEC8A
-6F83DD90C4A917EB0E5E2B444A608E2E9D2FF80620E16AC1D7775C0A10C1299B
-BEE0E1AB24C50647E5CA1DA65CFF3B2C295F0644CA7826E1DC6FADEA93D66A20
-DE852F20AD224D28DB900519EB1569837139C833F24B799F7EBE3FDC14235323
-1D0BCD4991C861F38DF413A5A5588B73AEC3BBFDB885CE17BB3E97B4E6A79761
-93EC8418C2BC4725CD61B5E30C07352F647C3FD50083878C13CFAC241DDCB082
-E53703D182068727F9EB6FACEC25F6D901D7309ED7370867E34E267519E22D62
-4FC7093448BD0D6B1C43D318A3E14C92032325C132AE0FF7ED707E1FA4A955FB
-F5224BE0045CB14ECC321D0F333FE24EEFCC504F7C756451D7693C3E6CA87526
-4912E1B6DB935BDE76FBFAFCA4ED473F1D2618812CFF25A6859C626A216603C1
-361BE3E071FCFEC2D4BF2FEBDE07DBD56A1BFF8303901168FA06488BA6B76F36
-95B0A90D7724E9ADB567C2ADC65CF3482CF47FD1D16F70AA19A97D0F9EFC611C
-AEA5E1ACCDA7FB2DF05E9480936281484BC329F0B771775E73F7FD72FE3F45F0
-50ADBD03932B38F37A8F0A66B2F739EA3AC8811C8F514E68C5643E4AFF485C81
-88475A523D7FCCA5C8809BD49846C77795A38DC6406082000236A4D2628B5932
-AB7916D44EC2210CB941B1422DEB13896DD78CB7B7F400EA5A6CD639D9CC828F
-52311A11F2A84E566DE98826F1E28D55FB08ED70950205DE52C207CF14238446
-084FB4DCE04C781858BB4E0744C023EB0B563769751AF1D807EED20E4AFFDC46
-3C1510C782FD92902761F7557FEF701AA67B20A9B019C760B2BBA8A048BA3681
-35DB440925CABA05B8A13B2D30D14FA875D3E200A018C78BE2E930457BC33AD2
-FE3610314A268E9A30EB41F7C771758410E7D1179567B22CFEB5163F7CADBC40
-4D40860E83BD5DF2BAB4822B55B863D0793D3B60F0DDDB6DB993711C4C7C2F39
-31D02C7D8EE36FFF8FF2179534EE4F2DF388C96C9AF6978D929610EBAA615EE2
-FA163D8C52E5810E94456BE63570A6878E791DF4958E60C057FAE0FFA4C2B7F6
-192AF8786E14A6C6379C6E13A9C528A198B8EC8654AD69CCB5C209964A2B26E4
-E636DDD749286B80A5C22474B49FC5C093A8215D49B30ADA383485030AEE93AF
-BABB827D996E563D1681528F54353D1245ED78D1915CFBB5595E3B9272ACF503
-8FEE0B65C4CD9D5783F948ECAB51BA25F77DFA440C1D8B636FF6A15E6BB0800B
-AD6C7A22C4F0BF6C9A19F0E696B103D8150AAA337C303ABE10C87D87549D150C
-2D9665F99AADD64A1B526D040C348128ACF21D2A5D1899C792CD26066E790D69
-0A373E2593B4F664CD294B5D50067184BD254567C7E039257B015A8035A9BF1D
-A3F89E96EEA10C232662807A2DD6879D4FE3B18BACD337B4CDDEC7087DEC661F
-AC34BEF100A17D5655BF009AE2567AA2BA92CA36BBD484C0EAD74D4FE21FA8B8
-5491388DA8672F56F41E7C30F3F197EAF49964FE2AF95552535CCC10AC5C97D1
-AB5261EC411D9DAB8E026F2D94BB0B79E658B6BEC5B6B9E25FC7480E3F6D56A6
-B9F108C12EED6C256D83F44963B5A238A2DF31D8DBCC094FD7E418A5FE9A7F0E
-B109CC36C470721D58E734978E0FAB9EC8F41861C3F4B3BBFB6C8F84A5EE765D
-DD4C22AB092309BCF1CDEFCA32AC3388BA7BBED00FD861FD4EF03149E02BBBD3
-1C8018D21A106F904C843DA6DBAEE2BF7CD7B8D86847AC43F604FF64DF793204
-FE06EA0B0C7ACD4CCC3065B8727D44E1D74D4DD6F6CB53063B7191A67366931E
-0D23AA2723BDC2EF7D50C3A6F64C9B976F05DBC76408D53F62A405FE327B5B25
-BCE72C26BC228ECADB62A519E63CF8A3B04C4D062450B2574E0229E06A9A7462
-408BC437C205190531A6F12E5A6D4DA06FC9EF4DA672068EAA35774FD3FA080D
-55FDE55CCDEB252BC73D67A3144134F9D69249F6D17E016EFDFE4AA09E5E046B
-F11E637EA411DE91500B463BCC7B19F950BAAE92EEC173269351CBE593A1A5AE
-C925C401F920FA1F0F83D852A52DCB027B5D3E57D9E8088CE19356FB19AC86BF
-CD2A136D406ADE7A5FE0CD8DCAF7F2FC3E8B4544CE2E95D3FAA8F989FC165615
-7C6D210FFC9F0DF1C08D1B45D43A5EF2F93CDAE23FC90EF4E466EEAA3A4A3697
-ABCD9C5A5BE58B59C0204408FDE6E4FB41344144B26DEEA6EA4F457FF8A5D2EE
-8767F2D06A4B67F5A0EE498E1B41ED786DCE79EF41A944180B08B21E8FFAA9CC
-FB91BFBC9003CE1715236930AB6CD3CE157C0C58DB2CE030C67A50758FC70AA6
-1B3C0216FBD233650A71AD9984998025F432635BC2E324C1B71DD7076E8F6198
-D22F064B062B8BA565FE5691F3E012834B107C7122A77EE958B7E5CA7ADABCDF
-5571F16E9DC6BFB0250ADFAB806C525BDF196FCA4FECFDDC0872C36F2554F408
-87BA9EA3A28FA8DC3A9732C839C6C3E084658607A7BCDC6F41EFED4E2728D1E2
-225C58B7CDAF34323B03FB947B5408A52569913C7C4161819310D93F10490D67
-7D0EE1CDF4E87F168375AABC22FB587A8C5F6CB9A859350AA1DD4358DE9C6B20
-EF559F152B300F2E64636F77F4A0CE640AF8A7AE8360D6212A5498CC8C3BEB12
-F53AAA78FEEF32B34EC6843BF23B8E5D4CFFF9ECC814325EE583BFFEB41C23F6
-BAABAE49BCE4B79189F29FDCA6C2D75038F3C6E4FBF49A91616E5D117BBDE868
-689601C05D7B1E59897739A10A0A67B016276FAC9211F2DB649CE848A280722F
-3DEC1E57A1FC9AED529C9149D2947CA2271511378A5C500E75A0CECAE417E06C
-15B12747E262751D0FE4CCCDB3B1D67681A806ED0FB8826A0461AEAC1B7607B7
-589946D0F4F143C6BA44D9D30EE39F819E58DECF85FFF15067F1D4D132026E11
-E92D8982A412650F50E47FB2BE419BC956FFB44DDA87BC624A21A19AF4FF5D89
-3C6677B1FF3A6FD710DEDED18CED4DF2B56795EDAD8A5B294656C004D6D11714
-530C6C5ECB42BA9262DDC017F9557A26D6C9B9C7C22707AC15EFBCCFE44B5900
-C998E96AF0F7D2AAA6C485D43341B61FA18B49DA1F6EE5701F1857C3C86A995E
-29DB86FA21968AAE20BCB8688091455FB6A0EF0E9B6392EC7A5D7655D5D16BCB
-1DFB0E4558B1004827BF9D4654DDF544C2FE55734033AFD5BE72C3D4C7B65FF2
-20F0DC9D002B39E9907654ADE76C6657344B204313165C5BC8B83FF1491BDA7E
-6131F288185DFCBDCA7C1A7FFC657CA8675C74E06E1AA443746A22008DF927AC
-5881F10FACCAA1768DC7333028377102BC172C8C6CC9ABDE03E713998B94E754
-3D6E2C6888AE1A2BC97D3889D7029A29024A7E7AD5ABD49AEB017CEC22E3EFBF
-6B84D9E1AAFC10BF9C6FF5E48DDC7DEC1D2AA3E792AD3235B2F393B76EEC9A3E
-ABEE96053ADA7DA5BB45C95EBEF25DAA88BE8EEC4EF136D897FE64524C0EFE43
-D63CA15B1FCA343EDF23ADDF377996A4E1A53267BC3BAF6B285A4CB005D2BDA2
-5EFD69B3887328607E232028283DEF0044A7A15270769BA9107A4B79B7CFC6B7
-3604CC85349B379376D5008A2B17273B813076C95C10B157BB69667A4824B683
-B632253D2E737619FC6900EDA79B5180CC1DDB88B20635BB3DF6883AE42DF139
-A1F6639DED98535F93ADBA68811EECC99FACE6071F52053B3AFD104F00313A55
-0AD686E2C197E923037F46A827C47BA1C63758E4649CE51B20A4B2CDC8ABE57C
-3D6C144DE423FBDCAC75123402DEAD6DE2FD83DC2539BF892049FA5D55DFAA1B
-9C3AD6EAEF48405F18001E1B51A1E827C3BDDD90A30ACA4E5EBBC133E838C6BB
-0C0C98B4CCDD56E0305FD2B57F8FB83428C7B73F2400F524BA965C41D96479DA
-72A24A6F6EC62BA7AB59ECC4F95BDA474DA969AA4504CB6DBF29FFE4FA0970B6
-977BE7FFE0FF0E55F07B54A868B77628D7BF68E94EE9464ED13145BDD22043E2
-78DD0E6D657821E8C369C54B6B299B29185332B866BAFA3962E1624A5FA9057B
-2DB20773F149BF122D9DED1698F0ED17B4FCA7DAF88EE05517C6F539DD21440A
-77925C9B5CB194DBB9546D655EDF04D82C39B4895F9AF2306D106F1033BD9B30
-11F07A7D57CD5B86EBD84F4EAD872F9814613E12BCC804EEBDAA3CCD8C89AFE4
-33197ED56846C977C7954A258194F3DC4CE9093C895CBC8E827E47C8D34F6A80
-19C0A62076AEEA73A5172717A20D0E524EDCD042BEC8F03D3E84A1A2C97D2BD5
-E506A0DB7B65CD39A24B5247CC08127C60B9ED3B407086CB959D89FC4C2F8A93
-B7AB0ECECD0120E1B5A8ECBD94EC12139D401D1E30231AB3A99BABBE4714FE2C
-A0CC0E9365DC01F66B64D4460E01E90AFF3359642AA28426B7CBE41017F8BABE
-9235EDAD39964692BCF9CEE94C4F29ED3483640176BF591BF710BA93946A3C95
-C7D4CF5D16357F2E6DE5A4CC7D7EAA546B9510943B9CB9DEC062B475FCBF55C8
-5CCA579CAD0A2FFA8B3901820125D46443F6A353FE05ACFCF3FDA5DEC17CD9C6
-8D6565A29B18C26AE80F5B93227A1A91522A0A93DB41DC5F9CC831735FF97BFF
-0DD9C81020E1169AB923D51693C8B11AF7A7234E2F3D7B49A66C80645C2E4059
-B7F15327A4A4D807460570438BCCAEB863C520DEE2DB628BFEEBDA37EFE63FF1
-0D6EC66E7EE5F314E2A62E37752D0B8EEE6AE77E4255456CADA7EBB4EAC07122
-CA742E1AAED581A1CE3158C790882134ACF3EBAC983A876C218643183E2E9129
-98F8B54F1AB36F057416DA1D6438607B8AE7043F1EE1D25CBC0D68718AFEDCF1
-9E0645079AF0B4FBA0F8B40720BF428CD87225C7FF285AEE6F048B5983F458DE
-15FBD918F9198FEC7F9DBC08B1CAD5890684579E540E5A22D79CCAD378CA3185
-2337C8006CB37CA031B719E61DC45138C87B47C880D00CB789127D4F31FEFE7B
-CB100BFC256ABEECA695D0DF90DD780F6BA088B74BF09AE7EF73141E7337C89B
-69DCD842F5AD3881613EA235FD37DB2817E33427AECF0ED55BEEA7EF410C1376
-7350BAF850481AC0635A9220EE2485DB9A35CA9544B79D067D4C82C8CE937AA4
-5CE2860777D75888A90FB9603E2B4FDCBE41C011B45320054362A143ACE9383B
-65ED71622EDA39FF82D8E88FD7F5E9D947663296ED93FC16A95F04961938B836
-FB1267C5A512B0AB28B32292449EC3F03825409CD01007B7B28349B7B7EE496B
-EA4CC3B9A877BF627C35908FAA85D10AC7D9B9BB65C201E7E4B4C671236B3C60
-B1CCE5C51BE24C2FA060EF9539CEAB6A640744CEAACB9AFAEFEA785AFF8473AF
-0D0A134031F4A38FA62C154CC4FA4DF334DB857DA6774395F59CCE2915EB2F94
-C3D803C2467C862FD10F6A7685A5FECBAAB4B15C12C7AF04029755FAF352F76C
-DE91D1EC35C345E0CDF3E808735A5A63C8BA55914099750C737C6ECA4F80AD57
-02343BC5417C62B5DC9AAF73B5B6435744A983B8E3FF3F1305CC8A32C2301DE9
-1BD2903185BC29CC5E1D79F5733D1D011A8015D03C7246601DB2EF01F0E3EAB8
-CA11EA8A0A5C254FD12398089580CD9E6C53274D97ECE50370719E5CB0483EFE
-210FAC6FA0FCD278369828B62A7EDE838CFEACF2A60177FDBA6E41CB5FB0D23A
-57D8A8D455B1153F49064CDB898E93FA620735F3448F827055B8EB37074295FF
-1C4B609EFADEA7CB1D8A6C3D57FD6D3DDDA663FE44736CCCA8E1E92B49A06E92
-7616DFEBBD028713B618CAC526534B7E8D2275659E56B0BA20489EFB7B376D5D
-72EDCFFA2C9C4EB029B53989F064537D7DC4A656B32B8BE82337930238D5C796
-09DE101C6546A7E33CA597E4E8F609D22401239C22DBECF530874E7EEF014807
-AB37D0882E4569B95D07E1AC3A7C37D75C1C6060DAD38CB8F6628004FB410A81
-81F3D6F9D375B3A01C76E9A5A816A3BC4DF9FFFA5DBC469879D63BDCD499EA88
-9053B0FC67214D53852D53F072A65098D5F4D21353CCF45A7C72B87FAB90F0D1
-7A0A7C2785610C8A01EBCA23C8DF59A6056CEB54C7CED7ED2F6C35A65C9AB4C8
-EF3E4753136F2ECA5D5093B70C4A70045DFAC28A854F0B96790849EA3E276C62
-25B21178758B5769350F9A6380ACFC3726B4655AA6CF9EED9582B88706E6EC7D
-E82DFBB3EA1C9D3E39C64E1632AD04A6AFCE6DEADC7473C2E57FDC36C52DD63F
-31EFD2F1645AC7C004D572655616FA55B74489CD7BC7B94B49D6690A6D6E29D9
-6D39014FED4A381C1424BB4EFB306790942709635DB330D4DC506AC34E9E6375
-2D54D9731506DED192E59F4BD5826DA59B907875C8ADF5402A969D3A1ECE6DD7
-2C8F3F13B291F3E32DBF307F0A9A2F1486D7F72AB88D4D10C0B2058438D328B4
-7F10A539111C51C8247CC6DA45F29DA7A70E981EC9C44531A748FC9DED39C4E3
-B0A65D6DAC8423208B20B06371AAE8396BC29C9C3A49A49488F50517C0BCB217
-566EFBF97F0EF490D3E0F3AFFB17C8BD4297A36B63700EA93C52365B0E88155B
-9525FBFB909A649A9846A16F77E19225F9DDE5C2835D7426AFAD563CB7BFB410
-5935CFC756CE19D2989A84F22CA3E9AA90621749AECA3C8A81702C418846AD87
-CBA63197A06EC59179E27ECD7CC714E7F69EB20422E28F9B3CC032389950DFA7
-27B63A98B7AD8EA93D178092061DA799F93A67E5B32199DEFF93910E0B9D4E23
-E5C2C11E51CB75884081C918386B7639D79F82BB55DEFF63EDF40A04CA551F16
-19F0974E82C34CF257776C9A6F694E5850B5C5BE3C5E61AA23AD12A03A4030E7
-6A1F40695A02AB9CFCFD19B9CF3606B8F84F2C0327436F2C79E6A6DC9399E5B1
-27D646FA17BA49440B8FC385FCC45EC0A5F6731ECA5645538D909C4E3733E6A1
-41D02CB5C7072D729144CA7C1B009862F18EDF7053E10185CBB8F6E0891BDBF8
-26396E41C63F0DDE5D7A24501EAAB8245C50D0492220ACFF27025746D11872B5
-00B93A493B39E118D666C221812B6BEC53DF9B5A04AA992774D03B0CF6DBEFF2
-838113D0195ADFEBC6010CA8F578F0984A5DD3C857500DF8C6C77A1136092B72
-FF85EE75214628BC2513DC49FDA1B418724BA32FD67CADE1C5FEFB1F3248365A
-DC1E5275B7A9E243BBD0E595CFCFA2900CD2F53B72B6CF3D489C410E00F3A105
-E38E714498930C5D0F57AA3388B0A71BF3B003B54BFA359955E433247B0463B0
-5D19E7D67C38263E366844533EFBA2EB840FC31D0DE664753FB3927D9C914683
-A1FF0CD308D9A07AAB051BA6681A316389F9AB00C41C7CEA170A79DC52D605F4
-965F8CABD2D68C7795055DD0E391386ACD1D0E532671082D805DB80C8A461673
-3CC4AF55C1ED96E3B5B7C708470E487C1E2ABE73B8BD55B7FC7E39CBD3AC38A3
-1B3CFB02BEB17D460A1FDFA29A6EFE4371B996D2E4CA5DE19DF3912309095775
-C792112C84BE3765FAF21BEBFA04CDE0CEDB38BD6192E23F81F496895D7393FF
-1073BA5C3A8C865206A3CB68A98A3BE586565EEF92786C99ACE1FDD50D60C103
-A936D1946B216300939904B4AF2B8F4D63B4F7255535291109D55D8C39152DFD
-0BBBE256FD2F892362D90AE9CBDDA6F729427848FCF97424122452F4F15664EA
-C7FEE09C6B19995BFA5E5F57714F01C892DE78E3EBF82824E38C53B8877D515F
-A126028A78DC60D1F7866540EEE5DC1077F72A4A04C4053FE19A686955D91D11
-0513CF5F50081F3A267BCC6D30F1B0D543C392B4008E56C59CB0E7AF7ADC59E4
-16EA70B6F6FDFAAD57999AF5D192CE1C71C398D5A8D62A821422A9EB79224FFC
-9403BE1E9B39E87E81AFD3E08942BD0EFA615E921CC865C7E13968EEFFBB96DF
-58502A5E3A6B80EED40FA7EEE9DF32B60CE70154B5F9DC4265B4AAC0F8B872CA
-659FC2162A0BFF85F55C45152964EF354A49B743CB88CA1C0550CA213F523B5F
-F8CA3E0E111A18C61850454D8B5CAB4BB9FF96F0E10A1C92DEF460ECDF06F71B
-E09EB607B2980A08187C6DF5BD91F63DD006AD0C2F8A3DBB5C9BA0897E711DFF
-3B4BCAF937785A3CAE7A554013A71E7D0E7A2DB6A652A9859C6C475D9F9D41C0
-25CA2595350B3F013FC3C152D3B3C511508A4E16452ACFCB4DDFF29DDFD01D3D
-09F7624AE4A50813D70229FA5B012E2689254EA3BFDECCD3DB9D43B2B77FAD26
-007A632D14845C7B2656242F0D78AF4883F632150367A685D6045C0AB7EC32BC
-77E0BD7E208E2887B211E2100756CED3C8FEBFBF37D5DB921C7A1AAA536A746F
-640EB7808987F463F71BF35A0EDC8CD2DB64C0854AA3CA221B73627A48FD7E6D
-B64F7967B0153C1BBBBE45A4073864F143223F946672181D1A8A97D3EE4DF997
-633E5348F62EF49BD8DB1111584E38F7735A6B205DA659ADBA809842DA07A86D
-15AC9439CB432BCB8AA975A0CEA982F27F7AFA17BDBC07BB5A66AC79CBB2BB4F
-7FF4E5494D71319122CAFF0DD7C139AE2FD469DEFD76AF10A93CFE5C32A41C21
-BC116AD3E2F8416FEA532BEB14033D93E1F188FCBB649B21389A38EDD20E039A
-D0491C711C671B2303D541A1CFB4724EF133964BB1EBAE34C0735755D8457393
-6F0D6F0DACAB0DC46AFA06FF37A42080737F8AB7829BA634C43A47C538CAD587
-0449F1AB88F5B1BB56FEB516E8B43C15E0FB4DE1225A21A1698FFDE9FFB22124
-228165B5115679E215876B0B29DA91B21747D304262ECF1D9394F2DEDD8D6A4E
-3D3FEDE27E41B64A179A226A806263972A3EE59F21BCB40E4B332EA7FBB2A138
-E34F68A0DBDC6F4562F9E3D2FADC975BC0A8EE8D8780CBCD3873A49911A5ECB3
-A3E081BF3ADF691C08E04B6316845C5BC2E42DCD519D71D032163E32D48A16D2
-D5223CFA7CB6525C13A28217246F1578A5403F509EDC3309140F7BAB188FB97B
-9C35B6B3B10EEE8A5C8048CCA9A4BEB397A4F57817B4EE4CA387F4ECE353A1B2
-F0C00CB0D563C4C664561D817D4F7261145425622D09818C7019A12E191FE6D0
-F4647FECE6A520C96FDFED6A365B668D335CFD199FE9549171DF5199AB83A3EC
-83C7B8C00DE6BF293287AC50E5D0A81284647881C083A7879BBDBF68452EADB4
-149ED27C084F2E7ED50D556FE790372F4629073C7634062868C0F01954043259
-3C98E2F40C4A2B277B9BEE035DE673FBC8B3FE5542FAACF076C5F875F3AF5ECA
-501ED2AC96892754A4DC0845E847756EFD5407AFFE0AEEFE8941B22F8B3C2C85
-DE6CA54594767E0B8596FAD54C90AE3C4EFA793120D0F308032D0E7DC3206EF1
-0C681D9DBC0FBC26330D5B44C0BEAF71F1DCE7E69EF10B18A01A29EB8D83FC2A
-73B4FB230A3036D527D7F6DA5903420C7A6283FFC85E51083EEE085B21B94468
-BE4AF9BC00636ECB2B75B686EE93ED5E1C42A7B00FC2F845C531EFC55EDBB672
-0C26C9D446BE286149B7A63CACDE7D20015D21CF191A2A9F42218E31A82679CD
-F9255900BE3AC0D2D33398E0F70D1B3486E541A0B6169FE7A94BE41B2593F639
-2CFB3489ED6C46B9C81D564D0E92FF2F28FCF99D1D4738316FA44232D8291A84
-EA761C63655548D1A892F281F839085554D4D3E98884458B3C183EEB6B19B234
-D887657FA7F09D6918930207EC00EB91FA17D8D904D9C577606880609F6C86F8
-40D31234EFFBDC53059FCDB658FE10A1E1167E1BEED54BFC71846DBDE91CD695
-75C3572DAC845B5199EF98BEDD79B08500B08012B728502325CDBB8013BFFB1E
-088DBD1AE35601F4E9B2A4BD7E8158596A47AB71D66F35EA9575D8321D17503E
-F28B0B5B78A99ADCC93CCBD359DA2CBEE7CEE3B087FEDB4667C9F6E8B82BEA09
-9B5A3ECB3A09A03CD6C7E12160CD9D70B18A885ECE9B3E91C1791411893ABD3D
-4108F07CF8BEC447895F931F33561256330BF27F73852446045415066A5817DE
-CC1BB3C3718A79565127354CD687F5FF1EBA545F286C7870260882F92870BAFB
-F3F9C7D44FEB6087260BE7851BBF2779EA23B55C22BB40B610493070139FAA4D
-439613BEEECD27538EF4068436BD321725E7C192776C9AEEBC63CC817E9192C3
-3B2F08C429654E590CD321C73699642B678011B2042027E811F18DCED3F04B1B
-B71DC8C88EBAFE715BE890E9B418236CFAD3992F118118CEA637EE33D4773B7D
-FA50CE749EE655CBD34DE654ED2C599B423AC51BE1C002B7065A80634E514896
-4896E7C6D88BE2B1F77A333F2680BD616C5B511F624F48519A64FF0C6367D012
-006F86BBA304AFC449D8A44B782804B2BFECA070C16443EE01B7D347A00815BE
-A877AD0842B71807389860B01837A1667B1CA974C702674B9923F477AA3A3A2E
-7C68840F054C33E4C961161EF96BEBD0C22AE027D6C66C1512502C09EE2068D9
-E8DB81F1B3BE98A8D5378773344A8075FD17E6ED95884D1450D841127C94E8C1
-547D7E5EA2B1C7CC0685C7140CC128F24D36AD6E9304490553F57C0BF0254E96
-64E8BE7D5E66A3707F97B62DAF7FFA0AF208B1E048CF8C1C9FBDF47758BEA9EB
-8A8746E826B8057B8C2AE11AE60C8BA1857BCA4C910F35D9F10BBC4196AA4B09
-BFD5EA6DD1144D26B7F890E4879C5B5771EFB5430FF2CC75A7338532AA4EBBB6
-99E319B3CCB5558A149C541A15462DE5AEE476682F356C8F22EB0CFA3EEDB735
-00B7AB93075F8B08F0A590279395358AA45B494E6BABA94AFF8FB367C80934F4
-7EF060E35F81F66E223B1414D05EE51AD56033EEDCBFA3148E8DE3D2AD5F9896
-6207C8D9DD991262C989EF4FF4BA86235BFCB7BEC2C730AB6EE2F5771D92FB32
-FDB235CEDD9C638780268C77EB39AF593F5DF2E1F5906F14D53544D54E94905B
-2E4096AA8AA145AAE060E76CB6D6097F6D1048A15B38B2C58568C325471CE949
-D7EF40FA6168CFFCDA2EBAFC3BAD6DF806A94C22E58C73C7C181CF0ACD76AE12
-9749989C31BA69C7965DC0D8F82AD88B68C18372C68E1491ADF11156778ADAF8
-5D4F99A31F105F1C3B60E7754F6CD843675D6BEFA92F0D1E5C66227FB44EDE14
-1FC8430DFC4A78DB842D74FD209CB8E31FA51E21237B2FDCFEE3554FDB48899F
-44090D381999A8251C873317A95EC0D40ACB3B072F8F08E43E9080F7AD582176
-B65F5A582E30F703F2A0C47D1808FEB30F6E637629471BC3B41B5D31593AF3BF
-B828EDAA29AEF1CE8B6591B19F22A9C5C8E2A22B55F0F5DEC7E6B8FEA0674109
-DFA90E882091ACCF93762A05148F8DFDEDB896855D674FBFD692FDF0B8FCA95B
-722BE85B32C776B59A13D1A2554F39DB9701E3B3D71A560E05060D0DFDAB6D6F
-34FA50CA902AB69D62188D39809A5D724D887AFA0963BA6ABC05ECACA701FA71
-BE8204871B373A02E8B91E110A17DC99FD87CBEDD32E9A4C48A344D157EC3D21
-665CEC66C67B204C9D9FBF164C026F1915D3A766DE2A2DB4CCD990A463A93906
-1EFA2DAFF7A7947F2931B5655E4DC0BA96EB7E5F598D435F5AC39FE5626C25CA
-8ACBBD0CAFC62D33B27A350B866241061022A0B446795B9EDF3D7980BE2A1465
-8E4840818466F9CFDFEE203E565B6E6EE9F933884F84EC1E23A8644CE4A79E79
-841662C13FF90FFC75FE328E65D0284C7792BA60E1C1D0E2CB3ADD2DA5AC1EC8
-CE9974A7210B748B60C28F7F655355EDAFBA2DE76E1157950C62800D65263B2D
-CD97D6E7836C0EF36E2A2B7B916E8D58B35B32776D24BF4E125EA9DC3C2D9DD5
-2CFED715F7661D61F59A282622FA6C76F044F6501B33FAADE63D747A72D847F8
-F99013B92BA34A89E07C61FFF30CED15B2E616EDA7B0B0D42EFA3916C7095975
-9F2F4450D8144B2D718A3C230A4C2F787D01BC12170DB2CA342B3D1F97217C77
-D8CAA9E4B48515AF06CC97C03F5750A8B41A645FB7EC8D88C460C86CC304FAEB
-87421BF12B8EB0C2096B17DFEA3A88F68767D69ADCF4BD64CE1ED3302871E855
-5E12A7E7A04D0D0734DDA06493D557B2FD8BD3A23712AEB746E0DB51CED4388D
-55A67F19F85BA6278E4912C7110D855A246A8C540EBE1E4239F19DC97F928552
-F6C126AEB1F11F4E21D96BB525C70927F92A7754992277B53FB85124D0408FBB
-9A6FD79F32F972CB5CBF16CC7FA05ABFD4D739FA496BE03A427072DB47918B50
-43ADEEA672A4340F63FE51AEB92BB16AC4AAD2AEADB2A9B604CB00063F235A83
-14C7BC354A2DD6B74F13E82CC1E5B83830F60A0FAE73897B8E12D4FF851366A1
-6C0761E01B7C71F9F7DB08DEBAD2C72705DAB8DA582AA2F0447A3C8AF5671685
-B6372068D64F25DDAAD9D610141569704CD86724839DE2E3BA2847DC3466E69C
-851F7764B043FA59A4307A434631DBA05A77D988A6A3E2274CB5A8E6BF71B50A
-D3C52395BB8CB53E9007B2F67B98677EBE4F233274414432B8B19F969BDB6D55
-B202EC30D26608A13D1F19E323148EE41F481EC45E38A69D8E6BD54F3CD5A91E
-55ABAC1492AAC8641B0173011C5A5DB8847EA2A6F96E01C400F6F138703C14C5
-C6C1501D1EA70AB40D32AB3196A07E940F93F96560B3F0FCCF70409EC14715B0
-42F53DD3238E1237C2A966BB5D32E76C7673C21E2E0501B37FBAEC23AE80793F
-9EDB34CB6716DADFAE94AA34D206D38248E541A2A725B951990270B105793603
-6551779DAC75BA668368DD12D1C1064A7E7CB744F81E6F63133427F01A4A2C36
-BFD7080607CA7C4EC983F47977A762546387DF1DB87696F922E19A7C1FA1214A
-CC77A031A170A8463CA0F8E5B74522745659E412122CD7F96FA9DB92BBBD5F85
-025FF8C64861237F7ECC20775F36375C7B3C2F93B53D10DB66A4950F8FF9F93A
-27F086E7CD3AC08533101F56BD358B042D60522FC8CDA226C8170EF702DCADF3
-AFAB85B8429DCCB9949BB2FC5EC59A4D5BA820803A9D58CB0F27E328A8038090
-426668CEFCFCA4ADDABA1CAB0E0C526E153BBA35A154B4E170C25356A553B5C7
-F924E4088487FFB070100C3C13F3D492BCE5FC75798F3906C8CA0B38B9B52733
-0783E8615695E6F53F72EF10EF84E7B6BA3EAF3832F1AF96CD57A4B13353AF83
-8ADF52C46480220E4CA48D5BB8BBF9EBC9F0DF4149790613DBB0A7E3FC41BBE4
-655D1669645BCC6F6F319C490E8C9344A3A086DAC8AA514B0E4A6002C7564CC8
-119074B5CDE906BD7EBC7C14718F2113D11A28FEFD1C94AFF1B142BA226F6637
-6A0E546E8FC0EF0E6B8DB79553628574E0A7F08AAA6321025F4ABD65472705FD
-FD3999052A4D4F8E4584771EACBBE44BDBD9ED9A9123D2A3A15F96C18AC8C7A5
-6C17BDFCAAAC60BF88D651888DA06F227F567037E2A55DC24C6131A94C89012C
-A91F160A0F7DAFA03B15E502B51C0DED7FDF093DF4DABAE5705E5823DBDA1C11
-380972EFC4789A590C34CE915B30E27604991017A95E18D07AA8E52428F5EAD5
-560F43B0326D715CB7A486201E38FEE71D15E19F23493374AEC3051DA6EF471D
-B6F70E319095E0D74B6D5284F4C02BEBB4659D35F6854E225CC85B252BB2E3BC
-1FD3CE07B39200BF9E5072C05B7CBCA2834CB5C07AE54305B96458A59E9CCE4A
-BCA04748F660DA3BF17D2B915CE0E5B1D327C65FF8B645DDD1FA9D0D48F9BCAB
-243C1603E9423004FE6A55440300178BD9C433780B453684E6E159FBA89A1A7F
-4C55BEA025B9DA02BAD177E925E3848DD56684D6D7A306D8580F9B454DD394B9
-766F6E623F1E233E658E0DF75D9666238B166292663B770EDD964B910CF01426
-5E296C3533AA94DE3C7C7A5A7C66650CE904429640C38937F4AD35E29CA2CC34
-CD2B4F23B41EC48501CC6695B7A592572C7805950F21014BB34F07785EFB9B46
-87F6C196EB98BC0488BCF83D0E35E74DC5D28F631FBAE2AF84ED00F9478ADD41
-E55E6478709D133C00E9736A5B1244B3F7E1AEE4144E1C12962F841DBB2EC103
-8D6B21DEE565927696C30B32786B0BE9EF519CF5CD028D1D9DB8D8DC69182DA0
-9CE848EF34B3AE757213641E0A5DA73D0851E1B78A34D13DC88FEDAE88E6A36F
-F093E4F8C24EBC3C9E49BF6A4E73F4626D854D9EEE82472F7CAF7C70E6233374
-7261842E3CC9ECAD676580F4FA0FCF333D00EFD80A775578480CAD913E6DE76F
-EA34E2D59E5C313DC36206FB843658462800DCF5AFFB5B569907F9614D993852
-20DAF6F9EE86C6DE02C734EF4C399023865AC14A79A02FAC18C6DB6224C7D525
-A16240E267FA34BF98285B923C1FF866E21C9CAC949A55C53A54A0CB0BBE0F00
-41D3B45490BD44FD8ADDA5B83EF45F74D68ECF3406DCB2E212DC93801D571DDF
-A39518F7FAEC9B48DFAE47AFCCFB1E1C6FF0F88EF736D17F7A786E1904816C09
-02CFF0AB99C67AF35A7373ACD5AD404770FB25EB4492996EE31F9E015E0D1D35
-91BEF50A2808002231F85CFE55EFB82E25355E4747007AB4F8E13CC859F692A4
-6274A88508498CF85A6407B9D604C0EC3E82E28D8EBCD654EF88286164800DF6
-5DE8617392C671942DB149AF1CA200B16BD11C9A08DB458F0F5FFB345EA6404C
-498E9D5F9974F14118463D5A43A7E882B272A6215560F7F09FD7B2041C08006E
-B9154AE60BBD9293909621E8085F24C506B1381858B9F23AEBC2F5B3FE9E8B46
-B0D1F94A8E3DB22B42135731CB33B8BBED9B0717A0E9D46800F1E38D9DEA3C0D
-BCF7C39527556C9C8DC7385180249E6FC4F4D7C0FF0D6E8B441ABF5F3E630782
-097EEF387F129D44D7B228F9B1406C6CC2096215CA07454B341DFAE7EF513DA9
-476F91A4FF009F4AB1DA8F0B1D9A1AFF2609A37B709525EA79897EB7AE543E9E
-A6ECC2C09C4B50F2C05ACF7A115E6CED8A532908D1F29092C519529145130524
-B57C13B5A58F3AF9F07ACFD03B974534CB7E0AAB902627099C1C2AC04F6BAAFC
-F74D21BA432022214F300A1DB1BD681BFB27D63119B0A1CCBE145395C15264C7
-82520AFFF25975EECFB1093766E4D29B233367F842B725F40381439CB20A6172
-75B4BE58EC62C2AAAEAAF52A3FB9383064E38CF69F44D6BCD5938DB6F7160D26
-4537BE55A15193F4DB40937960C186B6BA5258A83B53B40986B72819D85A4C8D
-691EB3CA85F1E83E1333EC2F6B46068EB59F89124B6151CB22892B8EB702078C
-2924DCBC26F745ACDAAD84FA33254EDD96D6E61609105A65117D49C807F394B2
-014160CF85023EEA048816572EAA27183A02CA9E7F2D6D732F1D0012CED3313C
-AA2CC72C658303B22356912EB88A49B0343E9479CE65881E65DF43ED475DD0BF
-7EA2B1C2BD686213841019D221A675162D02E78816B9D3659B1BD478EB28FDF2
-D4CFD378F4D6EC98474E3B28177DDEB81889CFBD29F476D674AD4CC74C8DB777
-FB1E175B03F65A59658BBF3A0E0B8039136041DD1ED2A25AE05888DAE3D20FEA
-210D2A2EAFDDE2ECAEC1E7F085E47C9AD131B40F1A59C3CC0A7BCEE24E2B18FA
-0D5A7BAA52C4054B54B6A9033CC3E346407B69905470AD16E5A74680795E56F2
-8697231A95068D78AAD19297734E09B93B0620F58AF72456BE2C0F7563E578E5
-4D3E03D4891460692127ADA0E0676ED9FC379E1EB2C9A73254D5D4565A9E6E61
-FF5CD7CF907E31A30A2A3D892B73DBA3A42E7FED37EF8BBDE88E3901EF507E8D
-C99F6D32DFA4799DF696F9541FEC06CCCF4FF2B2E374FA11F8BEA527D116857F
-E904A85EB3B876FFA226C570DBBEE692224782D90827B22FBE62CE501BEB28CD
-FA5BAC22843F80B64C01EEAAD90CC2627A90945C9E946F4E6BB1FFFE9F39A806
-052746A36D4E591090D72206620BB8E38C05A088DC2467DE7516C128127508BA
-746416EB47E3ADC8A9B77F2FA2E80CFB614481D9F232949CE0E7A746EC6671CF
-86DC2FC324E6A97398E72F74F6B730E3998ECF8FC047954E3D0AE023A4536F77
-7E921A53D3A732E80EAB5D9736F131FAEC1A269FDEF4C26996A150ACC14B0723
-72946BC954B9E3A8878DECF71CBCB2C72111F5A9A55614EBC9E2D01D7BAF74FA
-3BE2CE3DC63B6A993129A627AC8CC80FD09248A8F8838019F66C99B4271A682F
-386C8CF988290B5C07E1133ADD623C6B62F719C128B3D4F33CF34F1A44074768
-5C9205957EF01DD3E4F818E8DEA19B520B9ADA0D62DA4BF4BD36F287EAB92DF7
-664436D8282E9938B47394DE9F4E91ED8A9DD0CA6887F404D90DAC9685C3EF4F
-5855DA4329A1BFB3A61F064F61197AFD54AAE2752FC1FA2D233E4952E6F77BDE
-FC97A410B543CF4D52A3FE02FCFA5C4CF9A37EEF946E2077BDBABEB28372FF34
-B4F037F4DADED2EACE026F6535CDE726EBF37E5E4456B7548E2CA899A73A4615
-462891A41E81824D4A9C0732C4B02BDB94399F202B7EED6E0F72D81532374173
-D0B6C753CAE68998EA8D869CC05A6F7AEB9CA27AB0044201D596C3265CDA1B79
-023F49245B0757E69EEF30AF41018DE7B3D521EC4E4AE4D304C1A4BD3F01E406
-1AAA7E0062B61E711204A5BF5ADE97885AAFE3F8375FDB8EC3B21FBC1EA92520
-7D0E19BE2CC2FD1282A98791F993A0D96C9141DAB5EE8CB671ABC34B1E9C6435
-1E65E95EEA4DD47E0C1CF9C9C687C623C8EB2916FB86973C2469616B9A0CF8A6
-3D7F2B327DFBEBC63C7058DECD155475D297EBF1445E0D72D03493DA80020845
-BB7E57BC1E7C0A03114EDFD47D95BAE5C58D9168ED879B965F16BCC424DDC51F
-4659AA4FF9EC747811E937DE5A7832C1BA3DC99379CA36CECFDDF73697630805
-728EB9E00F5BBA4DA9C1A71BC3588BBD6EFBE78325B38C9FEBBB35FF6AF34B68
-604B713746811458FA69AFB294FC71620732C7C53A8E936F2333565861018476
-390548AAC2C080C642A20B6E4C03F6A50E438A11211E737AD15A0CEC2BDC3C7A
-082A90AF6AD020A8AAD22836B7197719A374758305D39EE8ED0A1A28E5981719
-9DE1CF42A2B8093223789402C7DF57D9D85232311A1104063D3CDCC7994AE6E9
-3208AC98DF93B4D0572DDBB1526457292420B85AE4B45EB5D89B9A078FE8DB1C
-84A8AFC65D712ACE75770929F58092E9D1FAA8021EB562A83AD3976A4F293B1F
-78F622CB4771F383FCB1AB8CC3FBDDBB8BE2F04A4E25395C3123AF12C254F5BC
-4DF587C94797236D4D17CC6F94DACCCBDB46F1F5ED3E99728F512D0E51D69346
-9412EBF63747C346962EC8DBFAD170D5251F1F3C93BA929D7FDA7F5C83845F0B
-12E294108AD94F87D3157E6024A8F24E935B61D119567ACD5F7E9B
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-{restore}if
-%%EndFont
%%BeginFont: CMTI10
%!PS-AdobeFont-1.0: CMTI10 003.002
%%Title: CMTI10
@@ -5183,7 +5179,6 @@ FontDirectory/CMTI10 known{/CMTI10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMTI10 def
/FontBBox {-35 -250 1124 750 }readonly def
-/UniqueID 5000828 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -5585,7 +5580,6 @@ FontDirectory/CMCSC10 known{/CMCSC10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMCSC10 def
/FontBBox {14 -250 1077 750 }readonly def
-/UniqueID 5087402 def
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
@@ -5908,7 +5902,6 @@ FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMMI10 def
/FontBBox {-32 -250 1048 750 }readonly def
-/UniqueID 5087385 def
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
@@ -6144,7 +6137,6 @@ FontDirectory/CMMI12 known{/CMMI12 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMMI12 def
/FontBBox {-31 -250 1026 750 }readonly def
-/UniqueID 5087386 def
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
@@ -6380,7 +6372,6 @@ FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMSY10 def
/FontBBox {-29 -960 1116 775 }readonly def
-/UniqueID 5096651 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -6612,48 +6603,50 @@ TeXDict begin 40258431 52099146 1000 600 600 (readline.dvi)
39 39 39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39
39 39 39 39 39 39 39 3[39 1[39 39 39 39 39 39 39 39 39
39 39 39 39 39 39 39 1[39 39 39 33[{}86 74.7198 /CMTT9
-rf /Ff 214[35 35 40[{}2 90.9091 /CMSS10 rf /Fg 133[52
-52 52 52 52 52 52 52 52 52 52 52 52 52 52 52 1[52 52
-52 52 52 52 52 52 52 1[52 18[52 52 1[52 2[52 52 9[52
-16[52 42[{}33 99.6264 /CMTT10 rf /Fh 134[65 65 89 65
-68 48 48 50 1[68 61 68 102 34 65 1[34 68 61 37 56 68
-55 68 60 7[93 1[127 93 94 85 68 92 3[96 116 74 96 1[46
-96 1[77 81 1[89 87 93 7[61 61 61 61 61 61 61 61 61 61
-1[34 46[{}52 109.091 /CMBX12 rf /Fi 134[48 48 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 83 57 71 1[33 68
-1[59 62 69 66 64 68 15[45 45 1[25 30 25 1[45 28[51 51
-12[{}51 90.9091 /CMSL10 rf /Fj 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 /Fk 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 /Fl 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
-/Fm 197[25 58[{}1 90.9091 /CMMI10 rf /Fn 197[33 58[{}1
-119.552 /CMMI12 rf /Fo 135[85 117 1[90 63 64 66 1[90
-81 90 134 45 2[45 90 81 49 74 90 72 90 78 10[122 124
-112 1[120 1[110 1[126 1[97 2[60 1[127 101 106 124 117
-1[122 14[81 81 49[{}36 143.462 /CMBX12 rf /Fp 242[91
-13[{}1 90.9091 /CMSY10 rf /Fq 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 7[102
-1[139 102 103 94 75 100 101 92 101 105 128 81 105 1[50
-105 106 85 88 103 97 96 102 6[37 67 1[67 67 67 67 67
-67 67 67 1[37 1[37 44[{}57 119.552 /CMBX12 rf /Fr 129[48
+rf /Ff 134[53 53 72 53 55 39 39 39 53 55 50 55 83 28
+53 1[28 55 50 30 44 55 44 55 50 20[62 77 1[36 2[65 68
+22[28 1[28 1[50 28[55 55 12[{}34 99.6264 /CMSL10 rf /Fg
+214[35 35 40[{}2 90.9091 /CMSS10 rf /Fh 133[52 52 52
+52 52 52 52 52 52 52 52 52 52 52 52 52 1[52 52 52 52
+52 52 52 52 52 1[52 18[52 52 1[52 2[52 52 9[52 16[52
+42[{}33 99.6264 /CMTT10 rf /Fi 134[65 65 89 65 68 48
+48 50 1[68 61 68 102 34 65 1[34 68 61 37 56 68 55 68
+60 7[93 1[127 93 94 85 68 92 3[96 116 74 96 1[46 96 1[77
+81 1[89 87 93 7[61 61 61 61 61 61 61 61 61 61 1[34 46[{}52
+109.091 /CMBX12 rf /Fj 133[40 48 48 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 83 57 71 1[33 68 1[59 62 69
+66 64 68 15[45 45 2[30 31[51 51 12[{}49 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
+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
+/CMMI10 rf /Fo 197[33 58[{}1 119.552 /CMMI12 rf /Fp 135[85
+117 1[90 63 64 66 1[90 81 90 134 45 2[45 90 81 49 74
+90 72 90 78 10[122 124 112 1[120 1[110 1[126 1[97 2[60
+1[127 101 106 124 117 1[122 14[81 81 49[{}36 143.462
+/CMBX12 rf /Fq 242[91 13[{}1 90.9091 /CMSY10 rf /Fr 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 7[102 1[139 102 103 94 75 100 101 92 101
+105 128 81 105 1[50 105 106 85 88 103 97 96 102 6[37
+2[67 67 67 67 67 67 67 2[37 1[37 44[{}55 119.552 /CMBX12
+rf /Fs 129[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 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 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 48 48 1[48 48 1[48
-48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
-48 48 33[{}91 90.9091 /CMTT10 rf /Fs 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 71 4[25 25 45 45 45 45 45 45 45 45 45 45 45 25 30
-25 2[35 35 25 2[45 1[45 19[76 51 51 53 11[{}84 90.9091
-/CMR10 rf /Ft 134[102 6[79 3[108 1[54 2[54 3[88 108 1[108
-94 11[149 2[144 3[151 1[116 4[152 71[{}14 172.154 /CMBX12
-rf end
+48 48 1[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
+48 1[48 48 1[48 48 48 48 48 48 48 48 48 48 48 48 48 48
+48 48 48 48 48 48 48 33[{}91 90.9091 /CMTT10 rf /Ft 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 71 4[25 25 45 45 45 45 45 45 45 45 45 45
+45 25 30 25 2[35 35 25 2[45 1[45 19[76 51 51 53 11[{}84
+90.9091 /CMR10 rf /Fu 134[102 6[79 3[108 1[54 2[54 3[88
+108 1[108 94 11[149 2[144 3[151 1[116 4[152 71[{}14 172.154
+/CMBX12 rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
@@ -6667,292 +6660,290 @@ ifelse
end
%%EndSetup
%%Page: 1 1
-TeXDict begin 1 0 bop 150 1318 a Ft(GNU)65 b(Readline)g(Library)p
-150 1418 3600 34 v 1873 1515 a Fs(Edition)30 b(6.3,)i(for)e
-Fr(Readline)e(Library)h Fs(V)-8 b(ersion)31 b(6.3.)3218
-1623 y(Jan)m(uary)f(2014)150 4935 y Fq(Chet)45 b(Ramey)-11
+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(7.0,)i(for)e
+Fs(Readline)e(Library)h Ft(V)-8 b(ersion)31 b(7.0.)3367
+1623 y(July)f(2016)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 Fs(This)32 b(man)m(ual)h(describ)s(es)
-f(the)h(GNU)g(Readline)g(Library)f(\(v)m(ersion)i(6.3,)g(6)f(Jan)m
-(uary)g(2014\),)i(a)e(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 Fp(\015)f Fs(1988{2014)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)40 b(man)m(ual)g(describ)s(es)
+g(the)g(GNU)h(Readline)g(Library)f(\(v)m(ersion)h(7.0,)j(16)e(July)d
+(2016\),)46 b(a)40 b(library)150 4523 y(whic)m(h)f(aids)g(in)g(the)g
+(consistency)h(of)g(user)e(in)m(terface)j(across)f(discrete)g(programs)
+e(whic)m(h)h(pro)m(vide)h(a)150 4633 y(command)30 b(line)h(in)m
+(terface.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577
+4767 y Fq(\015)f Ft(1988{2016)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)
+-8 b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21
+b(is)f(gran)m(ted)h(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s
+(dify)e(this)i(do)s(cumen)m(t)f(under)f(the)390 5011
+y(terms)25 b(of)h(the)f(GNU)h(F)-8 b(ree)27 b(Do)s(cumen)m(tation)g
+(License,)g(V)-8 b(ersion)26 b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)
+390 5121 y(published)43 b(b)m(y)h(the)h(F)-8 b(ree)46
+b(Soft)m(w)m(are)g(F)-8 b(oundation;)53 b(with)44 b(no)g(In)m(v)-5
+b(arian)m(t)46 b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)
+31 b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8
b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390
5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8
b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end
%%Page: -1 3
-TeXDict begin -1 2 bop 3725 -116 a Fs(i)150 299 y Fo(T)-13
-b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y Fq(1)135 b(Command)45
-b(Line)g(Editing)35 b Fn(:)20 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)79
-b Fq(1)275 778 y Fs(1.1)92 b(In)m(tro)s(duction)30 b(to)h(Line)f
-(Editing)9 b Fm(:)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(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)39 b Fs(1)275 888 y(1.2)92 b(Readline)31
-b(In)m(teraction)11 b Fm(:)16 b(:)g(:)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(:)f(:)41
-b Fs(1)399 997 y(1.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)9
-b Fm(:)17 b(:)e(:)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(:)40 b Fs(1)399 1107 y(1.2.2)93 b(Readline)31 b(Mo)m(v)m(emen)m(t)i
-(Commands)10 b Fm(:)k(:)i(:)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(:)40
-b Fs(2)399 1216 y(1.2.3)93 b(Readline)31 b(Killing)g(Commands)21
-b Fm(:)15 b(:)g(:)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(:)52
-b Fs(2)399 1326 y(1.2.4)93 b(Readline)31 b(Argumen)m(ts)14
-b Fm(:)h(:)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(:)44 b Fs(3)399 1435 y(1.2.5)93 b(Searc)m(hing)31
-b(for)f(Commands)f(in)h(the)h(History)11 b Fm(:)16 b(:)g(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)42
-b Fs(3)275 1545 y(1.3)92 b(Readline)31 b(Init)f(File)c
-Fm(:)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(:)g(:)h(:)f(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)55 b
-Fs(4)399 1655 y(1.3.1)93 b(Readline)31 b(Init)f(File)i(Syn)m(tax)17
-b Fm(:)f(:)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(:)47
-b Fs(4)399 1764 y(1.3.2)93 b(Conditional)31 b(Init)f(Constructs)e
-Fm(:)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(:)58
-b Fs(11)399 1874 y(1.3.3)93 b(Sample)30 b(Init)g(File)14
-b Fm(:)j(:)e(:)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(:)44 b Fs(11)275 1983 y(1.4)92
-b(Bindable)30 b(Readline)h(Commands)14 b Fm(:)g(:)i(:)f(:)g(:)h(:)f(:)h
+TeXDict begin -1 2 bop 3725 -116 a Ft(i)150 299 y Fp(T)-13
+b(able)53 b(of)h(Con)l(ten)l(ts)150 649 y Fr(1)135 b(Command)45
+b(Line)g(Editing)26 b Fo(:)20 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)39
+b Fr(1)275 786 y Ft(1.1)92 b(In)m(tro)s(duction)30 b(to)h(Line)f
+(Editing)17 b Fn(:)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(:)31 b Ft(1)275 896 y(1.2)92 b(Readline)31
+b(In)m(teraction)19 b Fn(:)e(:)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(:)h(:)f(:)g(:)h(:)f(:)h(:)32
+b Ft(1)399 1005 y(1.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)18
+b Fn(:)e(:)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
+(:)31 b Ft(1)399 1115 y(1.2.2)93 b(Readline)31 b(Mo)m(v)m(emen)m(t)i
+(Commands)18 b Fn(:)d(:)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(:)32
+b Ft(2)399 1225 y(1.2.3)93 b(Readline)31 b(Killing)g(Commands)10
+b Fn(:)k(:)h(:)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(:)23
+b Ft(2)399 1334 y(1.2.4)93 b(Readline)31 b(Argumen)m(ts)22
+b Fn(:)15 b(:)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(:)h(:)f(:)g(:)h(:)43 b Fs(14)399 2093 y(1.4.1)93
-b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)10 b Fm(:)17
-b(:)e(:)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(:)40
-b Fs(14)399 2203 y(1.4.2)93 b(Commands)29 b(F)-8 b(or)31
-b(Manipulating)g(The)f(History)20 b Fm(:)c(:)f(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)49 b Fs(14)399 2312 y(1.4.3)93
-b(Commands)29 b(F)-8 b(or)31 b(Changing)f(T)-8 b(ext)25
-b Fm(:)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(:)h(:)53 b Fs(16)399
-2422 y(1.4.4)93 b(Killing)31 b(And)e(Y)-8 b(anking)26
-b Fm(:)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(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)55 b Fs(17)399 2531 y(1.4.5)93 b(Sp)s(ecifying)30
-b(Numeric)g(Argumen)m(ts)19 b Fm(:)d(:)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(:)49
-b Fs(18)399 2641 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)14 b Fm(:)i(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)44
-b Fs(18)399 2751 y(1.4.7)93 b(Keyb)s(oard)29 b(Macros)23
-b Fm(:)17 b(:)e(:)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(:)53 b Fs(19)399 2860 y(1.4.8)93
-b(Some)30 b(Miscellaneous)j(Commands)26 b Fm(:)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(:)58 b Fs(19)275 2970 y(1.5)92 b(Readline)31 b(vi)f(Mo)s(de)22
-b Fm(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+h(:)f(:)h(:)f(:)g(:)36 b Ft(3)399 1444 y(1.2.5)93 b(Searc)m(hing)31
+b(for)f(Commands)f(in)h(the)h(History)20 b Fn(:)c(:)f(:)g(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)33
+b Ft(3)275 1553 y(1.3)92 b(Readline)31 b(Init)f(File)13
+b Fn(:)k(:)e(:)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(:)h(:)f(:)h(:)f(:)27
+b Ft(4)399 1663 y(1.3.1)93 b(Readline)31 b(Init)f(File)i(Syn)m(tax)26
+b Fn(:)15 b(:)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(:)h(:)f(:)52 b Fs(21)150
-3212 y Fq(2)135 b(Programming)46 b(with)f(GNU)g(Readline)17
-b Fn(:)k(:)f(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)62 b Fq(22)275
-3349 y Fs(2.1)92 b(Basic)31 b(Beha)m(vior)15 b Fm(:)i(:)e(:)h(:)f(:)h
+39 b Ft(4)399 1773 y(1.3.2)93 b(Conditional)31 b(Init)f(Constructs)16
+b Fn(:)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(:)29
+b Ft(12)399 1882 y(1.3.3)93 b(Sample)30 b(Init)g(File)22
+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(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)35 b Ft(12)275 1992 y(1.4)92
+b(Bindable)30 b(Readline)h(Commands)22 b Fn(:)15 b(:)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(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)44 b Fs(22)275 3459 y(2.2)92
-b(Custom)29 b(F)-8 b(unctions)10 b Fm(:)17 b(:)e(:)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(:)g(:)
-h(:)f(:)40 b Fs(23)399 3568 y(2.2.1)93 b(Readline)31
-b(T)m(yp)s(edefs)9 b Fm(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)35 b Ft(16)399 2101
+y(1.4.1)93 b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)18
+b Fn(:)f(:)f(:)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
+(:)31 b Ft(16)399 2211 y(1.4.2)93 b(Commands)29 b(F)-8
+b(or)31 b(Manipulating)g(The)f(History)f Fn(:)15 b(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)41 b Ft(16)399
+2320 y(1.4.3)93 b(Commands)29 b(F)-8 b(or)31 b(Changing)f(T)-8
+b(ext)12 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(:)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
+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
+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(:)h(:)f(:)g(:)h(:)f(:)h(:)38 b Fs(24)399
-3678 y(2.2.2)93 b(W)-8 b(riting)31 b(a)g(New)g(F)-8 b(unction)15
-b Fm(:)h(:)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(:)45
-b Fs(24)275 3787 y(2.3)92 b(Readline)31 b(V)-8 b(ariables)23
-b Fm(:)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(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)53 b Fs(25)275
-3897 y(2.4)92 b(Readline)31 b(Con)m(v)m(enience)g(F)-8
-b(unctions)14 b Fm(:)i(:)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(:)h(:)f(:)g(:)h(:)
-43 b Fs(30)399 4007 y(2.4.1)93 b(Naming)31 b(a)g(F)-8
-b(unction)13 b Fm(:)j(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)24 b Ft(21)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 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 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(:)43 b Fs(30)399 4116 y(2.4.2)93
-b(Selecting)32 b(a)e(Keymap)21 b Fm(:)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(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)51 b
-Fs(30)399 4226 y(2.4.3)93 b(Binding)30 b(Keys)c Fm(:)16
-b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+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 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
+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(:)56 b Fs(31)399 4335 y(2.4.4)93
-b(Asso)s(ciating)32 b(F)-8 b(unction)31 b(Names)g(and)e(Bindings)18
-b Fm(:)d(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)47
-b Fs(33)399 4445 y(2.4.5)93 b(Allo)m(wing)32 b(Undoing)19
-b Fm(:)14 b(:)i(:)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(:)48 b Fs(34)399 4555 y(2.4.6)93
-b(Redispla)m(y)21 b Fm(:)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(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h
-(:)f(:)51 b Fs(35)399 4664 y(2.4.7)93 b(Mo)s(difying)30
-b(T)-8 b(ext)28 b Fm(:)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(:)57 b
-Fs(36)399 4774 y(2.4.8)93 b(Character)31 b(Input)13 b
-Fm(:)h(:)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(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)43 b Fs(36)399 4883 y(2.4.9)93
-b(T)-8 b(erminal)30 b(Managemen)m(t)8 b Fm(:)18 b(:)e(:)f(:)h(:)f(:)g
+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
+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(:)h(:)f(:)h(:)f(:)38 b
-Fs(37)399 4993 y(2.4.10)93 b(Utilit)m(y)33 b(F)-8 b(unctions)15
-b Fm(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)37 b Ft(26)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
+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(:)45 b Fs(38)399 5103 y(2.4.11)93
-b(Miscellaneous)33 b(F)-8 b(unctions)15 b Fm(:)g(:)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(:)44 b Fs(39)399 5212
-y(2.4.12)93 b(Alternate)32 b(In)m(terface)17 b Fm(:)g(:)e(:)h(:)f(:)g
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)35 b Ft(32)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(:)h(:)f(:)g(:)47
-b Fs(40)399 5322 y(2.4.13)93 b(A)31 b(Readline)g(Example)24
-b Fm(:)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(:)53 b Fs(40)p eop end
-%%Page: -2 4
-TeXDict begin -2 3 bop 3699 -116 a Fs(ii)399 83 y(2.4.14)93
-b(Alternate)32 b(In)m(terface)g(Example)10 b Fm(:)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(:)h(:)f(:)40 b Fs(42)275
-193 y(2.5)92 b(Readline)31 b(Signal)f(Handling)10 b Fm(:)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(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)39 b Fs(43)275 302 y(2.6)92 b(Custom)29 b(Completers)18
-b Fm(:)e(:)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(:)48 b Fs(46)399 412
-y(2.6.1)93 b(Ho)m(w)31 b(Completing)g(W)-8 b(orks)24
-b Fm(:)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(:)34
+b Ft(32)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(32)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(:)
-53 b Fs(46)399 521 y(2.6.2)93 b(Completion)31 b(F)-8
-b(unctions)19 b Fm(:)d(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)28
+b Ft(33)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
+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
+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(:)49 b Fs(47)399 631 y(2.6.3)93 b(Completion)31
-b(V)-8 b(ariables)9 b Fm(:)17 b(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+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(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(38)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(:)39 b Fs(48)399 741 y(2.6.4)93
-b(A)30 b(Short)g(Completion)h(Example)c Fm(:)15 b(:)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(:)56 b Fs(52)150 983 y Fq(App)t(endix)44
-b(A)160 b(GNU)45 b(F)-11 b(ree)45 b(Do)t(cumen)l(tation)h(License)446
-1116 y Fn(:)20 b(:)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(:)f
-(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)72
-b Fq(61)150 1386 y(Concept)45 b(Index)18 b Fn(:)i(:)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(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)63
-b Fq(69)150 1655 y(F)-11 b(unction)44 b(and)h(V)-11 b(ariable)45
-b(Index)29 b Fn(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)73 b Fq(70)p eop end
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+(:)g(:)35 b Ft(38)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(39)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(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(41)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(42)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
+%%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(44)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(46)275 302
+y(2.6)92 b(Custom)29 b(Completers)e Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+(:)40 b Ft(49)399 412 y(2.6.1)93 b(Ho)m(w)31 b(Completing)g(W)-8
+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(49)399 521 y(2.6.2)93 b(Completion)31
+b(F)-8 b(unctions)28 b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)40 b Ft(50)399 631 y(2.6.3)93
+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(51)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(56)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(65)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(73)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(74)p
+eop end
%%Page: 1 5
-TeXDict begin 1 4 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(1)150 299 y Fo(1)80
-b(Command)54 b(Line)f(Editing)150 532 y Fs(This)30 b(c)m(hapter)h
-(describ)s(es)e(the)i(basic)g(features)f(of)h(the)f Fl(gnu)g
-Fs(command)h(line)f(editing)h(in)m(terface.)150 764 y
-Fq(1.1)68 b(In)l(tro)t(duction)45 b(to)g(Line)h(Editing)150
-923 y Fs(The)30 b(follo)m(wing)i(paragraphs)d(describ)s(e)h(the)h
+TeXDict begin 1 4 bop 3705 -116 a Ft(1)150 299 y Fp(1)80
+b(Command)54 b(Line)f(Editing)150 527 y Ft(This)30 b(c)m(hapter)h
+(describ)s(es)e(the)i(basic)g(features)f(of)h(the)f Fm(gnu)g
+Ft(command)h(line)f(editing)h(in)m(terface.)150 766 y
+Fr(1.1)68 b(In)l(tro)t(duction)45 b(to)g(Line)h(Editing)150
+925 y Ft(The)30 b(follo)m(wing)i(paragraphs)d(describ)s(e)h(the)h
(notation)g(used)f(to)h(represen)m(t)f(k)m(eystrok)m(es.)275
-1058 y(The)35 b(text)i Fk(C-k)f Fs(is)g(read)g(as)h(`Con)m(trol-K')g
+1058 y(The)35 b(text)i Fl(C-k)f Ft(is)g(read)g(as)h(`Con)m(trol-K')g
(and)f(describ)s(es)f(the)h(c)m(haracter)i(pro)s(duced)d(when)g(the)h
-Fr(k)150 1167 y Fs(k)m(ey)31 b(is)g(pressed)e(while)h(the)h(Con)m(trol)
-g(k)m(ey)g(is)g(depressed.)275 1301 y(The)g(text)i Fk(M-k)e
-Fs(is)h(read)f(as)i(`Meta-K')g(and)f(describ)s(es)f(the)h(c)m(haracter)
+Fs(k)150 1168 y Ft(k)m(ey)31 b(is)g(pressed)e(while)h(the)h(Con)m(trol)
+g(k)m(ey)g(is)g(depressed.)275 1301 y(The)g(text)i Fl(M-k)e
+Ft(is)h(read)f(as)i(`Meta-K')g(and)f(describ)s(es)f(the)h(c)m(haracter)
h(pro)s(duced)e(when)f(the)i(Meta)150 1411 y(k)m(ey)i(\(if)f(y)m(ou)h
-(ha)m(v)m(e)g(one\))g(is)f(depressed,)g(and)f(the)h Fr(k)g
-Fs(k)m(ey)h(is)f(pressed.)48 b(The)32 b(Meta)j(k)m(ey)e(is)h(lab)s
-(eled)f Fr(ALT)150 1521 y Fs(on)c(man)m(y)h(k)m(eyb)s(oards.)40
+(ha)m(v)m(e)g(one\))g(is)f(depressed,)g(and)f(the)h Fs(k)g
+Ft(k)m(ey)h(is)f(pressed.)48 b(The)32 b(Meta)j(k)m(ey)e(is)h(lab)s
+(eled)f Fs(ALT)150 1521 y Ft(on)c(man)m(y)h(k)m(eyb)s(oards.)40
b(On)29 b(k)m(eyb)s(oards)g(with)h(t)m(w)m(o)h(k)m(eys)f(lab)s(eled)g
-Fr(ALT)e Fs(\(usually)i(to)g(either)g(side)g(of)g(the)150
-1630 y(space)h(bar\),)f(the)g Fr(ALT)f Fs(on)h(the)g(left)h(side)f(is)g
+Fs(ALT)e Ft(\(usually)i(to)g(either)g(side)g(of)g(the)150
+1630 y(space)h(bar\),)f(the)g Fs(ALT)f Ft(on)h(the)g(left)h(side)f(is)g
(generally)h(set)f(to)h(w)m(ork)f(as)g(a)h(Meta)g(k)m(ey)-8
-b(.)42 b(The)29 b Fr(ALT)g Fs(k)m(ey)i(on)150 1740 y(the)c(righ)m(t)h
+b(.)42 b(The)29 b Fs(ALT)g Ft(k)m(ey)i(on)150 1740 y(the)c(righ)m(t)h
(ma)m(y)g(also)g(b)s(e)f(con\014gured)f(to)i(w)m(ork)f(as)h(a)f(Meta)i
(k)m(ey)f(or)f(ma)m(y)h(b)s(e)e(con\014gured)h(as)g(some)h(other)150
1849 y(mo)s(di\014er,)i(suc)m(h)g(as)g(a)h(Comp)s(ose)f(k)m(ey)h(for)f
-(t)m(yping)h(accen)m(ted)h(c)m(haracters.)275 1984 y(If)23
-b(y)m(ou)i(do)f(not)h(ha)m(v)m(e)h(a)f(Meta)g(or)g Fr(ALT)e
-Fs(k)m(ey)-8 b(,)27 b(or)e(another)f(k)m(ey)i(w)m(orking)e(as)h(a)g
-(Meta)h(k)m(ey)-8 b(,)27 b(the)d(iden)m(tical)150 2093
+(t)m(yping)h(accen)m(ted)h(c)m(haracters.)275 1983 y(If)23
+b(y)m(ou)i(do)f(not)h(ha)m(v)m(e)h(a)f(Meta)g(or)g Fs(ALT)e
+Ft(k)m(ey)-8 b(,)27 b(or)e(another)f(k)m(ey)i(w)m(orking)e(as)h(a)g
+(Meta)h(k)m(ey)-8 b(,)27 b(the)d(iden)m(tical)150 2092
y(k)m(eystrok)m(e)30 b(can)f(b)s(e)f(generated)h(b)m(y)g(t)m(yping)g
-Fr(ESC)e Fj(\014rst)p Fs(,)j(and)e(then)g(t)m(yping)h
-Fr(k)p Fs(.)40 b(Either)28 b(pro)s(cess)g(is)g(kno)m(wn)150
-2203 y(as)j Fi(metafying)39 b Fs(the)30 b Fr(k)g Fs(k)m(ey)-8
-b(.)275 2337 y(The)39 b(text)j Fk(M-C-k)d Fs(is)h(read)g(as)h
+Fs(ESC)e Fk(\014rst)p Ft(,)j(and)e(then)g(t)m(yping)h
+Fs(k)p Ft(.)40 b(Either)28 b(pro)s(cess)g(is)g(kno)m(wn)150
+2202 y(as)j Fj(metafying)39 b Ft(the)30 b Fs(k)g Ft(k)m(ey)-8
+b(.)275 2335 y(The)39 b(text)j Fl(M-C-k)d Ft(is)h(read)g(as)h
(`Meta-Con)m(trol-k')j(and)39 b(describ)s(es)h(the)g(c)m(haracter)i
-(pro)s(duced)d(b)m(y)150 2447 y Fi(metafying)g Fk(C-k)p
-Fs(.)275 2581 y(In)c(addition,)j(sev)m(eral)f(k)m(eys)g(ha)m(v)m(e)g
+(pro)s(duced)d(b)m(y)150 2445 y Fj(metafying)g Fl(C-k)p
+Ft(.)275 2578 y(In)c(addition,)j(sev)m(eral)f(k)m(eys)g(ha)m(v)m(e)g
(their)f(o)m(wn)g(names.)58 b(Sp)s(eci\014cally)-8 b(,)38
-b Fr(DEL)p Fs(,)f Fr(ESC)p Fs(,)g Fr(LFD)p Fs(,)g Fr(SPC)p
-Fs(,)g Fr(RET)p Fs(,)150 2690 y(and)d Fr(TAB)f Fs(all)j(stand)e(for)g
+b Fs(DEL)p Ft(,)f Fs(ESC)p Ft(,)g Fs(LFD)p Ft(,)g Fs(SPC)p
+Ft(,)g Fs(RET)p Ft(,)150 2688 y(and)d Fs(TAB)f Ft(all)j(stand)e(for)g
(themselv)m(es)i(when)d(seen)i(in)f(this)g(text,)j(or)d(in)h(an)f(init)
-h(\014le)f(\(see)i(Section)f(1.3)150 2800 y([Readline)c(Init)e(File],)j
+h(\014le)f(\(see)i(Section)f(1.3)150 2797 y([Readline)c(Init)e(File],)j
(page)e(4\).)41 b(If)29 b(y)m(our)h(k)m(eyb)s(oard)f(lac)m(ks)i(a)f
-Fr(LFD)f Fs(k)m(ey)-8 b(,)31 b(t)m(yping)g Fr(C-j)d Fs(will)i(pro)s
-(duce)f(the)150 2910 y(desired)h(c)m(haracter.)42 b(The)30
-b Fr(RET)g Fs(k)m(ey)h(ma)m(y)g(b)s(e)e(lab)s(eled)i
-Fr(Return)e Fs(or)h Fr(Enter)f Fs(on)h(some)h(k)m(eyb)s(oards.)150
-3142 y Fq(1.2)68 b(Readline)47 b(In)l(teraction)150 3301
-y Fs(Often)32 b(during)g(an)g(in)m(teractiv)m(e)j(session)e(y)m(ou)g(t)
+Fs(LFD)f Ft(k)m(ey)-8 b(,)31 b(t)m(yping)g Fs(C-j)d Ft(will)i(pro)s
+(duce)f(the)150 2907 y(desired)h(c)m(haracter.)42 b(The)30
+b Fs(RET)g Ft(k)m(ey)h(ma)m(y)g(b)s(e)e(lab)s(eled)i
+Fs(Return)e Ft(or)h Fs(Enter)f Ft(on)h(some)h(k)m(eyb)s(oards.)150
+3145 y Fr(1.2)68 b(Readline)47 b(In)l(teraction)150 3305
+y Ft(Often)32 b(during)g(an)g(in)m(teractiv)m(e)j(session)e(y)m(ou)g(t)
m(yp)s(e)g(in)f(a)h(long)g(line)g(of)f(text,)j(only)d(to)i(notice)g
-(that)f(the)150 3411 y(\014rst)f(w)m(ord)g(on)g(the)g(line)h(is)g
+(that)f(the)150 3414 y(\014rst)f(w)m(ord)g(on)g(the)g(line)h(is)g
(missp)s(elled.)46 b(The)32 b(Readline)h(library)f(giv)m(es)h(y)m(ou)g
-(a)g(set)g(of)f(commands)g(for)150 3520 y(manipulating)e(the)g(text)h
+(a)g(set)g(of)f(commands)g(for)150 3524 y(manipulating)e(the)g(text)h
(as)f(y)m(ou)g(t)m(yp)s(e)g(it)g(in,)g(allo)m(wing)h(y)m(ou)f(to)h
(just)e(\014x)g(y)m(our)h(t)m(yp)s(o,)g(and)g(not)g(forcing)150
-3630 y(y)m(ou)e(to)h(ret)m(yp)s(e)g(the)f(ma)5 b(jorit)m(y)29
+3634 y(y)m(ou)e(to)h(ret)m(yp)s(e)g(the)f(ma)5 b(jorit)m(y)29
b(of)f(the)h(line.)40 b(Using)28 b(these)h(editing)g(commands,)f(y)m
-(ou)h(mo)m(v)m(e)g(the)g(cursor)150 3739 y(to)35 b(the)f(place)i(that)e
+(ou)h(mo)m(v)m(e)g(the)g(cursor)150 3743 y(to)35 b(the)f(place)i(that)e
(needs)g(correction,)j(and)d(delete)h(or)f(insert)h(the)f(text)h(of)g
-(the)f(corrections.)54 b(Then,)150 3849 y(when)24 b(y)m(ou)h(are)g
+(the)f(corrections.)54 b(Then,)150 3853 y(when)24 b(y)m(ou)h(are)g
(satis\014ed)g(with)g(the)g(line,)i(y)m(ou)e(simply)f(press)g
-Fr(RET)p Fs(.)39 b(Y)-8 b(ou)25 b(do)g(not)g(ha)m(v)m(e)h(to)g(b)s(e)e
-(at)h(the)h(end)150 3959 y(of)33 b(the)h(line)g(to)g(press)e
-Fr(RET)p Fs(;)i(the)g(en)m(tire)g(line)f(is)h(accepted)g(regardless)g
-(of)f(the)h(lo)s(cation)h(of)e(the)h(cursor)150 4068
-y(within)c(the)g(line.)150 4267 y Fh(1.2.1)63 b(Readline)40
-b(Bare)h(Essen)m(tials)150 4414 y Fs(In)31 b(order)h(to)h(en)m(ter)g(c)
+Fs(RET)p Ft(.)39 b(Y)-8 b(ou)25 b(do)g(not)g(ha)m(v)m(e)h(to)g(b)s(e)e
+(at)h(the)h(end)150 3962 y(of)33 b(the)h(line)g(to)g(press)e
+Fs(RET)p Ft(;)i(the)g(en)m(tire)g(line)f(is)h(accepted)g(regardless)g
+(of)f(the)h(lo)s(cation)h(of)e(the)h(cursor)150 4072
+y(within)c(the)g(line.)150 4269 y Fi(1.2.1)63 b(Readline)40
+b(Bare)h(Essen)m(tials)150 4416 y Ft(In)31 b(order)h(to)h(en)m(ter)g(c)
m(haracters)g(in)m(to)g(the)g(line,)g(simply)e(t)m(yp)s(e)i(them.)46
b(The)31 b(t)m(yp)s(ed)h(c)m(haracter)i(app)s(ears)150
-4523 y(where)e(the)h(cursor)e(w)m(as,)j(and)e(then)g(the)h(cursor)e(mo)
+4525 y(where)e(the)h(cursor)e(w)m(as,)j(and)e(then)g(the)h(cursor)e(mo)
m(v)m(es)j(one)f(space)g(to)g(the)g(righ)m(t.)47 b(If)32
-b(y)m(ou)h(mist)m(yp)s(e)g(a)150 4633 y(c)m(haracter,)f(y)m(ou)f(can)g
+b(y)m(ou)h(mist)m(yp)s(e)g(a)150 4635 y(c)m(haracter,)f(y)m(ou)f(can)g
(use)f(y)m(our)g(erase)h(c)m(haracter)h(to)f(bac)m(k)g(up)f(and)f
-(delete)j(the)f(mist)m(yp)s(ed)e(c)m(haracter.)275 4767
+(delete)j(the)f(mist)m(yp)s(ed)e(c)m(haracter.)275 4768
y(Sometimes)i(y)m(ou)g(ma)m(y)h(mist)m(yp)s(e)e(a)i(c)m(haracter,)g
(and)e(not)i(notice)g(the)f(error)f(un)m(til)h(y)m(ou)g(ha)m(v)m(e)h(t)
-m(yp)s(ed)150 4877 y(sev)m(eral)e(other)f(c)m(haracters.)42
+m(yp)s(ed)150 4878 y(sev)m(eral)e(other)f(c)m(haracters.)42
b(In)28 b(that)i(case,)g(y)m(ou)f(can)g(t)m(yp)s(e)h
-Fk(C-b)d Fs(to)j(mo)m(v)m(e)g(the)f(cursor)g(to)g(the)g(left,)i(and)150
+Fl(C-b)d Ft(to)j(mo)m(v)m(e)g(the)f(cursor)g(to)g(the)g(left,)i(and)150
4987 y(then)f(correct)i(y)m(our)e(mistak)m(e.)42 b(Afterw)m(ards,)31
b(y)m(ou)f(can)h(mo)m(v)m(e)h(the)e(cursor)g(to)h(the)g(righ)m(t)g
-(with)f Fk(C-f)p Fs(.)275 5121 y(When)i(y)m(ou)h(add)f(text)h(in)f(the)
+(with)f Fl(C-f)p Ft(.)275 5121 y(When)i(y)m(ou)h(add)f(text)h(in)f(the)
h(middle)f(of)h(a)g(line,)h(y)m(ou)e(will)h(notice)h(that)f(c)m
(haracters)h(to)g(the)e(righ)m(t)150 5230 y(of)d(the)g(cursor)f(are)h
(`pushed)e(o)m(v)m(er')j(to)g(mak)m(e)f(ro)s(om)g(for)f(the)h(text)h
@@ -6961,701 +6952,776 @@ h(middle)f(of)h(a)g(line,)h(y)m(ou)e(will)h(notice)h(that)f(c)m
(haracters)g(to)f(the)g(righ)m(t)g(of)g(the)g(cursor)e(are)i(`pulled)p
eop end
%%Page: 2 6
-TeXDict begin 2 5 bop 150 -116 a Fs(Chapter)30 b(1:)41
+TeXDict begin 2 5 bop 150 -116 a Ft(Chapter)30 b(1:)41
b(Command)29 b(Line)i(Editing)2153 b(2)150 299 y(bac)m(k')24
b(to)f(\014ll)g(in)f(the)h(blank)f(space)i(created)f(b)m(y)g(the)g
(remo)m(v)-5 b(al)24 b(of)f(the)g(text.)39 b(A)23 b(list)g(of)g(the)g
(bare)f(essen)m(tials)150 408 y(for)30 b(editing)h(the)g(text)g(of)g
-(an)f(input)f(line)i(follo)m(ws.)150 562 y Fk(C-b)336
-b Fs(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m(haracter.)150
-715 y Fk(C-f)336 b Fs(Mo)m(v)m(e)32 b(forw)m(ard)e(one)h(c)m(haracter.)
-150 869 y Fr(DEL)e Fs(or)i Fr(Backspace)630 978 y Fs(Delete)i(the)d(c)m
-(haracter)i(to)f(the)g(left)g(of)f(the)h(cursor.)150
-1132 y Fk(C-d)336 b Fs(Delete)33 b(the)d(c)m(haracter)i(underneath)d
-(the)i(cursor.)150 1285 y(Prin)m(ting)g(c)m(haracters)630
-1394 y(Insert)f(the)g(c)m(haracter)i(in)m(to)g(the)e(line)h(at)g(the)g
-(cursor.)150 1548 y Fk(C-_)e Fs(or)i Fk(C-x)e(C-u)630
-1657 y Fs(Undo)k(the)h(last)g(editing)g(command.)50 b(Y)-8
+(an)f(input)f(line)i(follo)m(ws.)150 571 y Fl(C-b)336
+b Ft(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m(haracter.)150
+732 y Fl(C-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(one)h(c)m(haracter.)
+150 893 y Fs(DEL)e Ft(or)i Fs(Backspace)630 1003 y Ft(Delete)i(the)d(c)
+m(haracter)i(to)f(the)g(left)g(of)f(the)h(cursor.)150
+1164 y Fl(C-d)336 b Ft(Delete)33 b(the)d(c)m(haracter)i(underneath)d
+(the)i(cursor.)150 1325 y(Prin)m(ting)g(c)m(haracters)630
+1435 y(Insert)f(the)g(c)m(haracter)i(in)m(to)g(the)e(line)h(at)g(the)g
+(cursor.)150 1596 y Fl(C-_)e Ft(or)i Fl(C-x)e(C-u)630
+1706 y Ft(Undo)k(the)h(last)g(editing)g(command.)50 b(Y)-8
b(ou)34 b(can)f(undo)g(all)h(the)f(w)m(a)m(y)i(bac)m(k)f(to)g(an)g
-(empt)m(y)630 1767 y(line.)150 1920 y(\(Dep)s(ending)29
-b(on)h(y)m(our)f(con\014guration,)i(the)e Fr(Backspace)e
-Fs(k)m(ey)k(b)s(e)d(set)j(to)f(delete)h(the)e(c)m(haracter)i(to)g(the)
-150 2030 y(left)37 b(of)f(the)h(cursor)e(and)h(the)g
-Fr(DEL)g Fs(k)m(ey)h(set)f(to)h(delete)h(the)e(c)m(haracter)i
-(underneath)d(the)h(cursor,)i(lik)m(e)150 2140 y Fk(C-d)p
-Fs(,)30 b(rather)g(than)g(the)h(c)m(haracter)h(to)f(the)f(left)h(of)g
-(the)f(cursor.\))150 2333 y Fh(1.2.2)63 b(Readline)40
-b(Mo)m(v)m(emen)m(t)h(Commands)150 2480 y Fs(The)27 b(ab)s(o)m(v)m(e)i
+(empt)m(y)630 1815 y(line.)150 1977 y(\(Dep)s(ending)29
+b(on)h(y)m(our)f(con\014guration,)i(the)e Fs(Backspace)e
+Ft(k)m(ey)k(b)s(e)d(set)j(to)f(delete)h(the)e(c)m(haracter)i(to)g(the)
+150 2087 y(left)37 b(of)f(the)h(cursor)e(and)h(the)g
+Fs(DEL)g Ft(k)m(ey)h(set)f(to)h(delete)h(the)e(c)m(haracter)i
+(underneath)d(the)h(cursor,)i(lik)m(e)150 2196 y Fl(C-d)p
+Ft(,)30 b(rather)g(than)g(the)h(c)m(haracter)h(to)f(the)f(left)h(of)g
+(the)f(cursor.\))150 2398 y Fi(1.2.2)63 b(Readline)40
+b(Mo)m(v)m(emen)m(t)h(Commands)150 2545 y Ft(The)27 b(ab)s(o)m(v)m(e)i
(table)g(describ)s(es)e(the)g(most)i(basic)f(k)m(eystrok)m(es)h(that)f
(y)m(ou)g(need)g(in)f(order)g(to)i(do)e(editing)i(of)150
-2589 y(the)k(input)f(line.)49 b(F)-8 b(or)34 b(y)m(our)f(con)m(v)m
+2654 y(the)k(input)f(line.)49 b(F)-8 b(or)34 b(y)m(our)f(con)m(v)m
(enience,)j(man)m(y)d(other)g(commands)f(ha)m(v)m(e)j(b)s(een)d(added)g
-(in)h(addition)150 2699 y(to)j Fk(C-b)p Fs(,)f Fk(C-f)p
-Fs(,)g Fk(C-d)p Fs(,)h(and)e Fr(DEL)p Fs(.)54 b(Here)35
+(in)h(addition)150 2764 y(to)j Fl(C-b)p Ft(,)f Fl(C-f)p
+Ft(,)g Fl(C-d)p Ft(,)h(and)e Fs(DEL)p Ft(.)54 b(Here)35
b(are)g(some)h(commands)e(for)h(mo)m(ving)h(more)f(rapidly)f(ab)s(out)h
-(the)150 2808 y(line.)150 2962 y Fk(C-a)336 b Fs(Mo)m(v)m(e)32
-b(to)g(the)e(start)h(of)g(the)f(line.)150 3115 y Fk(C-e)336
-b Fs(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
-3269 y Fk(M-f)336 b Fs(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m(ord,)f
+(the)150 2873 y(line.)150 3035 y Fl(C-a)336 b Ft(Mo)m(v)m(e)32
+b(to)g(the)e(start)h(of)g(the)f(line.)150 3197 y Fl(C-e)336
+b Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
+3358 y Fl(M-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m(ord,)f
(where)g(a)h(w)m(ord)f(is)g(comp)s(osed)g(of)h(letters)h(and)d(digits.)
-150 3422 y Fk(M-b)336 b Fs(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a)g(w)m
-(ord.)150 3575 y Fk(C-l)336 b Fs(Clear)31 b(the)f(screen,)h(reprin)m
+150 3519 y Fl(M-b)336 b Ft(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a)g(w)m
+(ord.)150 3680 y Fl(C-l)336 b Ft(Clear)31 b(the)f(screen,)h(reprin)m
(ting)f(the)h(curren)m(t)f(line)h(at)g(the)f(top.)275
-3729 y(Notice)c(ho)m(w)f Fk(C-f)e Fs(mo)m(v)m(es)j(forw)m(ard)e(a)h(c)m
-(haracter,)j(while)d Fk(M-f)e Fs(mo)m(v)m(es)j(forw)m(ard)e(a)h(w)m
-(ord.)39 b(It)24 b(is)h(a)g(lo)s(ose)150 3838 y(con)m(v)m(en)m(tion)32
+3843 y(Notice)c(ho)m(w)f Fl(C-f)e Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h(c)m
+(haracter,)j(while)d Fl(M-f)e Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h(w)m
+(ord.)39 b(It)24 b(is)h(a)g(lo)s(ose)150 3952 y(con)m(v)m(en)m(tion)32
b(that)f(con)m(trol)g(k)m(eystrok)m(es)h(op)s(erate)e(on)g(c)m
(haracters)h(while)f(meta)h(k)m(eystrok)m(es)h(op)s(erate)e(on)150
-3948 y(w)m(ords.)150 4141 y Fh(1.2.3)63 b(Readline)40
-b(Killing)i(Commands)150 4288 y Fi(Killing)35 b Fs(text)28
+4062 y(w)m(ords.)150 4263 y Fi(1.2.3)63 b(Readline)40
+b(Killing)i(Commands)150 4410 y Fj(Killing)35 b Ft(text)28
b(means)e(to)h(delete)h(the)f(text)g(from)g(the)f(line,)i(but)e(to)h
(sa)m(v)m(e)h(it)g(a)m(w)m(a)m(y)g(for)e(later)i(use,)f(usually)150
-4398 y(b)m(y)g Fi(y)m(anking)35 b Fs(\(re-inserting\))28
+4519 y(b)m(y)g Fj(y)m(anking)35 b Ft(\(re-inserting\))28
b(it)g(bac)m(k)f(in)m(to)h(the)f(line.)40 b(\(`Cut')27
b(and)g(`paste')h(are)f(more)g(recen)m(t)h(jargon)f(for)150
-4507 y(`kill')32 b(and)d(`y)m(ank'.\))275 4639 y(If)g(the)i
+4629 y(`kill')32 b(and)d(`y)m(ank'.\))275 4765 y(If)g(the)i
(description)f(for)g(a)h(command)f(sa)m(ys)g(that)h(it)g(`kills')g
(text,)h(then)e(y)m(ou)g(can)h(b)s(e)e(sure)h(that)h(y)m(ou)150
-4748 y(can)g(get)g(the)g(text)g(bac)m(k)g(in)f(a)h(di\013eren)m(t)g
-(\(or)g(the)f(same\))h(place)h(later.)275 4880 y(When)23
+4875 y(can)g(get)g(the)g(text)g(bac)m(k)g(in)f(a)h(di\013eren)m(t)g
+(\(or)g(the)f(same\))h(place)h(later.)275 5011 y(When)23
b(y)m(ou)g(use)g(a)h(kill)g(command,)g(the)g(text)g(is)f(sa)m(v)m(ed)i
-(in)e(a)g Fi(kill-ring)p Fs(.)39 b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h
-(consecutiv)m(e)150 4989 y(kills)31 b(sa)m(v)m(e)i(all)f(of)f(the)g
+(in)e(a)g Fj(kill-ring)p Ft(.)39 b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h
+(consecutiv)m(e)150 5121 y(kills)31 b(sa)m(v)m(e)i(all)f(of)f(the)g
(killed)h(text)g(together,)g(so)g(that)f(when)f(y)m(ou)h(y)m(ank)h(it)f
-(bac)m(k,)h(y)m(ou)g(get)g(it)f(all.)43 b(The)150 5099
+(bac)m(k,)h(y)m(ou)g(get)g(it)f(all.)43 b(The)150 5230
y(kill)33 b(ring)f(is)g(not)h(line)g(sp)s(eci\014c;)g(the)g(text)g
(that)g(y)m(ou)g(killed)f(on)h(a)f(previously)g(t)m(yp)s(ed)h(line)f
-(is)h(a)m(v)-5 b(ailable)150 5208 y(to)31 b(b)s(e)f(y)m(ank)m(ed)h(bac)
-m(k)g(later,)h(when)d(y)m(ou)i(are)g(t)m(yping)f(another)h(line.)275
-5340 y(Here)f(is)h(the)f(list)h(of)g(commands)f(for)g(killing)h(text.)p
+(is)h(a)m(v)-5 b(ailable)150 5340 y(to)31 b(b)s(e)f(y)m(ank)m(ed)h(bac)
+m(k)g(later,)h(when)d(y)m(ou)i(are)g(t)m(yping)f(another)h(line.)p
eop end
%%Page: 3 7
-TeXDict begin 3 6 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(3)150 299 y Fk(C-k)336
-b Fs(Kill)31 b(the)f(text)i(from)e(the)g(curren)m(t)g(cursor)g(p)s
-(osition)h(to)g(the)f(end)g(of)g(the)h(line.)150 461
-y Fk(M-d)336 b Fs(Kill)27 b(from)f(the)g(cursor)g(to)h(the)f(end)g(of)h
-(the)f(curren)m(t)g(w)m(ord,)h(or,)h(if)e(b)s(et)m(w)m(een)h(w)m(ords,)
-g(to)g(the)630 570 y(end)j(of)g(the)h(next)f(w)m(ord.)41
+TeXDict begin 3 6 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2153 b(3)275 299 y(Here)30
+b(is)h(the)f(list)h(of)g(commands)f(for)g(killing)h(text.)150
+456 y Fl(C-k)336 b Ft(Kill)31 b(the)f(text)i(from)e(the)g(curren)m(t)g
+(cursor)g(p)s(osition)h(to)g(the)f(end)g(of)g(the)h(line.)150
+614 y Fl(M-d)336 b Ft(Kill)27 b(from)f(the)g(cursor)g(to)h(the)f(end)g
+(of)h(the)f(curren)m(t)g(w)m(ord,)h(or,)h(if)e(b)s(et)m(w)m(een)h(w)m
+(ords,)g(to)g(the)630 723 y(end)j(of)g(the)h(next)f(w)m(ord.)41
b(W)-8 b(ord)30 b(b)s(oundaries)f(are)i(the)g(same)f(as)h(those)g(used)
-f(b)m(y)g Fk(M-f)p Fs(.)150 732 y Fk(M-DEL)240 b Fs(Kill)31
+f(b)m(y)g Fl(M-f)p Ft(.)150 881 y Fl(M-DEL)240 b Ft(Kill)31
b(from)f(the)h(cursor)f(the)g(start)h(of)g(the)g(curren)m(t)f(w)m(ord,)
h(or,)f(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)i(the)630
-842 y(start)39 b(of)f(the)h(previous)f(w)m(ord.)64 b(W)-8
+991 y(start)39 b(of)f(the)h(previous)f(w)m(ord.)64 b(W)-8
b(ord)39 b(b)s(oundaries)e(are)i(the)f(same)h(as)g(those)f(used)g(b)m
-(y)630 951 y Fk(M-b)p Fs(.)150 1113 y Fk(C-w)336 b Fs(Kill)35
+(y)630 1100 y Fl(M-b)p Ft(.)150 1258 y Fl(C-w)336 b Ft(Kill)35
b(from)g(the)g(cursor)f(to)i(the)f(previous)g(whitespace.)55
-b(This)34 b(is)h(di\013eren)m(t)h(than)e Fk(M-DEL)630
-1223 y Fs(b)s(ecause)c(the)h(w)m(ord)f(b)s(oundaries)f(di\013er.)275
-1386 y(Here)42 b(is)f(ho)m(w)h(to)g Fi(y)m(ank)47 b Fs(the)42
+b(This)34 b(is)h(di\013eren)m(t)h(than)e Fl(M-DEL)630
+1367 y Ft(b)s(ecause)c(the)h(w)m(ord)f(b)s(oundaries)f(di\013er.)275
+1525 y(Here)42 b(is)f(ho)m(w)h(to)g Fj(y)m(ank)47 b Ft(the)42
b(text)g(bac)m(k)h(in)m(to)f(the)g(line.)74 b(Y)-8 b(anking)43
-b(means)e(to)h(cop)m(y)h(the)e(most-)150 1496 y(recen)m(tly-killed)33
-b(text)e(from)f(the)g(kill)i(bu\013er.)150 1659 y Fk(C-y)336
-b Fs(Y)-8 b(ank)31 b(the)f(most)h(recen)m(tly)h(killed)f(text)g(bac)m
+b(means)e(to)h(cop)m(y)h(the)e(most-)150 1634 y(recen)m(tly-killed)33
+b(text)e(from)f(the)g(kill)i(bu\013er.)150 1792 y Fl(C-y)336
+b Ft(Y)-8 b(ank)31 b(the)f(most)h(recen)m(tly)h(killed)f(text)g(bac)m
(k)g(in)m(to)h(the)e(bu\013er)g(at)h(the)f(cursor.)150
-1821 y Fk(M-y)336 b Fs(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h
+1949 y Fl(M-y)336 b 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 1930 y(command)30 b(is)h Fk(C-y)e Fs(or)h
-Fk(M-y)p Fs(.)150 2132 y Fh(1.2.4)63 b(Readline)40 b(Argumen)m(ts)150
-2279 y Fs(Y)-8 b(ou)40 b(can)f(pass)g(n)m(umeric)f(argumen)m(ts)i(to)f
+(the)g(prior)630 2059 y(command)30 b(is)h Fl(C-y)e Ft(or)h
+Fl(M-y)p Ft(.)150 2256 y Fi(1.2.4)63 b(Readline)40 b(Argumen)m(ts)150
+2403 y Ft(Y)-8 b(ou)40 b(can)f(pass)g(n)m(umeric)f(argumen)m(ts)i(to)f
(Readline)h(commands.)67 b(Sometimes)39 b(the)g(argumen)m(t)h(acts)150
-2389 y(as)g(a)h(rep)s(eat)f(coun)m(t,)j(other)e(times)f(it)h(is)f(the)g
-Fj(sign)47 b Fs(of)41 b(the)f(argumen)m(t)g(that)h(is)f(signi\014can)m
-(t.)71 b(If)40 b(y)m(ou)150 2498 y(pass)33 b(a)h(negativ)m(e)i(argumen)
+2513 y(as)g(a)h(rep)s(eat)f(coun)m(t,)j(other)e(times)f(it)h(is)f(the)g
+Fk(sign)47 b Ft(of)41 b(the)f(argumen)m(t)g(that)h(is)f(signi\014can)m
+(t.)71 b(If)40 b(y)m(ou)150 2622 y(pass)33 b(a)h(negativ)m(e)i(argumen)
m(t)e(to)g(a)g(command)f(whic)m(h)g(normally)h(acts)g(in)f(a)h(forw)m
-(ard)f(direction,)i(that)150 2608 y(command)g(will)h(act)g(in)f(a)h
+(ard)f(direction,)i(that)150 2732 y(command)g(will)h(act)g(in)f(a)h
(bac)m(kw)m(ard)f(direction.)57 b(F)-8 b(or)36 b(example,)h(to)f(kill)g
-(text)g(bac)m(k)g(to)g(the)g(start)g(of)150 2717 y(the)31
-b(line,)g(y)m(ou)f(migh)m(t)h(t)m(yp)s(e)g(`)p Fr(M--)f(C-k)p
-Fs('.)275 2854 y(The)d(general)i(w)m(a)m(y)h(to)e(pass)g(n)m(umeric)g
+(text)g(bac)m(k)g(to)g(the)g(start)g(of)150 2842 y(the)31
+b(line,)g(y)m(ou)f(migh)m(t)h(t)m(yp)s(e)g(`)p Fs(M--)f(C-k)p
+Ft('.)275 2975 y(The)d(general)i(w)m(a)m(y)h(to)e(pass)g(n)m(umeric)g
(argumen)m(ts)h(to)g(a)f(command)g(is)g(to)h(t)m(yp)s(e)f(meta)i
-(digits)e(b)s(efore)150 2964 y(the)j(command.)42 b(If)30
+(digits)e(b)s(efore)150 3085 y(the)j(command.)42 b(If)30
b(the)h(\014rst)f(`digit')i(t)m(yp)s(ed)f(is)g(a)g(min)m(us)f(sign)h
-(\(`)p Fr(-)p Fs('\),)h(then)f(the)g(sign)f(of)h(the)g(argumen)m(t)150
-3073 y(will)39 b(b)s(e)e(negativ)m(e.)66 b(Once)38 b(y)m(ou)h(ha)m(v)m
+(\(`)p Fs(-)p Ft('\),)h(then)f(the)g(sign)f(of)h(the)g(argumen)m(t)150
+3194 y(will)39 b(b)s(e)e(negativ)m(e.)66 b(Once)38 b(y)m(ou)h(ha)m(v)m
(e)g(t)m(yp)s(ed)f(one)h(meta)g(digit)g(to)f(get)i(the)e(argumen)m(t)h
-(started,)i(y)m(ou)150 3183 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)f
+(started,)i(y)m(ou)150 3304 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)f
(of)h(the)g(digits,)h(and)f(then)f(the)h(command.)40
-b(F)-8 b(or)30 b(example,)g(to)f(giv)m(e)i(the)e Fk(C-d)150
-3293 y Fs(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)f
-(t)m(yp)s(e)h(`)p Fr(M-1)29 b(0)h(C-d)p Fs(',)39 b(whic)m(h)e(will)h
-(delete)h(the)e(next)h(ten)150 3402 y(c)m(haracters)32
-b(on)e(the)h(input)e(line.)150 3604 y Fh(1.2.5)63 b(Searc)m(hing)40
-b(for)i(Commands)g(in)f(the)g(History)150 3751 y Fs(Readline)22
+b(F)-8 b(or)30 b(example,)g(to)f(giv)m(e)i(the)e Fl(C-d)150
+3414 y Ft(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)f
+(t)m(yp)s(e)h(`)p Fs(M-1)29 b(0)h(C-d)p Ft(',)39 b(whic)m(h)e(will)h
+(delete)h(the)e(next)h(ten)150 3523 y(c)m(haracters)32
+b(on)e(the)h(input)e(line.)150 3720 y Fi(1.2.5)63 b(Searc)m(hing)40
+b(for)i(Commands)g(in)f(the)g(History)150 3867 y Ft(Readline)22
b(pro)m(vides)f(commands)g(for)g(searc)m(hing)h(through)f(the)g
(command)h(history)f(for)g(lines)g(con)m(taining)150
-3861 y(a)31 b(sp)s(eci\014ed)e(string.)41 b(There)30
-b(are)h(t)m(w)m(o)g(searc)m(h)g(mo)s(des:)41 b Fi(incremen)m(tal)35
-b Fs(and)30 b Fi(non-incremen)m(tal)p Fs(.)275 3998 y(Incremen)m(tal)c
+3977 y(a)31 b(sp)s(eci\014ed)e(string.)41 b(There)30
+b(are)h(t)m(w)m(o)g(searc)m(h)g(mo)s(des:)41 b Fj(incremen)m(tal)35
+b Ft(and)30 b Fj(non-incremen)m(tal)p Ft(.)275 4111 y(Incremen)m(tal)c
(searc)m(hes)h(b)s(egin)e(b)s(efore)g(the)h(user)f(has)h(\014nished)e
(t)m(yping)i(the)g(searc)m(h)g(string.)39 b(As)26 b(eac)m(h)150
-4107 y(c)m(haracter)37 b(of)e(the)h(searc)m(h)g(string)f(is)h(t)m(yp)s
+4220 y(c)m(haracter)37 b(of)e(the)h(searc)m(h)g(string)f(is)h(t)m(yp)s
(ed,)g(Readline)g(displa)m(ys)g(the)f(next)h(en)m(try)g(from)e(the)i
-(history)150 4217 y(matc)m(hing)25 b(the)f(string)g(t)m(yp)s(ed)g(so)g
+(history)150 4330 y(matc)m(hing)25 b(the)f(string)g(t)m(yp)s(ed)g(so)g
(far.)39 b(An)23 b(incremen)m(tal)j(searc)m(h)e(requires)g(only)g(as)g
-(man)m(y)g(c)m(haracters)i(as)150 4326 y(needed)i(to)i(\014nd)d(the)i
+(man)m(y)g(c)m(haracters)i(as)150 4439 y(needed)i(to)i(\014nd)d(the)i
(desired)f(history)h(en)m(try)-8 b(.)41 b(T)-8 b(o)29
b(searc)m(h)h(bac)m(kw)m(ard)f(in)f(the)h(history)g(for)f(a)i
-(particular)150 4436 y(string,)g(t)m(yp)s(e)f Fk(C-r)p
-Fs(.)40 b(T)m(yping)29 b Fk(C-s)g Fs(searc)m(hes)h(forw)m(ard)f
+(particular)150 4549 y(string,)g(t)m(yp)s(e)f Fl(C-r)p
+Ft(.)40 b(T)m(yping)29 b Fl(C-s)g Ft(searc)m(hes)h(forw)m(ard)f
(through)g(the)g(history)-8 b(.)41 b(The)29 b(c)m(haracters)i(presen)m
-(t)150 4545 y(in)38 b(the)g(v)-5 b(alue)38 b(of)g(the)g
-Fr(isearch-terminators)33 b Fs(v)-5 b(ariable)39 b(are)f(used)f(to)i
-(terminate)g(an)f(incremen)m(tal)150 4655 y(searc)m(h.)71
+(t)150 4658 y(in)38 b(the)g(v)-5 b(alue)38 b(of)g(the)g
+Fs(isearch-terminators)33 b Ft(v)-5 b(ariable)39 b(are)f(used)f(to)i
+(terminate)g(an)f(incremen)m(tal)150 4768 y(searc)m(h.)71
b(If)40 b(that)h(v)-5 b(ariable)41 b(has)f(not)h(b)s(een)e(assigned)i
-(a)f(v)-5 b(alue,)44 b(the)c Fr(ESC)g Fs(and)f Fk(C-J)h
-Fs(c)m(haracters)i(will)150 4765 y(terminate)h(an)g(incremen)m(tal)g
-(searc)m(h.)78 b Fk(C-g)41 b Fs(will)i(ab)s(ort)f(an)g(incremen)m(tal)i
-(searc)m(h)f(and)f(restore)h(the)150 4874 y(original)30
+(a)f(v)-5 b(alue,)44 b(the)c Fs(ESC)g Ft(and)f Fl(C-J)h
+Ft(c)m(haracters)i(will)150 4878 y(terminate)h(an)g(incremen)m(tal)g
+(searc)m(h.)78 b Fl(C-g)41 b Ft(will)i(ab)s(ort)f(an)g(incremen)m(tal)i
+(searc)m(h)f(and)f(restore)h(the)150 4987 y(original)30
b(line.)41 b(When)28 b(the)h(searc)m(h)h(is)f(terminated,)h(the)f
(history)g(en)m(try)g(con)m(taining)h(the)f(searc)m(h)h(string)150
-4984 y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 5121
+5097 y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 5230
y(T)-8 b(o)31 b(\014nd)e(other)j(matc)m(hing)g(en)m(tries)g(in)e(the)h
-(history)g(list,)h(t)m(yp)s(e)g Fk(C-r)e Fs(or)h Fk(C-s)f
-Fs(as)h(appropriate.)43 b(This)150 5230 y(will)26 b(searc)m(h)h(bac)m
+(history)g(list,)h(t)m(yp)s(e)g Fl(C-r)e Ft(or)h Fl(C-s)f
+Ft(as)h(appropriate.)43 b(This)150 5340 y(will)26 b(searc)m(h)h(bac)m
(kw)m(ard)g(or)f(forw)m(ard)g(in)f(the)i(history)f(for)g(the)g(next)g
-(en)m(try)h(matc)m(hing)g(the)f(searc)m(h)h(string)150
-5340 y(t)m(yp)s(ed)37 b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i
-(sequence)f(b)s(ound)e(to)i(a)g(Readline)h(command)e(will)h(terminate)h
-(the)p eop end
+(en)m(try)h(matc)m(hing)g(the)f(searc)m(h)h(string)p
+eop end
%%Page: 4 8
-TeXDict begin 4 7 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(4)150 299 y(searc)m(h)26
-b(and)f(execute)i(that)f(command.)39 b(F)-8 b(or)26 b(instance,)h(a)f
-Fr(RET)f Fs(will)g(terminate)i(the)f(searc)m(h)g(and)e(accept)150
-408 y(the)30 b(line,)g(thereb)m(y)f(executing)i(the)e(command)g(from)g
-(the)h(history)f(list.)41 b(A)29 b(mo)m(v)m(emen)m(t)j(command)d(will)
-150 518 y(terminate)i(the)g(searc)m(h,)g(mak)m(e)h(the)e(last)h(line)g
-(found)e(the)i(curren)m(t)f(line,)h(and)f(b)s(egin)g(editing.)275
-647 y(Readline)35 b(remem)m(b)s(ers)f(the)h(last)h(incremen)m(tal)g
-(searc)m(h)f(string.)54 b(If)34 b(t)m(w)m(o)j Fk(C-r)p
-Fs(s)c(are)i(t)m(yp)s(ed)g(without)150 757 y(an)m(y)i(in)m(terv)m
-(ening)g(c)m(haracters)h(de\014ning)e(a)h(new)f(searc)m(h)h(string,)h
-(an)m(y)f(remem)m(b)s(ered)e(searc)m(h)i(string)g(is)150
-866 y(used.)275 995 y(Non-incremen)m(tal)48 b(searc)m(hes)g(read)e(the)
-h(en)m(tire)h(searc)m(h)f(string)g(b)s(efore)f(starting)h(to)h(searc)m
-(h)f(for)150 1105 y(matc)m(hing)d(history)e(lines.)78
-b(The)42 b(searc)m(h)h(string)g(ma)m(y)g(b)s(e)f(t)m(yp)s(ed)g(b)m(y)g
-(the)h(user)f(or)h(b)s(e)f(part)g(of)h(the)150 1214 y(con)m(ten)m(ts)32
-b(of)f(the)f(curren)m(t)g(line.)150 1436 y Fq(1.3)68
-b(Readline)47 b(Init)e(File)150 1595 y Fs(Although)f(the)g(Readline)g
-(library)f(comes)i(with)e(a)h(set)h(of)f(Emacs-lik)m(e)h(k)m
-(eybindings)f(installed)g(b)m(y)150 1705 y(default,)26
-b(it)g(is)e(p)s(ossible)h(to)g(use)f(a)i(di\013eren)m(t)f(set)g(of)g(k)
-m(eybindings.)38 b(An)m(y)25 b(user)f(can)h(customize)h(programs)150
-1814 y(that)45 b(use)f(Readline)h(b)m(y)f(putting)g(commands)g(in)g(an)
-g Fi(inputrc)49 b Fs(\014le,)g(con)m(v)m(en)m(tionally)e(in)d(his)g
-(home)150 1924 y(directory)-8 b(.)39 b(The)23 b(name)h(of)f(this)h
-(\014le)f(is)g(tak)m(en)i(from)e(the)g(v)-5 b(alue)24
-b(of)g(the)f(en)m(vironmen)m(t)h(v)-5 b(ariable)25 b
-Fr(INPUTRC)p Fs(.)150 2033 y(If)30 b(that)g(v)-5 b(ariable)31
-b(is)f(unset,)g(the)h(default)f(is)g Fr(~/.inputrc)p
-Fs(.)38 b(If)30 b(that)g(\014le)h(do)s(es)e(not)i(exist)g(or)f(cannot)h
-(b)s(e)150 2143 y(read,)g(the)f(ultimate)i(default)e(is)h
-Fr(/etc/inputrc)p Fs(.)275 2272 y(When)e(a)h(program)f(whic)m(h)h(uses)
+TeXDict begin 4 7 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2153 b(4)150 299 y(t)m(yp)s(ed)37
+b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i(sequence)f(b)s(ound)e(to)
+i(a)g(Readline)h(command)e(will)h(terminate)h(the)150
+408 y(searc)m(h)26 b(and)f(execute)i(that)f(command.)39
+b(F)-8 b(or)26 b(instance,)h(a)f Fs(RET)f Ft(will)g(terminate)i(the)f
+(searc)m(h)g(and)e(accept)150 518 y(the)30 b(line,)g(thereb)m(y)f
+(executing)i(the)e(command)g(from)g(the)h(history)f(list.)41
+b(A)29 b(mo)m(v)m(emen)m(t)j(command)d(will)150 628 y(terminate)i(the)g
+(searc)m(h,)g(mak)m(e)h(the)e(last)h(line)g(found)e(the)i(curren)m(t)f
+(line,)h(and)f(b)s(egin)g(editing.)275 777 y(Readline)35
+b(remem)m(b)s(ers)f(the)h(last)h(incremen)m(tal)g(searc)m(h)f(string.)
+54 b(If)34 b(t)m(w)m(o)j Fl(C-r)p Ft(s)c(are)i(t)m(yp)s(ed)g(without)
+150 886 y(an)m(y)i(in)m(terv)m(ening)g(c)m(haracters)h(de\014ning)e(a)h
+(new)f(searc)m(h)h(string,)h(an)m(y)f(remem)m(b)s(ered)e(searc)m(h)i
+(string)g(is)150 996 y(used.)275 1145 y(Non-incremen)m(tal)48
+b(searc)m(hes)g(read)e(the)h(en)m(tire)h(searc)m(h)f(string)g(b)s
+(efore)f(starting)h(to)h(searc)m(h)f(for)150 1255 y(matc)m(hing)d
+(history)e(lines.)78 b(The)42 b(searc)m(h)h(string)g(ma)m(y)g(b)s(e)f
+(t)m(yp)s(ed)g(b)m(y)g(the)h(user)f(or)h(b)s(e)f(part)g(of)h(the)150
+1364 y(con)m(ten)m(ts)32 b(of)f(the)f(curren)m(t)g(line.)150
+1627 y Fr(1.3)68 b(Readline)47 b(Init)e(File)150 1786
+y Ft(Although)f(the)g(Readline)g(library)f(comes)i(with)e(a)h(set)h(of)
+f(Emacs-lik)m(e)h(k)m(eybindings)f(installed)g(b)m(y)150
+1896 y(default,)26 b(it)g(is)e(p)s(ossible)h(to)g(use)f(a)i(di\013eren)
+m(t)f(set)g(of)g(k)m(eybindings.)38 b(An)m(y)25 b(user)f(can)h
+(customize)h(programs)150 2005 y(that)45 b(use)f(Readline)h(b)m(y)f
+(putting)g(commands)g(in)g(an)g Fj(inputrc)49 b Ft(\014le,)g(con)m(v)m
+(en)m(tionally)e(in)d(his)g(home)150 2115 y(directory)-8
+b(.)39 b(The)23 b(name)h(of)f(this)h(\014le)f(is)g(tak)m(en)i(from)e
+(the)g(v)-5 b(alue)24 b(of)g(the)f(en)m(vironmen)m(t)h(v)-5
+b(ariable)25 b Fs(INPUTRC)p Ft(.)150 2224 y(If)30 b(that)g(v)-5
+b(ariable)31 b(is)f(unset,)g(the)h(default)f(is)g Fs(~/.inputrc)p
+Ft(.)38 b(If)30 b(that)g(\014le)h(do)s(es)e(not)i(exist)g(or)f(cannot)h
+(b)s(e)150 2334 y(read,)g(the)f(ultimate)i(default)e(is)h
+Fs(/etc/inputrc)p Ft(.)275 2483 y(When)e(a)h(program)f(whic)m(h)h(uses)
f(the)h(Readline)g(library)f(starts)h(up,)f(the)h(init)g(\014le)f(is)h
-(read,)g(and)f(the)150 2381 y(k)m(ey)i(bindings)e(are)i(set.)275
-2510 y(In)26 b(addition,)i(the)f Fr(C-x)i(C-r)d Fs(command)h(re-reads)g
+(read,)g(and)f(the)150 2593 y(k)m(ey)i(bindings)e(are)i(set.)275
+2742 y(In)26 b(addition,)i(the)f Fs(C-x)i(C-r)d Ft(command)h(re-reads)g
(this)f(init)h(\014le,)h(th)m(us)f(incorp)s(orating)g(an)m(y)g(c)m
-(hanges)150 2620 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g
-(it.)150 2808 y Fh(1.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)150
-2955 y Fs(There)f(are)i(only)f(a)g(few)g(basic)g(constructs)h(allo)m(w)
+(hanges)150 2851 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g
+(it.)150 3065 y Fi(1.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)150
+3212 y Ft(There)f(are)i(only)f(a)g(few)g(basic)g(constructs)h(allo)m(w)
m(ed)h(in)d(the)h(Readline)h(init)f(\014le.)73 b(Blank)41
-b(lines)h(are)150 3065 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
-(a)g(`)p Fr(#)p Fs(')g(are)h(commen)m(ts.)73 b(Lines)41
-b(b)s(eginning)f(with)g(a)i(`)p Fr($)p Fs(')f(indicate)150
-3174 y(conditional)i(constructs)e(\(see)i(Section)f(1.3.2)h
-([Conditional)f(Init)f(Constructs],)j(page)f(11\).)74
-b(Other)150 3284 y(lines)31 b(denote)g(v)-5 b(ariable)31
-b(settings)g(and)f(k)m(ey)h(bindings.)150 3432 y(V)-8
-b(ariable)32 b(Settings)630 3542 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
+b(lines)h(are)150 3322 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
+(a)g(`)p Fs(#)p Ft(')g(are)h(commen)m(ts.)73 b(Lines)41
+b(b)s(eginning)f(with)g(a)i(`)p Fs($)p Ft(')f(indicate)150
+3431 y(conditional)i(constructs)e(\(see)i(Section)f(1.3.2)h
+([Conditional)f(Init)f(Constructs],)j(page)f(12\).)74
+b(Other)150 3541 y(lines)31 b(denote)g(v)-5 b(ariable)31
+b(settings)g(and)f(k)m(ey)h(bindings.)150 3722 y(V)-8
+b(ariable)32 b(Settings)630 3832 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
(the)i(run-time)f(b)s(eha)m(vior)g(of)h(Readline)g(b)m(y)f(altering)h
-(the)g(v)-5 b(alues)41 b(of)630 3651 y(v)-5 b(ariables)34
-b(in)f(Readline)i(using)e(the)g Fr(set)g Fs(command)g(within)g(the)h
-(init)g(\014le.)50 b(The)33 b(syn)m(tax)630 3761 y(is)d(simple:)870
-3890 y Fr(set)47 b Fk(variable)e(value)630 4019 y Fs(Here,)29
+(the)g(v)-5 b(alues)41 b(of)630 3941 y(v)-5 b(ariables)34
+b(in)f(Readline)i(using)e(the)g Fs(set)g Ft(command)g(within)g(the)h
+(init)g(\014le.)50 b(The)33 b(syn)m(tax)630 4051 y(is)d(simple:)870
+4193 y Fs(set)47 b Fl(variable)e(value)630 4335 y Ft(Here,)29
b(for)e(example,)h(is)g(ho)m(w)f(to)h(c)m(hange)g(from)f(the)g(default)
-h(Emacs-lik)m(e)h(k)m(ey)f(binding)e(to)630 4128 y(use)k
-Fr(vi)g Fs(line)h(editing)g(commands:)870 4257 y Fr(set)47
-b(editing-mode)d(vi)630 4386 y Fs(V)-8 b(ariable)36 b(names)f(and)g(v)
+h(Emacs-lik)m(e)h(k)m(ey)f(binding)e(to)630 4444 y(use)k
+Fs(vi)g Ft(line)h(editing)g(commands:)870 4586 y Fs(set)47
+b(editing-mode)d(vi)630 4728 y Ft(V)-8 b(ariable)36 b(names)f(and)g(v)
-5 b(alues,)36 b(where)f(appropriate,)h(are)g(recognized)g(without)f
-(regard)630 4496 y(to)c(case.)42 b(Unrecognized)31 b(v)-5
-b(ariable)31 b(names)g(are)f(ignored.)630 4624 y(Bo)s(olean)c(v)-5
+(regard)630 4837 y(to)c(case.)42 b(Unrecognized)31 b(v)-5
+b(ariable)31 b(names)g(are)f(ignored.)630 4979 y(Bo)s(olean)c(v)-5
b(ariables)26 b(\(those)g(that)g(can)f(b)s(e)f(set)i(to)g(on)f(or)g
(o\013)7 b(\))25 b(are)h(set)f(to)h(on)f(if)g(the)g(v)-5
-b(alue)26 b(is)630 4734 y(n)m(ull)e(or)g(empt)m(y)-8
-b(,)27 b Fi(on)d Fs(\(case-insensitiv)m(e\),)29 b(or)24
+b(alue)26 b(is)630 5089 y(n)m(ull)e(or)g(empt)m(y)-8
+b(,)27 b Fj(on)d Ft(\(case-insensitiv)m(e\),)29 b(or)24
b(1.)39 b(An)m(y)25 b(other)f(v)-5 b(alue)25 b(results)f(in)g(the)g(v)
--5 b(ariable)630 4844 y(b)s(eing)30 b(set)h(to)g(o\013.)630
-4973 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g(is)g(c)m
-(hangeable)j(with)d(the)g(follo)m(wing)i(v)-5 b(ariables.)630
-5121 y Fr(bell-style)1110 5230 y Fs(Con)m(trols)44 b(what)g(happ)s(ens)
-e(when)h(Readline)i(w)m(an)m(ts)f(to)h(ring)e(the)h(termi-)1110
-5340 y(nal)37 b(b)s(ell.)61 b(If)37 b(set)h(to)g(`)p
-Fr(none)p Fs(',)g(Readline)g(nev)m(er)g(rings)e(the)i(b)s(ell.)61
-b(If)36 b(set)i(to)p eop end
+-5 b(ariable)630 5198 y(b)s(eing)30 b(set)h(to)g(o\013.)630
+5340 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g(is)g(c)m
+(hangeable)j(with)d(the)g(follo)m(wing)i(v)-5 b(ariables.)p
+eop end
%%Page: 5 9
-TeXDict begin 5 8 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(5)1110 299 y(`)p
-Fr(visible)p Fs(',)32 b(Readline)i(uses)f(a)g(visible)g(b)s(ell)g(if)g
+TeXDict begin 5 8 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2153 b(5)630 299 y Fs(bell-style)1110
+408 y Ft(Con)m(trols)44 b(what)g(happ)s(ens)e(when)h(Readline)i(w)m(an)
+m(ts)f(to)h(ring)e(the)h(termi-)1110 518 y(nal)37 b(b)s(ell.)61
+b(If)37 b(set)h(to)g(`)p Fs(none)p Ft(',)g(Readline)g(nev)m(er)g(rings)
+e(the)i(b)s(ell.)61 b(If)36 b(set)i(to)1110 628 y(`)p
+Fs(visible)p Ft(',)32 b(Readline)i(uses)f(a)g(visible)g(b)s(ell)g(if)g
(one)g(is)g(a)m(v)-5 b(ailable.)51 b(If)33 b(set)g(to)1110
-408 y(`)p Fr(audible)p Fs(')j(\(the)i(default\),)i(Readline)e(attempts)
-g(to)h(ring)e(the)g(terminal's)1110 518 y(b)s(ell.)630
-676 y Fr(bind-tty-special-chars)1110 786 y Fs(If)45 b(set)h(to)f(`)p
-Fr(on)p Fs(',)50 b(Readline)45 b(attempts)i(to)f(bind)d(the)j(con)m
-(trol)g(c)m(haracters)1110 896 y(treated)36 b(sp)s(ecially)h(b)m(y)e
-(the)h(k)m(ernel's)g(terminal)g(driv)m(er)f(to)h(their)f(Readline)1110
-1005 y(equiv)-5 b(alen)m(ts.)630 1163 y Fr(colored-stats)1110
-1273 y Fs(If)26 b(set)h(to)g(`)p Fr(on)p Fs(',)h(Readline)f(displa)m
-(ys)g(p)s(ossible)f(completions)h(using)f(di\013eren)m(t)1110
-1383 y(colors)40 b(to)g(indicate)g(their)f(\014le)h(t)m(yp)s(e.)67
+737 y(`)p Fs(audible)p Ft(')j(\(the)i(default\),)i(Readline)e(attempts)
+g(to)h(ring)e(the)g(terminal's)1110 847 y(b)s(ell.)630
+993 y Fs(bind-tty-special-chars)1110 1103 y Ft(If)e(set)g(to)h(`)p
+Fs(on)p Ft(')f(\(the)g(default\),)i(Readline)f(attempts)g(to)g(bind)d
+(the)i(con)m(trol)1110 1212 y(c)m(haracters)30 b(treated)g(sp)s
+(ecially)g(b)m(y)f(the)g(k)m(ernel's)h(terminal)f(driv)m(er)g(to)h
+(their)1110 1322 y(Readline)h(equiv)-5 b(alen)m(ts.)630
+1468 y Fs(blink-matching-paren)1110 1577 y Ft(If)36 b(set)g(to)h(`)p
+Fs(on)p Ft(',)h(Readline)f(attempts)g(to)g(brie\015y)e(mo)m(v)m(e)j
+(the)f(cursor)e(to)i(an)1110 1687 y(op)s(ening)k(paren)m(thesis)h(when)
+f(a)h(closing)h(paren)m(thesis)e(is)h(inserted.)74 b(The)1110
+1797 y(default)31 b(is)f(`)p Fs(off)p Ft('.)630 1943
+y Fs(colored-completion-prefi)o(x)1110 2052 y Ft(If)f(set)h(to)g(`)p
+Fs(on)p Ft(',)g(when)e(listing)i(completions,)h(Readline)f(displa)m(ys)
+g(the)f(com-)1110 2162 y(mon)c(pre\014x)f(of)i(the)f(set)h(of)g(p)s
+(ossible)f(completions)h(using)f(a)h(di\013eren)m(t)g(color.)1110
+2271 y(The)39 b(color)i(de\014nitions)f(are)g(tak)m(en)h(from)f(the)g
+(v)-5 b(alue)40 b(of)g(the)g Fs(LS_COLORS)1110 2381 y
+Ft(en)m(vironmen)m(t)31 b(v)-5 b(ariable.)41 b(The)30
+b(default)h(is)f(`)p Fs(off)p Ft('.)630 2527 y Fs(colored-stats)1110
+2637 y Ft(If)c(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f(displa)m(ys)g
+(p)s(ossible)f(completions)h(using)f(di\013eren)m(t)1110
+2746 y(colors)40 b(to)g(indicate)g(their)f(\014le)h(t)m(yp)s(e.)67
b(The)38 b(color)j(de\014nitions)d(are)i(tak)m(en)1110
-1492 y(from)24 b(the)h(v)-5 b(alue)25 b(of)g(the)g Fr(LS_COLORS)d
-Fs(en)m(vironmen)m(t)j(v)-5 b(ariable.)40 b(The)24 b(default)1110
-1602 y(is)30 b(`)p Fr(off)p Fs('.)630 1760 y Fr(comment-begin)1110
-1870 y Fs(The)62 b(string)g(to)h(insert)f(at)h(the)g(b)s(eginning)e(of)
-h(the)h(line)f(when)g(the)1110 1979 y Fr(insert-comment)26
-b Fs(command)31 b(is)f(executed.)42 b(The)30 b(default)g(v)-5
-b(alue)31 b(is)f Fr("#")p Fs(.)630 2138 y Fr(completion-display-width)
-1110 2247 y Fs(The)41 b(n)m(um)m(b)s(er)f(of)i(screen)g(columns)f(used)
-g(to)h(displa)m(y)g(p)s(ossible)f(matc)m(hes)1110 2357
+2856 y(from)24 b(the)h(v)-5 b(alue)25 b(of)g(the)g Fs(LS_COLORS)d
+Ft(en)m(vironmen)m(t)j(v)-5 b(ariable.)40 b(The)24 b(default)1110
+2966 y(is)30 b(`)p Fs(off)p Ft('.)630 3112 y Fs(comment-begin)1110
+3221 y Ft(The)62 b(string)g(to)h(insert)f(at)h(the)g(b)s(eginning)e(of)
+h(the)h(line)f(when)g(the)1110 3331 y Fs(insert-comment)26
+b Ft(command)31 b(is)f(executed.)42 b(The)30 b(default)g(v)-5
+b(alue)31 b(is)f Fs("#")p Ft(.)630 3477 y Fs(completion-display-width)
+1110 3587 y Ft(The)41 b(n)m(um)m(b)s(er)f(of)i(screen)g(columns)f(used)
+g(to)h(displa)m(y)g(p)s(ossible)f(matc)m(hes)1110 3696
y(when)28 b(p)s(erforming)g(completion.)41 b(The)29 b(v)-5
b(alue)29 b(is)g(ignored)g(if)g(it)h(is)f(less)g(than)1110
-2466 y(0)e(or)f(greater)h(than)f(the)g(terminal)h(screen)f(width.)39
+3806 y(0)e(or)f(greater)h(than)f(the)g(terminal)h(screen)f(width.)39
b(A)26 b(v)-5 b(alue)27 b(of)f(0)h(will)f(cause)1110
-2576 y(matc)m(hes)32 b(to)f(b)s(e)e(displa)m(y)m(ed)i(one)g(p)s(er)e
+3915 y(matc)m(hes)32 b(to)f(b)s(e)e(displa)m(y)m(ed)i(one)g(p)s(er)e
(line.)41 b(The)30 b(default)h(v)-5 b(alue)31 b(is)f(-1.)630
-2734 y Fr(completion-ignore-case)1110 2844 y Fs(If)d(set)h(to)g(`)p
-Fr(on)p Fs(',)g(Readline)g(p)s(erforms)e(\014lename)h(matc)m(hing)i
-(and)e(completion)1110 2953 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)
-40 b(The)30 b(default)h(v)-5 b(alue)30 b(is)h(`)p Fr(off)p
-Fs('.)630 3112 y Fr(completion-map-case)1110 3221 y Fs(If)22
-b(set)g(to)h(`)p Fr(on)p Fs(',)h(and)e Fi(completion-ignore-case)31
-b Fs(is)22 b(enabled,)i(Readline)f(treats)1110 3331 y(h)m(yphens)29
-b(\(`)p Fr(-)p Fs('\))j(and)e(underscores)g(\(`)p Fr(_)p
-Fs('\))i(as)f(equiv)-5 b(alen)m(t)32 b(when)e(p)s(erforming)1110
-3440 y(case-insensitiv)m(e)j(\014lename)d(matc)m(hing)i(and)e
-(completion.)630 3599 y Fr(completion-prefix-displa)o(y-le)o(ngth)1110
-3708 y Fs(The)h(length)g(in)g(c)m(haracters)i(of)f(the)f(common)h
-(pre\014x)e(of)h(a)h(list)g(of)f(p)s(ossible)1110 3818
+4061 y Fs(completion-ignore-case)1110 4171 y Ft(If)d(set)h(to)g(`)p
+Fs(on)p Ft(',)g(Readline)g(p)s(erforms)e(\014lename)h(matc)m(hing)i
+(and)e(completion)1110 4281 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)
+40 b(The)30 b(default)h(v)-5 b(alue)30 b(is)h(`)p Fs(off)p
+Ft('.)630 4427 y Fs(completion-map-case)1110 4536 y Ft(If)22
+b(set)g(to)h(`)p Fs(on)p Ft(',)h(and)e Fj(completion-ignore-case)31
+b Ft(is)22 b(enabled,)i(Readline)f(treats)1110 4646 y(h)m(yphens)29
+b(\(`)p Fs(-)p Ft('\))j(and)e(underscores)g(\(`)p Fs(_)p
+Ft('\))i(as)f(equiv)-5 b(alen)m(t)32 b(when)e(p)s(erforming)1110
+4756 y(case-insensitiv)m(e)j(\014lename)d(matc)m(hing)i(and)e
+(completion.)630 4902 y Fs(completion-prefix-displa)o(y-le)o(ngth)1110
+5011 y Ft(The)h(length)g(in)g(c)m(haracters)i(of)f(the)f(common)h
+(pre\014x)e(of)h(a)h(list)g(of)f(p)s(ossible)1110 5121
y(completions)g(that)f(is)g(displa)m(y)m(ed)g(without)g(mo)s
-(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110 3927
+(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110 5230
y(v)-5 b(alue)26 b(greater)h(than)e(zero,)j(common)e(pre\014xes)e
-(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 4037
+(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 5340
y(replaced)k(with)f(an)g(ellipsis)h(when)e(displa)m(ying)i(p)s(ossible)
-f(completions.)630 4195 y Fr(completion-query-items)1110
-4305 y Fs(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 4415 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 4524 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 4634 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
-4743 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 4853 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
-4963 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
-Fr(100)p Fs(.)630 5121 y Fr(convert-meta)1110 5230 y
-Fs(If)22 b(set)g(to)h(`)p Fr(on)p Fs(',)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
-5340 y(to)33 b(an)e Fl(asci)r(i)h Fs(k)m(ey)h(sequence)f(b)m(y)g
-(stripping)f(the)h(eigh)m(th)h(bit)f(and)f(pre\014xing)p
-eop end
+f(completions.)p eop end
%%Page: 6 10
-TeXDict begin 6 9 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(6)1110 299 y(an)24
-b Fr(ESC)g Fs(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 408 y(The)30
-b(default)g(v)-5 b(alue)31 b(is)g(`)p Fr(on)p Fs('.)630
-555 y Fr(disable-completion)1110 664 y Fs(If)36 b(set)h(to)h(`)p
-Fr(On)p Fs(',)g(Readline)f(will)g(inhibit)f(w)m(ord)h(completion.)60
-b(Completion)1110 774 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h
+TeXDict begin 6 9 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2153 b(6)630 299 y Fs
+(completion-query-items)1110 408 y Ft(The)26 b(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
+518 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
+628 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 737 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 847 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 956 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 1066 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g
+(is)g Fs(100)p Ft(.)630 1285 y Fs(convert-meta)1110 1395
+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
+1504 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
+1614 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 1724
+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 1833 y(that)j(con)m(tains)h(eigh)m(t-bit)g(c)m(haracters.)630
+2052 y Fs(disable-completion)1110 2162 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 2271 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h
(in)m(to)h(the)g(line)f(as)g(if)g(they)h(had)e(b)s(een)g(mapp)s(ed)1110
-883 y(to)31 b Fr(self-insert)p Fs(.)38 b(The)30 b(default)g(is)h(`)p
-Fr(off)p Fs('.)630 1029 y Fr(editing-mode)1110 1139 y
-Fs(The)d Fr(editing-mode)e Fs(v)-5 b(ariable)29 b(con)m(trols)h(whic)m
-(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 1249 y(ings)25
-b(is)g(used.)38 b(By)26 b(default,)g(Readline)g(starts)f(up)f(in)h
-(Emacs)g(editing)h(mo)s(de,)1110 1358 y(where)j(the)g(k)m(eystrok)m(es)
-i(are)e(most)h(similar)f(to)h(Emacs.)40 b(This)29 b(v)-5
-b(ariable)30 b(can)1110 1468 y(b)s(e)g(set)h(to)g(either)g(`)p
-Fr(emacs)p Fs(')e(or)h(`)p Fr(vi)p Fs('.)630 1614 y Fr
-(echo-control-characters)1110 1724 y Fs(When)g(set)h(to)g(`)p
-Fr(on)p Fs(',)f(on)g(op)s(erating)h(systems)f(that)h(indicate)g(they)g
-(supp)s(ort)1110 1833 y(it,)i(readline)e(ec)m(ho)s(es)i(a)f(c)m
-(haracter)h(corresp)s(onding)d(to)j(a)f(signal)g(generated)1110
-1943 y(from)e(the)g(k)m(eyb)s(oard.)41 b(The)30 b(default)g(is)h(`)p
-Fr(on)p Fs('.)630 2089 y Fr(enable-keypad)1110 2198 y
-Fs(When)23 b(set)h(to)g(`)p Fr(on)p Fs(',)h(Readline)f(will)g(try)f(to)
-h(enable)g(the)f(application)i(k)m(eypad)1110 2308 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 2418 y(The)j(default)g(is)h(`)p
-Fr(off)p Fs('.)630 2564 y Fr(enable-meta-key)1110 2673
-y Fs(When)40 b(set)g(to)g(`)p Fr(on)p Fs(',)j(Readline)d(will)g(try)g
-(to)g(enable)g(an)m(y)g(meta)h(mo)s(di\014er)1110 2783
-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 2892 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 3002 y(default)31 b(is)f(`)p Fr(on)p Fs('.)630
-3148 y Fr(expand-tilde)1110 3258 y Fs(If)d(set)h(to)h(`)p
-Fr(on)p Fs(',)f(tilde)g(expansion)g(is)f(p)s(erformed)f(when)h
-(Readline)h(attempts)1110 3367 y(w)m(ord)i(completion.)42
-b(The)30 b(default)g(is)h(`)p Fr(off)p Fs('.)630 3513
-y Fr(history-preserve-point)1110 3623 y Fs(If)41 b(set)h(to)h(`)p
-Fr(on)p Fs(',)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 3733 y(curren)m(t)35 b(cursor)g(p)s
+2381 y(to)31 b Fs(self-insert)p Ft(.)38 b(The)30 b(default)g(is)h(`)p
+Fs(off)p Ft('.)630 2600 y Fs(echo-control-characters)1110
+2710 y Ft(When)f(set)h(to)g(`)p Fs(on)p Ft(',)f(on)g(op)s(erating)h
+(systems)f(that)h(indicate)g(they)g(supp)s(ort)1110 2819
+y(it,)i(readline)e(ec)m(ho)s(es)i(a)f(c)m(haracter)h(corresp)s(onding)d
+(to)j(a)f(signal)g(generated)1110 2929 y(from)e(the)g(k)m(eyb)s(oard.)
+41 b(The)30 b(default)g(is)h(`)p Fs(on)p Ft('.)630 3148
+y Fs(editing-mode)1110 3258 y Ft(The)d Fs(editing-mode)e
+Ft(v)-5 b(ariable)29 b(con)m(trols)h(whic)m(h)e(default)h(set)h(of)e(k)
+m(ey)i(bind-)1110 3367 y(ings)25 b(is)g(used.)38 b(By)26
+b(default,)g(Readline)g(starts)f(up)f(in)h(Emacs)g(editing)h(mo)s(de,)
+1110 3477 y(where)j(the)g(k)m(eystrok)m(es)i(are)e(most)h(similar)f(to)
+h(Emacs.)40 b(This)29 b(v)-5 b(ariable)30 b(can)1110
+3587 y(b)s(e)g(set)h(to)g(either)g(`)p Fs(emacs)p Ft(')e(or)h(`)p
+Fs(vi)p Ft('.)630 3806 y Fs(emacs-mode-string)1110 3915
+y Ft(This)f(string)h(is)f(displa)m(y)m(ed)i(immediately)g(b)s(efore)e
+(the)h(last)g(line)h(of)e(the)h(pri-)1110 4025 y(mary)43
+b(prompt)g(when)f(emacs)i(editing)g(mo)s(de)f(is)g(activ)m(e.)82
+b(The)43 b(v)-5 b(alue)44 b(is)1110 4134 y(expanded)28
+b(lik)m(e)i(a)f(k)m(ey)g(binding,)f(so)h(the)g(standard)f(set)h(of)g
+(meta-)g(and)f(con-)1110 4244 y(trol)36 b(pre\014xes)e(and)h(bac)m
+(kslash)h(escap)s(e)g(sequences)g(is)f(a)m(v)-5 b(ailable.)58
+b(Use)36 b(the)1110 4354 y(`)p Fs(\\1)p Ft(')i(and)f(`)p
+Fs(\\2)p Ft(')h(escap)s(es)g(to)h(b)s(egin)e(and)h(end)f(sequences)h
+(of)g(non-prin)m(ting)1110 4463 y(c)m(haracters,)27 b(whic)m(h)c(can)h
+(b)s(e)f(used)f(to)j(em)m(b)s(ed)e(a)h(terminal)g(con)m(trol)h
+(sequence)1110 4573 y(in)m(to)31 b(the)g(mo)s(de)f(string.)41
+b(The)29 b(default)i(is)f(`)p Fs(@)p Ft('.)630 4792 y
+Fs(enable-bracketed-paste)1110 4902 y Ft(When)24 b(set)h(to)h(`)p
+Fs(On)p Ft(',)g(Readline)f(will)g(con\014gure)f(the)h(terminal)g(in)f
+(a)h(w)m(a)m(y)g(that)1110 5011 y(will)k(enable)f(it)h(to)g(insert)g
+(eac)m(h)g(paste)g(in)m(to)g(the)g(editing)g(bu\013er)e(as)i(a)f
+(single)1110 5121 y(string)33 b(of)f(c)m(haracters,)j(instead)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
+%%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
+408 y Ft(When)23 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f(will)g
+(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
+(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)
+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
+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
+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
(osition\))g(at)h(the)g(same)f(lo)s(cation)i(on)e(eac)m(h)h(history)g
-(line)1110 3842 y(retriev)m(ed)h(with)f Fr(previous-history)c
-Fs(or)37 b Fr(next-history)p Fs(.)55 b(The)36 b(default)1110
-3952 y(is)30 b(`)p Fr(off)p Fs('.)630 4098 y Fr(history-size)1110
-4208 y Fs(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 4317
+(line)1110 2131 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
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 4427 y(new)e(en)m(tries)i
+(en)m(tries)g(are)g(deleted)h(and)e(no)1110 2741 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
-4536 y(of)f(history)f(en)m(tries)h(is)g(not)g(limited.)42
+2851 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
-4646 y(en)m(tries)g(is)g(not)f(limited.)630 4792 y Fr
-(horizontal-scroll-mode)1110 4902 y Fs(This)35 b(v)-5
-b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f(`)p
-Fr(on)p Fs(')g(or)g(`)p Fr(off)p Fs('.)57 b(Setting)36
-b(it)g(to)h(`)p Fr(on)p Fs(')1110 5011 y(means)26 b(that)h(the)f(text)h
+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
+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
+(`)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
(of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m
-(tally)1110 5121 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 5230
+(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 5340 y(v)-5
-b(ariable)31 b(is)g(set)f(to)i(`)p Fr(off)p Fs('.)p eop
-end
-%%Page: 7 11
-TeXDict begin 7 10 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(7)630 299 y Fr(input-meta)1110
-408 y Fs(If)31 b(set)g(to)h(`)p Fr(on)p Fs(',)g(Readline)g(will)f
-(enable)h(eigh)m(t-bit)h(input)d(\(it)i(will)f(not)h(clear)1110
-518 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 628 y(terminal)g(claims)h
-(it)g(can)f(supp)s(ort.)68 b(The)39 b(default)h(v)-5
-b(alue)40 b(is)g(`)p Fr(off)p Fs('.)69 b(The)1110 737
-y(name)30 b Fr(meta-flag)e Fs(is)j(a)f(synon)m(ym)g(for)g(this)h(v)-5
-b(ariable.)630 894 y Fr(isearch-terminators)1110 1003
-y Fs(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e(terminate)j
-(an)f(incremen)m(tal)1110 1113 y(searc)m(h)25 b(without)g(subsequen)m
-(tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g(command)1110
-1223 y(\(see)45 b(Section)h(1.2.5)g([Searc)m(hing],)j(page)d(3\).)84
-b(If)44 b(this)g(v)-5 b(ariable)45 b(has)g(not)1110 1332
-y(b)s(een)35 b(giv)m(en)h(a)g(v)-5 b(alue,)37 b(the)f(c)m(haracters)h
-Fr(ESC)d Fs(and)h Fk(C-J)g Fs(will)h(terminate)g(an)1110
-1442 y(incremen)m(tal)c(searc)m(h.)630 1598 y Fr(keymap)192
-b Fs(Sets)39 b(Readline's)g(idea)h(of)f(the)g(curren)m(t)f(k)m(eymap)h
-(for)g(k)m(ey)g(binding)f(com-)1110 1708 y(mands.)81
-b(Acceptable)47 b Fr(keymap)42 b Fs(names)i(are)h Fr(emacs)p
-Fs(,)i Fr(emacs-standard)p Fs(,)1110 1817 y Fr(emacs-meta)p
-Fs(,)99 b Fr(emacs-ctlx)p Fs(,)f Fr(vi)p Fs(,)j Fr(vi-move)p
-Fs(,)f Fr(vi-command)p Fs(,)f(and)1110 1927 y Fr(vi-insert)p
-Fs(.)64 b Fr(vi)38 b Fs(is)h(equiv)-5 b(alen)m(t)41 b(to)e
-Fr(vi-command)p Fs(;)i Fr(emacs)c Fs(is)i(equiv)-5 b(alen)m(t)1110
-2037 y(to)33 b Fr(emacs-standard)p Fs(.)41 b(The)31 b(default)h(v)-5
-b(alue)32 b(is)g Fr(emacs)p Fs(.)44 b(The)31 b(v)-5 b(alue)33
-b(of)f(the)1110 2146 y Fr(editing-mode)27 b Fs(v)-5 b(ariable)31
-b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 2303
-y Fr(keyseq-timeout)1110 2412 y Fs(Sp)s(eci\014es)25
+(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
+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
+(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
+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
+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
+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
+5011 y(searc)m(h)25 b(without)g(subsequen)m(tly)g(executing)h(the)f(c)m
+(haracter)h(as)f(a)g(command)1110 5121 y(\(see)45 b(Section)h(1.2.5)g
+([Searc)m(hing],)j(page)d(3\).)84 b(If)44 b(this)g(v)-5
+b(ariable)45 b(has)g(not)1110 5230 y(b)s(een)35 b(giv)m(en)h(a)g(v)-5
+b(alue,)37 b(the)f(c)m(haracters)h Fs(ESC)d Ft(and)h
+Fl(C-J)g Ft(will)h(terminate)g(an)1110 5340 y(incremen)m(tal)c(searc)m
+(h.)p eop end
+%%Page: 8 12
+TeXDict begin 8 11 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2153 b(8)630 299 y Fs(keymap)192
+b Ft(Sets)39 b(Readline's)g(idea)h(of)f(the)g(curren)m(t)f(k)m(eymap)h
+(for)g(k)m(ey)g(binding)f(com-)1110 408 y(mands.)81 b(Acceptable)47
+b Fs(keymap)42 b Ft(names)i(are)h Fs(emacs)p Ft(,)i Fs(emacs-standard)p
+Ft(,)1110 518 y Fs(emacs-meta)p Ft(,)99 b Fs(emacs-ctlx)p
+Ft(,)f Fs(vi)p Ft(,)j Fs(vi-move)p Ft(,)f Fs(vi-command)p
+Ft(,)f(and)1110 628 y Fs(vi-insert)p Ft(.)81 b Fs(vi)44
+b Ft(is)h(equiv)-5 b(alen)m(t)46 b(to)g Fs(vi-command)c
+Ft(\()p Fs(vi-move)h Ft(is)i(also)h(a)1110 737 y(synon)m(ym\);)g
+Fs(emacs)39 b Ft(is)i(equiv)-5 b(alen)m(t)42 b(to)g Fs(emacs-standard)p
+Ft(.)68 b(The)40 b(default)1110 847 y(v)-5 b(alue)52
+b(is)f Fs(emacs)p Ft(.)103 b(The)51 b(v)-5 b(alue)52
+b(of)f(the)h Fs(editing-mode)c Ft(v)-5 b(ariable)52 b(also)1110
+956 y(a\013ects)32 b(the)e(default)h(k)m(eymap.)630 1113
+y Fs(keyseq-timeout)1110 1223 y Ft(Sp)s(eci\014es)25
b(the)g(duration)g(Readline)h(will)g(w)m(ait)g(for)g(a)f(c)m(haracter)i
-(when)e(read-)1110 2522 y(ing)30 b(an)g(am)m(biguous)g(k)m(ey)h
+(when)e(read-)1110 1332 y(ing)30 b(an)g(am)m(biguous)g(k)m(ey)h
(sequence)f(\(one)g(that)h(can)f(form)g(a)g(complete)h(k)m(ey)1110
-2632 y(sequence)j(using)e(the)i(input)e(read)h(so)g(far,)h(or)g(can)f
-(tak)m(e)i(additional)f(input)1110 2741 y(to)g(complete)g(a)f(longer)h
+1442 y(sequence)j(using)e(the)i(input)e(read)h(so)g(far,)h(or)g(can)f
+(tak)m(e)i(additional)f(input)1110 1551 y(to)g(complete)g(a)f(longer)h
(k)m(ey)f(sequence\).)49 b(If)33 b(no)f(input)g(is)h(receiv)m(ed)h
-(within)1110 2851 y(the)43 b(timeout,)48 b(Readline)43
+(within)1110 1661 y(the)43 b(timeout,)48 b(Readline)43
b(will)g(use)g(the)g(shorter)g(but)f(complete)j(k)m(ey)e(se-)1110
-2960 y(quence.)c(Readline)26 b(uses)f(this)h(v)-5 b(alue)26
-b(to)g(determine)g(whether)f(or)g(not)h(input)1110 3070
+1771 y(quence.)c(Readline)26 b(uses)f(this)h(v)-5 b(alue)26
+b(to)g(determine)g(whether)f(or)g(not)h(input)1110 1880
y(is)31 b(a)m(v)-5 b(ailable)33 b(on)d(the)h(curren)m(t)f(input)g
-(source)h(\()p Fr(rl_instream)d Fs(b)m(y)i(default\).)1110
-3180 y(The)25 b(v)-5 b(alue)26 b(is)f(sp)s(eci\014ed)f(in)h
+(source)h(\()p Fs(rl_instream)d Ft(b)m(y)i(default\).)1110
+1990 y(The)25 b(v)-5 b(alue)26 b(is)f(sp)s(eci\014ed)f(in)h
(milliseconds,)j(so)d(a)h(v)-5 b(alue)26 b(of)f(1000)i(means)e(that)
-1110 3289 y(Readline)e(will)g(w)m(ait)g(one)g(second)f(for)g
+1110 2099 y(Readline)e(will)g(w)m(ait)g(one)g(second)f(for)g
(additional)i(input.)37 b(If)22 b(this)g(v)-5 b(ariable)23
-b(is)1110 3399 y(set)28 b(to)h(a)f(v)-5 b(alue)29 b(less)f(than)g(or)f
+b(is)1110 2209 y(set)28 b(to)h(a)f(v)-5 b(alue)29 b(less)f(than)g(or)f
(equal)i(to)f(zero,)i(or)e(to)g(a)h(non-n)m(umeric)e(v)-5
-b(alue,)1110 3508 y(Readline)30 b(will)f(w)m(ait)i(un)m(til)e(another)h
+b(alue,)1110 2318 y(Readline)30 b(will)f(w)m(ait)i(un)m(til)e(another)h
(k)m(ey)g(is)f(pressed)g(to)h(decide)f(whic)m(h)g(k)m(ey)1110
-3618 y(sequence)i(to)g(complete.)42 b(The)30 b(default)g(v)-5
-b(alue)31 b(is)g Fr(500)p Fs(.)630 3774 y Fr(mark-directories)1110
-3884 y Fs(If)38 b(set)g(to)h(`)p Fr(on)p Fs(',)i(completed)e(directory)
+2428 y(sequence)i(to)g(complete.)42 b(The)30 b(default)g(v)-5
+b(alue)31 b(is)g Fs(500)p Ft(.)630 2585 y Fs(mark-directories)1110
+2694 y Ft(If)38 b(set)g(to)h(`)p Fs(on)p Ft(',)i(completed)e(directory)
f(names)g(ha)m(v)m(e)i(a)e(slash)g(app)s(ended.)1110
-3994 y(The)30 b(default)g(is)h(`)p Fr(on)p Fs('.)630
-4150 y Fr(mark-modified-lines)1110 4260 y Fs(This)k(v)-5
-b(ariable,)38 b(when)d(set)h(to)h(`)p Fr(on)p Fs(',)g(causes)g
-(Readline)f(to)h(displa)m(y)f(an)f(as-)1110 4369 y(terisk)f(\(`)p
-Fr(*)p Fs('\))h(at)f(the)g(start)g(of)g(history)g(lines)g(whic)m(h)f
-(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110 4479 y(This)d(v)-5
-b(ariable)31 b(is)f(`)p Fr(off)p Fs(')g(b)m(y)g(default.)630
-4635 y Fr(mark-symlinked-directori)o(es)1110 4745 y Fs(If)59
-b(set)h(to)g(`)p Fr(on)p Fs(',)67 b(completed)60 b(names)f(whic)m(h)g
-(are)h(sym)m(b)s(olic)g(links)f(to)1110 4855 y(directories)71
+2804 y(The)30 b(default)g(is)h(`)p Fs(on)p Ft('.)630
+2960 y Fs(mark-modified-lines)1110 3070 y Ft(This)k(v)-5
+b(ariable,)38 b(when)d(set)h(to)h(`)p Fs(on)p Ft(',)g(causes)g
+(Readline)f(to)h(displa)m(y)f(an)f(as-)1110 3180 y(terisk)f(\(`)p
+Fs(*)p Ft('\))h(at)f(the)g(start)g(of)g(history)g(lines)g(whic)m(h)f
+(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110 3289 y(This)d(v)-5
+b(ariable)31 b(is)f(`)p Fs(off)p Ft(')g(b)m(y)g(default.)630
+3446 y Fs(mark-symlinked-directori)o(es)1110 3555 y Ft(If)59
+b(set)h(to)g(`)p Fs(on)p Ft(',)67 b(completed)60 b(names)f(whic)m(h)g
+(are)h(sym)m(b)s(olic)g(links)f(to)1110 3665 y(directories)71
b(ha)m(v)m(e)f(a)g(slash)f(app)s(ended)f(\(sub)5 b(ject)70
-b(to)g(the)g(v)-5 b(alue)70 b(of)1110 4964 y Fr(mark-directories)p
-Fs(\).)37 b(The)30 b(default)g(is)g(`)p Fr(off)p Fs('.)630
-5121 y Fr(match-hidden-files)1110 5230 y Fs(This)21 b(v)-5
-b(ariable,)25 b(when)d(set)g(to)h(`)p Fr(on)p Fs(',)h(causes)f
-(Readline)g(to)g(matc)m(h)g(\014les)f(whose)1110 5340
-y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fr(.)p Fs(')g(\(hidden)f
-(\014les\))i(when)e(p)s(erforming)g(\014lename)p eop
-end
-%%Page: 8 12
-TeXDict begin 8 11 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(8)1110 299 y(completion.)75
-b(If)41 b(set)g(to)h(`)p Fr(off)p Fs(',)i(the)e(leading)g(`)p
-Fr(.)p Fs(')f(m)m(ust)g(b)s(e)g(supplied)f(b)m(y)1110
-408 y(the)34 b(user)g(in)g(the)g(\014lename)g(to)h(b)s(e)f(completed.)
-53 b(This)33 b(v)-5 b(ariable)35 b(is)f(`)p Fr(on)p Fs(')g(b)m(y)1110
-518 y(default.)630 664 y Fr(menu-complete-display-pr)o(efix)1110
-774 y Fs(If)f(set)h(to)g(`)p Fr(on)p Fs(',)h(men)m(u)e(completion)i
+b(to)g(the)g(v)-5 b(alue)70 b(of)1110 3774 y Fs(mark-directories)p
+Ft(\).)37 b(The)30 b(default)g(is)g(`)p Fs(off)p Ft('.)630
+3931 y Fs(match-hidden-files)1110 4041 y Ft(This)21 b(v)-5
+b(ariable,)25 b(when)d(set)g(to)h(`)p Fs(on)p Ft(',)h(causes)f
+(Readline)g(to)g(matc)m(h)g(\014les)f(whose)1110 4150
+y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fs(.)p Ft(')g(\(hidden)f
+(\014les\))i(when)e(p)s(erforming)g(\014lename)1110 4260
+y(completion.)75 b(If)41 b(set)g(to)h(`)p Fs(off)p Ft(',)i(the)e
+(leading)g(`)p Fs(.)p Ft(')f(m)m(ust)g(b)s(e)g(supplied)f(b)m(y)1110
+4369 y(the)34 b(user)g(in)g(the)g(\014lename)g(to)h(b)s(e)f(completed.)
+53 b(This)33 b(v)-5 b(ariable)35 b(is)f(`)p Fs(on)p Ft(')g(b)m(y)1110
+4479 y(default.)630 4635 y Fs(menu-complete-display-pr)o(efix)1110
+4745 y Ft(If)f(set)h(to)g(`)p Fs(on)p Ft(',)h(men)m(u)e(completion)i
(displa)m(ys)e(the)h(common)g(pre\014x)e(of)i(the)1110
-883 y(list)k(of)g(p)s(ossible)f(completions)i(\(whic)m(h)e(ma)m(y)h(b)s
-(e)f(empt)m(y\))i(b)s(efore)e(cycling)1110 993 y(through)30
-b(the)g(list.)42 b(The)29 b(default)i(is)f(`)p Fr(off)p
-Fs('.)630 1139 y Fr(output-meta)1110 1249 y Fs(If)35
-b(set)h(to)g(`)p Fr(on)p Fs(',)h(Readline)f(will)g(displa)m(y)f(c)m
-(haracters)i(with)e(the)h(eigh)m(th)g(bit)1110 1358 y(set)h(directly)g
+4855 y(list)k(of)g(p)s(ossible)f(completions)i(\(whic)m(h)e(ma)m(y)h(b)
+s(e)f(empt)m(y\))i(b)s(efore)e(cycling)1110 4964 y(through)30
+b(the)g(list.)42 b(The)29 b(default)i(is)f(`)p Fs(off)p
+Ft('.)630 5121 y Fs(output-meta)1110 5230 y Ft(If)35
+b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)f(will)g(displa)m(y)f(c)m
+(haracters)i(with)e(the)h(eigh)m(th)g(bit)1110 5340 y(set)h(directly)g
(rather)f(than)g(as)h(a)g(meta-pre\014xed)f(escap)s(e)h(sequence.)59
-b(The)1110 1468 y(default)31 b(is)f(`)p Fr(off)p Fs('.)630
-1614 y Fr(page-completions)1110 1724 y Fs(If)j(set)i(to)f(`)p
-Fr(on)p Fs(',)h(Readline)g(uses)e(an)h(in)m(ternal)h
-Fr(more)p Fs(-lik)m(e)f(pager)g(to)h(displa)m(y)1110
-1833 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
-47 b(This)31 b(v)-5 b(ariable)34 b(is)e(`)p Fr(on)p Fs(')1110
-1943 y(b)m(y)e(default.)630 2089 y Fr(print-completions-horizo)o(ntal)o
-(ly)1110 2198 y Fs(If)23 b(set)i(to)g(`)p Fr(on)p Fs(',)g(Readline)g
+b(The)p eop end
+%%Page: 9 13
+TeXDict begin 9 12 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2153 b(9)1110 299 y(default)26
+b(is)f(`)p Fs(off)p Ft(',)i(but)e(Readline)h(will)g(set)g(it)g(to)h(`)p
+Fs(on)p Ft(')e(if)h(the)f(lo)s(cale)j(con)m(tains)1110
+408 y(eigh)m(t-bit)k(c)m(haracters.)630 596 y Fs(page-completions)1110
+706 y Ft(If)h(set)i(to)f(`)p Fs(on)p Ft(',)h(Readline)g(uses)e(an)h(in)
+m(ternal)h Fs(more)p Ft(-lik)m(e)f(pager)g(to)h(displa)m(y)1110
+816 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
+47 b(This)31 b(v)-5 b(ariable)34 b(is)e(`)p Fs(on)p Ft(')1110
+925 y(b)m(y)e(default.)630 1113 y Fs(print-completions-horizo)o(ntal)o
+(ly)1110 1223 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)g
(will)f(displa)m(y)g(completions)h(with)f(matc)m(hes)h(sorted)1110
-2308 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
-(than)g(do)m(wn)g(the)h(screen.)1110 2418 y(The)30 b(default)g(is)h(`)p
-Fr(off)p Fs('.)630 2564 y Fr(revert-all-at-newline)1110
-2673 y Fs(If)e(set)h(to)g(`)p Fr(on)p Fs(',)g(Readline)g(will)g(undo)f
+1332 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
+(than)g(do)m(wn)g(the)h(screen.)1110 1442 y(The)30 b(default)g(is)h(`)p
+Fs(off)p Ft('.)630 1630 y Fs(revert-all-at-newline)1110
+1739 y Ft(If)e(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)g(will)g(undo)f
(all)h(c)m(hanges)h(to)f(history)g(lines)f(b)s(efore)1110
-2783 y(returning)f(when)f Fr(accept-line)f Fs(is)j(executed.)41
-b(By)29 b(default,)g(history)g(lines)1110 2892 y(ma)m(y)42
+1849 y(returning)f(when)f Fs(accept-line)f Ft(is)j(executed.)41
+b(By)29 b(default,)g(history)g(lines)1110 1958 y(ma)m(y)42
b(b)s(e)g(mo)s(di\014ed)e(and)h(retain)i(individual)e(undo)g(lists)h
-(across)g(calls)h(to)1110 3002 y Fr(readline)p Fs(.)38
-b(The)30 b(default)h(is)f(`)p Fr(off)p Fs('.)630 3148
-y Fr(show-all-if-ambiguous)1110 3258 y Fs(This)f(alters)i(the)f
+(across)g(calls)h(to)1110 2068 y Fs(readline)p Ft(.)38
+b(The)30 b(default)h(is)f(`)p Fs(off)p Ft('.)630 2256
+y Fs(show-all-if-ambiguous)1110 2365 y Ft(This)f(alters)i(the)f
(default)g(b)s(eha)m(vior)g(of)g(the)h(completion)g(functions.)40
-b(If)29 b(set)1110 3367 y(to)f(`)p Fr(on)p Fs(',)g(w)m(ords)f(whic)m(h)
+b(If)29 b(set)1110 2475 y(to)f(`)p Fs(on)p Ft(',)g(w)m(ords)f(whic)m(h)
g(ha)m(v)m(e)i(more)f(than)f(one)h(p)s(ossible)f(completion)h(cause)
-1110 3477 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i
-(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 3587 y(The)30
-b(default)g(v)-5 b(alue)31 b(is)g(`)p Fr(off)p Fs('.)630
-3733 y Fr(show-all-if-unmodified)1110 3842 y Fs(This)38
+1110 2585 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i
+(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 2694 y(The)30
+b(default)g(v)-5 b(alue)31 b(is)g(`)p Fs(off)p Ft('.)630
+2882 y Fs(show-all-if-unmodified)1110 2992 y Ft(This)38
b(alters)h(the)g(default)g(b)s(eha)m(vior)g(of)f(the)h(completion)h
-(functions)e(in)h(a)1110 3952 y(fashion)25 b(similar)h(to)g
-Fi(sho)m(w-all-if-am)m(biguous)p Fs(.)41 b(If)25 b(set)h(to)h(`)p
-Fr(on)p Fs(',)f(w)m(ords)f(whic)m(h)1110 4061 y(ha)m(v)m(e)32
+(functions)e(in)h(a)1110 3101 y(fashion)25 b(similar)h(to)g
+Fj(sho)m(w-all-if-am)m(biguous)p Ft(.)41 b(If)25 b(set)h(to)h(`)p
+Fs(on)p Ft(',)f(w)m(ords)f(whic)m(h)1110 3211 y(ha)m(v)m(e)32
b(more)f(than)f(one)i(p)s(ossible)e(completion)i(without)f(an)m(y)g(p)s
-(ossible)f(par-)1110 4171 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
-f(completions)h(don't)f(share)g(a)h(common)1110 4281
+(ossible)f(par-)1110 3320 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
+f(completions)h(don't)f(share)g(a)h(common)1110 3430
y(pre\014x\))30 b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)g
-(immediately)i(instead)e(of)h(ring-)1110 4390 y(ing)g(the)f(b)s(ell.)41
-b(The)30 b(default)g(v)-5 b(alue)31 b(is)f(`)p Fr(off)p
-Fs('.)630 4536 y Fr(show-mode-in-prompt)1110 4646 y Fs(If)35
-b(set)i(to)f(`)p Fr(on)p Fs(',)h(add)e(a)h(c)m(haracter)i(to)e(the)g(b)
-s(eginning)f(of)h(the)g(prompt)f(in-)1110 4756 y(dicating)43
-b(the)f(editing)h(mo)s(de:)63 b(emacs)43 b(\(`)p Fr(@)p
-Fs('\),)i(vi)d(command)g(\(`)p Fr(:)p Fs('\),)k(or)c(vi)1110
-4865 y(insertion)30 b(\(`)p Fr(+)p Fs('\).)42 b(The)30
-b(default)h(v)-5 b(alue)30 b(is)h(`)p Fr(off)p Fs('.)630
-5011 y Fr(skip-completed-text)1110 5121 y Fs(If)h(set)i(to)f(`)p
-Fr(on)p Fs(',)h(this)f(alters)g(the)g(default)g(completion)h(b)s(eha)m
-(vior)f(when)f(in-)1110 5230 y(serting)d(a)h(single)g(matc)m(h)f(in)m
-(to)h(the)g(line.)40 b(It's)30 b(only)f(activ)m(e)i(when)d(p)s(erform-)
-1110 5340 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f(w)m
-(ord.)53 b(If)35 b(enabled,)g(readline)g(do)s(es)p eop
-end
-%%Page: 9 13
-TeXDict begin 9 12 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(9)1110 299 y(not)41
-b(insert)f(c)m(haracters)i(from)e(the)h(completion)h(that)f(matc)m(h)g
-(c)m(haracters)1110 408 y(after)c(p)s(oin)m(t)g(in)g(the)g(w)m(ord)f(b)
-s(eing)g(completed,)k(so)d(p)s(ortions)f(of)h(the)g(w)m(ord)1110
-518 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g(duplicated.)45
-b(F)-8 b(or)32 b(instance,)h(if)f(this)f(is)h(en-)1110
-628 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g
-(after)h(the)g(`)p Fr(e)p Fs(')f(in)1110 737 y(`)p Fr(Makefile)p
-Fs(')c(will)i(result)f(in)g(`)p Fr(Makefile)p Fs(')f(rather)h(than)h(`)
-p Fr(Makefilefile)p Fs(',)1110 847 y(assuming)d(there)g(is)h(a)f
+(immediately)i(instead)e(of)h(ring-)1110 3540 y(ing)g(the)f(b)s(ell.)41
+b(The)30 b(default)g(v)-5 b(alue)31 b(is)f(`)p Fs(off)p
+Ft('.)630 3727 y Fs(show-mode-in-prompt)1110 3837 y Ft(If)g(set)g(to)h
+(`)p Fs(on)p Ft(',)f(add)f(a)i(c)m(haracter)g(to)g(the)f(b)s(eginning)g
+(of)g(the)g(prompt)f(indi-)1110 3947 y(cating)j(the)g(editing)f(mo)s
+(de:)42 b(emacs,)33 b(vi)e(command,)g(or)g(vi)g(insertion.)43
+b(The)1110 4056 y(mo)s(de)30 b(strings)g(are)h(user-settable.)42
+b(The)30 b(default)g(v)-5 b(alue)31 b(is)g(`)p Fs(off)p
+Ft('.)630 4244 y Fs(skip-completed-text)1110 4354 y Ft(If)h(set)i(to)f
+(`)p Fs(on)p Ft(',)h(this)f(alters)g(the)g(default)g(completion)h(b)s
+(eha)m(vior)f(when)f(in-)1110 4463 y(serting)d(a)h(single)g(matc)m(h)f
+(in)m(to)h(the)g(line.)40 b(It's)30 b(only)f(activ)m(e)i(when)d(p)s
+(erform-)1110 4573 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f
+(w)m(ord.)53 b(If)35 b(enabled,)g(readline)g(do)s(es)1110
+4682 y(not)41 b(insert)f(c)m(haracters)i(from)e(the)h(completion)h
+(that)f(matc)m(h)g(c)m(haracters)1110 4792 y(after)c(p)s(oin)m(t)g(in)g
+(the)g(w)m(ord)f(b)s(eing)g(completed,)k(so)d(p)s(ortions)f(of)h(the)g
+(w)m(ord)1110 4902 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g
+(duplicated.)45 b(F)-8 b(or)32 b(instance,)h(if)f(this)f(is)h(en-)1110
+5011 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g
+(after)h(the)g(`)p Fs(e)p Ft(')f(in)1110 5121 y(`)p Fs(Makefile)p
+Ft(')c(will)i(result)f(in)g(`)p Fs(Makefile)p Ft(')f(rather)h(than)h(`)
+p Fs(Makefilefile)p Ft(',)1110 5230 y(assuming)d(there)g(is)h(a)f
(single)h(p)s(ossible)f(completion.)56 b(The)35 b(default)g(v)-5
-b(alue)1110 956 y(is)30 b(`)p Fr(off)p Fs('.)630 1113
-y Fr(visible-stats)1110 1223 y Fs(If)h(set)i(to)f(`)p
-Fr(on)p Fs(',)h(a)f(c)m(haracter)i(denoting)e(a)g(\014le's)g(t)m(yp)s
-(e)g(is)g(app)s(ended)e(to)j(the)1110 1332 y(\014lename)e(when)e
+b(alue)1110 5340 y(is)30 b(`)p Fs(off)p Ft('.)p eop end
+%%Page: 10 14
+TeXDict begin 10 13 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(10)630 299 y Fs
+(vi-cmd-mode-string)1110 408 y Ft(This)29 b(string)h(is)f(displa)m(y)m
+(ed)i(immediately)g(b)s(efore)e(the)h(last)g(line)h(of)e(the)h(pri-)
+1110 518 y(mary)21 b(prompt)g(when)f(vi)i(editing)g(mo)s(de)f(is)g
+(activ)m(e)j(and)d(in)g(command)g(mo)s(de.)1110 628 y(The)38
+b(v)-5 b(alue)39 b(is)f(expanded)f(lik)m(e)j(a)f(k)m(ey)g(binding,)g
+(so)g(the)f(standard)g(set)h(of)1110 737 y(meta-)30 b(and)e(con)m(trol)
+i(pre\014xes)e(and)g(bac)m(kslash)h(escap)s(e)g(sequences)g(is)g(a)m(v)
+-5 b(ail-)1110 847 y(able.)50 b(Use)33 b(the)h(`)p Fs(\\1)p
+Ft(')f(and)g(`)p Fs(\\2)p Ft(')g(escap)s(es)g(to)h(b)s(egin)f(and)g
+(end)f(sequences)i(of)1110 956 y(non-prin)m(ting)40 b(c)m(haracters,)45
+b(whic)m(h)40 b(can)g(b)s(e)g(used)g(to)h(em)m(b)s(ed)f(a)g(terminal)
+1110 1066 y(con)m(trol)32 b(sequence)f(in)m(to)g(the)f(mo)s(de)g
+(string.)41 b(The)30 b(default)h(is)f(`)p Fs(\(cmd\))p
+Ft('.)630 1209 y Fs(vi-ins-mode-string)1110 1319 y Ft(This)f(string)h
+(is)f(displa)m(y)m(ed)i(immediately)g(b)s(efore)e(the)h(last)g(line)h
+(of)e(the)h(pri-)1110 1428 y(mary)25 b(prompt)f(when)g(vi)h(editing)h
+(mo)s(de)e(is)i(activ)m(e)h(and)d(in)h(insertion)g(mo)s(de.)1110
+1538 y(The)38 b(v)-5 b(alue)39 b(is)f(expanded)f(lik)m(e)j(a)f(k)m(ey)g
+(binding,)g(so)g(the)f(standard)g(set)h(of)1110 1648
+y(meta-)30 b(and)e(con)m(trol)i(pre\014xes)e(and)g(bac)m(kslash)h
+(escap)s(e)g(sequences)g(is)g(a)m(v)-5 b(ail-)1110 1757
+y(able.)50 b(Use)33 b(the)h(`)p Fs(\\1)p Ft(')f(and)g(`)p
+Fs(\\2)p Ft(')g(escap)s(es)g(to)h(b)s(egin)f(and)g(end)f(sequences)i
+(of)1110 1867 y(non-prin)m(ting)40 b(c)m(haracters,)45
+b(whic)m(h)40 b(can)g(b)s(e)g(used)g(to)h(em)m(b)s(ed)f(a)g(terminal)
+1110 1976 y(con)m(trol)32 b(sequence)f(in)m(to)g(the)f(mo)s(de)g
+(string.)41 b(The)30 b(default)h(is)f(`)p Fs(\(ins\))p
+Ft('.)630 2120 y Fs(visible-stats)1110 2229 y Ft(If)h(set)i(to)f(`)p
+Fs(on)p Ft(',)h(a)f(c)m(haracter)i(denoting)e(a)g(\014le's)g(t)m(yp)s
+(e)g(is)g(app)s(ended)e(to)j(the)1110 2339 y(\014lename)e(when)e
(listing)i(p)s(ossible)f(completions.)42 b(The)30 b(default)g(is)h(`)p
-Fr(off)p Fs('.)150 1489 y(Key)f(Bindings)630 1598 y(The)41
+Fs(off)p Ft('.)150 2482 y(Key)f(Bindings)630 2592 y(The)41
b(syn)m(tax)i(for)f(con)m(trolling)h(k)m(ey)g(bindings)e(in)h(the)g
(init)g(\014le)g(is)g(simple.)75 b(First)43 b(y)m(ou)630
-1708 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i
+2701 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i
(y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41 b(The)27 b(follo)m(wing)630
-1817 y(sections)37 b(con)m(tain)g(tables)g(of)f(the)g(command)f(name,)j
+2811 y(sections)37 b(con)m(tain)g(tables)g(of)f(the)g(command)f(name,)j
(the)e(default)g(k)m(eybinding,)h(if)f(an)m(y)-8 b(,)630
-1927 y(and)30 b(a)h(short)f(description)g(of)h(what)f(the)g(command)h
-(do)s(es.)630 2060 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g
+2921 y(and)30 b(a)h(short)f(description)g(of)h(what)f(the)g(command)h
+(do)s(es.)630 3047 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g
(the)g(command,)h(simply)f(place)h(on)e(a)i(line)f(in)g(the)g(init)630
-2170 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)f(to)h
+3157 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)f(to)h
(bind)f(the)h(command)f(to,)i(a)f(colon,)i(and)d(then)630
-2279 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
+3266 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
b(can)g(b)s(e)g(no)g(space)g(b)s(et)m(w)m(een)h(the)f(k)m(ey)h(name)g
-(and)630 2389 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
+(and)630 3376 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
(terpreted)g(as)g(part)f(of)h(the)g(k)m(ey)h(name.)72
-b(The)40 b(name)h(of)630 2498 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
+b(The)40 b(name)h(of)630 3485 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
(expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,)h(dep)s(ending)d(on)h
-(what)h(y)m(ou)g(\014nd)e(most)630 2608 y(comfortable.)630
-2741 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h
+(what)h(y)m(ou)g(\014nd)e(most)630 3595 y(comfortable.)630
+3721 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h
(k)m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f(string)630
-2851 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
-(\(a)h Fi(macro)5 b Fs(\).)630 3007 y Fi(k)m(eyname)g
-Fs(:)42 b Fi(function-name)35 b Fs(or)c Fi(macro)1110
-3117 y(k)m(eyname)k Fs(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s
+3831 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
+(\(a)h Fj(macro)5 b Ft(\).)630 3974 y Fj(k)m(eyname)g
+Ft(:)42 b Fj(function-name)35 b Ft(or)c Fj(macro)1110
+4084 y(k)m(eyname)k Ft(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s
(elled)e(out)h(in)g(English.)39 b(F)-8 b(or)30 b(example:)1350
-3250 y Fr(Control-u:)45 b(universal-argument)1350 3360
-y(Meta-Rubout:)f(backward-kill-word)1350 3469 y(Control-o:)h(">)i
-(output")1110 3602 y Fs(In)94 b(the)g(ab)s(o)m(v)m(e)i(example,)111
-b Fk(C-u)94 b Fs(is)g(b)s(ound)f(to)i(the)f(function)1110
-3712 y Fr(universal-argument)p Fs(,)124 b Fk(M-DEL)107
-b Fs(is)i(b)s(ound)e(to)j(the)f(function)1110 3821 y
-Fr(backward-kill-word)p Fs(,)75 b(and)69 b Fk(C-o)g Fs(is)h(b)s(ound)e
-(to)j(run)d(the)i(macro)1110 3931 y(expressed)45 b(on)h(the)g(righ)m(t)
+4210 y Fs(Control-u:)45 b(universal-argument)1350 4320
+y(Meta-Rubout:)f(backward-kill-word)1350 4430 y(Control-o:)h(">)i
+(output")1110 4556 y Ft(In)94 b(the)g(ab)s(o)m(v)m(e)i(example,)111
+b Fl(C-u)94 b Ft(is)g(b)s(ound)f(to)i(the)f(function)1110
+4666 y Fs(universal-argument)p Ft(,)124 b Fl(M-DEL)107
+b Ft(is)i(b)s(ound)e(to)j(the)f(function)1110 4775 y
+Fs(backward-kill-word)p Ft(,)75 b(and)69 b Fl(C-o)g Ft(is)h(b)s(ound)e
+(to)j(run)d(the)i(macro)1110 4885 y(expressed)45 b(on)h(the)g(righ)m(t)
g(hand)e(side)i(\(that)h(is,)i(to)e(insert)e(the)h(text)h(`)p
-Fr(>)1110 4041 y(output)p Fs(')29 b(in)m(to)i(the)g(line\).)1110
-4174 y(A)62 b(n)m(um)m(b)s(er)e(of)i(sym)m(b)s(olic)h(c)m(haracter)g
-(names)f(are)g(recognized)h(while)1110 4283 y(pro)s(cessing)40
-b(this)f(k)m(ey)i(binding)e(syn)m(tax:)60 b Fi(DEL)p
-Fs(,)42 b Fi(ESC)p Fs(,)g Fi(ESCAPE)p Fs(,)f Fi(LFD)p
-Fs(,)1110 4393 y Fi(NEWLINE)p Fs(,)31 b Fi(RET)p Fs(,)f
-Fi(RETURN)p Fs(,)g Fi(R)m(UBOUT)p Fs(,)h Fi(SP)-8 b(A)m(CE)p
-Fs(,)31 b Fi(SPC)p Fs(,)e(and)h Fi(T)-8 b(AB)p Fs(.)630
-4549 y Fr(")p Fi(k)m(eyseq)r Fr(")p Fs(:)41 b Fi(function-name)36
-b Fs(or)30 b Fi(macro)1110 4659 y(k)m(eyseq)k Fs(di\013ers)d(from)f
-Fi(k)m(eyname)37 b Fs(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f
-(denoting)g(an)g(en-)1110 4769 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s
-(e)f(sp)s(eci\014ed,)h(b)m(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)
-1110 4878 y(double)29 b(quotes.)41 b(Some)29 b Fl(gnu)h
-Fs(Emacs)f(st)m(yle)i(k)m(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)
-1110 4988 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s
-(ecial)h(c)m(haracter)g(names)f(are)g(not)1110 5097 y(recognized.)1350
-5230 y Fr("\\C-u":)46 b(universal-argument)1350 5340
-y("\\C-x\\C-r":)f(re-read-init-file)p eop end
-%%Page: 10 14
-TeXDict begin 10 13 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(10)1350 299 y Fr("\\e[11~":)45
-b("Function)h(Key)g(1")1110 447 y Fs(In)64 b(the)g(ab)s(o)m(v)m(e)i
-(example,)74 b Fk(C-u)64 b Fs(is)g(again)i(b)s(ound)c(to)k(the)e
-(function)1110 556 y Fr(universal-argument)39 b Fs(\(just)k(as)h(it)g
-(w)m(as)g(in)g(the)f(\014rst)g(example\),)49 b(`)p Fk(C-x)1110
-666 y(C-r)p Fs(')30 b(is)g(b)s(ound)e(to)j(the)g(function)f
-Fr(re-read-init-file)p Fs(,)c(and)j(`)p Fr(ESC)h([)g(1)g(1)1110
-775 y(~)p Fs(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p
-Fr(Function)e(Key)g(1)p Fs('.)630 961 y(The)g(follo)m(wing)i
-Fl(gnu)f Fs(Emacs)g(st)m(yle)h(escap)s(e)f(sequences)g(are)g(a)m(v)-5
-b(ailable)32 b(when)d(sp)s(ecifying)630 1071 y(k)m(ey)i(sequences:)630
-1257 y Fk(\\C-)336 b Fs(con)m(trol)32 b(pre\014x)630
-1443 y Fk(\\M-)336 b Fs(meta)31 b(pre\014x)630 1629 y
-Fk(\\e)384 b Fs(an)30 b(escap)s(e)h(c)m(haracter)630
-1815 y Fk(\\\\)384 b Fs(bac)m(kslash)630 2001 y Fk(\\)p
-Fr(")g(")p Fs(,)30 b(a)h(double)f(quotation)i(mark)630
-2186 y Fk(\\')384 b Fr(')p Fs(,)30 b(a)h(single)g(quote)g(or)f(ap)s
-(ostrophe)630 2372 y(In)d(addition)h(to)g(the)g Fl(gnu)f
-Fs(Emacs)h(st)m(yle)h(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g
-(bac)m(kslash)630 2482 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630
-2668 y Fr(\\a)384 b Fs(alert)31 b(\(b)s(ell\))630 2854
-y Fr(\\b)384 b Fs(bac)m(kspace)630 3040 y Fr(\\d)g Fs(delete)630
-3226 y Fr(\\f)g Fs(form)30 b(feed)630 3412 y Fr(\\n)384
-b Fs(newline)630 3597 y Fr(\\r)g Fs(carriage)32 b(return)630
-3783 y Fr(\\t)384 b Fs(horizon)m(tal)32 b(tab)630 3969
-y Fr(\\v)384 b Fs(v)m(ertical)32 b(tab)630 4155 y Fr(\\)p
-Fk(nnn)288 b Fs(the)35 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
-b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 b(alue)35 b Fi(nnn)e
-Fs(\(one)i(to)1110 4265 y(three)c(digits\))630 4451 y
-Fr(\\x)p Fk(HH)288 b Fs(the)38 b(eigh)m(t-bit)i(c)m(haracter)g(whose)e
+Fs(>)1110 4994 y(output)p Ft(')29 b(in)m(to)i(the)g(line\).)1110
+5121 y(A)62 b(n)m(um)m(b)s(er)e(of)i(sym)m(b)s(olic)h(c)m(haracter)g
+(names)f(are)g(recognized)h(while)1110 5230 y(pro)s(cessing)40
+b(this)f(k)m(ey)i(binding)e(syn)m(tax:)60 b Fj(DEL)p
+Ft(,)42 b Fj(ESC)p Ft(,)g Fj(ESCAPE)p Ft(,)f Fj(LFD)p
+Ft(,)1110 5340 y Fj(NEWLINE)p Ft(,)31 b Fj(RET)p Ft(,)f
+Fj(RETURN)p Ft(,)g Fj(R)m(UBOUT)p Ft(,)h Fj(SP)-8 b(A)m(CE)p
+Ft(,)31 b Fj(SPC)p Ft(,)e(and)h Fj(T)-8 b(AB)p Ft(.)p
+eop end
+%%Page: 11 15
+TeXDict begin 11 14 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(11)630 299 y Fs(")p
+Fj(k)m(eyseq)r Fs(")p Ft(:)41 b Fj(function-name)36 b
+Ft(or)30 b Fj(macro)1110 408 y(k)m(eyseq)k Ft(di\013ers)d(from)f
+Fj(k)m(eyname)37 b Ft(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f
+(denoting)g(an)g(en-)1110 518 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s(e)
+f(sp)s(eci\014ed,)h(b)m(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)1110
+628 y(double)29 b(quotes.)41 b(Some)29 b Fm(gnu)h Ft(Emacs)f(st)m(yle)i
+(k)m(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)1110
+737 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s(ecial)h(c)m
+(haracter)g(names)f(are)g(not)1110 847 y(recognized.)1350
+981 y Fs("\\C-u":)46 b(universal-argument)1350 1091 y("\\C-x\\C-r":)f
+(re-read-init-file)1350 1200 y("\\e[11~":)g("Function)h(Key)g(1")1110
+1334 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
+b Fl(C-u)64 b Ft(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110
+1444 y Fs(universal-argument)39 b Ft(\(just)k(as)h(it)g(w)m(as)g(in)g
+(the)f(\014rst)g(example\),)49 b(`)p Fl(C-x)1110 1554
+y(C-r)p Ft(')30 b(is)g(b)s(ound)e(to)j(the)g(function)f
+Fs(re-read-init-file)p Ft(,)c(and)j(`)p Fs(ESC)h([)g(1)g(1)1110
+1663 y(~)p Ft(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p
+Fs(Function)e(Key)g(1)p Ft('.)630 1822 y(The)g(follo)m(wing)i
+Fm(gnu)f Ft(Emacs)g(st)m(yle)h(escap)s(e)f(sequences)g(are)g(a)m(v)-5
+b(ailable)32 b(when)d(sp)s(ecifying)630 1932 y(k)m(ey)i(sequences:)630
+2091 y Fl(\\C-)336 b Ft(con)m(trol)32 b(pre\014x)630
+2250 y Fl(\\M-)336 b Ft(meta)31 b(pre\014x)630 2408 y
+Fl(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630
+2567 y Fl(\\\\)384 b Ft(bac)m(kslash)630 2726 y Fl(\\)p
+Fs(")g(")p Ft(,)30 b(a)h(double)f(quotation)i(mark)630
+2885 y Fl(\\')384 b Fs(')p Ft(,)30 b(a)h(single)g(quote)g(or)f(ap)s
+(ostrophe)630 3044 y(In)d(addition)h(to)g(the)g Fm(gnu)f
+Ft(Emacs)h(st)m(yle)h(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g
+(bac)m(kslash)630 3154 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630
+3313 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 3471
+y Fs(\\b)384 b Ft(bac)m(kspace)630 3630 y Fs(\\d)g Ft(delete)630
+3789 y Fs(\\f)g Ft(form)30 b(feed)630 3948 y Fs(\\n)384
+b Ft(newline)630 4107 y Fs(\\r)g Ft(carriage)32 b(return)630
+4266 y Fs(\\t)384 b Ft(horizon)m(tal)32 b(tab)630 4425
+y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630 4584 y Fs(\\)p
+Fl(nnn)288 b Ft(the)35 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
+b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 b(alue)35 b Fj(nnn)e
+Ft(\(one)i(to)1110 4693 y(three)c(digits\))630 4852 y
+Fs(\\x)p Fl(HH)288 b Ft(the)38 b(eigh)m(t-bit)i(c)m(haracter)g(whose)e
(v)-5 b(alue)39 b(is)f(the)h(hexadecimal)g(v)-5 b(alue)39
-b Fi(HH)1110 4560 y Fs(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
-4746 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e
+b Fj(HH)1110 4962 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
+5121 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e
(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)630
-4856 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21
+5230 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21
b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f(name.)38
-b(In)630 4965 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
+b(In)630 5340 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m(e)j
-(are)e(expanded.)37 b(Bac)m(kslash)630 5075 y(will)j(quote)h(an)m(y)f
-(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
-b(`)p Fr(")p Fs(')h(and)g(`)p Fr(')p Fs('.)69 b(F)-8
-b(or)630 5185 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
-(mak)m(e)h(`)p Fk(C-x)j Fr(\\)p Fs(')c(insert)f(a)h(single)h(`)p
-Fr(\\)p Fs(')f(in)m(to)g(the)g(line:)870 5332 y Fr("\\C-x\\\\":)45
-b("\\\\")p eop end
-%%Page: 11 15
-TeXDict begin 11 14 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(11)150 299 y Fh(1.3.2)63
-b(Conditional)41 b(Init)g(Constructs)150 446 y Fs(Readline)c(implemen)m
-(ts)g(a)h(facilit)m(y)g(similar)f(in)g(spirit)f(to)i(the)f(conditional)
-h(compilation)g(features)f(of)150 555 y(the)31 b(C)f(prepro)s(cessor)g
-(whic)m(h)g(allo)m(ws)i(k)m(ey)g(bindings)d(and)h(v)-5
-b(ariable)32 b(settings)f(to)h(b)s(e)e(p)s(erformed)f(as)i(the)150
-665 y(result)f(of)h(tests.)41 b(There)30 b(are)h(four)f(parser)f
-(directiv)m(es)j(used.)150 824 y Fr($if)336 b Fs(The)31
-b Fr($if)f Fs(construct)i(allo)m(ws)h(bindings)d(to)i(b)s(e)e(made)i
-(based)f(on)g(the)g(editing)h(mo)s(de,)g(the)630 934
-y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g(application)h(using)f
-(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)630 1044
-y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m(haracters)i
-(are)f(required)e(to)i(isolate)i(it.)630 1203 y Fr(mode)288
-b Fs(The)30 b Fr(mode=)e Fs(form)i(of)g(the)h Fr($if)e
-Fs(directiv)m(e)j(is)e(used)f(to)i(test)g(whether)e(Read-)1110
-1313 y(line)44 b(is)f(in)g Fr(emacs)f Fs(or)h Fr(vi)g
-Fs(mo)s(de.)79 b(This)42 b(ma)m(y)i(b)s(e)e(used)h(in)g(conjunction)
-1110 1422 y(with)c(the)h(`)p Fr(set)29 b(keymap)p Fs(')38
+(are)e(expanded.)37 b(Bac)m(kslash)p eop end
+%%Page: 12 16
+TeXDict begin 12 15 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(12)630 299 y(will)40
+b(quote)h(an)m(y)f(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k
+(including)39 b(`)p Fs(")p Ft(')h(and)g(`)p Fs(')p Ft('.)69
+b(F)-8 b(or)630 408 y(example,)28 b(the)e(follo)m(wing)h(binding)d
+(will)i(mak)m(e)h(`)p Fl(C-x)j Fs(\\)p Ft(')c(insert)f(a)h(single)h(`)p
+Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 536 y Fs("\\C-x\\\\":)45
+b("\\\\")150 721 y Fi(1.3.2)63 b(Conditional)41 b(Init)g(Constructs)150
+868 y Ft(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f(in)g
+(spirit)f(to)i(the)f(conditional)h(compilation)g(features)f(of)150
+978 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g
+(bindings)d(and)h(v)-5 b(ariable)32 b(settings)f(to)h(b)s(e)e(p)s
+(erformed)f(as)i(the)150 1087 y(result)f(of)h(tests.)41
+b(There)30 b(are)h(four)f(parser)f(directiv)m(es)j(used.)150
+1233 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)h
+(bindings)d(to)i(b)s(e)e(made)i(based)f(on)g(the)g(editing)h(mo)s(de,)g
+(the)630 1342 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g
+(application)h(using)f(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)
+630 1452 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m
+(haracters)i(are)f(required)e(to)i(isolate)i(it.)630
+1597 y Fs(mode)288 b Ft(The)30 b Fs(mode=)e Ft(form)i(of)g(the)h
+Fs($if)e Ft(directiv)m(e)j(is)e(used)f(to)i(test)g(whether)e(Read-)1110
+1707 y(line)44 b(is)f(in)g Fs(emacs)f Ft(or)h Fs(vi)g
+Ft(mo)s(de.)79 b(This)42 b(ma)m(y)i(b)s(e)e(used)h(in)g(conjunction)
+1110 1816 y(with)c(the)h(`)p Fs(set)29 b(keymap)p Ft(')38
b(command,)k(for)d(instance,)j(to)e(set)g(bindings)e(in)1110
-1532 y(the)32 b Fr(emacs-standard)c Fs(and)j Fr(emacs-ctlx)d
-Fs(k)m(eymaps)k(only)g(if)g(Readline)g(is)1110 1641 y(starting)f(out)g
-(in)f Fr(emacs)f Fs(mo)s(de.)630 1801 y Fr(term)288 b
-Fs(The)26 b Fr(term=)g Fs(form)g(ma)m(y)i(b)s(e)e(used)g(to)i(include)f
-(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110 1910 y(ings,)38
+1926 y(the)32 b Fs(emacs-standard)c Ft(and)j Fs(emacs-ctlx)d
+Ft(k)m(eymaps)k(only)g(if)g(Readline)g(is)1110 2036 y(starting)f(out)g
+(in)f Fs(emacs)f Ft(mo)s(de.)630 2181 y Fs(term)288 b
+Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e(used)g(to)i(include)f
+(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110 2291 y(ings,)38
b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f(output)g(b)m(y)g
-(the)g(terminal's)1110 2020 y(function)24 b(k)m(eys.)39
+(the)g(terminal's)1110 2400 y(function)24 b(k)m(eys.)39
b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)f(side)g(of)g(the)g(`)p
-Fr(=)p Fs(')g(is)g(tested)h(against)1110 2130 y(b)s(oth)k(the)h(full)g
+Fs(=)p Ft(')g(is)g(tested)h(against)1110 2510 y(b)s(oth)k(the)h(full)g
(name)g(of)g(the)g(terminal)h(and)e(the)i(p)s(ortion)e(of)h(the)g
-(terminal)1110 2239 y(name)k(b)s(efore)f(the)g(\014rst)g(`)p
-Fr(-)p Fs('.)50 b(This)33 b(allo)m(ws)i Fr(sun)e Fs(to)h(matc)m(h)g(b)s
-(oth)f Fr(sun)g Fs(and)1110 2349 y Fr(sun-cmd)p Fs(,)c(for)h(instance.)
-630 2508 y Fr(application)1110 2618 y Fs(The)21 b Fi(application)j
-Fs(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h
-(set-)1110 2727 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
-(Readline)g(library)g(sets)g(the)g Fi(application)1110
-2837 y(name)p Fs(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
+(terminal)1110 2619 y(name)k(b)s(efore)f(the)g(\014rst)g(`)p
+Fs(-)p Ft('.)50 b(This)33 b(allo)m(ws)i Fs(sun)e Ft(to)h(matc)m(h)g(b)s
+(oth)f Fs(sun)g Ft(and)1110 2729 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)
+630 2874 y Fs(application)1110 2984 y Ft(The)21 b Fj(application)j
+Ft(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h
+(set-)1110 3093 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
+(Readline)g(library)g(sets)g(the)g Fj(application)1110
+3203 y(name)p Ft(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
(v)-5 b(alue.)39 b(This)22 b(could)h(b)s(e)g(used)f(to)1110
-2946 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h
-(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 3056
+3313 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h
+(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 3422
y(instance,)35 b(the)e(follo)m(wing)h(command)f(adds)f(a)i(k)m(ey)f
-(sequence)h(that)f(quotes)1110 3166 y(the)e(curren)m(t)f(or)g(previous)
-g(w)m(ord)g(in)g(Bash:)1350 3300 y Fr($if)47 b(Bash)1350
-3410 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
-3519 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 3629 y($endif)150
-3788 y($endif)192 b Fs(This)29 b(command,)i(as)f(seen)h(in)f(the)g
-(previous)g(example,)h(terminates)g(an)g Fr($if)e Fs(command.)150
-3948 y Fr($else)240 b Fs(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
-(the)f Fr($if)g Fs(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g
-(fails.)150 4107 y Fr($include)96 b Fs(This)43 b(directiv)m(e)i(tak)m
+(sequence)h(that)f(quotes)1110 3532 y(the)e(curren)m(t)f(or)g(previous)
+g(w)m(ord)g(in)g(Bash:)1350 3659 y Fs($if)47 b(Bash)1350
+3769 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
+3878 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 3988 y($endif)150
+4133 y($endif)192 b Ft(This)29 b(command,)i(as)f(seen)h(in)f(the)g
+(previous)g(example,)h(terminates)g(an)g Fs($if)e Ft(command.)150
+4279 y Fs($else)240 b Ft(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
+(the)f Fs($if)g Ft(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g
+(fails.)150 4424 y Fs($include)96 b Ft(This)43 b(directiv)m(e)i(tak)m
(es)g(a)e(single)i(\014lename)e(as)h(an)f(argumen)m(t)h(and)f(reads)g
-(commands)630 4217 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
+(commands)630 4534 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
b(F)-8 b(or)39 b(example,)j(the)d(follo)m(wing)h(directiv)m(e)g(reads)e
-(from)630 4326 y Fr(/etc/inputrc)p Fs(:)870 4461 y Fr($include)46
-b(/etc/inputrc)150 4660 y Fh(1.3.3)63 b(Sample)41 b(Init)g(File)150
-4807 y Fs(Here)27 b(is)f(an)h(example)g(of)f(an)h Fi(inputrc)k
-Fs(\014le.)39 b(This)26 b(illustrates)h(k)m(ey)h(binding,)e(v)-5
-b(ariable)27 b(assignmen)m(t,)i(and)150 4917 y(conditional)j(syn)m
+(from)630 4643 y Fs(/etc/inputrc)p Ft(:)870 4771 y Fs($include)46
+b(/etc/inputrc)150 4956 y Fi(1.3.3)63 b(Sample)41 b(Init)g(File)150
+5103 y Ft(Here)27 b(is)f(an)h(example)g(of)f(an)h Fj(inputrc)k
+Ft(\014le.)39 b(This)26 b(illustrates)h(k)m(ey)h(binding,)e(v)-5
+b(ariable)27 b(assignmen)m(t,)i(and)150 5212 y(conditional)j(syn)m
(tax.)p eop end
-%%Page: 12 16
-TeXDict begin 12 15 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(12)390 408 y Fr(#)47
+%%Page: 13 17
+TeXDict begin 13 16 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(13)p eop end
+%%Page: 14 18
+TeXDict begin 14 17 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(14)390 408 y Fs(#)47
b(This)g(file)g(controls)e(the)i(behaviour)e(of)j(line)e(input)h
(editing)e(for)390 518 y(#)i(programs)f(that)h(use)g(the)f(GNU)h
(Readline)f(library.)93 b(Existing)390 628 y(#)47 b(programs)f(include)
@@ -7684,9 +7750,9 @@ h(function)f(name)g(is)h(ignored)p 3970 2401 42 76 v
4902 y(#)390 5011 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(ANSI)g(mode)
390 5121 y(#)390 5230 y(#"\\M-\\C-[D":)331 b(backward-char)390
5340 y(#"\\M-\\C-[C":)g(forward-char)p eop end
-%%Page: 13 17
-TeXDict begin 13 16 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(13)390 299 y Fr(#"\\M-\\C-[A":)331
+%%Page: 15 19
+TeXDict begin 15 18 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(15)390 299 y Fs(#"\\M-\\C-[A":)331
b(previous-history)390 408 y(#"\\M-\\C-[B":)g(next-history)390
628 y(C-q:)47 b(quoted-insert)390 847 y($endif)390 1066
y(#)g(An)h(old-style)d(binding.)93 b(This)47 b(happens)f(to)h(be)g(the)
@@ -7719,545 +7785,559 @@ y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h
(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
(completion-query-items)42 b(150)p eop end
-%%Page: 14 18
-TeXDict begin 14 17 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(14)390 299 y Fr(#)47
+%%Page: 16 20
+TeXDict begin 16 19 bop 150 -116 a Ft(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(16)390 299 y Fs(#)47
b(For)g(FTP)390 408 y($if)g(Ftp)390 518 y("\\C-xg":)f("get)g(\\M-?")390
628 y("\\C-xt":)g("put)g(\\M-?")390 737 y("\\M-.":)g(yank-last-arg)390
-847 y($endif)150 1077 y Fq(1.4)68 b(Bindable)45 b(Readline)i(Commands)
-150 1237 y Fs(This)25 b(section)i(describ)s(es)d(Readline)j(commands)e
+847 y($endif)150 1085 y Fr(1.4)68 b(Bindable)45 b(Readline)i(Commands)
+150 1244 y Ft(This)25 b(section)i(describ)s(es)d(Readline)j(commands)e
(that)h(ma)m(y)g(b)s(e)f(b)s(ound)f(to)i(k)m(ey)h(sequences.)39
-b(Command)150 1346 y(names)30 b(without)h(an)f(accompan)m(ying)i(k)m
+b(Command)150 1354 y(names)30 b(without)h(an)f(accompan)m(ying)i(k)m
(ey)f(sequence)g(are)g(un)m(b)s(ound)c(b)m(y)k(default.)275
-1480 y(In)25 b(the)h(follo)m(wing)i(descriptions,)f Fi(p)s(oin)m(t)h
-Fs(refers)e(to)h(the)f(curren)m(t)g(cursor)g(p)s(osition,)h(and)f
-Fi(mark)31 b Fs(refers)150 1590 y(to)40 b(a)f(cursor)f(p)s(osition)h
-(sa)m(v)m(ed)h(b)m(y)f(the)g Fr(set-mark)d Fs(command.)66
+1487 y(In)25 b(the)h(follo)m(wing)i(descriptions,)f Fj(p)s(oin)m(t)h
+Ft(refers)e(to)h(the)f(curren)m(t)g(cursor)g(p)s(osition,)h(and)f
+Fj(mark)31 b Ft(refers)150 1597 y(to)40 b(a)f(cursor)f(p)s(osition)h
+(sa)m(v)m(ed)h(b)m(y)f(the)g Fs(set-mark)d Ft(command.)66
b(The)38 b(text)i(b)s(et)m(w)m(een)g(the)f(p)s(oin)m(t)g(and)150
-1699 y(mark)30 b(is)h(referred)e(to)i(as)g(the)f Fi(region)p
-Fs(.)150 1897 y Fh(1.4.1)63 b(Commands)42 b(F)-10 b(or)41
-b(Mo)m(ving)150 2067 y Fr(beginning-of-line)26 b(\(C-a\))630
-2177 y Fs(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f(curren)m(t)g
-(line.)150 2335 y Fr(end-of-line)d(\(C-e\))630 2444 y
-Fs(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
-2602 y Fr(forward-char)c(\(C-f\))630 2711 y Fs(Mo)m(v)m(e)32
-b(forw)m(ard)e(a)h(c)m(haracter.)150 2869 y Fr(backward-char)c(\(C-b\))
-630 2978 y Fs(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150
-3136 y Fr(forward-word)d(\(M-f\))630 3246 y Fs(Mo)m(v)m(e)32
+1706 y(mark)30 b(is)h(referred)e(to)i(as)g(the)f Fj(region)p
+Ft(.)150 1903 y Fi(1.4.1)63 b(Commands)42 b(F)-10 b(or)41
+b(Mo)m(ving)150 2074 y Fs(beginning-of-line)26 b(\(C-a\))630
+2183 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f(curren)m(t)g
+(line.)150 2340 y Fs(end-of-line)d(\(C-e\))630 2450 y
+Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
+2607 y Fs(forward-char)c(\(C-f\))630 2716 y Ft(Mo)m(v)m(e)32
+b(forw)m(ard)e(a)h(c)m(haracter.)150 2873 y Fs(backward-char)c(\(C-b\))
+630 2983 y Ft(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150
+3140 y Fs(forward-word)d(\(M-f\))630 3249 y Ft(Mo)m(v)m(e)32
b(forw)m(ard)e(to)h(the)f(end)g(of)g(the)h(next)f(w)m(ord.)41
b(W)-8 b(ords)30 b(are)h(comp)s(osed)f(of)g(letters)i(and)630
-3355 y(digits.)150 3513 y Fr(backward-word)27 b(\(M-b\))630
-3622 y Fs(Mo)m(v)m(e)36 b(bac)m(k)e(to)g(the)g(start)g(of)g(the)g
+3359 y(digits.)150 3516 y Fs(backward-word)27 b(\(M-b\))630
+3625 y Ft(Mo)m(v)m(e)36 b(bac)m(k)e(to)g(the)g(start)g(of)g(the)g
(curren)m(t)f(or)g(previous)g(w)m(ord.)50 b(W)-8 b(ords)34
-b(are)g(comp)s(osed)630 3732 y(of)d(letters)g(and)f(digits.)150
-3889 y Fr(clear-screen)d(\(C-l\))630 3999 y Fs(Clear)g(the)g(screen)f
+b(are)g(comp)s(osed)630 3735 y(of)d(letters)g(and)f(digits.)150
+3892 y Fs(clear-screen)d(\(C-l\))630 4001 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 4109 y(of)k(the)f(screen.)150
-4266 y Fr(redraw-current-line)25 b(\(\))630 4376 y Fs(Refresh)30
+(curren)m(t)g(line)g(at)g(the)g(top)630 4111 y(of)k(the)f(screen.)150
+4268 y Fs(redraw-current-line)25 b(\(\))630 4377 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 4573 y Fh(1.4.2)63 b(Commands)42 b(F)-10 b(or)41
-b(Manipulating)h(The)f(History)150 4744 y Fr(accept-line)27
-b(\(Newline)h(or)i(Return\))630 4854 y Fs(Accept)36 b(the)g(line)f
+(ound.)150 4574 y Fi(1.4.2)63 b(Commands)42 b(F)-10 b(or)41
+b(Manipulating)h(The)f(History)150 4745 y Fs(accept-line)27
+b(\(Newline)h(or)i(Return\))630 4854 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
-4963 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 Fr(add_history\(\))p Fs(.)42
-b(If)31 b(this)630 5073 y(line)g(is)f(a)h(mo)s(di\014ed)e(history)h
+4964 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 5074 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 5230 y Fr(previous-history)26 b(\(C-p\))630
-5340 y Fs(Mo)m(v)m(e)32 b(`bac)m(k')g(through)e(the)g(history)h(list,)g
+(state.)150 5230 y Fs(previous-history)26 b(\(C-p\))630
+5340 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.)p eop end
-%%Page: 15 19
-TeXDict begin 15 18 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(15)150 299 y Fr(next-history)27
-b(\(C-n\))630 408 y Fs(Mo)m(v)m(e)32 b(`forw)m(ard')f(through)e(the)i
+%%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(next-history)27
+b(\(C-n\))630 408 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
-558 y Fr(beginning-of-history)25 b(\(M-<\))630 667 y
-Fs(Mo)m(v)m(e)32 b(to)g(the)e(\014rst)g(line)g(in)h(the)f(history)-8
-b(.)150 817 y Fr(end-of-history)26 b(\(M->\))630 927
-y Fs(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(input)e(history)-8
+558 y Fs(beginning-of-history)25 b(\(M-<\))630 667 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 817 y Fs(end-of-history)26 b(\(M->\))630 927
+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
-1076 y Fr(reverse-search-history)24 b(\(C-r\))630 1186
-y Fs(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g(the)f(curren)m(t)g
+1076 y Fs(reverse-search-history)24 b(\(C-r\))630 1186
+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
1295 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 1445 y Fr(forward-search-history)24
-b(\(C-s\))630 1554 y Fs(Searc)m(h)30 b(forw)m(ard)f(starting)h(at)g
-(the)g(curren)m(t)f(line)h(and)f(mo)m(ving)h(`do)m(wn')f(through)g(the)
-h(the)630 1664 y(history)g(as)h(necessary)-8 b(.)41 b(This)30
-b(is)g(an)h(incremen)m(tal)g(searc)m(h.)150 1813 y Fr
+(tal)i(searc)m(h.)150 1445 y Fs(forward-search-history)24
+b(\(C-s\))630 1554 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 1664 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 1813 y Fs
(non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24
-b(\(M-p\))630 1923 y Fs(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g
+b(\(M-p\))630 1923 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 2032 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
-2142 y(user.)150 2291 y Fr(non-incremental-forward-)o(sear)o(ch-h)o
-(ist)o(ory)24 b(\(M-n\))630 2401 y Fs(Searc)m(h)30 b(forw)m(ard)f
-(starting)h(at)g(the)g(curren)m(t)f(line)h(and)f(mo)m(ving)h(`do)m(wn')
-f(through)g(the)h(the)630 2511 y(history)d(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 2620 y(user.)150 2770 y Fr(history-search-forward)d(\(\))630
-2879 y Fs(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
-2989 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 3098 y(b)s(eginning)32 b(of)g(a)h(history)g(line.)47
+2142 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 2291 y Fs
+(non-incremental-forward-)o(sear)o(ch-h)o(ist)o(ory)24
+b(\(M-n\))630 2401 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 2511 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
+2620 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 2770 y Fs
+(history-search-forward)24 b(\(\))630 2879 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 2989 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
+3098 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 3208 y(command)d(is)h(un)m(b)s(ound.)150
-3357 y Fr(history-search-backward)24 b(\(\))630 3467
-y Fs(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g
+3357 y Fs(history-search-backward)24 b(\(\))630 3467
+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
3577 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
3686 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 3796 y(command)d(is)h(un)m(b)s(ound.)150
-3945 y Fr(history-substr-search-fo)o(rwar)o(d)24 b(\(\))630
-4055 y Fs(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)f(for)g
+3945 y Fs(history-substr-search-fo)o(rwar)o(d)24 b(\(\))630
+4055 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
4164 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 4274 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 4384 y(is)e(un)m(b)s(ound.)150 4533 y Fr
+(command)630 4384 y(is)e(un)m(b)s(ound.)150 4533 y Fs
(history-substr-search-ba)o(ckwa)o(rd)24 b(\(\))630 4643
-y Fs(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g
+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
4752 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 4862 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 4971 y(is)e(un)m(b)s(ound.)150 5121 y Fr(yank-nth-arg)d
-(\(M-C-y\))630 5230 y Fs(Insert)37 b(the)g(\014rst)f(argumen)m(t)i(to)f
+(command)630 4971 y(is)e(un)m(b)s(ound.)150 5121 y Fs(yank-nth-arg)d
+(\(M-C-y\))630 5230 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
5340 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 Fi(n)p Fs(,)g(insert)g(the)g
-Fi(n)p Fs(th)f(w)m(ord)g(from)p eop end
-%%Page: 16 20
-TeXDict begin 16 19 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(16)630 299 y(the)35
+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)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(the)35
b(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 408 y(0\).)69
b(A)40 b(negativ)m(e)h(argumen)m(t)f(inserts)g(the)f
-Fi(n)p Fs(th)g(w)m(ord)g(from)g(the)h(end)f(of)h(the)f(previous)630
-518 y(command.)48 b(Once)33 b(the)g(argumen)m(t)h Fi(n)e
-Fs(is)h(computed,)h(the)f(argumen)m(t)g(is)g(extracted)i(as)e(if)630
-628 y(the)e(`)p Fr(!)p Fk(n)p Fs(')f(history)g(expansion)g(had)g(b)s
-(een)g(sp)s(eci\014ed.)150 798 y Fr(yank-last-arg)d(\(M-.)i(or)h(M-_\))
-630 908 y Fs(Insert)k(last)i(argumen)m(t)g(to)g(the)f(previous)f
+Fj(n)p Ft(th)g(w)m(ord)g(from)g(the)h(end)f(of)h(the)f(previous)630
+518 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
+628 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 775 y Fs(yank-last-arg)d(\(M-.)i(or)h(M-_\))
+630 885 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
-1018 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 Fr(yank-nth-arg)p
-Fs(.)630 1127 y(Successiv)m(e)26 b(calls)g(to)f Fr(yank-last-arg)c
-Fs(mo)m(v)m(e)27 b(bac)m(k)e(through)f(the)h(history)g(list,)i
-(inserting)630 1237 y(the)c(last)g(w)m(ord)f(\(or)h(the)g(w)m(ord)f(sp)
+994 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 1104 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 1214 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 1346 y(in)36 b(turn.)58 b(An)m(y)36
+(of)f(eac)m(h)h(line)630 1323 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 1456 y(the)d(direction)g(to)h(mo)m(v)m(e)g
+(calls)h(determines)630 1433 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 1565 y(direction)23 b(through)g(the)g(history)f
+(switc)m(hes)h(the)630 1542 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 1675 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 Fr(!$)p Fs(')f(history)g(expansion)
-h(had)f(b)s(een)630 1785 y(sp)s(eci\014ed.)150 1995 y
-Fh(1.4.3)63 b(Commands)42 b(F)-10 b(or)41 b(Changing)g(T)-10
-b(ext)150 2173 y Fk(end-of-file)27 b Fr(\(usually)h(C-d\))630
-2282 y Fs(The)e(c)m(haracter)h(indicating)h(end-of-\014le)e(as)h(set,)g
-(for)f(example,)i(b)m(y)e Fr(stty)p Fs(.)39 b(If)25 b(this)h(c)m
-(harac-)630 2392 y(ter)c(is)g(read)g(when)e(there)i(are)h(no)e(c)m
+(facilities)630 1652 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 1762 y(sp)s(eci\014ed.)150 1949 y
+Fi(1.4.3)63 b(Commands)42 b(F)-10 b(or)41 b(Changing)g(T)-10
+b(ext)150 2115 y Fl(end-of-file)27 b Fs(\(usually)h(C-d\))630
+2225 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 2334 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 2501 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 Fl(eof)p
-Fs(.)150 2672 y Fr(delete-char)e(\(C-d\))630 2782 y Fs(Delete)35
+(eginning)630 2444 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 2591 y Fs(delete-char)e(\(C-d\))630 2701 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 2891
-y(as)e(the)f(tt)m(y)i Fl(eof)d Fs(c)m(haracter,)j(as)f
-Fk(C-d)e Fs(commonly)i(is,)g(see)g(ab)s(o)m(v)m(e)h(for)e(the)g
-(e\013ects.)150 3062 y Fr(backward-delete-char)25 b(\(Rubout\))630
-3172 y Fs(Delete)32 b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40
+(is)g(b)s(ound)e(to)j(the)g(same)f(c)m(haracter)630 2811
+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 2958 y Fs(backward-delete-char)25 b(\(Rubout\))630
+3068 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
-3281 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
-3452 y Fr(forward-backward-delete-)o(char)24 b(\(\))630
-3561 y Fs(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h
+3177 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
+3325 y Fs(forward-backward-delete-)o(char)24 b(\(\))630
+3434 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
-3671 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s
+3544 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
-3781 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
-3951 y Fr(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 4061
-y Fs(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)h
+3654 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
+3801 y Fs(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 3911
+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
-4170 y(sequences)d(lik)m(e)g Fk(C-q)p Fs(,)f(for)g(example.)150
-4341 y Fr(tab-insert)e(\(M-TAB\))630 4451 y Fs(Insert)i(a)h(tab)f(c)m
-(haracter.)150 4621 y Fr(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o
-(\))630 4731 y Fs(Insert)g(y)m(ourself.)150 4902 y Fr(transpose-chars)c
-(\(C-t\))630 5011 y Fs(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)g
+4020 y(sequences)d(lik)m(e)g Fl(C-q)p Ft(,)f(for)g(example.)150
+4168 y Fs(tab-insert)e(\(M-TAB\))630 4278 y Ft(Insert)i(a)h(tab)f(c)m
+(haracter.)150 4425 y Fs(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o
+(\))630 4535 y Ft(Insert)g(y)m(ourself.)150 4682 y Fs
+(bracketed-paste-begin)25 b(\(\))630 4792 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
+4902 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 5011 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
+5121 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
+5230 y(as)i(if)g(eac)m(h)i(one)e(w)m(as)h(b)s(ound)d(to)i
+Fs(self-insert)p Ft(\))e(instead)i(of)h(executing)g(an)m(y)f(editing)
+630 5340 y(commands.)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(transpose-chars)26
+b(\(C-t\))630 408 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 5121 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m
+(cursor,)630 518 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 5230 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h
+g(of)h(the)630 628 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 5340 y(ha)m(v)m(e)32
-b(no)e(e\013ect.)p eop end
-%%Page: 17 21
-TeXDict begin 17 20 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(17)150 299 y Fr(transpose-words)26
-b(\(M-t\))630 408 y Fs(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 518 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 628 y(last)j(t)m(w)m(o)h
-(w)m(ords)e(on)g(the)h(line.)150 792 y Fr(upcase-word)c(\(M-u\))630
-902 y Fs(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i
+b(Negativ)m(e)25 b(argumen)m(ts)630 737 y(ha)m(v)m(e)32
+b(no)e(e\013ect.)150 907 y Fs(transpose-words)c(\(M-t\))630
+1016 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 1126 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 1236 y(last)j(t)m(w)m(o)h(w)m
+(ords)e(on)g(the)h(line.)150 1405 y Fs(upcase-word)c(\(M-u\))630
+1515 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
-1012 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 1176 y Fr(downcase-word)d(\(M-l\))630
-1286 y Fs(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))i
+1624 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 1794 y Fs(downcase-word)d(\(M-l\))630
+1904 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 1396 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 1560 y Fr(capitalize-word)26
-b(\(M-c\))630 1670 y Fs(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo)m
+(ercase)630 2013 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 2183 y Fs(capitalize-word)26
+b(\(M-c\))630 2292 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 1780 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 1944 y Fr(overwrite-mode)26
-b(\(\))630 2054 y Fs(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48
+(capitalize)630 2402 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 2571 y Fs(overwrite-mode)26
+b(\(\))630 2681 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 2163 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37
+h(switc)m(hes)630 2791 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 2273 y(insert)30 b(mo)s(de.)41
-b(This)30 b(command)h(a\013ects)h(only)e Fr(emacs)f Fs(mo)s(de;)i
-Fr(vi)f Fs(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 2383
+(t,)i(switc)m(hes)e(to)630 2900 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 3010
y(di\013eren)m(tly)-8 b(.)42 b(Eac)m(h)31 b(call)h(to)f
-Fr(readline\(\))c Fs(starts)k(in)f(insert)g(mo)s(de.)630
-2520 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 Fr(self-insert)c Fs(replace)k(the)g(text)g(at)630
-2629 y(p)s(oin)m(t)59 b(rather)f(than)h(pushing)e(the)i(text)g(to)h
+Fs(readline\(\))c Ft(starts)k(in)f(insert)g(mo)s(de.)630
+3149 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
+3259 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
-2739 y Fr(backward-delete-char)25 b Fs(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 2876
+3369 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 3508
y(By)g(default,)f(this)h(command)f(is)g(un)m(b)s(ound.)150
-3081 y Fh(1.4.4)63 b(Killing)42 b(And)e(Y)-10 b(anking)150
-3255 y Fr(kill-line)28 b(\(C-k\))630 3365 y Fs(Kill)j(the)f(text)i
+3718 y Fi(1.4.4)63 b(Killing)42 b(And)e(Y)-10 b(anking)150
+3895 y Fs(kill-line)28 b(\(C-k\))630 4004 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.)150
-3530 y Fr(backward-kill-line)25 b(\(C-x)30 b(Rubout\))630
-3639 y Fs(Kill)h(bac)m(kw)m(ard)g(to)g(the)f(b)s(eginning)g(of)g(the)h
-(line.)150 3804 y Fr(unix-line-discard)26 b(\(C-u\))630
-3914 y Fs(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 4079
-y Fr(kill-whole-line)c(\(\))630 4188 y Fs(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 4298 y(this)30
-b(is)h(un)m(b)s(ound.)150 4462 y Fr(kill-word)d(\(M-d\))630
-4572 y Fs(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 4682 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 Fr(forward-word)p
-Fs(.)150 4846 y Fr(backward-kill-word)25 b(\(M-DEL\))630
-4956 y Fs(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
-Fr(backward-word)p Fs(.)150 5121 y Fr(unix-word-rubout)d(\(C-w\))630
-5230 y Fs(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 5340 y(text)g(is)g(sa)m(v)m(ed)g(on)g(the)f
-(kill-ring.)p eop end
-%%Page: 18 22
-TeXDict begin 18 21 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(18)150 299 y Fr
-(unix-filename-rubout)25 b(\(\))630 408 y Fs(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 518
-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 693 y Fr(delete-horizontal-space)24
-b(\(\))630 803 y Fs(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
-978 y Fr(kill-region)d(\(\))630 1088 y Fs(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 1263 y Fr(copy-region-as-kill)25
-b(\(\))630 1373 y Fs(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 1482 y(By)31 b(default,)f(this)h(command)
-f(is)g(un)m(b)s(ound.)150 1657 y Fr(copy-backward-word)25
-b(\(\))630 1767 y Fs(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m
+4174 y Fs(backward-kill-line)25 b(\(C-x)30 b(Rubout\))630
+4283 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 4453 y
+Fs(unix-line-discard)c(\(C-u\))630 4562 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 4732 y Fs(kill-whole-line)c(\(\))630
+4842 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 4951 y(this)30 b(is)h(un)m(b)s(ound.)150
+5121 y Fs(kill-word)d(\(M-d\))630 5230 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 5340 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(.)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-word)25 b(\(M-DEL\))630 408 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 577 y
+Fs(unix-word-rubout)d(\(C-w\))630 686 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 796 y(text)g(is)g(sa)m(v)m(ed)
+g(on)g(the)f(kill-ring.)150 964 y Fs(unix-filename-rubout)25
+b(\(\))630 1073 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 1183 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
+1351 y Fs(delete-horizontal-space)24 b(\(\))630 1461
+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 1629
+y Fs(kill-region)d(\(\))630 1738 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 1906 y Fs(copy-region-as-kill)25 b(\(\))630
+2016 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 2125 y(By)31 b(default,)f(this)h(command)f
+(is)g(un)m(b)s(ound.)150 2293 y Fs(copy-backward-word)25
+b(\(\))630 2403 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 1877 y(same)31 b(as)f Fr(backward-word)p
-Fs(.)38 b(By)30 b(default,)h(this)f(command)g(is)h(un)m(b)s(ound.)150
-2052 y Fr(copy-forward-word)26 b(\(\))630 2161 y Fs(Cop)m(y)31
+f(are)i(the)630 2513 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
+2681 y Fs(copy-forward-word)26 b(\(\))630 2790 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
-2271 y(same)f(as)f Fr(forward-word)p Fs(.)38 b(By)30
+2900 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
-2446 y Fr(yank)f(\(C-y\))630 2556 y Fs(Y)-8 b(ank)31
+3068 y Fs(yank)f(\(C-y\))630 3177 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 2731 y Fr(yank-pop)d(\(M-y\))630 2841
-y Fs(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h(the)f(new)g(top.)54
+(p)s(oin)m(t.)150 3346 y Fs(yank-pop)d(\(M-y\))630 3455
+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
-2950 y(command)30 b(is)h Fr(yank)e Fs(or)h Fr(yank-pop)p
-Fs(.)150 3165 y Fh(1.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
-(ts)150 3345 y Fr(digit-argument)26 b(\()p Fk(M-0)p Fr(,)j
-Fk(M-1)p Fr(,)h(...)f Fk(M--)p Fr(\))630 3455 y Fs(Add)d(this)h(digit)g
+3565 y(command)30 b(is)h Fs(yank)e Ft(or)h Fs(yank-pop)p
+Ft(.)150 3773 y Fi(1.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
+(ts)150 3949 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 4058 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 3564 y Fk(M--)j Fs(starts)i(a)g(negativ)m(e)i
-(argumen)m(t.)150 3740 y Fr(universal-argument)25 b(\(\))630
-3849 y Fs(This)g(is)g(another)h(w)m(a)m(y)g(to)h(sp)s(ecify)e(an)g
+(new)f(argumen)m(t.)630 4168 y Fl(M--)j Ft(starts)i(a)g(negativ)m(e)i
+(argumen)m(t.)150 4336 y Fs(universal-argument)25 b(\(\))630
+4446 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 3959 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h
+(y)f(one)630 4555 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
-4068 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 Fr(universal-argument)630
-4178 y Fs(again)j(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h
+4665 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
+4774 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
-4288 y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y)
+4884 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
-4397 y(or)28 b(min)m(us)f(sign,)i(the)f(argumen)m(t)g(coun)m(t)h(for)e
-(the)i(next)f(command)f(is)h(m)m(ultiplied)h(b)m(y)e(four.)630
-4507 y(The)37 b(argumen)m(t)h(coun)m(t)f(is)h(initially)h(one,)g(so)f
-(executing)g(this)f(function)g(the)h(\014rst)e(time)630
-4616 y(mak)m(es)d(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)i(second)e
-(time)i(mak)m(es)f(the)g(argumen)m(t)g(coun)m(t)h(six-)630
-4726 y(teen,)e(and)f(so)h(on.)40 b(By)31 b(default,)g(this)f(is)g(not)h
-(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 4941 y Fh(1.4.6)63
+4994 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
+5103 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
+5213 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
+5322 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(.)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 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 5121 y Fr(complete)28 b(\(TAB\))630
-5230 y Fs(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
-5340 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.)p
-eop end
-%%Page: 19 23
-TeXDict begin 19 22 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(19)150 299 y Fr
-(possible-completions)25 b(\(M-?\))630 408 y Fs(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 518
-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 628 y Fr(completion-display-width)o Fs(,)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 Fr(COLUMNS)p Fs(,)630 737 y(or)30 b(the)h(screen)f(width,)g(in)g
-(that)h(order.)150 883 y Fr(insert-completions)25 b(\(M-*\))630
-992 y Fs(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
-1102 y(b)m(y)g Fr(possible-completions)p Fs(.)150 1247
-y Fr(menu-complete)d(\(\))630 1357 y Fs(Similar)d(to)g
-Fr(complete)p Fs(,)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 1466 y(from)37
+b(Y)-10 b(ou)150 483 y Fs(complete)28 b(\(TAB\))630 593
+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
+702 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
+886 y Fs(possible-completions)25 b(\(M-?\))630 996 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
+1105 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 1215 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 1325 y(or)30 b(the)h(screen)f
+(width,)g(in)g(that)h(order.)150 1509 y Fs(insert-completions)25
+b(\(M-*\))630 1618 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 1728 y(b)m(y)g Fs(possible-completions)p
+Ft(.)150 1912 y Fs(menu-complete)d(\(\))630 2021 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 2131 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 Fr(menu-complete)630 1576 y Fs(steps)i(through)g
+b(execution)g(of)f Fs(menu-complete)630 2241 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 1685 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g
+(matc)m(h)f(in)f(turn.)630 2350 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 1795 y(of)f Fr(bell-style)p
-Fs(\))e(and)h(the)h(original)i(text)f(is)f(restored.)57
-b(An)36 b(argumen)m(t)h(of)f Fi(n)f Fs(mo)m(v)m(es)i
-Fi(n)630 1905 y Fs(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e
+b(ject)36 b(to)i(the)f(setting)630 2460 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 2569 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 2014 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
+(used)g(to)630 2679 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 2124 y Fr(TAB)p Fs(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m
-(y)i(default.)150 2269 y Fr(menu-complete-backward)24
-b(\(\))630 2379 y Fs(Iden)m(tical)36 b(to)g Fr(menu-complete)p
-Fs(,)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 2488 y(completions,)d(as)e(if)h Fr(menu-complete)26
-b Fs(had)k(b)s(een)g(giv)m(en)h(a)g(negativ)m(e)i(argumen)m(t.)150
-2634 y Fr(delete-char-or-list)25 b(\(\))630 2743 y Fs(Deletes)41
+(ound)e(to)630 2789 y Fs(TAB)p Ft(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m
+(y)i(default.)150 2973 y Fs(menu-complete-backward)24
+b(\(\))630 3082 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 3192 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
+3376 y Fs(delete-char-or-list)25 b(\(\))630 3485 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 2853 y(line)50 b(\(lik)m(e)h
-Fr(delete-char)p Fs(\).)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 2963
-y Fr(possible-completions)p Fs(.)35 b(This)30 b(command)g(is)g(un)m(b)s
-(ound)e(b)m(y)i(default.)150 3148 y Fh(1.4.7)63 b(Keyb)s(oard)41
-b(Macros)150 3313 y Fr(start-kbd-macro)26 b(\(C-x)j(\(\))630
-3422 y Fs(Begin)i(sa)m(ving)h(the)e(c)m(haracters)i(t)m(yp)s(ed)e(in)m
+(eginning)e(or)h(end)f(of)h(the)630 3595 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 3705
+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 3928 y Fi(1.4.7)63 b(Keyb)s(oard)41
+b(Macros)150 4113 y Fs(start-kbd-macro)26 b(\(C-x)j(\(\))630
+4222 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
-3568 y Fr(end-kbd-macro)d(\(C-x)i(\)\))630 3677 y Fs(Stop)e(sa)m(ving)h
+4406 y Fs(end-kbd-macro)d(\(C-x)i(\)\))630 4516 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 3787
-y(de\014nition.)150 3932 y Fr(call-last-kbd-macro)c(\(C-x)k(e\))630
-4042 y Fs(Re-execute)37 b(the)e(last)h(k)m(eyb)s(oard)f(macro)h
+(eyb)s(oard)g(macro)h(and)f(sa)m(v)m(e)i(the)630 4625
+y(de\014nition.)150 4809 y Fs(call-last-kbd-macro)c(\(C-x)k(e\))630
+4919 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
-4151 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 4297 y Fr(print-last-kbd-macro)25 b(\(\))630
-4406 y Fs(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 Fi(inputrc)k
-Fs(\014le.)150 4591 y Fh(1.4.8)63 b(Some)41 b(Miscellaneous)i(Commands)
-150 4756 y Fr(re-read-init-file)26 b(\(C-x)j(C-r\))630
-4866 y Fs(Read)22 b(in)g(the)g(con)m(ten)m(ts)h(of)f(the)g
-Fi(inputrc)27 b Fs(\014le,)d(and)d(incorp)s(orate)h(an)m(y)h(bindings)d
-(or)i(v)-5 b(ariable)630 4975 y(assignmen)m(ts)31 b(found)e(there.)150
-5121 y Fr(abort)g(\(C-g\))630 5230 y Fs(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 5340 y(setting)j(of)g Fr(bell-style)p
-Fs(\).)p eop end
-%%Page: 20 24
-TeXDict begin 20 23 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(20)150 299 y Fr
-(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p Fk(x)p
-Fr(,)g(...)o(\))630 408 y Fs(If)e(the)h(meta\014ed)g(c)m(haracter)h
-Fi(x)34 b Fs(is)28 b(lo)m(w)m(ercase,)i(run)d(the)g(command)h(that)g
-(is)g(b)s(ound)d(to)k(the)630 518 y(corresp)s(onding)g(upp)s(ercase)h
-(c)m(haracter.)150 667 y Fr(prefix-meta)d(\(ESC\))630
-777 y Fs(Metafy)39 b(the)e(next)h(c)m(haracter)h(t)m(yp)s(ed.)62
+5029 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 5213 y Fs(print-last-kbd-macro)25 b(\(\))630
+5322 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.)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 Fi(1.4.8)63
+b(Some)41 b(Miscellaneous)i(Commands)150 466 y Fs(re-read-init-file)26
+b(\(C-x)j(C-r\))630 576 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 685 y(assignmen)m(ts)31
+b(found)e(there.)150 836 y Fs(abort)g(\(C-g\))630 945
+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
+1055 y(setting)j(of)g Fs(bell-style)p Ft(\).)150 1205
+y Fs(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p Fl(x)p
+Fs(,)g(...)o(\))630 1315 y Ft(If)e(the)h(meta\014ed)g(c)m(haracter)h
+Fj(x)34 b Ft(is)28 b(lo)m(w)m(ercase,)i(run)d(the)g(command)h(that)g
+(is)g(b)s(ound)d(to)k(the)630 1425 y(corresp)s(onding)g(upp)s(ercase)h
+(c)m(haracter.)150 1575 y Fs(prefix-meta)d(\(ESC\))630
+1685 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 887 y(T)m(yping)30 b(`)p Fr(ESC)g(f)p Fs(')g(is)h(equiv)-5
-b(alen)m(t)31 b(to)g(t)m(yping)g Fk(M-f)p Fs(.)150 1036
-y Fr(undo)e(\(C-_)g(or)h(C-x)g(C-u\))630 1146 y Fs(Incremen)m(tal)h
+b(.)630 1794 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 1945
+y Fs(undo)e(\(C-_)g(or)h(C-x)g(C-u\))630 2054 y Ft(Incremen)m(tal)h
(undo,)f(separately)h(remem)m(b)s(ered)f(for)g(eac)m(h)i(line.)150
-1295 y Fr(revert-line)27 b(\(M-r\))630 1405 y Fs(Undo)33
+2205 y Fs(revert-line)27 b(\(M-r\))630 2314 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 Fr(undo)f Fs(command)630
-1514 y(enough)e(times)h(to)g(get)h(bac)m(k)f(to)g(the)f(b)s(eginning.)
-150 1664 y Fr(tilde-expand)d(\(M-~\))630 1773 y Fs(P)m(erform)j(tilde)h
-(expansion)g(on)f(the)g(curren)m(t)h(w)m(ord.)150 1923
-y Fr(set-mark)d(\(C-@\))630 2032 y Fs(Set)33 b(the)g(mark)f(to)i(the)f
+b(is)h(lik)m(e)i(executing)f(the)f Fs(undo)f Ft(command)630
+2424 y(enough)e(times)h(to)g(get)h(bac)m(k)f(to)g(the)f(b)s(eginning.)
+150 2574 y Fs(tilde-expand)d(\(M-~\))630 2684 y Ft(P)m(erform)j(tilde)h
+(expansion)g(on)f(the)g(curren)m(t)h(w)m(ord.)150 2834
+y Fs(set-mark)d(\(C-@\))630 2944 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 2142 y(to)f(that)g(p)s(osition.)
-150 2291 y Fr(exchange-point-and-mark)24 b(\(C-x)29 b(C-x\))630
-2401 y Fs(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with)g(the)g(mark.)43
+(supplied,)f(the)h(mark)g(is)f(set)630 3054 y(to)f(that)g(p)s(osition.)
+150 3204 y Fs(exchange-point-and-mark)24 b(\(C-x)29 b(C-x\))630
+3314 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 2511 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 2660
-y Fr(character-search)26 b(\(C-]\))630 2770 y Fs(A)f(c)m(haracter)h(is)
+(sa)m(v)m(ed)630 3423 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 3574
+y Fs(character-search)26 b(\(C-]\))630 3683 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 2879 y(A)30
+(ccurrence)g(of)g(that)g(c)m(haracter.)630 3793 y(A)30
b(negativ)m(e)j(coun)m(t)e(searc)m(hes)g(for)f(previous)g(o)s
-(ccurrences.)150 3029 y Fr(character-search-backwar)o(d)24
-b(\(M-C-]\))630 3138 y Fs(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s
+(ccurrences.)150 3943 y Fs(character-search-backwar)o(d)24
+b(\(M-C-]\))630 4053 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 3248 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f
+g(that)630 4162 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
-3397 y Fr(skip-csi-sequence)d(\(\))630 3507 y Fs(Read)i(enough)f(c)m
+4313 y Fs(skip-csi-sequence)d(\(\))630 4422 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 3616 y(for)37 b(k)m(eys)h(lik)m(e)g(Home)g
+(as)g(those)h(de\014ned)630 4532 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 3726 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 Fr("\\)p
-Fs(e[)p Fr(")p Fs(,)g(k)m(eys)f(pro-)630 3836 y(ducing)31
+(trol)g(Sequence)630 4642 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 4751 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 3945 y(command,)f
+(explicitly)j(b)s(ound)c(to)i(a)h(readline)630 4861 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 4055 y(un)m(b)s(ound)d(b)m
+(editing)h(bu\013er.)44 b(This)31 b(is)630 4970 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
-4204 y Fr(insert-comment)26 b(\(M-#\))630 4314 y Fs(Without)36
+5121 y Fs(insert-comment)26 b(\(M-#\))630 5230 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 Fr(comment-begin)c Fs(v)-5 b(ariable)36
-b(is)g(in-)630 4423 y(serted)c(at)g(the)g(b)s(eginning)f(of)h(the)f
+b(of)g(the)g Fs(comment-begin)c Ft(v)-5 b(ariable)36
+b(is)g(in-)630 5340 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 4533 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 4643 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5
-b(alue)31 b(of)f Fr(comment-begin)p Fs(,)e(the)i(v)-5
-b(alue)31 b(is)g(inserted,)g(otherwise)g(the)630 4752
-y(c)m(haracters)42 b(in)d Fr(comment-begin)e Fs(are)j(deleted)h(from)f
-(the)g(b)s(eginning)g(of)g(the)g(line.)71 b(In)630 4862
-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 5011 y Fr(dump-functions)d
-(\(\))630 5121 y Fs(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
-5230 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h
+(supplied,)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)630 299 y(this)36
+b(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 408 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
+518 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
+628 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 787 y Fs(dump-functions)d
+(\(\))630 897 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
+1006 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
-5340 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fi(inputrc)k
-Fs(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c(b)m(y)k
-(default.)p eop end
-%%Page: 21 25
-TeXDict begin 21 24 bop 150 -116 a Fs(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(21)150 299 y Fr(dump-variables)26
-b(\(\))630 408 y Fs(Prin)m(t)21 b(all)h(of)g(the)f(settable)i(v)-5
+1116 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 1275 y Fs(dump-variables)26 b(\(\))630
+1385 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 518 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 628 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h
-Fi(inputrc)k Fs(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c
-(b)m(y)k(default.)150 787 y Fr(dump-macros)c(\(\))630
-897 y Fs(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
-1006 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e
+(output)f(stream.)630 1494 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 1604 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 1763 y Fs(dump-macros)c(\(\))630
+1873 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
+1983 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
-1116 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
-Fi(inputrc)35 b Fs(\014le.)41 b(This)29 b(command)h(is)g(un)m(b)s(ound)
-d(b)m(y)630 1225 y(default.)150 1385 y Fr(emacs-editing-mode)e(\(C-e\))
-630 1494 y Fs(When)30 b(in)g Fr(vi)g Fs(command)g(mo)s(de,)g(this)h
-(causes)f(a)h(switc)m(h)g(to)g Fr(emacs)e Fs(editing)i(mo)s(de.)150
-1654 y Fr(vi-editing-mode)26 b(\(M-C-j\))630 1763 y Fs(When)k(in)g
-Fr(emacs)f Fs(editing)i(mo)s(de,)f(this)h(causes)f(a)h(switc)m(h)g(to)g
-Fr(vi)f Fs(editing)h(mo)s(de.)150 1996 y Fq(1.5)68 b(Readline)47
-b(vi)e(Mo)t(de)150 2155 y Fs(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 Fr(vi)f
-Fs(editing)h(functions,)f(it)h(do)s(es)g(con)m(tain)150
-2265 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 Fr(vi)g Fs(mo)s(de)f(b)s(eha)m(v)m(es)i(as)f(sp)s
-(eci\014ed)f(in)150 2374 y(the)e Fl(posix)e Fs(standard.)275
-2509 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 Fr(emacs)f Fs(and)g Fr(vi)h Fs(editing)g(mo)s(des,)g(use)g(the)g
-(command)150 2619 y Fk(M-C-j)36 b Fs(\(b)s(ound)h(to)h
-(emacs-editing-mo)s(de)i(when)d(in)g Fr(vi)h Fs(mo)s(de)f(and)g(to)i
-(vi-editing-mo)s(de)g(in)e Fr(emacs)150 2728 y Fs(mo)s(de\).)k(The)30
-b(Readline)h(default)f(is)g Fr(emacs)f Fs(mo)s(de.)275
-2863 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f(in)g Fr(vi)f
-Fs(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 2972 y(had)f(t)m(yp)s(ed)g(an)g(`)p
-Fr(i)p Fs('.)41 b(Pressing)29 b Fr(ESC)f Fs(switc)m(hes)i(y)m(ou)g(in)m
+2092 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 2202 y(default.)150 2361 y Fs(emacs-editing-mode)e(\(C-e\))
+630 2471 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
+2630 y Fs(vi-editing-mode)26 b(\(M-C-j\))630 2740 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 2980 y Fr(1.5)68 b(Readline)47
+b(vi)e(Mo)t(de)150 3140 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
+3249 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 3359 y(the)e Fm(posix)e Ft(standard.)275
+3494 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 3603 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 3713 y Ft(mo)s(de\).)k(The)30
+b(Readline)h(default)f(is)g Fs(emacs)f Ft(mo)s(de.)275
+3847 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 3957 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
-3082 y(text)35 b(of)f(the)g(line)g(with)f(the)h(standard)f
-Fr(vi)g Fs(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 3191 y(`)p Fr(k)p Fs(')d(and)e(subsequen)m
-(t)h(lines)h(with)f(`)p Fr(j)p Fs(',)g(and)g(so)h(forth.)p
+4066 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 4176 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: 22 26
-TeXDict begin 22 25 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(22)150
-299 y Fo(2)80 b(Programming)54 b(with)f(GNU)h(Readline)150
-527 y Fs(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 Fl(gnu)f Fs(Readline)i(Library)e(and)g(other)h
-(programs.)150 636 y(If)k(y)m(ou)g(are)g(a)h(programmer,)f(and)f(y)m
-(ou)i(wish)e(to)i(include)f(the)g(features)g(found)f(in)h
-Fl(gnu)g Fs(Readline)g(suc)m(h)150 746 y(as)c(completion,)j(line)d
-(editing,)i(and)d(in)m(teractiv)m(e)k(history)d(manipulation)g(in)f(y)m
-(our)h(o)m(wn)g(programs,)h(this)150 855 y(section)32
-b(is)e(for)g(y)m(ou.)150 1085 y Fq(2.1)68 b(Basic)45
-b(Beha)l(vior)150 1245 y Fs(Man)m(y)39 b(programs)e(pro)m(vide)h(a)h
-(command)f(line)g(in)m(terface,)k(suc)m(h)37 b(as)i Fr(mail)p
-Fs(,)g Fr(ftp)p Fs(,)g(and)e Fr(sh)p Fs(.)63 b(F)-8 b(or)39
-b(suc)m(h)150 1354 y(programs,)29 b(the)f(default)h(b)s(eha)m(viour)f
-(of)h(Readline)g(is)g(su\016cien)m(t.)40 b(This)28 b(section)i(describ)
-s(es)d(ho)m(w)i(to)g(use)150 1464 y(Readline)35 b(in)f(the)h(simplest)f
-(w)m(a)m(y)h(p)s(ossible,)h(p)s(erhaps)c(to)j(replace)h(calls)f(in)f(y)
-m(our)h(co)s(de)f(to)h Fr(gets\(\))e Fs(or)150 1573 y
-Fr(fgets\(\))p Fs(.)275 1707 y(The)f(function)g Fr(readline\(\))e
-Fs(prin)m(ts)i(a)g(prompt)g Fi(prompt)i Fs(and)e(then)g(reads)g(and)g
-(returns)f(a)i(single)150 1816 y(line)g(of)g(text)h(from)e(the)h(user.)
-47 b(If)32 b Fi(prompt)i Fs(is)e Fr(NULL)g Fs(or)h(the)f(empt)m(y)i
-(string,)f(no)g(prompt)e(is)i(displa)m(y)m(ed.)150 1926
-y(The)k(line)g Fr(readline)e Fs(returns)h(is)h(allo)s(cated)i(with)e
-Fr(malloc\(\))p Fs(;)h(the)f(caller)i(should)d Fr(free\(\))f
-Fs(the)j(line)150 2035 y(when)29 b(it)i(has)f(\014nished)f(with)h(it.)
-42 b(The)29 b(declaration)j(for)f Fr(readline)d Fs(in)i(ANSI)g(C)g(is)
-390 2169 y Fr(char)47 b(*readline)e(\(const)h(char)h(*)p
-Fk(prompt)p Fr(\);)150 2302 y Fs(So,)31 b(one)f(migh)m(t)h(sa)m(y)390
-2435 y Fr(char)47 b(*line)f(=)h(readline)f(\("Enter)g(a)h(line:)g("\);)
-150 2568 y Fs(in)23 b(order)f(to)h(read)g(a)g(line)h(of)f(text)h(from)e
+%%Page: 24 28
+TeXDict begin 24 27 bop 3659 -116 a Ft(24)150 299 y Fp(2)80
+b(Programming)54 b(with)f(GNU)h(Readline)150 524 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
+634 y(If)k(y)m(ou)g(are)g(a)h(programmer,)f(and)f(y)m(ou)i(wish)e(to)i
+(include)f(the)g(features)g(found)f(in)h Fm(gnu)g Ft(Readline)g(suc)m
+(h)150 743 y(as)c(completion,)j(line)d(editing,)i(and)d(in)m(teractiv)m
+(e)k(history)d(manipulation)g(in)f(y)m(our)h(o)m(wn)g(programs,)h(this)
+150 853 y(section)32 b(is)e(for)g(y)m(ou.)150 1090 y
+Fr(2.1)68 b(Basic)45 b(Beha)l(vior)150 1250 y Ft(Man)m(y)39
+b(programs)e(pro)m(vide)h(a)h(command)f(line)g(in)m(terface,)k(suc)m(h)
+37 b(as)i Fs(mail)p Ft(,)g Fs(ftp)p Ft(,)g(and)e Fs(sh)p
+Ft(.)63 b(F)-8 b(or)39 b(suc)m(h)150 1359 y(programs,)29
+b(the)f(default)h(b)s(eha)m(viour)f(of)h(Readline)g(is)g(su\016cien)m
+(t.)40 b(This)28 b(section)i(describ)s(es)d(ho)m(w)i(to)g(use)150
+1469 y(Readline)35 b(in)f(the)h(simplest)f(w)m(a)m(y)h(p)s(ossible,)h
+(p)s(erhaps)c(to)j(replace)h(calls)f(in)f(y)m(our)h(co)s(de)f(to)h
+Fs(gets\(\))e Ft(or)150 1578 y Fs(fgets\(\))p Ft(.)275
+1711 y(The)f(function)g Fs(readline\(\))e Ft(prin)m(ts)i(a)g(prompt)g
+Fj(prompt)i Ft(and)e(then)g(reads)g(and)g(returns)f(a)i(single)150
+1821 y(line)g(of)g(text)h(from)e(the)h(user.)47 b(If)32
+b Fj(prompt)i Ft(is)e Fs(NULL)g Ft(or)h(the)f(empt)m(y)i(string,)f(no)g
+(prompt)e(is)i(displa)m(y)m(ed.)150 1930 y(The)k(line)g
+Fs(readline)e Ft(returns)h(is)h(allo)s(cated)i(with)e
+Fs(malloc\(\))p Ft(;)h(the)f(caller)i(should)d Fs(free\(\))f
+Ft(the)j(line)150 2040 y(when)29 b(it)i(has)f(\014nished)f(with)h(it.)
+42 b(The)29 b(declaration)j(for)f Fs(readline)d Ft(in)i(ANSI)g(C)g(is)
+390 2173 y Fs(char)47 b(*readline)e(\(const)h(char)h(*)p
+Fl(prompt)p Fs(\);)150 2305 y Ft(So,)31 b(one)f(migh)m(t)h(sa)m(y)390
+2438 y Fs(char)47 b(*line)f(=)h(readline)f(\("Enter)g(a)h(line:)g("\);)
+150 2571 y Ft(in)23 b(order)f(to)h(read)g(a)g(line)h(of)f(text)h(from)e
(the)h(user.)38 b(The)22 b(line)h(returned)f(has)g(the)h(\014nal)g
-(newline)g(remo)m(v)m(ed,)150 2678 y(so)31 b(only)f(the)h(text)g
-(remains.)275 2811 y(If)40 b Fr(readline)e Fs(encoun)m(ters)j(an)f
-Fr(EOF)f Fs(while)i(reading)f(the)h(line,)j(and)39 b(the)i(line)g(is)f
-(empt)m(y)h(at)g(that)150 2921 y(p)s(oin)m(t,)30 b(then)f
-Fr(\(char)g(*\)NULL)e Fs(is)j(returned.)39 b(Otherwise,)30
+(newline)g(remo)m(v)m(ed,)150 2681 y(so)31 b(only)f(the)h(text)g
+(remains.)275 2813 y(If)40 b Fs(readline)e Ft(encoun)m(ters)j(an)f
+Fs(EOF)f Ft(while)i(reading)f(the)h(line,)j(and)39 b(the)i(line)g(is)f
+(empt)m(y)h(at)g(that)150 2923 y(p)s(oin)m(t,)30 b(then)f
+Fs(\(char)g(*\)NULL)e Ft(is)j(returned.)39 b(Otherwise,)30
b(the)f(line)h(is)f(ended)g(just)g(as)g(if)h(a)f(newline)h(had)150
-3030 y(b)s(een)g(t)m(yp)s(ed.)275 3163 y(If)c(y)m(ou)h(w)m(an)m(t)h
+3032 y(b)s(een)g(t)m(yp)s(ed.)275 3165 y(If)c(y)m(ou)h(w)m(an)m(t)h
(the)f(user)g(to)g(b)s(e)g(able)g(to)h(get)g(at)g(the)f(line)g(later,)i
-(\(with)e Fr(C-p)f Fs(for)h(example\),)i(y)m(ou)e(m)m(ust)150
-3273 y(call)32 b Fr(add_history\(\))26 b Fs(to)32 b(sa)m(v)m(e)f(the)g
-(line)g(a)m(w)m(a)m(y)h(in)e(a)h Fi(history)38 b Fs(list)31
-b(of)g(suc)m(h)f(lines.)390 3406 y Fr(add_history)45
-b(\(line\);)150 3539 y Fs(F)-8 b(or)31 b(full)f(details)i(on)e(the)g
+(\(with)e Fs(C-p)f Ft(for)h(example\),)i(y)m(ou)e(m)m(ust)150
+3275 y(call)32 b Fs(add_history\(\))26 b Ft(to)32 b(sa)m(v)m(e)f(the)g
+(line)g(a)m(w)m(a)m(y)h(in)e(a)h Fj(history)38 b Ft(list)31
+b(of)g(suc)m(h)f(lines.)390 3407 y Fs(add_history)45
+b(\(line\);)150 3540 y Ft(F)-8 b(or)31 b(full)f(details)i(on)e(the)g
(GNU)h(History)g(Library)-8 b(,)31 b(see)g(the)f(asso)s(ciated)i(man)m
(ual.)275 3673 y(It)f(is)g(preferable)g(to)i(a)m(v)m(oid)f(sa)m(ving)h
(empt)m(y)e(lines)h(on)f(the)h(history)f(list,)h(since)g(users)e
-(rarely)i(ha)m(v)m(e)h(a)150 3782 y(burning)28 b(need)h(to)i(reuse)e(a)
+(rarely)i(ha)m(v)m(e)h(a)150 3783 y(burning)28 b(need)h(to)i(reuse)e(a)
h(blank)g(line.)40 b(Here)31 b(is)e(a)h(function)g(whic)m(h)f(usefully)
-g(replaces)i(the)f(standard)150 3892 y Fr(gets\(\))f
-Fs(library)h(function,)g(and)g(has)g(the)g(adv)-5 b(an)m(tage)33
+g(replaces)i(the)f(standard)150 3892 y Fs(gets\(\))f
+Ft(library)h(function,)g(and)g(has)g(the)g(adv)-5 b(an)m(tage)33
b(of)d(no)g(static)i(bu\013er)e(to)h(o)m(v)m(er\015o)m(w:)390
-4025 y Fr(/*)47 b(A)h(static)e(variable)f(for)i(holding)f(the)h(line.)f
+4025 y Fs(/*)47 b(A)h(static)e(variable)f(for)i(holding)f(the)h(line.)f
(*/)390 4134 y(static)g(char)h(*line_read)e(=)i(\(char)g(*\)NULL;)390
4354 y(/*)g(Read)g(a)g(string,)f(and)h(return)f(a)i(pointer)d(to)j(it.)
533 4463 y(Returns)e(NULL)h(on)g(EOF.)f(*/)390 4573 y(char)h(*)390
@@ -8265,80 +8345,80 @@ b(of)d(no)g(static)i(bu\013er)e(to)h(o)m(v)m(er\015o)m(w:)390
(has)h(already)f(been)g(allocated,)629 5011 y(return)g(the)h(memory)f
(to)h(the)g(free)f(pool.)h(*/)485 5121 y(if)h(\(line_read\))581
5230 y({)676 5340 y(free)f(\(line_read\);)p eop end
-%%Page: 23 27
-TeXDict begin 23 26 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(23)676
-299 y Fr(line_read)46 b(=)h(\(char)f(*\)NULL;)581 408
+%%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)676
+299 y Fs(line_read)46 b(=)h(\(char)f(*\)NULL;)581 408
y(})485 628 y(/*)i(Get)f(a)g(line)g(from)f(the)h(user.)g(*/)485
737 y(line_read)f(=)h(readline)f(\(""\);)485 956 y(/*)i(If)f(the)g
(line)f(has)h(any)g(text)g(in)g(it,)629 1066 y(save)f(it)h(on)h(the)f
(history.)e(*/)485 1176 y(if)j(\(line_read)d(&&)i(*line_read\))581
1285 y(add_history)e(\(line_read\);)485 1504 y(return)i(\(line_read\);)
-390 1614 y(})275 1767 y Fs(This)27 b(function)h(giv)m(es)h(the)f(user)g
-(the)g(default)g(b)s(eha)m(viour)g(of)g Fr(TAB)g Fs(completion:)40
-b(completion)30 b(on)e(\014le)150 1877 y(names.)41 b(If)31
+390 1614 y(})275 1766 y Ft(This)27 b(function)h(giv)m(es)h(the)f(user)g
+(the)g(default)g(b)s(eha)m(viour)g(of)g Fs(TAB)g Ft(completion:)40
+b(completion)30 b(on)e(\014le)150 1876 y(names.)41 b(If)31
b(y)m(ou)g(do)f(not)h(w)m(an)m(t)g(Readline)h(to)f(complete)h(on)f
(\014lenames,)g(y)m(ou)g(can)f(c)m(hange)i(the)f(binding)150
-1986 y(of)g(the)f Fr(TAB)g Fs(k)m(ey)h(with)f Fr(rl_bind_key\(\))p
-Fs(.)390 2139 y Fr(int)47 b(rl_bind_key)e(\(int)h Fk(key)p
-Fr(,)h(rl_command_func_t)c(*)p Fk(function)p Fr(\);)275
-2292 y(rl_bind_key\(\))29 b Fs(tak)m(es)35 b(t)m(w)m(o)g(argumen)m(ts:)
-47 b Fi(k)m(ey)c Fs(is)33 b(the)h(c)m(haracter)h(that)f(y)m(ou)g(w)m
-(an)m(t)g(to)g(bind,)g(and)150 2402 y Fi(function)39
-b Fs(is)f(the)h(address)f(of)h(the)g(function)g(to)g(call)i(when)c
-Fi(k)m(ey)48 b Fs(is)39 b(pressed.)65 b(Binding)38 b
-Fr(TAB)g Fs(to)i Fr(rl_)150 2511 y(insert\(\))c Fs(mak)m(es)k
-Fr(TAB)e Fs(insert)g(itself.)67 b Fr(rl_bind_key\(\))35
-b Fs(returns)j(non-zero)h(if)g Fi(k)m(ey)47 b Fs(is)39
-b(not)g(a)g(v)-5 b(alid)150 2621 y(ASCI)s(I)29 b(c)m(haracter)j(co)s
-(de)e(\(b)s(et)m(w)m(een)i(0)f(and)e(255\).)275 2774
-y(Th)m(us,)g(to)i(disable)g(the)f(default)h Fr(TAB)e
-Fs(b)s(eha)m(vior,)i(the)g(follo)m(wing)g(su\016ces:)390
-2927 y Fr(rl_bind_key)45 b(\('\\t',)h(rl_insert\);)275
-3080 y Fs(This)25 b(co)s(de)i(should)e(b)s(e)h(executed)h(once)g(at)g
+1985 y(of)g(the)f Fs(TAB)g Ft(k)m(ey)h(with)f Fs(rl_bind_key\(\))p
+Ft(.)390 2137 y Fs(int)47 b(rl_bind_key)e(\(int)h Fl(key)p
+Fs(,)h(rl_command_func_t)c(*)p Fl(function)p Fs(\);)275
+2290 y(rl_bind_key\(\))29 b Ft(tak)m(es)35 b(t)m(w)m(o)g(argumen)m(ts:)
+47 b Fj(k)m(ey)c Ft(is)33 b(the)h(c)m(haracter)h(that)f(y)m(ou)g(w)m
+(an)m(t)g(to)g(bind,)g(and)150 2399 y Fj(function)39
+b Ft(is)f(the)h(address)f(of)h(the)g(function)g(to)g(call)i(when)c
+Fj(k)m(ey)48 b Ft(is)39 b(pressed.)65 b(Binding)38 b
+Fs(TAB)g Ft(to)i Fs(rl_)150 2509 y(insert\(\))c Ft(mak)m(es)k
+Fs(TAB)e Ft(insert)g(itself.)67 b Fs(rl_bind_key\(\))35
+b Ft(returns)j(non-zero)h(if)g Fj(k)m(ey)47 b Ft(is)39
+b(not)g(a)g(v)-5 b(alid)150 2618 y(ASCI)s(I)29 b(c)m(haracter)j(co)s
+(de)e(\(b)s(et)m(w)m(een)i(0)f(and)e(255\).)275 2770
+y(Th)m(us,)g(to)i(disable)g(the)f(default)h Fs(TAB)e
+Ft(b)s(eha)m(vior,)i(the)g(follo)m(wing)g(su\016ces:)390
+2923 y Fs(rl_bind_key)45 b(\('\\t',)h(rl_insert\);)275
+3075 y Ft(This)25 b(co)s(de)i(should)e(b)s(e)h(executed)h(once)g(at)g
(the)g(start)g(of)f(y)m(our)h(program;)g(y)m(ou)g(migh)m(t)g(write)g(a)
-g(func-)150 3190 y(tion)33 b(called)h Fr(initialize_readline\(\))27
-b Fs(whic)m(h)33 b(p)s(erforms)e(this)h(and)h(other)g(desired)f
-(initializations,)150 3299 y(suc)m(h)e(as)h(installing)g(custom)g
+g(func-)150 3184 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 3294 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
-(46\).)150 3559 y Fq(2.2)68 b(Custom)45 b(F)-11 b(unctions)150
-3719 y Fs(Readline)28 b(pro)m(vides)f(man)m(y)g(functions)g(for)g
+(49\).)150 3561 y Fr(2.2)68 b(Custom)45 b(F)-11 b(unctions)150
+3721 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 3828 y(to)37 b(an)m(ticipate)i(the)e(needs)f(of)h(all)g
+(ossible)150 3830 y(to)37 b(an)m(ticipate)i(the)e(needs)f(of)h(all)g
(programs.)59 b(This)36 b(section)h(describ)s(es)f(the)h(v)-5
-b(arious)36 b(functions)h(and)150 3938 y(v)-5 b(ariables)27
+b(arious)36 b(functions)h(and)150 3940 y(v)-5 b(ariables)27
b(de\014ned)e(within)g(the)h(Readline)h(library)f(whic)m(h)g(allo)m(w)h
-(a)g(user)e(program)h(to)h(add)e(customized)150 4048
-y(functionalit)m(y)32 b(to)f(Readline.)275 4201 y(Before)37
+(a)g(user)e(program)h(to)h(add)e(customized)150 4049
+y(functionalit)m(y)32 b(to)f(Readline.)275 4202 y(Before)37
b(declaring)g(an)m(y)g(functions)f(that)h(customize)h(Readline's)f(b)s
-(eha)m(vior,)h(or)f(using)f(an)m(y)h(func-)150 4310 y(tionalit)m(y)48
+(eha)m(vior,)h(or)f(using)f(an)m(y)h(func-)150 4311 y(tionalit)m(y)48
b(Readline)e(pro)m(vides)f(in)g(other)h(co)s(de,)k(an)45
b(application)i(writer)e(should)g(include)g(the)h(\014le)150
-4420 y Fr(<readline/readline.h>)28 b Fs(in)33 b(an)m(y)h(\014le)f(that)
+4421 y Fs(<readline/readline.h>)28 b Ft(in)33 b(an)m(y)h(\014le)f(that)
h(uses)f(Readline's)h(features.)51 b(Since)33 b(some)h(of)g(the)f
-(de\014-)150 4529 y(nitions)e(in)g Fr(readline.h)d Fs(use)j(the)h
-Fr(stdio)d Fs(library)-8 b(,)32 b(the)f(\014le)h Fr(<stdio.h>)c
-Fs(should)i(b)s(e)h(included)f(b)s(efore)150 4639 y Fr(readline.h)p
-Fs(.)275 4792 y Fr(readline.h)d Fs(de\014nes)j(a)h(C)f(prepro)s(cessor)
+(de\014-)150 4530 y(nitions)e(in)g Fs(readline.h)d Ft(use)j(the)h
+Fs(stdio)d Ft(library)-8 b(,)32 b(the)f(\014le)h Fs(<stdio.h>)c
+Ft(should)i(b)s(e)h(included)f(b)s(efore)150 4640 y Fs(readline.h)p
+Ft(.)275 4792 y Fs(readline.h)d Ft(de\014nes)j(a)h(C)f(prepro)s(cessor)
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 Fr(RL_)150 4902 y(READLINE_VERSION)p Fs(,)20
+(teger,)h Fs(RL_)150 4902 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)150 5011 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 5121 y(minor)f(v)m(ersion)g(n)m(um)m(b)s(ers)f(of)h
-(the)h(library)-8 b(,)35 b(of)f(the)h(form)e(0x)p Fi(MMmm)p
-Fs(.)53 b Fi(MM)45 b Fs(is)34 b(the)g(t)m(w)m(o-digit)j(ma)5
-b(jor)150 5230 y(v)m(ersion)29 b(n)m(um)m(b)s(er;)g Fi(mm)f
-Fs(is)h(the)g(t)m(w)m(o-digit)j(minor)c(v)m(ersion)i(n)m(um)m(b)s(er.)
+(the)h(library)-8 b(,)35 b(of)f(the)h(form)e(0x)p Fj(MMmm)p
+Ft(.)53 b Fj(MM)45 b Ft(is)34 b(the)g(t)m(w)m(o-digit)j(ma)5
+b(jor)150 5230 y(v)m(ersion)29 b(n)m(um)m(b)s(er;)g Fj(mm)f
+Ft(is)h(the)g(t)m(w)m(o-digit)j(minor)c(v)m(ersion)i(n)m(um)m(b)s(er.)
38 b(F)-8 b(or)30 b(Readline)g(4.2,)g(for)f(example,)150
-5340 y(the)i(v)-5 b(alue)30 b(of)h Fr(RL_READLINE_VERSION)25
-b Fs(w)m(ould)30 b(b)s(e)g Fr(0x0402)p Fs(.)p eop end
-%%Page: 24 28
-TeXDict begin 24 27 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(24)150
-299 y Fh(2.2.1)63 b(Readline)40 b(T)m(yp)s(edefs)150
-446 y Fs(F)-8 b(or)31 b(readabilit)m(y)-8 b(,)33 b(w)m(e)d(declare)i(a)
+5340 y(the)i(v)-5 b(alue)30 b(of)h Fs(RL_READLINE_VERSION)25
+b Ft(w)m(ould)30 b(b)s(e)g Fs(0x0402)p Ft(.)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
+299 y Fi(2.2.1)63 b(Readline)40 b(T)m(yp)s(edefs)150
+446 y Ft(F)-8 b(or)31 b(readabilit)m(y)-8 b(,)33 b(w)m(e)d(declare)i(a)
f(n)m(um)m(b)s(er)e(of)h(new)g(ob)5 b(ject)31 b(t)m(yp)s(es,)g(all)g(p)
s(oin)m(ters)f(to)i(functions.)275 585 y(The)j(reason)h(for)f
(declaring)h(these)h(new)e(t)m(yp)s(es)g(is)h(to)h(mak)m(e)f(it)g
@@ -8346,17 +8426,17 @@ s(oin)m(ters)f(to)i(functions.)275 585 y(The)j(reason)h(for)f
b(to)h(C)f(functions)g(with)g(appropriately)h(protot)m(yp)s(ed)f
(argumen)m(ts)h(and)f(return)f(v)-5 b(alues.)275 833
y(F)d(or)37 b(instance,)j(sa)m(y)d(w)m(e)g(w)m(an)m(t)h(to)g(declare)f
-(a)h(v)-5 b(ariable)37 b Fi(func)42 b Fs(as)37 b(a)g(p)s(oin)m(ter)g
+(a)h(v)-5 b(ariable)37 b Fj(func)42 b Ft(as)37 b(a)g(p)s(oin)m(ter)g
(to)g(a)h(function)e(whic)m(h)150 943 y(tak)m(es)27 b(t)m(w)m(o)g
-Fr(int)e Fs(argumen)m(ts)h(and)f(returns)f(an)i Fr(int)f
-Fs(\(this)h(is)f(the)h(t)m(yp)s(e)g(of)g(all)h(of)e(the)h(Readline)h
+Fs(int)e Ft(argumen)m(ts)h(and)f(returns)f(an)i Fs(int)f
+Ft(\(this)h(is)f(the)h(t)m(yp)s(e)g(of)g(all)h(of)e(the)h(Readline)h
(bindable)150 1052 y(functions\).)41 b(Instead)30 b(of)g(the)h(classic)
-h(C)e(declaration)275 1191 y Fr(int)f(\(*func\)\(\);)150
-1330 y Fs(or)h(the)h(ANSI-C)f(st)m(yle)i(declaration)275
-1468 y Fr(int)d(\(*func\)\(int,)e(int\);)150 1607 y Fs(w)m(e)k(ma)m(y)g
-(write)275 1746 y Fr(rl_command_func_t)25 b(*func;)275
-1885 y Fs(The)k(full)h(list)i(of)e(function)g(p)s(oin)m(ter)g(t)m(yp)s
-(es)h(a)m(v)-5 b(ailable)33 b(is)150 2051 y Fr(typedef)28
+h(C)e(declaration)275 1191 y Fs(int)f(\(*func\)\(\);)150
+1330 y Ft(or)h(the)h(ANSI-C)f(st)m(yle)i(declaration)275
+1468 y Fs(int)d(\(*func\)\(int,)e(int\);)150 1607 y Ft(w)m(e)k(ma)m(y)g
+(write)275 1746 y Fs(rl_command_func_t)25 b(*func;)275
+1885 y Ft(The)k(full)h(list)i(of)e(function)g(p)s(oin)m(ter)g(t)m(yp)s
+(es)h(a)m(v)-5 b(ailable)33 b(is)150 2051 y Fs(typedef)28
b(int)i(rl_command_func_t)c(\(int,)i(int\);)150 2160
y(typedef)g(char)i(*rl_compentry_func_t)24 b(\(const)29
b(char)g(*,)h(int\);)150 2270 y(typedef)e(char)i
@@ -8376,18 +8456,18 @@ b(\(char)k(**,)g(int,)h(int\);)150 2818 y(typedef)e(int)i
3694 y(typedef)i(void)i(rl_vintfunc_t)c(\(int\);)150
3804 y(typedef)i(void)i(rl_vcpfunc_t)d(\(char)i(*\);)150
3914 y(typedef)f(void)i(rl_vcppfunc_t)c(\(char)j(**\);)150
-4090 y Fh(2.2.2)63 b(W)-10 b(riting)41 b(a)f(New)h(F)-10
-b(unction)150 4237 y Fs(In)30 b(order)h(to)h(write)f(new)g(functions)f
+4090 y Fi(2.2.2)63 b(W)-10 b(riting)41 b(a)f(New)h(F)-10
+b(unction)150 4237 y Ft(In)30 b(order)h(to)h(write)f(new)g(functions)f
(for)h(Readline,)h(y)m(ou)g(need)e(to)i(kno)m(w)f(the)g(calling)i(con)m
(v)m(en)m(tions)g(for)150 4347 y(k)m(eyb)s(oard-in)m(v)m(ok)m(ed)f
(functions,)d(and)h(the)g(names)g(of)g(the)g(v)-5 b(ariables)31
b(that)f(describ)s(e)g(the)g(curren)m(t)g(state)150 4456
y(of)h(the)f(line)h(read)f(so)h(far.)275 4595 y(The)e(calling)j
-(sequence)f(for)f(a)h(command)f Fr(foo)g Fs(lo)s(oks)g(lik)m(e)390
-4734 y Fr(int)47 b(foo)g(\(int)f(count,)h(int)f(key\))150
-4872 y Fs(where)35 b Fi(coun)m(t)k Fs(is)d(the)g(n)m(umeric)g(argumen)m
-(t)g(\(or)g(1)g(if)g(defaulted\))h(and)e Fi(k)m(ey)44
-b Fs(is)36 b(the)g(k)m(ey)h(that)f(in)m(v)m(ok)m(ed)150
+(sequence)f(for)f(a)h(command)f Fs(foo)g Ft(lo)s(oks)g(lik)m(e)390
+4734 y Fs(int)47 b(foo)g(\(int)f(count,)h(int)f(key\))150
+4872 y Ft(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
4982 y(this)30 b(function.)275 5121 y(It)23 b(is)g(completely)h(up)e
(to)i(the)f(function)g(as)g(to)h(what)f(should)f(b)s(e)h(done)f(with)h
(the)g(n)m(umeric)g(argumen)m(t.)150 5230 y(Some)40 b(functions)g(use)f
@@ -8396,194 +8476,194 @@ b Fs(is)36 b(the)g(k)m(ey)h(that)f(in)m(v)m(ok)m(ed)150
(\(refreshing)g(the)h(curren)m(t)f(line)h(as)f(opp)s(osed)g(to)h
(refreshing)e(the)i(screen,)j(for)c(example\).)p eop
end
-%%Page: 25 29
-TeXDict begin 25 28 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(25)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(Some)33 b(c)m(ho)s(ose)h(to)g(ignore)g(it.)50 b(In)32
b(general,)j(if)f(a)f(function)g(uses)g(the)g(n)m(umeric)g(argumen)m(t)
h(as)f(a)h(rep)s(eat)150 408 y(coun)m(t,)29 b(it)g(should)e(b)s(e)g
(able)h(to)h(do)f(something)g(useful)f(with)h(b)s(oth)f(negativ)m(e)j
(and)d(p)s(ositiv)m(e)i(argumen)m(ts.)150 518 y(A)m(t)i(the)g(v)m(ery)g
(least,)h(it)e(should)g(b)s(e)g(a)m(w)m(are)h(that)g(it)g(can)g(b)s(e)f
-(passed)g(a)g(negativ)m(e)j(argumen)m(t.)275 658 y(A)27
-b(command)h(function)f(should)g(return)g(0)h(if)g(its)g(action)h
-(completes)g(successfully)-8 b(,)29 b(and)e(a)h(non-zero)150
-768 y(v)-5 b(alue)40 b(if)f(some)g(error)g(o)s(ccurs.)67
-b(This)38 b(is)h(the)g(con)m(v)m(en)m(tion)j(ob)s(ey)m(ed)d(b)m(y)g
-(all)h(of)f(the)h(builtin)e(Readline)150 877 y(bindable)30
-b(command)g(functions.)150 1118 y Fq(2.3)68 b(Readline)47
-b(V)-11 b(ariables)150 1278 y Fs(These)30 b(v)-5 b(ariables)31
+(passed)g(a)g(negativ)m(e)j(argumen)m(t.)275 658 y(A)38
+b(command)f(function)h(should)f(return)g(0)h(if)g(its)h(action)g
+(completes)g(successfully)-8 b(,)41 b(and)c(a)h(v)-5
+b(alue)150 767 y(greater)34 b(than)f(zero)g(if)g(some)h(error)e(o)s
+(ccurs.)48 b(This)32 b(is)h(the)g(con)m(v)m(en)m(tion)i(ob)s(ey)m(ed)f
+(b)m(y)e(all)i(of)f(the)g(builtin)150 877 y(Readline)e(bindable)f
+(command)g(functions.)150 1126 y Fr(2.3)68 b(Readline)47
+b(V)-11 b(ariables)150 1285 y Ft(These)30 b(v)-5 b(ariables)31
b(are)g(a)m(v)-5 b(ailable)33 b(to)e(function)f(writers.)3371
-1473 y([V)-8 b(ariable])-3598 b Fg(char)54 b(*)e(rl_line_buffer)390
-1583 y Fs(This)30 b(is)i(the)f(line)g(gathered)h(so)f(far.)43
+1480 y([V)-8 b(ariable])-3598 b Fh(char)54 b(*)e(rl_line_buffer)390
+1589 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 1693 y(but)k(see)h(Section)g(2.4.5)h([Allo)m
-(wing)h(Undoing],)f(page)f(34.)57 b(The)35 b(function)g
-Fr(rl_extend_line_)390 1802 y(buffer)29 b Fs(is)h(a)m(v)-5
+(ts)i(of)e(the)g(line,)390 1699 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
+Fs(rl_extend_line_)390 1809 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
-Fr(rl_line_buffer)p Fs(.)3371 1998 y([V)-8 b(ariable])-3598
-b Fg(int)53 b(rl_point)390 2107 y Fs(The)30 b(o\013set)h(of)g(the)f
-(curren)m(t)h(cursor)e(p)s(osition)i(in)f Fr(rl_line_buffer)c
-Fs(\(the)31 b Fj(p)-5 b(oint)9 b Fs(\).)3371 2303 y([V)-8
-b(ariable])-3598 b Fg(int)53 b(rl_end)390 2413 y Fs(The)27
+Fs(rl_line_buffer)p Ft(.)3371 2004 y([V)-8 b(ariable])-3598
+b Fh(int)53 b(rl_point)390 2113 y Ft(The)30 b(o\013set)h(of)g(the)f
+(curren)m(t)h(cursor)e(p)s(osition)i(in)f Fs(rl_line_buffer)c
+Ft(\(the)31 b Fk(p)-5 b(oint)9 b Ft(\).)3371 2308 y([V)-8
+b(ariable])-3598 b Fh(int)53 b(rl_end)390 2418 y Ft(The)27
b(n)m(um)m(b)s(er)g(of)h(c)m(haracters)h(presen)m(t)f(in)g
-Fr(rl_line_buffer)p Fs(.)36 b(When)27 b Fr(rl_point)f
-Fs(is)i(at)h(the)f(end)390 2522 y(of)j(the)f(line,)h
-Fr(rl_point)d Fs(and)i Fr(rl_end)f Fs(are)h(equal.)3371
-2718 y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_mark)390
-2827 y Fs(The)36 b Fi(mark)42 b Fs(\(sa)m(v)m(ed)d(p)s(osition\))e(in)g
+Fs(rl_line_buffer)p Ft(.)36 b(When)27 b Fs(rl_point)f
+Ft(is)i(at)h(the)f(end)390 2527 y(of)j(the)f(line,)h
+Fs(rl_point)d Ft(and)i Fs(rl_end)f Ft(are)h(equal.)3371
+2722 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_mark)390
+2832 y Ft(The)36 b Fj(mark)42 b Ft(\(sa)m(v)m(ed)d(p)s(osition\))e(in)g
(the)g(curren)m(t)f(line.)61 b(If)36 b(set,)k(the)d(mark)f(and)h(p)s
-(oin)m(t)f(de\014ne)h(a)390 2937 y Fj(r)-5 b(e)g(gion)p
-Fs(.)3371 3133 y([V)d(ariable])-3598 b Fg(int)53 b(rl_done)390
-3242 y Fs(Setting)22 b(this)g(to)g(a)g(non-zero)g(v)-5
+(oin)m(t)f(de\014ne)h(a)390 2941 y Fk(r)-5 b(e)g(gion)p
+Ft(.)3371 3136 y([V)d(ariable])-3598 b Fh(int)53 b(rl_done)390
+3246 y Ft(Setting)22 b(this)g(to)g(a)g(non-zero)g(v)-5
b(alue)23 b(causes)f(Readline)g(to)g(return)f(the)h(curren)m(t)f(line)h
-(immediately)-8 b(.)3371 3438 y([V)g(ariable])-3598 b
-Fg(int)53 b(rl_num_chars_to_read)390 3548 y Fs(Setting)34
+(immediately)-8 b(.)3371 3440 y([V)g(ariable])-3598 b
+Fh(int)53 b(rl_num_chars_to_read)390 3550 y Ft(Setting)34
b(this)e(to)i(a)f(p)s(ositiv)m(e)h(v)-5 b(alue)34 b(b)s(efore)e
-(calling)i Fr(readline\(\))d Fs(causes)i(Readline)g(to)h(return)390
-3657 y(after)i(accepting)h(that)g(man)m(y)e(c)m(haracters,)k(rather)d
+(calling)i Fs(readline\(\))d Ft(causes)i(Readline)g(to)h(return)390
+3660 y(after)i(accepting)h(that)g(man)m(y)e(c)m(haracters,)k(rather)d
(than)f(reading)h(up)e(to)j(a)f(c)m(haracter)h(b)s(ound)390
-3767 y(to)31 b Fr(accept-line)p Fs(.)3371 3962 y([V)-8
-b(ariable])-3598 b Fg(int)53 b(rl_pending_input)390 4072
-y Fs(Setting)26 b(this)f(to)h(a)f(v)-5 b(alue)26 b(mak)m(es)g(it)g(the)
+3769 y(to)31 b Fs(accept-line)p Ft(.)3371 3964 y([V)-8
+b(ariable])-3598 b Fh(int)53 b(rl_pending_input)390 4074
+y Ft(Setting)26 b(this)f(to)h(a)f(v)-5 b(alue)26 b(mak)m(es)g(it)g(the)
f(next)g(k)m(eystrok)m(e)i(read.)39 b(This)24 b(is)i(a)f(w)m(a)m(y)h
-(to)g(stu\013)f(a)g(single)390 4182 y(c)m(haracter)32
-b(in)m(to)f(the)g(input)e(stream.)3371 4377 y([V)-8 b(ariable])-3598
-b Fg(int)53 b(rl_dispatching)390 4487 y Fs(Set)24 b(to)h(a)g(non-zero)g
+(to)g(stu\013)f(a)g(single)390 4183 y(c)m(haracter)32
+b(in)m(to)f(the)g(input)e(stream.)3371 4378 y([V)-8 b(ariable])-3598
+b Fh(int)53 b(rl_dispatching)390 4488 y Ft(Set)24 b(to)h(a)g(non-zero)g
(v)-5 b(alue)24 b(if)h(a)f(function)g(is)g(b)s(eing)g(called)i(from)d
-(a)i(k)m(ey)g(binding;)g(zero)g(otherwise.)390 4596 y(Application)37
+(a)i(k)m(ey)g(binding;)g(zero)g(otherwise.)390 4597 y(Application)37
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 4706 y(b)m(y)30
+h(w)m(ere)g(called)h(directly)f(or)390 4707 y(b)m(y)30
b(Readline's)h(dispatc)m(hing)g(mec)m(hanism.)3371 4902
-y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_erase_empty_line)390
-5011 y Fs(Setting)47 b(this)e(to)i(a)f(non-zero)h(v)-5
+y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_erase_empty_line)390
+5011 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)
m(t)390 5121 y(line,)f(including)c(an)m(y)g(prompt,)j(an)m(y)d(time)h
(a)g(newline)f(is)h(t)m(yp)s(ed)f(as)g(the)h(only)f(c)m(haracter)i(on)
390 5230 y(an)36 b(otherwise-empt)m(y)i(line.)58 b(The)36
b(cursor)g(is)g(mo)m(v)m(ed)h(to)g(the)g(b)s(eginning)e(of)i(the)f
(newly-blank)390 5340 y(line.)p eop end
-%%Page: 26 30
-TeXDict begin 26 29 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(26)3371
-299 y([V)-8 b(ariable])-3598 b Fg(char)54 b(*)e(rl_prompt)390
-408 y Fs(The)26 b(prompt)f(Readline)i(uses.)38 b(This)26
-b(is)g(set)h(from)e(the)i(argumen)m(t)f(to)h Fr(readline\(\))p
-Fs(,)d(and)i(should)390 518 y(not)h(b)s(e)f(assigned)h(to)h(directly)-8
-b(.)41 b(The)26 b Fr(rl_set_prompt\(\))d Fs(function)j(\(see)i(Section)
-g(2.4.6)h([Redis-)390 628 y(pla)m(y],)i(page)h(35\))f(ma)m(y)g(b)s(e)f
+%%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
+299 y([V)-8 b(ariable])-3598 b Fh(char)54 b(*)e(rl_prompt)390
+408 y Ft(The)26 b(prompt)f(Readline)i(uses.)38 b(This)26
+b(is)g(set)h(from)e(the)i(argumen)m(t)f(to)h Fs(readline\(\))p
+Ft(,)d(and)i(should)390 518 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 628 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(the)i(prompt)e(string)h(after)h(calling)h
-Fr(readline\(\))p Fs(.)3371 814 y([V)-8 b(ariable])-3598
-b Fg(char)54 b(*)e(rl_display_prompt)390 924 y Fs(The)31
+Fs(readline\(\))p Ft(.)3371 814 y([V)-8 b(ariable])-3598
+b Fh(char)54 b(*)e(rl_display_prompt)390 924 y Ft(The)31
b(string)h(displa)m(y)m(ed)g(as)g(the)g(prompt.)44 b(This)31
-b(is)h(usually)f(iden)m(tical)j(to)e Fi(rl)p 3031 924
-28 4 v 40 w(prompt)p Fs(,)f(but)g(ma)m(y)390 1033 y(b)s(e)j(c)m(hanged)
+b(is)h(usually)f(iden)m(tical)j(to)e Fj(rl)p 3031 924
+28 4 v 40 w(prompt)p Ft(,)f(but)g(ma)m(y)390 1033 y(b)s(e)j(c)m(hanged)
g(temp)s(orarily)h(b)m(y)f(functions)g(that)g(use)g(the)h(prompt)e
(string)h(as)h(a)f(message)i(area,)390 1143 y(suc)m(h)30
b(as)h(incremen)m(tal)g(searc)m(h.)3371 1329 y([V)-8
-b(ariable])-3598 b Fg(int)53 b(rl_already_prompted)390
-1439 y Fs(If)36 b(an)g(application)i(wishes)d(to)i(displa)m(y)g(the)f
+b(ariable])-3598 b Fh(int)53 b(rl_already_prompted)390
+1439 y Ft(If)36 b(an)g(application)i(wishes)d(to)i(displa)m(y)g(the)f
(prompt)g(itself,)i(rather)f(than)f(ha)m(v)m(e)h(Readline)g(do)390
-1548 y(it)c(the)g(\014rst)f(time)i Fr(readline\(\))c
-Fs(is)i(called,)j(it)e(should)f(set)h(this)g(v)-5 b(ariable)34
+1548 y(it)c(the)g(\014rst)f(time)i Fs(readline\(\))c
+Ft(is)i(called,)j(it)e(should)f(set)h(this)g(v)-5 b(ariable)34
b(to)f(a)g(non-zero)g(v)-5 b(alue)390 1658 y(after)38
b(displa)m(ying)h(the)f(prompt.)63 b(The)37 b(prompt)g(m)m(ust)h(also)h
(b)s(e)e(passed)g(as)i(the)f(argumen)m(t)g(to)390 1767
-y Fr(readline\(\))30 b Fs(so)j(the)h(redispla)m(y)f(functions)f(can)i
+y Fs(readline\(\))30 b Ft(so)j(the)h(redispla)m(y)f(functions)f(can)i
(up)s(date)e(the)h(displa)m(y)g(prop)s(erly)-8 b(.)48
b(The)32 b(calling)390 1877 y(application)g(is)e(resp)s(onsible)g(for)g
(managing)h(the)f(v)-5 b(alue;)31 b(Readline)g(nev)m(er)g(sets)g(it.)
-3371 2063 y([V)-8 b(ariable])-3598 b Fg(const)54 b(char)f(*)g
-(rl_library_version)390 2173 y Fs(The)30 b(v)m(ersion)h(n)m(um)m(b)s
+3371 2063 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_library_version)390 2173 y Ft(The)30 b(v)m(ersion)h(n)m(um)m(b)s
(er)e(of)h(this)h(revision)f(of)h(the)f(library)-8 b(.)3371
-2359 y([V)g(ariable])-3598 b Fg(int)53 b(rl_readline_version)390
-2469 y Fs(An)34 b(in)m(teger)h(enco)s(ding)f(the)g(curren)m(t)g(v)m
+2359 y([V)g(ariable])-3598 b Fh(int)53 b(rl_readline_version)390
+2469 y Ft(An)34 b(in)m(teger)h(enco)s(ding)f(the)g(curren)m(t)g(v)m
(ersion)h(of)f(the)g(library)-8 b(.)52 b(The)34 b(enco)s(ding)g(is)g
-(of)g(the)g(form)390 2578 y(0x)p Fi(MMmm)p Fs(,)39 b(where)d
-Fi(MM)47 b Fs(is)36 b(the)h(t)m(w)m(o-digit)i(ma)5 b(jor)36
-b(v)m(ersion)h(n)m(um)m(b)s(er,)g(and)f Fi(mm)g Fs(is)h(the)f(t)m(w)m
+(of)g(the)g(form)390 2578 y(0x)p Fj(MMmm)p Ft(,)39 b(where)d
+Fj(MM)47 b Ft(is)36 b(the)h(t)m(w)m(o-digit)i(ma)5 b(jor)36
+b(v)m(ersion)h(n)m(um)m(b)s(er,)g(and)f Fj(mm)g Ft(is)h(the)f(t)m(w)m
(o-)390 2688 y(digit)i(minor)f(v)m(ersion)h(n)m(um)m(b)s(er.)60
-b(F)-8 b(or)38 b(example,)i(for)d(Readline-4.2,)k Fr
-(rl_readline_version)390 2798 y Fs(w)m(ould)30 b(ha)m(v)m(e)i(the)e(v)
+b(F)-8 b(or)38 b(example,)i(for)d(Readline-4.2,)k Fs
+(rl_readline_version)390 2798 y Ft(w)m(ould)30 b(ha)m(v)m(e)i(the)e(v)
-5 b(alue)31 b(0x0402.)3371 2984 y([V)-8 b(ariable])-3598
-b Fg(int)53 b(rl_gnu_readline_p)390 3093 y Fs(Alw)m(a)m(ys)32
-b(set)f(to)g(1,)g(denoting)f(that)h(this)g(is)f Fl(gnu)g
-Fs(readline)h(rather)f(than)g(some)h(em)m(ulation.)3371
-3280 y([V)-8 b(ariable])-3598 b Fg(const)54 b(char)f(*)g
-(rl_terminal_name)390 3389 y Fs(The)28 b(terminal)g(t)m(yp)s(e,)h(used)
+b Fh(int)53 b(rl_gnu_readline_p)390 3093 y Ft(Alw)m(a)m(ys)32
+b(set)f(to)g(1,)g(denoting)f(that)h(this)g(is)f Fm(gnu)g
+Ft(readline)h(rather)f(than)g(some)h(em)m(ulation.)3371
+3280 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_terminal_name)390 3389 y Ft(The)28 b(terminal)g(t)m(yp)s(e,)h(used)
e(for)h(initialization.)43 b(If)28 b(not)g(set)h(b)m(y)e(the)i
(application,)h(Readline)f(sets)390 3499 y(this)h(to)h(the)g(v)-5
-b(alue)31 b(of)f(the)h Fr(TERM)e Fs(en)m(vironmen)m(t)i(v)-5
+b(alue)31 b(of)f(the)h Fs(TERM)e Ft(en)m(vironmen)m(t)i(v)-5
b(ariable)31 b(the)g(\014rst)e(time)j(it)e(is)h(called.)3371
-3685 y([V)-8 b(ariable])-3598 b Fg(const)54 b(char)f(*)g
-(rl_readline_name)390 3795 y Fs(This)30 b(v)-5 b(ariable)32
+3685 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_readline_name)390 3795 y Ft(This)30 b(v)-5 b(ariable)32
b(is)g(set)f(to)h(a)g(unique)e(name)h(b)m(y)g(eac)m(h)i(application)f
(using)f(Readline.)44 b(The)30 b(v)-5 b(alue)390 3904
y(allo)m(ws)29 b(conditional)h(parsing)d(of)h(the)h(inputrc)e(\014le)h
(\(see)h(Section)g(1.3.2)g([Conditional)g(Init)f(Con-)390
-4014 y(structs],)j(page)g(11\).)3371 4200 y([V)-8 b(ariable])-3598
-b Fg(FILE)54 b(*)e(rl_instream)390 4310 y Fs(The)40 b(stdio)i(stream)f
+4014 y(structs],)j(page)g(12\).)3371 4200 y([V)-8 b(ariable])-3598
+b Fh(FILE)54 b(*)e(rl_instream)390 4310 y Ft(The)40 b(stdio)i(stream)f
(from)g(whic)m(h)f(Readline)i(reads)f(input.)71 b(If)41
-b Fr(NULL)p Fs(,)i(Readline)e(defaults)g(to)390 4419
-y Fi(stdin)p Fs(.)3371 4606 y([V)-8 b(ariable])-3598
-b Fg(FILE)54 b(*)e(rl_outstream)390 4715 y Fs(The)34
+b Fs(NULL)p Ft(,)i(Readline)e(defaults)g(to)390 4419
+y Fj(stdin)p Ft(.)3371 4606 y([V)-8 b(ariable])-3598
+b Fh(FILE)54 b(*)e(rl_outstream)390 4715 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 Fr(NULL)p Fs(,)h(Readline)g(defaults)f(to)390
-4825 y Fi(stdout)p Fs(.)3371 5011 y([V)-8 b(ariable])-3598
-b Fg(int)53 b(rl_prefer_env_winsize)390 5121 y Fs(If)28
+b(If)34 b Fs(NULL)p Ft(,)h(Readline)g(defaults)f(to)390
+4825 y Fj(stdout)p Ft(.)3371 5011 y([V)-8 b(ariable])-3598
+b Fh(int)53 b(rl_prefer_env_winsize)390 5121 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 Fr(LINES)f Fs(and)h Fr(COLUMNS)e Fs(en)m(vironmen)m(t)j(v)-5
+g Fs(LINES)f Ft(and)h Fs(COLUMNS)e Ft(en)m(vironmen)m(t)j(v)-5
b(ari-)390 5230 y(ables)41 b(greater)h(precedence)g(than)e(v)-5
b(alues)41 b(fetc)m(hed)h(from)e(the)h(k)m(ernel)h(when)e(computing)h
(the)390 5340 y(screen)30 b(dimensions.)p eop end
-%%Page: 27 31
-TeXDict begin 27 30 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(27)3371
-299 y([V)-8 b(ariable])-3598 b Fg(rl_command_func_t)57
-b(*)c(rl_last_func)390 408 y Fs(The)34 b(address)g(of)h(the)g(last)h
+%%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(rl_command_func_t)57
+b(*)c(rl_last_func)390 408 y Ft(The)34 b(address)g(of)h(the)g(last)h
(command)e(function)g(Readline)i(executed.)55 b(Ma)m(y)35
b(b)s(e)g(used)f(to)h(test)390 518 y(whether)30 b(or)g(not)h(a)f
(function)h(is)f(b)s(eing)g(executed)h(t)m(wice)h(in)e(succession,)h
-(for)f(example.)3371 737 y([V)-8 b(ariable])-3598 b Fg(rl_hook_func_t)
-57 b(*)52 b(rl_startup_hook)390 847 y Fs(If)34 b(non-zero,)i(this)e(is)
+(for)f(example.)3371 737 y([V)-8 b(ariable])-3598 b Fh(rl_hook_func_t)
+57 b(*)52 b(rl_startup_hook)390 847 y Ft(If)34 b(non-zero,)i(this)e(is)
h(the)f(address)f(of)i(a)g(function)f(to)h(call)g(just)f(b)s(efore)g
-Fr(readline)e Fs(prin)m(ts)i(the)390 956 y(\014rst)c(prompt.)3371
-1176 y([V)-8 b(ariable])-3598 b Fg(rl_hook_func_t)57
-b(*)52 b(rl_pre_input_hook)390 1285 y Fs(If)35 b(non-zero,)j(this)d(is)
+Fs(readline)e Ft(prin)m(ts)i(the)390 956 y(\014rst)c(prompt.)3371
+1176 y([V)-8 b(ariable])-3598 b Fh(rl_hook_func_t)57
+b(*)52 b(rl_pre_input_hook)390 1285 y Ft(If)35 b(non-zero,)j(this)d(is)
g(the)h(address)f(of)g(a)h(function)f(to)i(call)f(after)g(the)g
(\014rst)f(prompt)f(has)i(b)s(een)390 1395 y(prin)m(ted)30
-b(and)g(just)f(b)s(efore)h Fr(readline)f Fs(starts)h(reading)h(input)e
+b(and)g(just)f(b)s(efore)h Fs(readline)f Ft(starts)h(reading)h(input)e
(c)m(haracters.)3371 1614 y([V)-8 b(ariable])-3598 b
-Fg(rl_hook_func_t)57 b(*)52 b(rl_event_hook)390 1724
-y Fs(If)40 b(non-zero,)k(this)d(is)f(the)h(address)f(of)h(a)g(function)
+Fh(rl_hook_func_t)57 b(*)52 b(rl_event_hook)390 1724
+y Ft(If)40 b(non-zero,)k(this)d(is)f(the)h(address)f(of)h(a)g(function)
f(to)h(call)h(p)s(erio)s(dically)f(when)f(Readline)h(is)390
1833 y(w)m(aiting)30 b(for)f(terminal)h(input.)39 b(By)30
b(default,)g(this)f(will)g(b)s(e)g(called)h(at)g(most)f(ten)h(times)f
(a)h(second)390 1943 y(if)g(there)h(is)f(no)h(k)m(eyb)s(oard)f(input.)
-3371 2162 y([V)-8 b(ariable])-3598 b Fg(rl_getc_func_t)57
-b(*)52 b(rl_getc_function)390 2271 y Fs(If)30 b(non-zero,)h(Readline)g
+3371 2162 y([V)-8 b(ariable])-3598 b Fh(rl_getc_func_t)57
+b(*)52 b(rl_getc_function)390 2271 y Ft(If)30 b(non-zero,)h(Readline)g
(will)g(call)h(indirectly)e(through)g(this)h(p)s(oin)m(ter)f(to)h(get)h
(a)e(c)m(haracter)i(from)390 2381 y(the)21 b(input)g(stream.)38
-b(By)21 b(default,)j(it)e(is)f(set)h(to)g Fr(rl_getc)p
-Fs(,)f(the)h(default)f(Readline)h(c)m(haracter)h(input)390
+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
2491 y(function)f(\(see)i(Section)g(2.4.8)g([Character)g(Input],)f
-(page)h(36\).)39 b(In)22 b(general,)k(an)c(application)i(that)390
-2600 y(sets)31 b Fi(rl)p 635 2600 28 4 v 40 w(getc)p
-835 2600 V 41 w(function)f Fs(should)g(consider)g(setting)h
-Fi(rl)p 2234 2600 V 40 w(input)p 2487 2600 V 39 w(a)m(v)-5
-b(ailable)p 2867 2600 V 43 w(ho)s(ok)36 b Fs(as)30 b(w)m(ell.)3371
-2819 y([V)-8 b(ariable])-3598 b Fg(rl_hook_func_t)57
-b(*)52 b(rl_signal_event_hook)390 2929 y Fs(If)27 b(non-zero,)h(this)f
+(page)h(38\).)39 b(In)22 b(general,)k(an)c(application)i(that)390
+2600 y(sets)31 b Fj(rl)p 635 2600 28 4 v 40 w(getc)p
+835 2600 V 41 w(function)f Ft(should)g(consider)g(setting)h
+Fj(rl)p 2234 2600 V 40 w(input)p 2487 2600 V 39 w(a)m(v)-5
+b(ailable)p 2867 2600 V 43 w(ho)s(ok)36 b Ft(as)30 b(w)m(ell.)3371
+2819 y([V)-8 b(ariable])-3598 b Fh(rl_hook_func_t)57
+b(*)52 b(rl_signal_event_hook)390 2929 y Ft(If)27 b(non-zero,)h(this)f
(is)g(the)g(address)f(of)i(a)f(function)g(to)g(call)i(if)e(a)g(read)g
(system)g(call)h(is)g(in)m(terrupted)390 3039 y(when)h(Readline)i(is)g
(reading)f(terminal)h(input.)3371 3258 y([V)-8 b(ariable])-3598
-b Fg(rl_hook_func_t)57 b(*)52 b(rl_input_available_ho)q(ok)390
-3367 y Fs(If)28 b(non-zero,)j(Readline)e(will)g(use)g(this)g
+b Fh(rl_hook_func_t)57 b(*)52 b(rl_input_available_ho)q(ok)390
+3367 y Ft(If)28 b(non-zero,)j(Readline)e(will)g(use)g(this)g
(function's)g(return)f(v)-5 b(alue)29 b(when)f(it)i(needs)e(to)i
(determine)390 3477 y(whether)42 b(or)g(not)h(there)f(is)h(a)m(v)-5
b(ailable)45 b(input)c(on)i(the)f(curren)m(t)g(input)g(source.)77
b(The)42 b(default)390 3587 y(ho)s(ok)25 b(c)m(hec)m(ks)i
-Fr(rl_instream)p Fs(;)d(if)i(an)f(application)i(is)e(using)g(a)h
+Fs(rl_instream)p Ft(;)d(if)i(an)f(application)i(is)e(using)g(a)h
(di\013eren)m(t)g(input)e(source,)j(it)f(should)390 3696
y(set)34 b(the)f(ho)s(ok)h(appropriately)-8 b(.)50 b(Readline)34
b(queries)f(for)h(a)m(v)-5 b(ailable)35 b(input)e(when)f(implemen)m
@@ -8591,619 +8671,622 @@ b(queries)f(for)h(a)m(v)-5 b(ailable)35 b(input)e(when)f(implemen)m
(and)h(incremen)m(tal)h(searc)m(hes.)41 b(This)27 b(ma)m(y)i(use)f(an)
390 3915 y(application-sp)s(eci\014c)22 b(timeout)g(b)s(efore)f
(returning)f(a)h(v)-5 b(alue;)25 b(Readline)c(uses)f(the)i(v)-5
-b(alue)21 b(passed)f(to)390 4025 y Fr(rl_set_keyboard_input_ti)o(meou)o
-(t\(\))e Fs(or)24 b(the)g(v)-5 b(alue)25 b(of)g(the)f(user-settable)i
-Fi(k)m(eyseq-timeout)390 4134 y Fs(v)-5 b(ariable.)48
+b(alue)21 b(passed)f(to)390 4025 y Fs(rl_set_keyboard_input_ti)o(meou)o
+(t\(\))e Ft(or)24 b(the)g(v)-5 b(alue)25 b(of)g(the)f(user-settable)i
+Fj(k)m(eyseq-timeout)390 4134 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 4244 y(\(see)d(Section)f
-(2.4.12)i([Alternate)f(In)m(terface],)h(page)e(40\),)i(whic)m(h)d(ma)m
-(y)h(not)g(use)g(the)g(traditional)390 4354 y Fr(read\(2\))39
-b Fs(and)g(\014le)i(descriptor)f(in)m(terface,)45 b(or)c(other)f
+(2.4.12)i([Alternate)f(In)m(terface],)h(page)e(42\),)i(whic)m(h)d(ma)m
+(y)h(not)g(use)g(the)g(traditional)390 4354 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
4463 y(mec)m(hanism.)k(If)31 b(an)g(application)i(uses)e(an)h(input)e
(mec)m(hanism)i(or)g(ho)s(ok)f(that)h(can)g(p)s(oten)m(tially)390
-4573 y(exceed)38 b(the)e(v)-5 b(alue)37 b(of)g Fi(k)m(eyseq-timeout)p
-Fs(,)k(it)c(should)e(increase)j(the)e(timeout)i(or)f(set)g(this)f(ho)s
+4573 y(exceed)38 b(the)e(v)-5 b(alue)37 b(of)g Fj(k)m(eyseq-timeout)p
+Ft(,)k(it)c(should)e(increase)j(the)e(timeout)i(or)f(set)g(this)f(ho)s
(ok)390 4682 y(appropriately)d(ev)m(en)g(when)e(not)h(using)g(the)h
(callbac)m(k)h(in)m(terface.)48 b(In)31 b(general,)j(an)f(application)
-390 4792 y(that)e(sets)g Fi(rl)p 832 4792 V 40 w(getc)p
-1032 4792 V 41 w(function)f Fs(should)g(consider)g(setting)h
-Fi(rl)p 2431 4792 V 40 w(input)p 2684 4792 V 39 w(a)m(v)-5
-b(ailable)p 3064 4792 V 43 w(ho)s(ok)36 b Fs(as)30 b(w)m(ell.)3371
-5011 y([V)-8 b(ariable])-3598 b Fg(rl_voidfunc_t)56 b(*)d
-(rl_redisplay_function)390 5121 y Fs(If)36 b(non-zero,)i(Readline)e
+390 4792 y(that)e(sets)g Fj(rl)p 832 4792 V 40 w(getc)p
+1032 4792 V 41 w(function)f Ft(should)g(consider)g(setting)h
+Fj(rl)p 2431 4792 V 40 w(input)p 2684 4792 V 39 w(a)m(v)-5
+b(ailable)p 3064 4792 V 43 w(ho)s(ok)36 b Ft(as)30 b(w)m(ell.)3371
+5011 y([V)-8 b(ariable])-3598 b Fh(rl_voidfunc_t)56 b(*)d
+(rl_redisplay_function)390 5121 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
(date)g(the)g(displa)m(y)390 5230 y(with)27 b(the)g(curren)m(t)g(con)m
(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 Fr(rl_redisplay)p Fs(,)390
+b(default,)h(it)g(is)f(set)g(to)h Fs(rl_redisplay)p Ft(,)390
5340 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(35\).)p eop
+(Section)g(2.4.6)h([Redispla)m(y],)g(page)f(37\).)p eop
end
-%%Page: 28 32
-TeXDict begin 28 31 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(28)3371
-299 y([V)-8 b(ariable])-3598 b Fg(rl_vintfunc_t)56 b(*)d
-(rl_prep_term_function)390 408 y Fs(If)24 b(non-zero,)i(Readline)e
+%%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(rl_vintfunc_t)56 b(*)d
+(rl_prep_term_function)390 408 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
(initialize)h(the)e(terminal.)390 518 y(The)37 b(function)f(tak)m(es)j
-(a)e(single)h(argumen)m(t,)i(an)d Fr(int)f Fs(\015ag)h(that)h(sa)m(ys)g
+(a)e(single)h(argumen)m(t,)i(an)d Fs(int)f Ft(\015ag)h(that)h(sa)m(ys)g
(whether)e(or)h(not)g(to)h(use)390 628 y(eigh)m(t-bit)e(c)m(haracters.)
-53 b(By)35 b(default,)g(this)f(is)g(set)h(to)g Fr(rl_prep_terminal)29
-b Fs(\(see)35 b(Section)g(2.4.9)390 737 y([T)-8 b(erminal)31
-b(Managemen)m(t],)i(page)e(37\).)3371 915 y([V)-8 b(ariable])-3598
-b Fg(rl_voidfunc_t)56 b(*)d(rl_deprep_term_functio)q(n)390
-1024 y Fs(If)36 b(non-zero,)j(Readline)e(will)g(call)h(indirectly)f
+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 737 y([T)-8 b(erminal)31
+b(Managemen)m(t],)i(page)e(39\).)3371 915 y([V)-8 b(ariable])-3598
+b Fh(rl_voidfunc_t)56 b(*)d(rl_deprep_term_functio)q(n)390
+1024 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(reset)g(the)g(terminal.)390
1134 y(This)d(function)h(should)f(undo)g(the)h(e\013ects)h(of)f
-Fr(rl_prep_term_function)p Fs(.)49 b(By)35 b(default,)i(this)390
-1243 y(is)30 b(set)h(to)g Fr(rl_deprep_terminal)26 b
-Fs(\(see)31 b(Section)g(2.4.9)i([T)-8 b(erminal)30 b(Managemen)m(t],)j
-(page)e(37\).)3371 1421 y([V)-8 b(ariable])-3598 b Fg(Keymap)54
-b(rl_executing_keymap)390 1530 y Fs(This)35 b(v)-5 b(ariable)37
+Fs(rl_prep_term_function)p Ft(.)49 b(By)35 b(default,)i(this)390
+1243 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(39\).)3371 1421 y([V)-8 b(ariable])-3598 b Fh(Keymap)54
+b(rl_executing_keymap)390 1530 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(30\))i(in)d(whic)m(h)390 1640 y(the)c(curren)m
+([Keymaps],)g(page)e(32\))i(in)d(whic)m(h)390 1640 y(the)c(curren)m
(tly)f(executing)i(readline)e(function)g(w)m(as)h(found.)3371
-1817 y([V)-8 b(ariable])-3598 b Fg(Keymap)54 b(rl_binding_keymap)390
-1927 y Fs(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(30\))i(in)d
+1817 y([V)-8 b(ariable])-3598 b Fh(Keymap)54 b(rl_binding_keymap)390
+1927 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(32\))i(in)d
(whic)m(h)390 2036 y(the)c(last)g(k)m(ey)g(binding)e(o)s(ccurred.)3371
-2213 y([V)-8 b(ariable])-3598 b Fg(char)54 b(*)e(rl_executing_macro)390
-2323 y Fs(This)30 b(v)-5 b(ariable)31 b(is)f(set)h(to)g(the)g(text)g
+2213 y([V)-8 b(ariable])-3598 b Fh(char)54 b(*)e(rl_executing_macro)390
+2323 y Ft(This)30 b(v)-5 b(ariable)31 b(is)f(set)h(to)g(the)g(text)g
(of)g(an)m(y)f(curren)m(tly-executing)i(macro.)3371 2500
-y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_executing_key)390
-2610 y Fs(The)30 b(k)m(ey)h(that)g(caused)f(the)h(dispatc)m(h)g(to)g
+y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_executing_key)390
+2610 y Ft(The)30 b(k)m(ey)h(that)g(caused)f(the)h(dispatc)m(h)g(to)g
(the)f(curren)m(tly-executing)i(Readline)f(function.)3371
-2787 y([V)-8 b(ariable])-3598 b Fg(char)54 b(*)e(rl_executing_keyseq)
-390 2897 y Fs(The)35 b(full)g(k)m(ey)h(sequence)g(that)g(caused)g(the)g
+2787 y([V)-8 b(ariable])-3598 b Fh(char)54 b(*)e(rl_executing_keyseq)
+390 2897 y Ft(The)35 b(full)g(k)m(ey)h(sequence)g(that)g(caused)g(the)g
(dispatc)m(h)f(to)i(the)e(curren)m(tly-executing)i(Readline)390
3006 y(function.)3371 3184 y([V)-8 b(ariable])-3598 b
-Fg(int)53 b(rl_key_sequence_lengt)q(h)390 3293 y Fs(The)30
-b(n)m(um)m(b)s(er)f(of)h(c)m(haracters)i(in)e Fi(rl)p
+Fh(int)53 b(rl_key_sequence_lengt)q(h)390 3293 y Ft(The)30
+b(n)m(um)m(b)s(er)f(of)h(c)m(haracters)i(in)e Fj(rl)p
1617 3293 28 4 v 40 w(executing)p 2032 3293 V 41 w(k)m(eyseq)p
-Fs(.)3371 3471 y([V)-8 b(ariable])-3598 b Fg(int)53 b
-(rl_readline_state)390 3580 y Fs(A)35 b(v)-5 b(ariable)35
+Ft(.)3371 3471 y([V)-8 b(ariable])-3598 b Fh(int)53 b
+(rl_readline_state)390 3580 y Ft(A)35 b(v)-5 b(ariable)35
b(with)f(bit)g(v)-5 b(alues)35 b(that)g(encapsulate)h(the)e(curren)m(t)
h(Readline)g(state.)54 b(A)34 b(bit)h(is)f(set)390 3690
-y(with)k(the)g Fr(RL_SETSTATE)c Fs(macro,)41 b(and)c(unset)h(with)f
-(the)h Fr(RL_UNSETSTATE)d Fs(macro.)63 b(Use)39 b(the)390
-3799 y Fr(RL_ISSTATE)34 b Fs(macro)k(to)g(test)g(whether)f(a)h
+y(with)k(the)g Fs(RL_SETSTATE)c Ft(macro,)41 b(and)c(unset)h(with)f
+(the)h Fs(RL_UNSETSTATE)d Ft(macro.)63 b(Use)39 b(the)390
+3799 y Fs(RL_ISSTATE)34 b Ft(macro)k(to)g(test)g(whether)f(a)h
(particular)f(state)i(bit)e(is)g(set.)62 b(Curren)m(t)36
-b(state)j(bits)390 3909 y(include:)390 4064 y Fr(RL_STATE_NONE)870
-4173 y Fs(Readline)31 b(has)f(not)h(y)m(et)g(b)s(een)f(called,)i(nor)e
-(has)g(it)h(b)s(egun)e(to)i(initialize.)390 4328 y Fr
-(RL_STATE_INITIALIZING)870 4437 y Fs(Readline)g(is)f(initializing)j
-(its)e(in)m(ternal)g(data)g(structures.)390 4592 y Fr
-(RL_STATE_INITIALIZED)870 4702 y Fs(Readline)g(has)f(completed)h(its)g
-(initialization.)390 4856 y Fr(RL_STATE_TERMPREPPED)870
-4966 y Fs(Readline)e(has)g(mo)s(di\014ed)e(the)i(terminal)g(mo)s(des)f
+b(state)j(bits)390 3909 y(include:)390 4064 y Fs(RL_STATE_NONE)870
+4173 y Ft(Readline)31 b(has)f(not)h(y)m(et)g(b)s(een)f(called,)i(nor)e
+(has)g(it)h(b)s(egun)e(to)i(initialize.)390 4328 y Fs
+(RL_STATE_INITIALIZING)870 4437 y Ft(Readline)g(is)f(initializing)j
+(its)e(in)m(ternal)g(data)g(structures.)390 4592 y Fs
+(RL_STATE_INITIALIZED)870 4702 y Ft(Readline)g(has)f(completed)h(its)g
+(initialization.)390 4856 y Fs(RL_STATE_TERMPREPPED)870
+4966 y Ft(Readline)e(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 5076
-y(pla)m(y)-8 b(.)390 5230 y Fr(RL_STATE_READCMD)870 5340
-y Fs(Readline)31 b(is)f(reading)h(a)g(command)f(from)g(the)g(k)m(eyb)s
+y(pla)m(y)-8 b(.)390 5230 y Fs(RL_STATE_READCMD)870 5340
+y Ft(Readline)31 b(is)f(reading)h(a)g(command)f(from)g(the)g(k)m(eyb)s
(oard.)p eop end
-%%Page: 29 33
-TeXDict begin 29 32 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(29)390
-299 y Fr(RL_STATE_METANEXT)870 408 y Fs(Readline)31 b(is)f(reading)h
+%%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
+299 y Fs(RL_STATE_METANEXT)870 408 y Ft(Readline)31 b(is)f(reading)h
(more)f(input)g(after)h(reading)f(the)h(meta-pre\014x)f(c)m(haracter.)
-390 576 y Fr(RL_STATE_DISPATCHING)870 686 y Fs(Readline)h(is)f(dispatc)
-m(hing)h(to)g(a)g(command.)390 853 y Fr(RL_STATE_MOREINPUT)870
-963 y Fs(Readline)g(is)f(reading)h(more)f(input)g(while)g(executing)i
-(an)e(editing)h(command.)390 1130 y Fr(RL_STATE_ISEARCH)870
-1240 y Fs(Readline)g(is)f(p)s(erforming)g(an)g(incremen)m(tal)i
-(history)e(searc)m(h.)390 1408 y Fr(RL_STATE_NSEARCH)870
-1517 y Fs(Readline)h(is)f(p)s(erforming)g(a)g(non-incremen)m(tal)i
-(history)e(searc)m(h.)390 1685 y Fr(RL_STATE_SEARCH)870
-1794 y Fs(Readline)21 b(is)f(searc)m(hing)i(bac)m(kw)m(ard)e(or)h(forw)
+390 576 y Fs(RL_STATE_DISPATCHING)870 686 y Ft(Readline)h(is)f(dispatc)
+m(hing)h(to)g(a)g(command.)390 853 y Fs(RL_STATE_MOREINPUT)870
+963 y Ft(Readline)g(is)f(reading)h(more)f(input)g(while)g(executing)i
+(an)e(editing)h(command.)390 1130 y Fs(RL_STATE_ISEARCH)870
+1240 y Ft(Readline)g(is)f(p)s(erforming)g(an)g(incremen)m(tal)i
+(history)e(searc)m(h.)390 1408 y Fs(RL_STATE_NSEARCH)870
+1517 y Ft(Readline)h(is)f(p)s(erforming)g(a)g(non-incremen)m(tal)i
+(history)e(searc)m(h.)390 1685 y Fs(RL_STATE_SEARCH)870
+1794 y Ft(Readline)21 b(is)f(searc)m(hing)i(bac)m(kw)m(ard)e(or)h(forw)
m(ard)e(through)h(the)h(history)f(for)g(a)h(string.)390
-1962 y Fr(RL_STATE_NUMERICARG)870 2072 y Fs(Readline)31
+1962 y Fs(RL_STATE_NUMERICARG)870 2072 y Ft(Readline)31
b(is)f(reading)h(a)g(n)m(umeric)f(argumen)m(t.)390 2239
-y Fr(RL_STATE_MACROINPUT)870 2349 y Fs(Readline)25 b(is)f(curren)m(tly)
+y Fs(RL_STATE_MACROINPUT)870 2349 y Ft(Readline)25 b(is)f(curren)m(tly)
g(getting)i(its)f(input)e(from)h(a)g(previously-de\014ned)f(k)m(eyb)s
-(oard)870 2458 y(macro.)390 2626 y Fr(RL_STATE_MACRODEF)870
-2736 y Fs(Readline)31 b(is)f(curren)m(tly)h(reading)f(c)m(haracters)i
+(oard)870 2458 y(macro.)390 2626 y Fs(RL_STATE_MACRODEF)870
+2736 y Ft(Readline)31 b(is)f(curren)m(tly)h(reading)f(c)m(haracters)i
(de\014ning)e(a)g(k)m(eyb)s(oard)h(macro.)390 2903 y
-Fr(RL_STATE_OVERWRITE)870 3013 y Fs(Readline)g(is)f(in)g(o)m(v)m
-(erwrite)i(mo)s(de.)390 3180 y Fr(RL_STATE_COMPLETING)870
-3290 y Fs(Readline)f(is)f(p)s(erforming)g(w)m(ord)g(completion.)390
-3458 y Fr(RL_STATE_SIGHANDLER)870 3567 y Fs(Readline)h(is)f(curren)m
+Fs(RL_STATE_OVERWRITE)870 3013 y Ft(Readline)g(is)f(in)g(o)m(v)m
+(erwrite)i(mo)s(de.)390 3180 y Fs(RL_STATE_COMPLETING)870
+3290 y Ft(Readline)f(is)f(p)s(erforming)g(w)m(ord)g(completion.)390
+3458 y Fs(RL_STATE_SIGHANDLER)870 3567 y Ft(Readline)h(is)f(curren)m
(tly)h(executing)g(the)g(readline)g(signal)g(handler.)390
-3735 y Fr(RL_STATE_UNDOING)870 3844 y Fs(Readline)g(is)f(p)s(erforming)
-g(an)g(undo.)390 4012 y Fr(RL_STATE_INPUTPENDING)870
-4122 y Fs(Readline)h(has)f(input)g(p)s(ending)f(due)g(to)i(a)g(call)h
-(to)f Fr(rl_execute_next\(\))p Fs(.)390 4289 y Fr(RL_STATE_TTYCSAVED)
-870 4399 y Fs(Readline)g(has)f(sa)m(v)m(ed)i(the)e(v)-5
+3735 y Fs(RL_STATE_UNDOING)870 3844 y Ft(Readline)g(is)f(p)s(erforming)
+g(an)g(undo.)390 4012 y Fs(RL_STATE_INPUTPENDING)870
+4122 y Ft(Readline)h(has)f(input)g(p)s(ending)f(due)g(to)i(a)g(call)h
+(to)f Fs(rl_execute_next\(\))p Ft(.)390 4289 y Fs(RL_STATE_TTYCSAVED)
+870 4399 y Ft(Readline)g(has)f(sa)m(v)m(ed)i(the)e(v)-5
b(alues)31 b(of)f(the)h(terminal's)g(sp)s(ecial)g(c)m(haracters.)390
-4566 y Fr(RL_STATE_CALLBACK)870 4676 y Fs(Readline)44
+4566 y Fs(RL_STATE_CALLBACK)870 4676 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 4786 y(tion)31 b(2.4.12)h([Alternate)h(In)m
-(terface],)f(page)f(40\).)390 4953 y Fr(RL_STATE_VIMOTION)870
-5063 y Fs(Readline)g(is)f(reading)h(the)f(argumen)m(t)h(to)g(a)g(vi-mo)
-s(de)g Fr(")p Fs(motion)p Fr(")f Fs(command.)390 5230
-y Fr(RL_STATE_MULTIKEY)870 5340 y Fs(Readline)h(is)f(reading)h(a)g(m)m
+(terface],)f(page)f(42\).)390 4953 y Fs(RL_STATE_VIMOTION)870
+5063 y Ft(Readline)g(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 5230
+y Fs(RL_STATE_MULTIKEY)870 5340 y Ft(Readline)h(is)f(reading)h(a)g(m)m
(ultiple-k)m(eystrok)m(e)i(command.)p eop end
-%%Page: 30 34
-TeXDict begin 30 33 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(30)390
-299 y Fr(RL_STATE_VICMDONCE)870 408 y Fs(Readline)40
+%%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_VICMDONCE)870 408 y Ft(Readline)40
b(has)f(en)m(tered)g(vi)g(command)g(\(mo)m(v)m(emen)m(t\))j(mo)s(de)d
(at)h(least)g(one)f(time)870 518 y(during)29 b(the)i(curren)m(t)f(call)
-i(to)f Fr(readline\(\))p Fs(.)390 672 y Fr(RL_STATE_DONE)870
-782 y Fs(Readline)d(has)g(read)f(a)i(k)m(ey)f(sequence)g(b)s(ound)e(to)
-i Fr(accept-line)d Fs(and)i(is)h(ab)s(out)f(to)870 891
-y(return)i(the)i(line)g(to)g(the)f(caller.)3371 1067
-y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_explicit_arg)390
-1177 y Fs(Set)39 b(to)g(a)h(non-zero)f(v)-5 b(alue)39
+i(to)f Fs(readline\(\))p Ft(.)390 671 y Fs(RL_STATE_DONE)870
+781 y Ft(Readline)d(has)g(read)f(a)i(k)m(ey)f(sequence)g(b)s(ound)e(to)
+i Fs(accept-line)d Ft(and)i(is)h(ab)s(out)f(to)870 891
+y(return)i(the)i(line)g(to)g(the)f(caller.)3371 1066
+y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_explicit_arg)390
+1175 y Ft(Set)39 b(to)g(a)h(non-zero)f(v)-5 b(alue)39
b(if)g(an)g(explicit)h(n)m(umeric)e(argumen)m(t)i(w)m(as)f(sp)s
-(eci\014ed)f(b)m(y)g(the)h(user.)390 1287 y(Only)30 b(v)-5
+(eci\014ed)f(b)m(y)g(the)h(user.)390 1285 y(Only)30 b(v)-5
b(alid)30 b(in)h(a)f(bindable)g(command)g(function.)3371
-1463 y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_numeric_arg)390
-1572 y Fs(Set)45 b(to)h(the)g(v)-5 b(alue)46 b(of)f(an)m(y)h(n)m
+1460 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_numeric_arg)390
+1570 y Ft(Set)45 b(to)h(the)g(v)-5 b(alue)46 b(of)f(an)m(y)h(n)m
(umeric)f(argumen)m(t)h(explicitly)h(sp)s(eci\014ed)d(b)m(y)h(the)h
-(user)e(b)s(efore)390 1682 y(executing)27 b(the)f(curren)m(t)g
+(user)e(b)s(efore)390 1680 y(executing)27 b(the)f(curren)m(t)g
(Readline)h(function.)38 b(Only)26 b(v)-5 b(alid)26 b(in)g(a)g
-(bindable)f(command)h(function.)3371 1858 y([V)-8 b(ariable])-3598
-b Fg(int)53 b(rl_editing_mode)390 1968 y Fs(Set)25 b(to)h(a)g(v)-5
+(bindable)f(command)h(function.)3371 1855 y([V)-8 b(ariable])-3598
+b Fh(int)53 b(rl_editing_mode)390 1964 y Ft(Set)25 b(to)h(a)g(v)-5
b(alue)25 b(denoting)h(Readline's)f(curren)m(t)g(editing)h(mo)s(de.)39
-b(A)25 b(v)-5 b(alue)25 b(of)h Fi(1)32 b Fs(means)25
-b(Readline)390 2077 y(is)30 b(curren)m(tly)h(in)f(emacs)h(mo)s(de;)f
-Fi(0)38 b Fs(means)31 b(that)f(vi)h(mo)s(de)f(is)g(activ)m(e.)150
-2304 y Fq(2.4)68 b(Readline)47 b(Con)l(v)l(enience)f(F)-11
-b(unctions)150 2526 y Fh(2.4.1)63 b(Naming)41 b(a)g(F)-10
-b(unction)150 2673 y Fs(The)24 b(user)h(can)g(dynamically)g(c)m(hange)h
+b(A)25 b(v)-5 b(alue)25 b(of)h Fj(1)32 b Ft(means)25
+b(Readline)390 2074 y(is)30 b(curren)m(tly)h(in)f(emacs)h(mo)s(de;)f
+Fj(0)38 b Ft(means)31 b(that)f(vi)h(mo)s(de)f(is)g(activ)m(e.)150
+2309 y Fr(2.4)68 b(Readline)47 b(Con)l(v)l(enience)f(F)-11
+b(unctions)150 2530 y Fi(2.4.1)63 b(Naming)41 b(a)g(F)-10
+b(unction)150 2677 y Ft(The)24 b(user)h(can)g(dynamically)g(c)m(hange)h
(the)f(bindings)f(of)h(k)m(eys)h(while)e(using)h(Readline.)39
-b(This)24 b(is)h(done)g(b)m(y)150 2782 y(represen)m(ting)30
+b(This)24 b(is)h(done)g(b)m(y)150 2786 y(represen)m(ting)30
b(the)h(function)f(with)g(a)g(descriptiv)m(e)h(name.)41
b(The)30 b(user)f(is)i(able)f(to)h(t)m(yp)s(e)g(the)f(descriptiv)m(e)
-150 2892 y(name)g(when)g(referring)g(to)h(the)f(function.)41
+150 2896 y(name)g(when)g(referring)g(to)h(the)f(function.)41
b(Th)m(us,)29 b(in)h(an)h(init)f(\014le,)h(one)g(migh)m(t)g(\014nd)390
-3024 y Fr(Meta-Rubout:)92 b(backward-kill-word)275 3156
-y Fs(This)84 b(binds)h(the)g(k)m(eystrok)m(e)j Fr(Meta-Rubout)82
-b Fs(to)87 b(the)e(function)h Fj(descriptively)94 b Fs(named)150
-3265 y Fr(backward-kill-word)p Fs(.)63 b(Y)-8 b(ou,)43
+3027 y Fs(Meta-Rubout:)92 b(backward-kill-word)275 3159
+y Ft(This)84 b(binds)h(the)g(k)m(eystrok)m(e)j Fs(Meta-Rubout)82
+b Ft(to)87 b(the)e(function)h Fk(descriptively)94 b Ft(named)150
+3269 y Fs(backward-kill-word)p Ft(.)63 b(Y)-8 b(ou,)43
b(as)d(the)g(programmer,)i(should)c(bind)g(the)i(functions)f(y)m(ou)h
-(write)g(to)150 3375 y(descriptiv)m(e)31 b(names)g(as)f(w)m(ell.)42
+(write)g(to)150 3378 y(descriptiv)m(e)31 b(names)g(as)f(w)m(ell.)42
b(Readline)31 b(pro)m(vides)f(a)h(function)f(for)g(doing)h(that:)3350
-3551 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_add_defun)c
-Ff(\()p Fi(const)32 b(c)m(har)e(*name,)h(rl)p 1885 3551
-28 4 v 40 w(command)p 2309 3551 V 40 w(func)p 2519 3551
-V 39 w(t)g(*function,)g(in)m(t)565 3661 y(k)m(ey)p Ff(\))390
-3770 y Fs(Add)j Fi(name)41 b Fs(to)36 b(the)f(list)h(of)g(named)e
-(functions.)55 b(Mak)m(e)37 b Fi(function)e Fs(b)s(e)g(the)g(function)g
-(that)h(gets)390 3880 y(called.)42 b(If)30 b Fi(k)m(ey)39
-b Fs(is)30 b(not)h(-1,)g(then)f(bind)f(it)i(to)g Fi(function)f
-Fs(using)g Fr(rl_bind_key\(\))p Fs(.)275 4056 y(Using)g(this)g
+3553 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_add_defun)c
+Fg(\()p Ff(const)34 b(c)m(har)g(*name,)f(rl)p 1964 3553
+30 5 v 43 w(command)p 2427 3553 V 45 w(func)p 2656 3553
+V 45 w(t)g(*function,)565 3663 y(in)m(t)g(k)m(ey)p Fg(\))390
+3773 y Ft(Add)h Fj(name)41 b Ft(to)36 b(the)f(list)h(of)g(named)e
+(functions.)55 b(Mak)m(e)37 b Fj(function)e Ft(b)s(e)g(the)g(function)g
+(that)h(gets)390 3882 y(called.)42 b(If)30 b Fj(k)m(ey)39
+b Ft(is)30 b(not)h(-1,)g(then)f(bind)f(it)i(to)g Fj(function)f
+Ft(using)g Fs(rl_bind_key\(\))p Ft(.)275 4057 y(Using)g(this)g
(function)g(alone)h(is)f(su\016cien)m(t)g(for)g(most)h(applications.)42
-b(It)30 b(is)g(the)g(recommended)g(w)m(a)m(y)150 4165
+b(It)30 b(is)g(the)g(recommended)g(w)m(a)m(y)150 4167
y(to)e(add)e(a)h(few)g(functions)g(to)g(the)g(default)h(functions)e
(that)i(Readline)f(has)g(built)g(in.)39 b(If)26 b(y)m(ou)i(need)e(to)i
-(do)150 4275 y(something)34 b(other)g(than)f(adding)h(a)g(function)f
+(do)150 4277 y(something)34 b(other)g(than)f(adding)h(a)g(function)f
(to)h(Readline,)i(y)m(ou)e(ma)m(y)g(need)f(to)i(use)e(the)h(underlying)
-150 4385 y(functions)c(describ)s(ed)f(b)s(elo)m(w.)150
-4578 y Fh(2.4.2)63 b(Selecting)41 b(a)f(Keymap)150 4725
-y Fs(Key)f(bindings)e(tak)m(e)j(place)g(on)f(a)g Fi(k)m(eymap)p
-Fs(.)66 b(The)38 b(k)m(eymap)h(is)g(the)g(asso)s(ciation)h(b)s(et)m(w)m
-(een)f(the)g(k)m(eys)150 4835 y(that)29 b(the)g(user)e(t)m(yp)s(es)i
+150 4386 y(functions)c(describ)s(ed)f(b)s(elo)m(w.)150
+4579 y Fi(2.4.2)63 b(Selecting)41 b(a)f(Keymap)150 4726
+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
+(een)f(the)g(k)m(eys)150 4836 y(that)29 b(the)g(user)e(t)m(yp)s(es)i
(and)f(the)g(functions)g(that)h(get)h(run.)39 b(Y)-8
b(ou)29 b(can)f(mak)m(e)i(y)m(our)e(o)m(wn)h(k)m(eymaps,)g(cop)m(y)150
-4945 y(existing)i(k)m(eymaps,)g(and)f(tell)i(Readline)f(whic)m(h)f(k)m
+4946 y(existing)i(k)m(eymaps,)g(and)f(tell)i(Readline)f(whic)m(h)f(k)m
(eymap)h(to)g(use.)3350 5121 y([F)-8 b(unction])-3599
-b Fg(Keymap)54 b(rl_make_bare_keymap)d Ff(\()p Fi(v)m(oid)p
-Ff(\))390 5230 y Fs(Returns)23 b(a)i(new,)g(empt)m(y)f(k)m(eymap.)40
+b Fh(Keymap)54 b(rl_make_bare_keymap)d Fg(\()p Ff(v)m(oid)p
+Fg(\))390 5230 y Ft(Returns)23 b(a)i(new,)g(empt)m(y)f(k)m(eymap.)40
b(The)23 b(space)i(for)f(the)g(k)m(eymap)h(is)f(allo)s(cated)i(with)e
-Fr(malloc\(\))p Fs(;)390 5340 y(the)31 b(caller)g(should)f(free)g(it)h
-(b)m(y)f(calling)i Fr(rl_free_keymap\(\))26 b Fs(when)j(done.)p
+Fs(malloc\(\))p Ft(;)390 5340 y(the)31 b(caller)g(should)f(free)g(it)h
+(b)m(y)f(calling)i Fs(rl_free_keymap\(\))26 b Ft(when)j(done.)p
eop end
-%%Page: 31 35
-TeXDict begin 31 34 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(31)3350
-299 y([F)-8 b(unction])-3599 b Fg(Keymap)54 b(rl_copy_keymap)c
-Ff(\()p Fi(Keymap)30 b(map)p Ff(\))390 408 y Fs(Return)g(a)g(new)g(k)m
-(eymap)h(whic)m(h)f(is)h(a)f(cop)m(y)h(of)g Fi(map)p
-Fs(.)3350 579 y([F)-8 b(unction])-3599 b Fg(Keymap)54
-b(rl_make_keymap)c Ff(\()p Fi(v)m(oid)p Ff(\))390 689
-y Fs(Return)31 b(a)g(new)g(k)m(eymap)h(with)f(the)h(prin)m(ting)f(c)m
+%%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)3350
+299 y([F)-8 b(unction])-3599 b Fh(Keymap)54 b(rl_copy_keymap)c
+Fg(\()p Ff(Keymap)34 b(map)p Fg(\))390 408 y Ft(Return)c(a)g(new)g(k)m
+(eymap)h(whic)m(h)f(is)h(a)f(cop)m(y)h(of)g Fj(map)p
+Ft(.)3350 579 y([F)-8 b(unction])-3599 b Fh(Keymap)54
+b(rl_make_keymap)c Fg(\()p Ff(v)m(oid)p Fg(\))390 689
+y Ft(Return)31 b(a)g(new)g(k)m(eymap)h(with)f(the)h(prin)m(ting)f(c)m
(haracters)i(b)s(ound)c(to)j(rl)p 2909 689 28 4 v 40
w(insert,)g(the)g(lo)m(w)m(ercase)390 798 y(Meta)24 b(c)m(haracters)g
(b)s(ound)d(to)i(run)e(their)i(equiv)-5 b(alen)m(ts,)25
b(and)d(the)h(Meta)h(digits)f(b)s(ound)e(to)i(pro)s(duce)390
908 y(n)m(umeric)30 b(argumen)m(ts.)3350 1078 y([F)-8
-b(unction])-3599 b Fg(void)54 b(rl_discard_keymap)c Ff(\()p
-Fi(Keymap)31 b(k)m(eymap)p Ff(\))390 1188 y Fs(F)-8 b(ree)30
+b(unction])-3599 b Fh(void)54 b(rl_discard_keymap)c Fg(\()p
+Ff(Keymap)34 b(k)m(eymap)p Fg(\))390 1188 y Ft(F)-8 b(ree)30
b(the)g(storage)h(asso)s(ciated)g(with)e(the)g(data)h(in)f
-Fi(k)m(eymap)p Fs(.)41 b(The)29 b(caller)h(should)f(free)g
-Fi(k)m(eymap)p Fs(.)3350 1358 y([F)-8 b(unction])-3599
-b Fg(void)54 b(rl_free_keymap)49 b Ff(\()p Fi(Keymap)31
-b(k)m(eymap)p Ff(\))390 1468 y Fs(F)-8 b(ree)32 b(all)g(storage)g(asso)
-s(ciated)g(with)f Fi(k)m(eymap)p Fs(.)42 b(This)30 b(calls)i
-Fr(rl_discard_keymap)26 b Fs(to)32 b(free)f(sub-)390
+Fj(k)m(eymap)p Ft(.)41 b(The)29 b(caller)h(should)f(free)g
+Fj(k)m(eymap)p Ft(.)3350 1358 y([F)-8 b(unction])-3599
+b Fh(void)54 b(rl_free_keymap)49 b Fg(\()p Ff(Keymap)34
+b(k)m(eymap)p Fg(\))390 1468 y Ft(F)-8 b(ree)32 b(all)g(storage)g(asso)
+s(ciated)g(with)f Fj(k)m(eymap)p Ft(.)42 b(This)30 b(calls)i
+Fs(rl_discard_keymap)26 b Ft(to)32 b(free)f(sub-)390
1577 y(ordindate)f(k)m(eymaps)h(and)f(macros.)275 1748
y(Readline)45 b(has)g(sev)m(eral)i(in)m(ternal)f(k)m(eymaps.)86
b(These)45 b(functions)g(allo)m(w)h(y)m(ou)g(to)g(c)m(hange)g(whic)m(h)
150 1857 y(k)m(eymap)31 b(is)f(activ)m(e.)3350 2028 y([F)-8
-b(unction])-3599 b Fg(Keymap)54 b(rl_get_keymap)c Ff(\()p
-Fi(v)m(oid)p Ff(\))390 2137 y Fs(Returns)29 b(the)i(curren)m(tly)f
+b(unction])-3599 b Fh(Keymap)54 b(rl_get_keymap)c Fg(\()p
+Ff(v)m(oid)p Fg(\))390 2137 y Ft(Returns)29 b(the)i(curren)m(tly)f
(activ)m(e)j(k)m(eymap.)3350 2308 y([F)-8 b(unction])-3599
-b Fg(void)54 b(rl_set_keymap)49 b Ff(\()p Fi(Keymap)30
-b(k)m(eymap)p Ff(\))390 2418 y Fs(Mak)m(es)i Fi(k)m(eymap)h
-Fs(the)e(curren)m(tly)f(activ)m(e)j(k)m(eymap.)3350 2588
-y([F)-8 b(unction])-3599 b Fg(Keymap)54 b(rl_get_keymap_by_name)e
-Ff(\()p Fi(const)31 b(c)m(har)g(*name)p Ff(\))390 2698
-y Fs(Return)h(the)i(k)m(eymap)f(matc)m(hing)i Fi(name)p
-Fs(.)49 b Fi(name)38 b Fs(is)c(one)f(whic)m(h)g(w)m(ould)g(b)s(e)f
-(supplied)g(in)h(a)h Fr(set)390 2807 y(keymap)29 b Fs(inputrc)g(line)i
+b Fh(void)54 b(rl_set_keymap)49 b Fg(\()p Ff(Keymap)34
+b(k)m(eymap)p Fg(\))390 2418 y Ft(Mak)m(es)e Fj(k)m(eymap)h
+Ft(the)e(curren)m(tly)f(activ)m(e)j(k)m(eymap.)3350 2588
+y([F)-8 b(unction])-3599 b Fh(Keymap)54 b(rl_get_keymap_by_name)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*name)p Fg(\))390 2698
+y Ft(Return)e(the)i(k)m(eymap)f(matc)m(hing)i Fj(name)p
+Ft(.)49 b Fj(name)38 b Ft(is)c(one)f(whic)m(h)g(w)m(ould)g(b)s(e)f
+(supplied)g(in)h(a)h Fs(set)390 2807 y(keymap)29 b Ft(inputrc)g(line)i
(\(see)g(Section)g(1.3)h([Readline)f(Init)f(File],)i(page)f(4\).)3350
-2978 y([F)-8 b(unction])-3599 b Fg(char)54 b(*)e(rl_get_keymap_name)f
-Ff(\()p Fi(Keymap)31 b(k)m(eymap)p Ff(\))390 3087 y Fs(Return)h(the)i
-(name)f(matc)m(hing)h Fi(k)m(eymap)p Fs(.)50 b Fi(name)38
-b Fs(is)c(one)f(whic)m(h)g(w)m(ould)g(b)s(e)f(supplied)g(in)h(a)h
-Fr(set)390 3197 y(keymap)29 b Fs(inputrc)g(line)i(\(see)g(Section)g
+2978 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_get_keymap_name)f
+Fg(\()p Ff(Keymap)34 b(k)m(eymap)p Fg(\))390 3087 y Ft(Return)e(the)i
+(name)f(matc)m(hing)h Fj(k)m(eymap)p Ft(.)50 b Fj(name)38
+b Ft(is)c(one)f(whic)m(h)g(w)m(ould)g(b)s(e)f(supplied)g(in)h(a)h
+Fs(set)390 3197 y(keymap)29 b Ft(inputrc)g(line)i(\(see)g(Section)g
(1.3)h([Readline)f(Init)f(File],)i(page)f(4\).)150 3387
-y Fh(2.4.3)63 b(Binding)42 b(Keys)150 3534 y Fs(Key)34
+y Fi(2.4.3)63 b(Binding)42 b(Keys)150 3534 y Ft(Key)34
b(sequences)g(are)h(asso)s(ciate)h(with)e(functions)f(through)h(the)g
(k)m(eymap.)52 b(Readline)35 b(has)f(sev)m(eral)h(in-)150
-3643 y(ternal)30 b(k)m(eymaps:)40 b Fr(emacs_standard_keymap)p
-Fs(,)24 b Fr(emacs_meta_keymap)p Fs(,)h Fr(emacs_ctlx_keymap)p
-Fs(,)g Fr(vi_)150 3753 y(movement_keymap)p Fs(,)41 b(and)h
-Fr(vi_insertion_keymap)p Fs(.)71 b Fr(emacs_standard_keymap)37
-b Fs(is)42 b(the)g(default,)150 3863 y(and)30 b(the)g(examples)h(in)f
+3643 y(ternal)30 b(k)m(eymaps:)40 b Fs(emacs_standard_keymap)p
+Ft(,)24 b Fs(emacs_meta_keymap)p Ft(,)h Fs(emacs_ctlx_keymap)p
+Ft(,)g Fs(vi_)150 3753 y(movement_keymap)p Ft(,)41 b(and)h
+Fs(vi_insertion_keymap)p Ft(.)71 b Fs(emacs_standard_keymap)37
+b Ft(is)42 b(the)g(default,)150 3863 y(and)30 b(the)g(examples)h(in)f
(this)h(man)m(ual)f(assume)g(that.)275 3992 y(Since)d
-Fr(readline\(\))e Fs(installs)j(a)g(set)g(of)g(default)g(k)m(ey)g
+Fs(readline\(\))e Ft(installs)j(a)g(set)g(of)g(default)g(k)m(ey)g
(bindings)f(the)h(\014rst)e(time)j(it)f(is)f(called,)j(there)e(is)150
4102 y(alw)m(a)m(ys)34 b(the)f(danger)f(that)i(a)f(custom)g(binding)e
(installed)j(b)s(efore)e(the)h(\014rst)e(call)j(to)g
-Fr(readline\(\))c Fs(will)150 4212 y(b)s(e)25 b(o)m(v)m(erridden.)39
+Fs(readline\(\))c Ft(will)150 4212 y(b)s(e)25 b(o)m(v)m(erridden.)39
b(An)26 b(alternate)h(mec)m(hanism)f(is)g(to)g(install)h(custom)f(k)m
(ey)g(bindings)f(in)g(an)h(initialization)150 4321 y(function)37
-b(assigned)g(to)h(the)f Fr(rl_startup_hook)c Fs(v)-5
+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 4431 y(page)31 b(25\).)275 4561 y(These)f(functions)g
+b(ariables],)150 4431 y(page)31 b(27\).)275 4561 y(These)f(functions)g
(manage)h(k)m(ey)g(bindings.)3350 4731 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_bind_key)c Ff(\()p Fi(in)m(t)31 b(k)m(ey)-8
-b(,)32 b(rl)p 1403 4731 V 40 w(command)p 1827 4731 V
-40 w(func)p 2037 4731 V 39 w(t)f(*function)p Ff(\))390
-4841 y Fs(Binds)h Fi(k)m(ey)42 b Fs(to)34 b Fi(function)e
-Fs(in)h(the)g(curren)m(tly)g(activ)m(e)i(k)m(eymap.)49
+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 4731 30 5 v 43 w(command)p 1904 4731
+V 45 w(func)p 2133 4731 V 45 w(t)h(*function)p Fg(\))390
+4841 y Ft(Binds)f Fj(k)m(ey)42 b Ft(to)34 b Fj(function)e
+Ft(in)h(the)g(curren)m(tly)g(activ)m(e)i(k)m(eymap.)49
b(Returns)32 b(non-zero)i(in)f(the)g(case)390 4950 y(of)e(an)f(in)m(v)
--5 b(alid)31 b Fi(k)m(ey)p Fs(.)3350 5121 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_bind_key_in_map)e Ff(\()p Fi(in)m(t)31
-b(k)m(ey)-8 b(,)32 b(rl)p 1769 5121 V 40 w(command)p
-2193 5121 V 40 w(func)p 2403 5121 V 39 w(t)f(*function,)565
-5230 y(Keymap)f(map)p Ff(\))390 5340 y Fs(Bind)g Fi(k)m(ey)39
-b Fs(to)31 b Fi(function)f Fs(in)g Fi(map)p Fs(.)40 b(Returns)30
+-5 b(alid)31 b Fj(k)m(ey)p Ft(.)3350 5121 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_bind_key_in_map)e Fg(\()p Ff(in)m(t)34
+b(k)m(ey)-8 b(,)32 b(rl)p 1807 5121 V 43 w(command)p
+2270 5121 V 45 w(func)p 2499 5121 V 45 w(t)h(*function,)565
+5230 y(Keymap)h(map)p Fg(\))390 5340 y Ft(Bind)c Fj(k)m(ey)39
+b Ft(to)31 b Fj(function)f Ft(in)g Fj(map)p Ft(.)40 b(Returns)30
b(non-zero)h(in)f(the)h(case)g(of)f(an)h(in)m(v)-5 b(alid)31
-b Fi(k)m(ey)p Fs(.)p eop end
-%%Page: 32 36
-TeXDict begin 32 35 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(32)3350
-299 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_bind_key_if_unboun)q(d)e
-Ff(\()p Fi(in)m(t)32 b(k)m(ey)-8 b(,)31 b(rl)p 1978 299
-28 4 v 40 w(command)p 2402 299 V 40 w(func)p 2612 299
-V 39 w(t)g(*function)p Ff(\))390 408 y Fs(Binds)43 b
-Fi(k)m(ey)53 b Fs(to)45 b Fi(function)e Fs(if)h(it)h(is)f(not)g
+b Fj(k)m(ey)p Ft(.)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)3350
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_bind_key_if_unboun)q(d)e
+Fg(\()p Ff(in)m(t)34 b(k)m(ey)-8 b(,)32 b(rl)p 2016 299
+30 5 v 44 w(command)p 2480 299 V 44 w(func)p 2708 299
+V 45 w(t)565 408 y(*function)p Fg(\))390 518 y Ft(Binds)43
+b Fj(k)m(ey)53 b Ft(to)45 b Fj(function)e Ft(if)h(it)h(is)f(not)g
(already)g(b)s(ound)e(in)i(the)g(curren)m(tly)g(activ)m(e)i(k)m(eymap.)
-390 518 y(Returns)29 b(non-zero)i(in)f(the)h(case)g(of)g(an)f(in)m(v)-5
-b(alid)31 b Fi(k)m(ey)39 b Fs(or)30 b(if)h Fi(k)m(ey)39
-b Fs(is)30 b(already)h(b)s(ound.)3350 737 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_bind_key_if_unboun)q(d_in)q(_ma)q(p)e
-Ff(\()p Fi(in)m(t)32 b(k)m(ey)-8 b(,)32 b(rl)p 2345 737
-V 39 w(command)p 2768 737 V 40 w(func)p 2978 737 V 39
-w(t)565 847 y(*function,)f(Keymap)f(map)p Ff(\))390 956
-y Fs(Binds)d Fi(k)m(ey)36 b Fs(to)28 b Fi(function)f
-Fs(if)g(it)h(is)f(not)h(already)g(b)s(ound)d(in)i Fi(map)p
-Fs(.)39 b(Returns)27 b(non-zero)g(in)g(the)h(case)390
-1066 y(of)j(an)f(in)m(v)-5 b(alid)31 b Fi(k)m(ey)39 b
-Fs(or)30 b(if)g Fi(k)m(ey)39 b Fs(is)31 b(already)g(b)s(ound.)3350
-1285 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_unbind_key)d
-Ff(\()p Fi(in)m(t)31 b(k)m(ey)p Ff(\))390 1395 y Fs(Bind)36
-b Fi(k)m(ey)45 b Fs(to)37 b(the)f(n)m(ull)g(function)g(in)g(the)h
-(curren)m(tly)f(activ)m(e)i(k)m(eymap.)59 b(Returns)35
-b(non-zero)i(in)390 1504 y(case)31 b(of)g(error.)3350
-1724 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_unbind_key_in_map)f
-Ff(\()p Fi(in)m(t)31 b(k)m(ey)-8 b(,)32 b(Keymap)e(map)p
-Ff(\))390 1833 y Fs(Bind)g Fi(k)m(ey)39 b Fs(to)31 b(the)g(n)m(ull)f
-(function)g(in)g Fi(map)p Fs(.)40 b(Returns)30 b(non-zero)h(in)f(case)h
-(of)g(error.)3350 2052 y([F)-8 b(unction])-3599 b Fg(int)53
-b(rl_unbind_function_in)q(_map)f Ff(\()p Fi(rl)p 1814
-2052 V 40 w(command)p 2238 2052 V 40 w(func)p 2448 2052
-V 40 w(t)30 b(*function,)565 2162 y(Keymap)g(map)p Ff(\))390
-2271 y Fs(Un)m(bind)f(all)i(k)m(eys)g(that)g(execute)h
-Fi(function)e Fs(in)g Fi(map)p Fs(.)3350 2491 y([F)-8
-b(unction])-3599 b Fg(int)53 b(rl_unbind_command_in_)q(map)f
-Ff(\()p Fi(const)31 b(c)m(har)g(*command,)g(Keymap)f(map)p
-Ff(\))390 2600 y Fs(Un)m(bind)f(all)i(k)m(eys)g(that)g(are)g(b)s(ound)e
-(to)i Fi(command)i Fs(in)d Fi(map)p Fs(.)3350 2819 y([F)-8
-b(unction])-3599 b Fg(int)53 b(rl_bind_keyseq)d Ff(\()p
-Fi(const)31 b(c)m(har)g(*k)m(eyseq,)h(rl)p 2036 2819
-V 40 w(command)p 2460 2819 V 40 w(func)p 2670 2819 V
-39 w(t)f(*function)p Ff(\))390 2929 y Fs(Bind)43 b(the)g(k)m(ey)h
-(sequence)f(represen)m(ted)g(b)m(y)g(the)g(string)g Fi(k)m(eyseq)j
-Fs(to)e(the)f(function)g Fi(function)p Fs(,)390 3039
-y(b)s(eginning)27 b(in)h(the)h(curren)m(t)f(k)m(eymap.)40
+390 628 y(Returns)29 b(non-zero)i(in)f(the)h(case)g(of)g(an)f(in)m(v)-5
+b(alid)31 b Fj(k)m(ey)39 b Ft(or)30 b(if)h Fj(k)m(ey)39
+b Ft(is)30 b(already)h(b)s(ound.)3350 814 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_bind_key_if_unboun)q(d_in)q(_ma)q(p)e
+Fg(\()p Ff(in)m(t)34 b(k)m(ey)-8 b(,)32 b(rl)p 2382 814
+V 44 w(command)p 2846 814 V 44 w(func)p 3074 814 V 46
+w(t)565 924 y(*function,)i(Keymap)g(map)p Fg(\))390 1033
+y Ft(Binds)27 b Fj(k)m(ey)36 b Ft(to)28 b Fj(function)f
+Ft(if)g(it)h(is)f(not)h(already)g(b)s(ound)d(in)i Fj(map)p
+Ft(.)39 b(Returns)27 b(non-zero)g(in)g(the)h(case)390
+1143 y(of)j(an)f(in)m(v)-5 b(alid)31 b Fj(k)m(ey)39 b
+Ft(or)30 b(if)g Fj(k)m(ey)39 b Ft(is)31 b(already)g(b)s(ound.)3350
+1329 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_unbind_key)d
+Fg(\()p Ff(in)m(t)33 b(k)m(ey)p Fg(\))390 1439 y Ft(Bind)j
+Fj(k)m(ey)45 b Ft(to)37 b(the)f(n)m(ull)g(function)g(in)g(the)h(curren)
+m(tly)f(activ)m(e)i(k)m(eymap.)59 b(Returns)35 b(non-zero)i(in)390
+1548 y(case)31 b(of)g(error.)3350 1734 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_unbind_key_in_map)f Fg(\()p Ff(in)m(t)33
+b(k)m(ey)-8 b(,)33 b(Keymap)g(map)p Fg(\))390 1844 y
+Ft(Bind)d Fj(k)m(ey)39 b Ft(to)31 b(the)g(n)m(ull)f(function)g(in)g
+Fj(map)p Ft(.)40 b(Returns)30 b(non-zero)h(in)f(case)h(of)g(error.)3350
+2030 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_unbind_function_in)q
+(_map)f Fg(\()p Ff(rl)p 1821 2030 V 44 w(command)p 2285
+2030 V 45 w(func)p 2514 2030 V 45 w(t)33 b(*function,)565
+2140 y(Keymap)h(map)p Fg(\))390 2250 y Ft(Un)m(bind)29
+b(all)i(k)m(eys)g(that)g(execute)h Fj(function)e Ft(in)g
+Fj(map)p Ft(.)3350 2436 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 2545 y(map)p Fg(\))390 2655 y
+Ft(Un)m(bind)c(all)i(k)m(eys)g(that)g(are)g(b)s(ound)e(to)i
+Fj(command)i Ft(in)d Fj(map)p Ft(.)3350 2841 y([F)-8
+b(unction])-3599 b Fh(int)53 b(rl_bind_keyseq)d Fg(\()p
+Ff(const)34 b(c)m(har)g(*k)m(eyseq,)e(rl)p 2119 2841
+V 44 w(command)p 2583 2841 V 44 w(func)p 2811 2841 V
+46 w(t)565 2951 y(*function)p Fg(\))390 3061 y Ft(Bind)43
+b(the)g(k)m(ey)h(sequence)f(represen)m(ted)g(b)m(y)g(the)g(string)g
+Fj(k)m(eyseq)j Ft(to)e(the)f(function)g Fj(function)p
+Ft(,)390 3170 y(b)s(eginning)27 b(in)h(the)h(curren)m(t)f(k)m(eymap.)40
b(This)28 b(mak)m(es)h(new)e(k)m(eymaps)i(as)f(necessary)-8
-b(.)41 b(The)28 b(return)390 3148 y(v)-5 b(alue)31 b(is)f(non-zero)h
-(if)g Fi(k)m(eyseq)i Fs(is)d(in)m(v)-5 b(alid.)3350 3367
-y([F)d(unction])-3599 b Fg(int)53 b(rl_bind_keyseq_in_map)f
-Ff(\()p Fi(const)31 b(c)m(har)g(*k)m(eyseq,)h(rl)p 2402
-3367 V 40 w(command)p 2826 3367 V 40 w(func)p 3036 3367
-V 39 w(t)565 3477 y(*function,)f(Keymap)f(map)p Ff(\))390
-3587 y Fs(Bind)25 b(the)g(k)m(ey)h(sequence)f(represen)m(ted)g(b)m(y)g
-(the)g(string)g Fi(k)m(eyseq)j Fs(to)e(the)f(function)g
-Fi(function)p Fs(.)39 b(This)390 3696 y(mak)m(es)30 b(new)f(k)m(eymaps)
+b(.)41 b(The)28 b(return)390 3280 y(v)-5 b(alue)31 b(is)f(non-zero)h
+(if)g Fj(k)m(eyseq)i Ft(is)d(in)m(v)-5 b(alid.)3350 3466
+y([F)d(unction])-3599 b Fh(int)53 b(rl_bind_keyseq_in_map)f
+Fg(\()p Ff(const)34 b(c)m(har)g(*k)m(eyseq,)565 3576
+y(rl)p 639 3576 V 44 w(command)p 1103 3576 V 44 w(func)p
+1331 3576 V 45 w(t)f(*function,)h(Keymap)g(map)p Fg(\))390
+3685 y Ft(Bind)25 b(the)g(k)m(ey)h(sequence)f(represen)m(ted)g(b)m(y)g
+(the)g(string)g Fj(k)m(eyseq)j Ft(to)e(the)f(function)g
+Fj(function)p Ft(.)39 b(This)390 3795 y(mak)m(es)30 b(new)f(k)m(eymaps)
g(as)g(necessary)-8 b(.)42 b(Initial)30 b(bindings)d(are)j(p)s
-(erformed)e(in)g Fi(map)p Fs(.)40 b(The)29 b(return)390
-3806 y(v)-5 b(alue)31 b(is)f(non-zero)h(if)g Fi(k)m(eyseq)i
-Fs(is)d(in)m(v)-5 b(alid.)3350 4025 y([F)d(unction])-3599
-b Fg(int)53 b(rl_set_key)c Ff(\()p Fi(const)31 b(c)m(har)g(*k)m(eyseq,)
-h(rl)p 1827 4025 V 40 w(command)p 2251 4025 V 39 w(func)p
-2460 4025 V 40 w(t)e(*function,)565 4134 y(Keymap)g(map)p
-Ff(\))390 4244 y Fs(Equiv)-5 b(alen)m(t)31 b(to)g Fr
-(rl_bind_keyseq_in_map)p Fs(.)3350 4463 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_bind_keyseq_if_unb)q(ound)f Ff(\()p
-Fi(const)31 b(c)m(har)g(*k)m(eyseq,)565 4573 y(rl)p 632
-4573 V 40 w(command)p 1056 4573 V 40 w(func)p 1266 4573
-V 39 w(t)g(*function)p Ff(\))390 4682 y Fs(Binds)k Fi(k)m(eyseq)k
-Fs(to)d Fi(function)f Fs(if)g(it)h(is)g(not)g(already)g(b)s(ound)d(in)i
-(the)h(curren)m(tly)f(activ)m(e)j(k)m(eymap.)390 4792
+(erformed)e(in)g Fj(map)p Ft(.)40 b(The)29 b(return)390
+3904 y(v)-5 b(alue)31 b(is)f(non-zero)h(if)g Fj(k)m(eyseq)i
+Ft(is)d(in)m(v)-5 b(alid.)3350 4091 y([F)d(unction])-3599
+b Fh(int)53 b(rl_set_key)c Fg(\()p Ff(const)34 b(c)m(har)g(*k)m(eyseq,)
+e(rl)p 1910 4091 V 44 w(command)p 2374 4091 V 44 w(func)p
+2602 4091 V 45 w(t)h(*function,)565 4200 y(Keymap)h(map)p
+Fg(\))390 4310 y Ft(Equiv)-5 b(alen)m(t)31 b(to)g Fs
+(rl_bind_keyseq_in_map)p Ft(.)3350 4496 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_bind_keyseq_if_unb)q(ound)f Fg(\()p
+Ff(const)34 b(c)m(har)g(*k)m(eyseq,)565 4606 y(rl)p 639
+4606 V 44 w(command)p 1103 4606 V 44 w(func)p 1331 4606
+V 45 w(t)f(*function)p Fg(\))390 4715 y Ft(Binds)i Fj(k)m(eyseq)k
+Ft(to)d Fj(function)f Ft(if)g(it)h(is)g(not)g(already)g(b)s(ound)d(in)i
+(the)h(curren)m(tly)f(activ)m(e)j(k)m(eymap.)390 4825
y(Returns)29 b(non-zero)i(in)f(the)h(case)g(of)g(an)f(in)m(v)-5
-b(alid)31 b Fi(k)m(eyseq)j Fs(or)c(if)g Fi(k)m(eyseq)k
-Fs(is)c(already)h(b)s(ound.)3350 5011 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_bind_keyseq_if_unb)q(ound)q(_in)q(_ma)q(p)e
-Ff(\()p Fi(const)32 b(c)m(har)e(*k)m(eyseq,)565 5121
-y(rl)p 632 5121 V 40 w(command)p 1056 5121 V 40 w(func)p
-1266 5121 V 39 w(t)h(*function,)f(Keymap)h(map)p Ff(\))390
-5230 y Fs(Binds)g Fi(k)m(eyseq)k Fs(to)e Fi(function)f
-Fs(if)g(it)g(is)g(not)g(already)h(b)s(ound)d(in)h Fi(map)p
-Fs(.)46 b(Returns)31 b(non-zero)h(in)g(the)390 5340 y(case)f(of)g(an)f
-(in)m(v)-5 b(alid)31 b Fi(k)m(eyseq)j Fs(or)c(if)g Fi(k)m(eyseq)k
-Fs(is)c(already)h(b)s(ound.)p eop end
-%%Page: 33 37
-TeXDict begin 33 36 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(33)3350
-299 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_generic_bind)d
-Ff(\()p Fi(in)m(t)31 b(t)m(yp)s(e,)g(const)g(c)m(har)g(*k)m(eyseq,)h(c)
-m(har)f(*data,)h(Keymap)565 408 y(map)p Ff(\))390 518
-y Fs(Bind)27 b(the)g(k)m(ey)h(sequence)f(represen)m(ted)g(b)m(y)g(the)g
-(string)g Fi(k)m(eyseq)j Fs(to)e(the)f(arbitrary)g(p)s(oin)m(ter)g
-Fi(data)p Fs(.)390 628 y Fi(t)m(yp)s(e)34 b Fs(sa)m(ys)29
+b(alid)31 b Fj(k)m(eyseq)j Ft(or)c(if)g Fj(k)m(eyseq)k
+Ft(is)c(already)h(b)s(ound.)3350 5011 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_bind_keyseq_if_unb)q(ound)q(_in)q(_ma)q(p)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*k)m(eyseq,)565 5121
+y(rl)p 639 5121 V 44 w(command)p 1103 5121 V 44 w(func)p
+1331 5121 V 45 w(t)f(*function,)h(Keymap)g(map)p Fg(\))390
+5230 y Ft(Binds)d Fj(k)m(eyseq)k Ft(to)e Fj(function)f
+Ft(if)g(it)g(is)g(not)g(already)h(b)s(ound)d(in)h Fj(map)p
+Ft(.)46 b(Returns)31 b(non-zero)h(in)g(the)390 5340 y(case)f(of)g(an)f
+(in)m(v)-5 b(alid)31 b Fj(k)m(eyseq)j Ft(or)c(if)g Fj(k)m(eyseq)k
+Ft(is)c(already)h(b)s(ound.)p eop end
+%%Page: 35 39
+TeXDict begin 35 38 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(35)3350
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_generic_bind)d
+Fg(\()p Ff(in)m(t)34 b(t)m(yp)s(e,)f(const)g(c)m(har)h(*k)m(eyseq,)f(c)
+m(har)h(*data,)565 408 y(Keymap)g(map)p Fg(\))390 518
+y Ft(Bind)27 b(the)g(k)m(ey)h(sequence)f(represen)m(ted)g(b)m(y)g(the)g
+(string)g Fj(k)m(eyseq)j Ft(to)e(the)f(arbitrary)g(p)s(oin)m(ter)g
+Fj(data)p Ft(.)390 628 y Fj(t)m(yp)s(e)34 b Ft(sa)m(ys)29
b(what)f(kind)g(of)g(data)h(is)g(p)s(oin)m(ted)f(to)h(b)m(y)g
-Fi(data)p Fs(;)h(this)e(can)h(b)s(e)f(a)g(function)g(\()p
-Fr(ISFUNC)p Fs(\),)h(a)390 737 y(macro)h(\()p Fr(ISMACR)p
-Fs(\),)f(or)g(a)h(k)m(eymap)g(\()p Fr(ISKMAP)p Fs(\).)40
+Fj(data)p Ft(;)h(this)e(can)h(b)s(e)f(a)g(function)g(\()p
+Fs(ISFUNC)p Ft(\),)h(a)390 737 y(macro)h(\()p Fs(ISMACR)p
+Ft(\),)f(or)g(a)h(k)m(eymap)g(\()p Fs(ISKMAP)p Ft(\).)40
b(This)28 b(mak)m(es)j(new)e(k)m(eymaps)g(as)h(necessary)-8
b(.)41 b(The)390 847 y(initial)32 b(k)m(eymap)e(in)h(whic)m(h)f(to)h
-(do)f(bindings)f(is)i Fi(map)p Fs(.)3350 1028 y([F)-8
-b(unction])-3599 b Fg(int)53 b(rl_parse_and_bind)e Ff(\()p
-Fi(c)m(har)31 b(*line)p Ff(\))390 1137 y Fs(P)m(arse)f
-Fi(line)35 b Fs(as)29 b(if)h(it)g(had)e(b)s(een)h(read)g(from)g(the)h
-Fr(inputrc)d Fs(\014le)j(and)e(p)s(erform)g(an)m(y)i(k)m(ey)g(bindings)
+(do)f(bindings)f(is)i Fj(map)p Ft(.)3350 1028 y([F)-8
+b(unction])-3599 b Fh(int)53 b(rl_parse_and_bind)e Fg(\()p
+Ff(c)m(har)34 b(*line)p Fg(\))390 1137 y Ft(P)m(arse)c
+Fj(line)35 b Ft(as)29 b(if)h(it)g(had)e(b)s(een)h(read)g(from)g(the)h
+Fs(inputrc)d Ft(\014le)j(and)e(p)s(erform)g(an)m(y)i(k)m(ey)g(bindings)
390 1247 y(and)g(v)-5 b(ariable)31 b(assignmen)m(ts)g(found)e(\(see)i
(Section)h(1.3)f([Readline)g(Init)f(File],)j(page)e(4\).)3350
-1428 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_read_init_file)e
-Ff(\()p Fi(const)31 b(c)m(har)g(*\014lename)p Ff(\))390
-1538 y Fs(Read)h(k)m(eybindings)f(and)g(v)-5 b(ariable)32
-b(assignmen)m(ts)g(from)f Fi(\014lename)37 b Fs(\(see)32
+1428 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_read_init_file)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*\014lename)p Fg(\))390
+1538 y Ft(Read)e(k)m(eybindings)f(and)g(v)-5 b(ariable)32
+b(assignmen)m(ts)g(from)f Fj(\014lename)37 b Ft(\(see)32
b(Section)g(1.3)h([Readline)390 1647 y(Init)d(File],)i(page)f(4\).)150
-1844 y Fh(2.4.4)63 b(Asso)s(ciating)41 b(F)-10 b(unction)42
-b(Names)f(and)g(Bindings)150 1991 y Fs(These)30 b(functions)g(allo)m(w)
+1844 y Fi(2.4.4)63 b(Asso)s(ciating)41 b(F)-10 b(unction)42
+b(Names)f(and)g(Bindings)150 1991 y Ft(These)30 b(functions)g(allo)m(w)
h(y)m(ou)g(to)f(\014nd)f(out)h(what)g(k)m(eys)h(in)m(v)m(ok)m(e)h
(named)e(functions)g(and)f(the)h(functions)150 2101 y(in)m(v)m(ok)m(ed)
f(b)m(y)e(a)h(particular)g(k)m(ey)g(sequence.)40 b(Y)-8
b(ou)28 b(ma)m(y)g(also)h(asso)s(ciate)g(a)f(new)f(function)g(name)h
(with)f(an)150 2210 y(arbitrary)j(function.)3350 2391
-y([F)-8 b(unction])-3599 b Fg(rl_command_func_t)57 b(*)c
-(rl_named_function)e Ff(\()p Fi(const)31 b(c)m(har)g(*name)p
-Ff(\))390 2501 y Fs(Return)f(the)g(function)g(with)g(name)h
-Fi(name)p Fs(.)3350 2682 y([F)-8 b(unction])-3599 b Fg
-(rl_command_func_t)57 b(*)c(rl_function_of_keyseq)f Ff(\()p
-Fi(const)31 b(c)m(har)g(*k)m(eyseq,)565 2791 y(Keymap)f(map,)g(in)m(t)h
-(*t)m(yp)s(e)p Ff(\))390 2901 y Fs(Return)h(the)g(function)h(in)m(v)m
-(ok)m(ed)h(b)m(y)e Fi(k)m(eyseq)k Fs(in)c(k)m(eymap)h
-Fi(map)p Fs(.)47 b(If)32 b Fi(map)j Fs(is)d Fr(NULL)p
-Fs(,)g(the)h(curren)m(t)390 3011 y(k)m(eymap)k(is)g(used.)60
-b(If)37 b Fi(t)m(yp)s(e)42 b Fs(is)37 b(not)g Fr(NULL)p
-Fs(,)h(the)f(t)m(yp)s(e)g(of)g(the)g(ob)5 b(ject)38 b(is)f(returned)f
-(in)h(the)g Fr(int)390 3120 y Fs(v)-5 b(ariable)31 b(it)g(p)s(oin)m(ts)
-f(to)h(\(one)g(of)g Fr(ISFUNC)p Fs(,)e Fr(ISKMAP)p Fs(,)g(or)h
-Fr(ISMACR)p Fs(\).)3350 3301 y([F)-8 b(unction])-3599
-b Fg(char)54 b(**)e(rl_invoking_keyseqs)g Ff(\()p Fi(rl)p
-1710 3301 28 4 v 40 w(command)p 2134 3301 V 40 w(func)p
-2344 3301 V 39 w(t)31 b(*function)p Ff(\))390 3411 y
-Fs(Return)f(an)i(arra)m(y)f(of)h(strings)f(represen)m(ting)g(the)g(k)m
-(ey)h(sequences)g(used)e(to)i(in)m(v)m(ok)m(e)h Fi(function)e
-Fs(in)390 3520 y(the)g(curren)m(t)f(k)m(eymap.)3350 3701
-y([F)-8 b(unction])-3599 b Fg(char)54 b(**)e(rl_invoking_keyseqs_i)q
-(n_m)q(ap)g Ff(\()p Fi(rl)p 2076 3701 V 40 w(command)p
-2500 3701 V 40 w(func)p 2710 3701 V 39 w(t)565 3811 y(*function,)31
-b(Keymap)f(map)p Ff(\))390 3920 y Fs(Return)g(an)i(arra)m(y)f(of)h
+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 2501 y Ft(Return)c(the)g(function)g(with)g(name)h
+Fj(name)p Ft(.)3350 2682 y([F)-8 b(unction])-3599 b Fh
+(rl_command_func_t)57 b(*)c(rl_function_of_keyseq)f Fg(\()p
+Ff(const)34 b(c)m(har)565 2791 y(*k)m(eyseq,)f(Keymap)g(map,)g(in)m(t)h
+(*t)m(yp)s(e)p Fg(\))390 2901 y Ft(Return)e(the)g(function)h(in)m(v)m
+(ok)m(ed)h(b)m(y)e Fj(k)m(eyseq)k Ft(in)c(k)m(eymap)h
+Fj(map)p Ft(.)47 b(If)32 b Fj(map)j Ft(is)d Fs(NULL)p
+Ft(,)g(the)h(curren)m(t)390 3011 y(k)m(eymap)k(is)g(used.)60
+b(If)37 b Fj(t)m(yp)s(e)42 b Ft(is)37 b(not)g Fs(NULL)p
+Ft(,)h(the)f(t)m(yp)s(e)g(of)g(the)g(ob)5 b(ject)38 b(is)f(returned)f
+(in)h(the)g Fs(int)390 3120 y Ft(v)-5 b(ariable)31 b(it)g(p)s(oin)m(ts)
+f(to)h(\(one)g(of)g Fs(ISFUNC)p Ft(,)e Fs(ISKMAP)p Ft(,)g(or)h
+Fs(ISMACR)p Ft(\).)3350 3301 y([F)-8 b(unction])-3599
+b Fh(char)54 b(**)e(rl_invoking_keyseqs)g Fg(\()p Ff(rl)p
+1717 3301 30 5 v 44 w(command)p 2181 3301 V 44 w(func)p
+2409 3301 V 45 w(t)33 b(*function)p Fg(\))390 3411 y
+Ft(Return)d(an)i(arra)m(y)f(of)h(strings)f(represen)m(ting)g(the)g(k)m
+(ey)h(sequences)g(used)e(to)i(in)m(v)m(ok)m(e)h Fj(function)e
+Ft(in)390 3520 y(the)g(curren)m(t)f(k)m(eymap.)3350 3701
+y([F)-8 b(unction])-3599 b Fh(char)54 b(**)e(rl_invoking_keyseqs_i)q
+(n_m)q(ap)g Fg(\()p Ff(rl)p 2083 3701 V 44 w(command)p
+2547 3701 V 44 w(func)p 2775 3701 V 45 w(t)565 3811 y(*function,)34
+b(Keymap)g(map)p Fg(\))390 3920 y Ft(Return)c(an)i(arra)m(y)f(of)h
(strings)f(represen)m(ting)g(the)g(k)m(ey)h(sequences)g(used)e(to)i(in)
-m(v)m(ok)m(e)h Fi(function)e Fs(in)390 4030 y(the)g(k)m(eymap)f
-Fi(map)p Fs(.)3350 4211 y([F)-8 b(unction])-3599 b Fg(void)54
-b(rl_function_dumper)c Ff(\()p Fi(in)m(t)32 b(readable)p
-Ff(\))390 4321 y Fs(Prin)m(t)d(the)h(readline)f(function)g(names)g(and)
-g(the)g(k)m(ey)h(sequences)g(curren)m(tly)f(b)s(ound)e(to)j(them)f(to)
-390 4430 y Fr(rl_outstream)p Fs(.)36 b(If)27 b Fi(readable)33
-b Fs(is)28 b(non-zero,)h(the)e(list)i(is)e(formatted)h(in)f(suc)m(h)g
+m(v)m(ok)m(e)h Fj(function)e Ft(in)390 4030 y(the)g(k)m(eymap)f
+Fj(map)p Ft(.)3350 4211 y([F)-8 b(unction])-3599 b Fh(void)54
+b(rl_function_dumper)c Fg(\()p Ff(in)m(t)34 b(readable)p
+Fg(\))390 4321 y Ft(Prin)m(t)29 b(the)h(readline)f(function)g(names)g
+(and)g(the)g(k)m(ey)h(sequences)g(curren)m(tly)f(b)s(ound)e(to)j(them)f
+(to)390 4430 y Fs(rl_outstream)p Ft(.)36 b(If)27 b Fj(readable)33
+b Ft(is)28 b(non-zero,)h(the)e(list)i(is)e(formatted)h(in)f(suc)m(h)g
(a)h(w)m(a)m(y)h(that)f(it)g(can)390 4540 y(b)s(e)i(made)g(part)g(of)h
-(an)f Fr(inputrc)f Fs(\014le)h(and)g(re-read.)3350 4721
-y([F)-8 b(unction])-3599 b Fg(void)54 b(rl_list_funmap_names)d
-Ff(\()p Fi(v)m(oid)p Ff(\))390 4830 y Fs(Prin)m(t)30
+(an)f Fs(inputrc)f Ft(\014le)h(and)g(re-read.)3350 4721
+y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_list_funmap_names)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 4830 y Ft(Prin)m(t)30
b(the)h(names)f(of)h(all)g(bindable)f(Readline)h(functions)f(to)h
-Fr(rl_outstream)p Fs(.)3350 5011 y([F)-8 b(unction])-3599
-b Fg(const)54 b(char)f(**)g(rl_funmap_names)d Ff(\()p
-Fi(v)m(oid)p Ff(\))390 5121 y Fs(Return)25 b(a)i(NULL)f(terminated)g
+Fs(rl_outstream)p Ft(.)3350 5011 y([F)-8 b(unction])-3599
+b Fh(const)54 b(char)f(**)g(rl_funmap_names)d Fg(\()p
+Ff(v)m(oid)p Fg(\))390 5121 y Ft(Return)25 b(a)i(NULL)f(terminated)g
(arra)m(y)h(of)f(kno)m(wn)f(function)h(names.)39 b(The)26
b(arra)m(y)g(is)g(sorted.)39 b(The)390 5230 y(arra)m(y)28
b(itself)h(is)f(allo)s(cated,)j(but)c(not)h(the)h(strings)e(inside.)40
b(Y)-8 b(ou)29 b(should)e(free)h(the)g(arra)m(y)-8 b(,)29
b(but)f(not)390 5340 y(the)j(p)s(oin)m(ters,)f(using)g
-Fr(free)f Fs(or)i Fr(rl_free)d Fs(when)h(y)m(ou)i(are)g(done.)p
+Fs(free)f Ft(or)i Fs(rl_free)d Ft(when)h(y)m(ou)i(are)g(done.)p
eop end
-%%Page: 34 38
-TeXDict begin 34 37 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(34)3350
-299 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_add_funmap_entry)e
-Ff(\()p Fi(const)32 b(c)m(har)e(*name,)i(rl)p 2252 299
-28 4 v 39 w(command)p 2675 299 V 40 w(func)p 2885 299
-V 39 w(t)565 408 y(*function)p Ff(\))390 518 y Fs(Add)g
-Fi(name)38 b Fs(to)33 b(the)g(list)h(of)f(bindable)f(Readline)h
-(command)g(names,)g(and)f(mak)m(e)i Fi(function)f Fs(the)390
-628 y(function)d(to)h(b)s(e)f(called)h(when)f Fi(name)35
-b Fs(is)c(in)m(v)m(ok)m(ed.)150 838 y Fh(2.4.5)63 b(Allo)m(wing)41
-b(Undoing)150 985 y Fs(Supp)s(orting)34 b(the)i(undo)e(command)i(is)g
+%%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_add_funmap_entry)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*name,)g(rl)p 2331 299
+30 5 v 43 w(command)p 2794 299 V 45 w(func)p 3023 299
+V 45 w(t)565 408 y(*function)p Fg(\))390 518 y Ft(Add)e
+Fj(name)38 b Ft(to)33 b(the)g(list)h(of)f(bindable)f(Readline)h
+(command)g(names,)g(and)f(mak)m(e)i Fj(function)f Ft(the)390
+628 y(function)d(to)h(b)s(e)f(called)h(when)f Fj(name)35
+b Ft(is)c(in)m(v)m(ok)m(ed.)150 832 y Fi(2.4.5)63 b(Allo)m(wing)41
+b(Undoing)150 979 y Ft(Supp)s(orting)34 b(the)i(undo)e(command)i(is)g
(a)g(painless)g(thing,)h(and)e(mak)m(es)i(y)m(our)f(functions)f(m)m(uc)
-m(h)h(more)150 1094 y(useful.)k(It)30 b(is)h(certainly)g(easy)g(to)g
+m(h)h(more)150 1089 y(useful.)k(It)30 b(is)h(certainly)g(easy)g(to)g
(try)g(something)g(if)f(y)m(ou)h(kno)m(w)f(y)m(ou)h(can)f(undo)g(it.)
-275 1240 y(If)40 b(y)m(our)h(function)f(simply)g(inserts)h(text)h
-(once,)i(or)d(deletes)h(text)g(once,)i(and)c(uses)h Fr(rl_insert_)150
-1349 y(text\(\))26 b Fs(or)i Fr(rl_delete_text\(\))23
-b Fs(to)29 b(do)f(it,)h(then)f(undoing)f(is)g(already)i(done)f(for)f(y)
-m(ou)h(automatically)-8 b(.)275 1494 y(If)20 b(y)m(ou)g(do)h(m)m
+275 1229 y(If)40 b(y)m(our)h(function)f(simply)g(inserts)h(text)h
+(once,)i(or)d(deletes)h(text)g(once,)i(and)c(uses)h Fs(rl_insert_)150
+1338 y(text\(\))26 b Ft(or)i Fs(rl_delete_text\(\))23
+b Ft(to)29 b(do)f(it,)h(then)f(undoing)f(is)g(already)i(done)f(for)f(y)
+m(ou)h(automatically)-8 b(.)275 1478 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 1604
+(com)m(bination)h(of)e(these)h(op)s(erations,)150 1588
y(y)m(ou)38 b(should)f(group)h(them)g(together)h(in)m(to)g(one)f(op)s
-(eration.)64 b(This)37 b(is)h(done)g(with)g Fr(rl_begin_undo_)150
-1714 y(group\(\))28 b Fs(and)i Fr(rl_end_undo_group\(\))p
-Fs(.)275 1859 y(The)f(t)m(yp)s(es)i(of)f(ev)m(en)m(ts)i(that)f(can)g(b)
-s(e)e(undone)h(are:)390 1982 y Fe(enum)40 b(undo_code)h({)f
+(eration.)64 b(This)37 b(is)h(done)g(with)g Fs(rl_begin_undo_)150
+1697 y(group\(\))28 b Ft(and)i Fs(rl_end_undo_group\(\))p
+Ft(.)275 1837 y(The)f(t)m(yp)s(es)i(of)f(ev)m(en)m(ts)i(that)f(can)g(b)
+s(e)e(undone)h(are:)390 1954 y Fe(enum)40 b(undo_code)h({)f
(UNDO_DELETE,)i(UNDO_INSERT,)g(UNDO_BEGIN,)g(UNDO_END)f(};)275
-2127 y Fs(Notice)32 b(that)f Fr(UNDO_DELETE)c Fs(means)j(to)h(insert)f
-(some)h(text,)h(and)d Fr(UNDO_INSERT)e Fs(means)k(to)g(delete)150
-2237 y(some)d(text.)41 b(That)27 b(is,)i(the)e(undo)g(co)s(de)h(tells)g
+2094 y Ft(Notice)32 b(that)f Fs(UNDO_DELETE)c Ft(means)j(to)h(insert)f
+(some)h(text,)h(and)d Fs(UNDO_INSERT)e Ft(means)k(to)g(delete)150
+2204 y(some)d(text.)41 b(That)27 b(is,)i(the)e(undo)g(co)s(de)h(tells)g
(what)g(to)g(undo,)f(not)h(ho)m(w)g(to)g(undo)e(it.)41
-b Fr(UNDO_BEGIN)25 b Fs(and)150 2346 y Fr(UNDO_END)j
-Fs(are)j(tags)g(added)f(b)m(y)g Fr(rl_begin_undo_group\(\))25
-b Fs(and)30 b Fr(rl_end_undo_group\(\))p Fs(.)3350 2552
-y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_begin_undo_group)e
-Ff(\()p Fi(v)m(oid)p Ff(\))390 2662 y Fs(Begins)32 b(sa)m(ving)g(undo)d
+b Fs(UNDO_BEGIN)25 b Ft(and)150 2314 y Fs(UNDO_END)j
+Ft(are)j(tags)g(added)f(b)m(y)g Fs(rl_begin_undo_group\(\))25
+b Ft(and)30 b Fs(rl_end_undo_group\(\))p Ft(.)3350 2508
+y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_begin_undo_group)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 2618 y Ft(Begins)32 b(sa)m(ving)g(undo)d
(information)j(in)e(a)i(group)e(construct.)43 b(The)30
-b(undo)g(information)h(usually)390 2772 y(comes)42 b(from)f(calls)i(to)
-f Fr(rl_insert_text\(\))37 b Fs(and)k Fr(rl_delete_text\(\))p
-Fs(,)f(but)h(could)h(b)s(e)f(the)390 2881 y(result)30
-b(of)h(calls)g(to)g Fr(rl_add_undo\(\))p Fs(.)3350 3087
-y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_end_undo_group)e
-Ff(\()p Fi(v)m(oid)p Ff(\))390 3197 y Fs(Closes)29 b(the)h(curren)m(t)e
-(undo)g(group)h(started)g(with)g Fr(rl_begin_undo_group)c(\(\))p
-Fs(.)39 b(There)29 b(should)390 3306 y(b)s(e)h(one)g(call)i(to)f
-Fr(rl_end_undo_group\(\))25 b Fs(for)30 b(eac)m(h)i(call)g(to)f
-Fr(rl_begin_undo_group\(\))p Fs(.)3350 3512 y([F)-8 b(unction])-3599
-b Fg(void)54 b(rl_add_undo)48 b Ff(\()p Fi(en)m(um)31
-b(undo)p 1517 3512 V 39 w(co)s(de)f(what,)h(in)m(t)g(start,)g(in)m(t)g
-(end,)f(c)m(har)g(*text)p Ff(\))390 3622 y Fs(Remem)m(b)s(er)k(ho)m(w)g
-(to)h(undo)d(an)i(ev)m(en)m(t)i(\(according)f(to)g Fi(what)r
-Fs(\).)52 b(The)33 b(a\013ected)j(text)f(runs)d(from)390
-3731 y Fi(start)h Fs(to)e Fi(end)p Fs(,)f(and)g(encompasses)h
-Fi(text)p Fs(.)3350 3937 y([F)-8 b(unction])-3599 b Fg(void)54
-b(rl_free_undo_list)c Ff(\()p Fi(v)m(oid)p Ff(\))390
-4047 y Fs(F)-8 b(ree)31 b(the)g(existing)g(undo)f(list.)3350
-4253 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_do_undo)c
-Ff(\()p Fi(v)m(oid)p Ff(\))390 4362 y Fs(Undo)22 b(the)h(\014rst)g
-(thing)f(on)h(the)g(undo)f(list.)39 b(Returns)22 b Fr(0)g
-Fs(if)h(there)g(w)m(as)g(nothing)g(to)h(undo,)f(non-zero)390
-4472 y(if)30 b(something)h(w)m(as)g(undone.)275 4678
+b(undo)g(information)h(usually)390 2728 y(comes)42 b(from)f(calls)i(to)
+f Fs(rl_insert_text\(\))37 b Ft(and)k Fs(rl_delete_text\(\))p
+Ft(,)f(but)h(could)h(b)s(e)f(the)390 2837 y(result)30
+b(of)h(calls)g(to)g Fs(rl_add_undo\(\))p Ft(.)3350 3032
+y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_end_undo_group)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 3142 y Ft(Closes)29 b(the)h(curren)m(t)e
+(undo)g(group)h(started)g(with)g Fs(rl_begin_undo_group)c(\(\))p
+Ft(.)39 b(There)29 b(should)390 3251 y(b)s(e)h(one)g(call)i(to)f
+Fs(rl_end_undo_group\(\))25 b Ft(for)30 b(eac)m(h)i(call)g(to)f
+Fs(rl_begin_undo_group\(\))p Ft(.)3350 3446 y([F)-8 b(unction])-3599
+b Fh(void)54 b(rl_add_undo)48 b Fg(\()p Ff(en)m(um)35
+b(undo)p 1558 3446 V 45 w(co)s(de)e(what,)g(in)m(t)g(start,)g(in)m(t)g
+(end,)h(c)m(har)565 3556 y(*text)p Fg(\))390 3666 y Ft(Remem)m(b)s(er)g
+(ho)m(w)g(to)h(undo)d(an)i(ev)m(en)m(t)i(\(according)f(to)g
+Fj(what)r Ft(\).)52 b(The)33 b(a\013ected)j(text)f(runs)d(from)390
+3775 y Fj(start)h Ft(to)e Fj(end)p Ft(,)f(and)g(encompasses)h
+Fj(text)p Ft(.)3350 3970 y([F)-8 b(unction])-3599 b Fh(void)54
+b(rl_free_undo_list)c Fg(\()p Ff(v)m(oid)p Fg(\))390
+4080 y Ft(F)-8 b(ree)31 b(the)g(existing)g(undo)f(list.)3350
+4275 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_do_undo)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 4384 y Ft(Undo)22 b(the)h(\014rst)g
+(thing)f(on)h(the)g(undo)f(list.)39 b(Returns)22 b Fs(0)g
+Ft(if)h(there)g(w)m(as)g(nothing)g(to)h(undo,)f(non-zero)390
+4494 y(if)30 b(something)h(w)m(as)g(undone.)275 4689
y(Finally)-8 b(,)32 b(if)f(y)m(ou)h(neither)f(insert)g(nor)f(delete)j
(text,)f(but)f(directly)g(mo)s(dify)g(the)g(existing)h(text)g(\(e.g.,)
-150 4788 y(c)m(hange)40 b(its)f(case\),)j(call)e Fr(rl_modifying\(\))35
-b Fs(once,)42 b(just)c(b)s(efore)g(y)m(ou)h(mo)s(dify)f(the)h(text.)67
-b(Y)-8 b(ou)39 b(m)m(ust)150 4897 y(supply)29 b(the)h(indices)h(of)f
+150 4799 y(c)m(hange)40 b(its)f(case\),)j(call)e Fs(rl_modifying\(\))35
+b Ft(once,)42 b(just)c(b)s(efore)g(y)m(ou)h(mo)s(dify)f(the)h(text.)67
+b(Y)-8 b(ou)39 b(m)m(ust)150 4908 y(supply)29 b(the)h(indices)h(of)f
(the)h(text)g(range)g(that)g(y)m(ou)g(are)g(going)g(to)g(mo)s(dify)-8
-b(.)3350 5103 y([F)g(unction])-3599 b Fg(int)53 b(rl_modifying)c
-Ff(\()p Fi(in)m(t)32 b(start,)f(in)m(t)g(end)p Ff(\))390
-5213 y Fs(T)-8 b(ell)41 b(Readline)g(to)g(sa)m(v)m(e)g(the)g(text)g(b)s
-(et)m(w)m(een)g Fi(start)i Fs(and)c Fi(end)k Fs(as)e(a)f(single)h(undo)
+b(.)3350 5103 y([F)g(unction])-3599 b Fh(int)53 b(rl_modifying)c
+Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i(end)p Fg(\))390
+5213 y Ft(T)-8 b(ell)41 b(Readline)g(to)g(sa)m(v)m(e)g(the)g(text)g(b)s
+(et)m(w)m(een)g Fj(start)i Ft(and)c Fj(end)k Ft(as)e(a)f(single)h(undo)
e(unit.)70 b(It)40 b(is)390 5322 y(assumed)30 b(that)h(y)m(ou)f(will)h
(subsequen)m(tly)f(mo)s(dify)f(that)i(text.)p eop end
-%%Page: 35 39
-TeXDict begin 35 38 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(35)150
-299 y Fh(2.4.6)63 b(Redispla)m(y)3350 508 y Fs([F)-8
-b(unction])-3599 b Fg(void)54 b(rl_redisplay)49 b Ff(\()p
-Fi(v)m(oid)p Ff(\))390 617 y Fs(Change)38 b(what's)f(displa)m(y)m(ed)i
+%%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)150
+299 y Fi(2.4.6)63 b(Redispla)m(y)3350 491 y Ft([F)-8
+b(unction])-3599 b Fh(void)54 b(rl_redisplay)49 b Fg(\()p
+Ff(v)m(oid)p Fg(\))390 601 y Ft(Change)38 b(what's)f(displa)m(y)m(ed)i
(on)e(the)h(screen)g(to)h(re\015ect)f(the)g(curren)m(t)g(con)m(ten)m
-(ts)h(of)f Fr(rl_line_)390 727 y(buffer)p Fs(.)3350 935
-y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_forced_update_disp)q(lay)f
-Ff(\()p Fi(v)m(oid)p Ff(\))390 1045 y Fs(F)-8 b(orce)41
+(ts)h(of)f Fs(rl_line_)390 711 y(buffer)p Ft(.)3350 889
+y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_forced_update_disp)q(lay)f
+Fg(\()p Ff(v)m(oid)p Fg(\))390 998 y Ft(F)-8 b(orce)41
b(the)f(line)g(to)h(b)s(e)e(up)s(dated)f(and)h(redispla)m(y)m(ed,)k
-(whether)c(or)g(not)h(Readline)h(thinks)e(the)390 1154
-y(screen)30 b(displa)m(y)h(is)f(correct.)3350 1362 y([F)-8
-b(unction])-3599 b Fg(int)53 b(rl_on_new_line)d Ff(\()p
-Fi(v)m(oid)p Ff(\))390 1472 y Fs(T)-8 b(ell)31 b(the)f(up)s(date)f
+(whether)c(or)g(not)h(Readline)h(thinks)e(the)390 1108
+y(screen)30 b(displa)m(y)h(is)f(correct.)3350 1286 y([F)-8
+b(unction])-3599 b Fh(int)53 b(rl_on_new_line)d Fg(\()p
+Ff(v)m(oid)p Fg(\))390 1395 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 1581
-y(outputting)i(a)f(newline.)3350 1790 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_on_new_line_with_p)q(romp)q(t)f Ff(\()p
-Fi(v)m(oid)p Ff(\))390 1899 y Fs(T)-8 b(ell)25 b(the)f(up)s(date)f
+(new)f(\(empt)m(y\))i(line,)g(usually)e(after)390 1505
+y(outputting)i(a)f(newline.)3350 1683 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 1793 y Ft(T)-8 b(ell)25 b(the)f(up)s(date)f
(functions)h(that)h(w)m(e)f(ha)m(v)m(e)h(mo)m(v)m(ed)g(on)m(to)h(a)e
-(new)g(line,)i(with)d Fi(rl)p 3106 1899 28 4 v 40 w(prompt)i
-Fs(already)390 2009 y(displa)m(y)m(ed.)41 b(This)28 b(could)g(b)s(e)g
+(new)g(line,)i(with)d Fj(rl)p 3106 1793 28 4 v 40 w(prompt)i
+Ft(already)390 1902 y(displa)m(y)m(ed.)41 b(This)28 b(could)g(b)s(e)g
(used)g(b)m(y)g(applications)i(that)f(w)m(an)m(t)h(to)f(output)f(the)h
-(prompt)f(string)390 2118 y(themselv)m(es,)h(but)e(still)h(need)g
+(prompt)f(string)390 2012 y(themselv)m(es,)h(but)e(still)h(need)g
(Readline)g(to)g(kno)m(w)f(the)h(prompt)e(string)h(length)h(for)f
-(redispla)m(y)-8 b(.)41 b(It)390 2228 y(should)29 b(b)s(e)h(used)g
-(after)h(setting)g Fi(rl)p 1590 2228 V 40 w(already)p
-1920 2228 V 41 w(prompted)p Fs(.)3350 2436 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_reset_line_state)e Ff(\()p Fi(v)m(oid)p
-Ff(\))390 2546 y Fs(Reset)36 b(the)e(displa)m(y)h(state)h(to)g(a)f
-(clean)g(state)h(and)e(redispla)m(y)h(the)g(curren)m(t)g(line)g
-(starting)g(on)g(a)390 2655 y(new)30 b(line.)3350 2863
-y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_crlf)48 b Ff(\()p
-Fi(v)m(oid)p Ff(\))390 2973 y Fs(Mo)m(v)m(e)32 b(the)f(cursor)f(to)h
-(the)f(start)h(of)g(the)f(next)h(screen)f(line.)3350
-3181 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_show_char)c
-Ff(\()p Fi(in)m(t)32 b(c)p Ff(\))390 3291 y Fs(Displa)m(y)i(c)m
-(haracter)g Fi(c)k Fs(on)32 b Fr(rl_outstream)p Fs(.)44
+(redispla)m(y)-8 b(.)41 b(It)390 2121 y(should)29 b(b)s(e)h(used)g
+(after)h(setting)g Fj(rl)p 1590 2121 V 40 w(already)p
+1920 2121 V 41 w(prompted)p Ft(.)3350 2299 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_clear_visible_line)f Fg(\()p Ff(v)m(oid)p
+Fg(\))390 2409 y Ft(Clear)31 b(the)f(screen)h(lines)f(corresp)s(onding)
+g(to)h(the)f(curren)m(t)g(line's)h(con)m(ten)m(ts.)3350
+2587 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_reset_line_state)e
+Fg(\()p Ff(v)m(oid)p Fg(\))390 2697 y Ft(Reset)36 b(the)e(displa)m(y)h
+(state)h(to)g(a)f(clean)g(state)h(and)e(redispla)m(y)h(the)g(curren)m
+(t)g(line)g(starting)g(on)g(a)390 2806 y(new)30 b(line.)3350
+2984 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_crlf)48
+b Fg(\()p Ff(v)m(oid)p Fg(\))390 3094 y Ft(Mo)m(v)m(e)32
+b(the)f(cursor)f(to)h(the)f(start)h(of)g(the)f(next)h(screen)f(line.)
+3350 3272 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_show_char)c
+Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 3381 y Ft(Displa)m(y)g(c)m
+(haracter)g Fj(c)k Ft(on)32 b Fs(rl_outstream)p Ft(.)44
b(If)32 b(Readline)h(has)g(not)f(b)s(een)g(set)h(to)g(displa)m(y)g
-(meta)390 3400 y(c)m(haracters)27 b(directly)-8 b(,)29
+(meta)390 3491 y(c)m(haracters)27 b(directly)-8 b(,)29
b(this)c(will)i(con)m(v)m(ert)g(meta)g(c)m(haracters)h(to)e(a)h
-(meta-pre\014xed)f(k)m(ey)g(sequence.)390 3510 y(This)k(is)g(in)m
+(meta-pre\014xed)f(k)m(ey)g(sequence.)390 3600 y(This)k(is)g(in)m
(tended)g(for)g(use)g(b)m(y)h(applications)g(whic)m(h)f(wish)g(to)h(do)
-f(their)h(o)m(wn)f(redispla)m(y)-8 b(.)3350 3718 y([F)g(unction])-3599
-b Fg(int)53 b(rl_message)c Ff(\()p Fi(const)31 b(c)m(har)g(*,)36
-b(.)22 b(.)h(.)11 b Ff(\))390 3828 y Fs(The)20 b(argumen)m(ts)h(are)g
-(a)g(format)g(string)g(as)f(w)m(ould)h(b)s(e)f(supplied)f(to)j
-Fr(printf)p Fs(,)f(p)s(ossibly)e(con)m(taining)390 3937
+f(their)h(o)m(wn)f(redispla)m(y)-8 b(.)3350 3778 y([F)g(unction])-3599
+b Fh(int)53 b(rl_message)c Fg(\()p Ff(const)34 b(c)m(har)g(*,)k(.)24
+b(.)g(.)12 b Fg(\))390 3888 y Ft(The)20 b(argumen)m(ts)h(are)g(a)g
+(format)g(string)g(as)f(w)m(ould)h(b)s(e)f(supplied)f(to)j
+Fs(printf)p Ft(,)f(p)s(ossibly)e(con)m(taining)390 3998
y(con)m(v)m(ersion)45 b(sp)s(eci\014cations)g(suc)m(h)f(as)g(`)p
-Fr(\045d)p Fs(',)k(and)c(an)m(y)g(additional)h(argumen)m(ts)g
-(necessary)f(to)390 4047 y(satisfy)e(the)f(con)m(v)m(ersion)i(sp)s
+Fs(\045d)p Ft(',)k(and)c(an)m(y)g(additional)h(argumen)m(ts)g
+(necessary)f(to)390 4107 y(satisfy)e(the)f(con)m(v)m(ersion)i(sp)s
(eci\014cations.)74 b(The)41 b(resulting)h(string)f(is)g(displa)m(y)m
-(ed)h(in)f(the)h Fi(ec)m(ho)390 4157 y(area)p Fs(.)63
+(ed)h(in)f(the)h Fj(ec)m(ho)390 4217 y(area)p Ft(.)63
b(The)37 b(ec)m(ho)i(area)f(is)g(also)g(used)f(to)h(displa)m(y)g(n)m
(umeric)f(argumen)m(ts)h(and)f(searc)m(h)h(strings.)390
-4266 y(Y)-8 b(ou)34 b(should)e(call)j Fr(rl_save_prompt)29
-b Fs(to)34 b(sa)m(v)m(e)h(the)f(prompt)e(information)i(b)s(efore)f
-(calling)i(this)390 4376 y(function.)3350 4584 y([F)-8
-b(unction])-3599 b Fg(int)53 b(rl_clear_message)e Ff(\()p
-Fi(v)m(oid)p Ff(\))390 4693 y Fs(Clear)29 b(the)g(message)h(in)f(the)g
+4326 y(Y)-8 b(ou)34 b(should)e(call)j Fs(rl_save_prompt)29
+b Ft(to)34 b(sa)m(v)m(e)h(the)f(prompt)e(information)i(b)s(efore)f
+(calling)i(this)390 4436 y(function.)3350 4614 y([F)-8
+b(unction])-3599 b Fh(int)53 b(rl_clear_message)e Fg(\()p
+Ff(v)m(oid)p Fg(\))390 4724 y Ft(Clear)29 b(the)g(message)h(in)f(the)g
(ec)m(ho)h(area.)41 b(If)29 b(the)g(prompt)f(w)m(as)h(sa)m(v)m(ed)h
-(with)f(a)g(call)i(to)e Fr(rl_save_)390 4803 y(prompt)38
-b Fs(b)s(efore)h(the)g(last)h(call)h(to)f Fr(rl_message)p
-Fs(,)f(call)i Fr(rl_restore_prompt)34 b Fs(b)s(efore)39
-b(calling)390 4913 y(this)30 b(function.)3350 5121 y([F)-8
-b(unction])-3599 b Fg(void)54 b(rl_save_prompt)49 b Ff(\()p
-Fi(v)m(oid)p Ff(\))390 5230 y Fs(Sa)m(v)m(e)44 b(the)f(lo)s(cal)i
+(with)f(a)g(call)i(to)e Fs(rl_save_)390 4833 y(prompt)38
+b Ft(b)s(efore)h(the)g(last)h(call)h(to)f Fs(rl_message)p
+Ft(,)f(call)i Fs(rl_restore_prompt)34 b Ft(b)s(efore)39
+b(calling)390 4943 y(this)30 b(function.)3350 5121 y([F)-8
+b(unction])-3599 b Fh(void)54 b(rl_save_prompt)49 b Fg(\()p
+Ff(v)m(oid)p Fg(\))390 5230 y Ft(Sa)m(v)m(e)44 b(the)f(lo)s(cal)i
(Readline)e(prompt)f(displa)m(y)i(state)g(in)f(preparation)g(for)g
(displa)m(ying)g(a)g(new)390 5340 y(message)31 b(in)g(the)f(message)i
-(area)f(with)f Fr(rl_message\(\))p Fs(.)p eop end
-%%Page: 36 40
-TeXDict begin 36 39 bop 150 -116 a Fs(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 Fg(void)54 b(rl_restore_prompt)c
-Ff(\()p Fi(v)m(oid)p Ff(\))390 408 y Fs(Restore)44 b(the)e(lo)s(cal)i
+(area)f(with)f Fs(rl_message\(\))p Ft(.)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
+299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_restore_prompt)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 408 y Ft(Restore)44 b(the)e(lo)s(cal)i
(Readline)g(prompt)d(displa)m(y)i(state)h(sa)m(v)m(ed)g(b)m(y)f(the)f
-(most)h(recen)m(t)h(call)g(to)390 518 y Fr(rl_save_prompt)p
-Fs(.)69 b(if)41 b Fr(rl_save_prompt)d Fs(w)m(as)j(called)i(to)f(sa)m(v)
+(most)h(recen)m(t)h(call)g(to)390 518 y Fs(rl_save_prompt)p
+Ft(.)69 b(if)41 b Fs(rl_save_prompt)d Ft(w)m(as)j(called)i(to)f(sa)m(v)
m(e)h(the)e(prompt)f(b)s(efore)h(a)h(call)390 628 y(to)37
-b Fr(rl_message)p Fs(,)f(this)h(function)f(should)g(b)s(e)g(called)i(b)
-s(efore)f(the)g(corresp)s(onding)e(call)j(to)g Fr(rl_)390
-737 y(clear_message)p Fs(.)3350 918 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_expand_prompt)e Ff(\()p Fi(c)m(har)31
-b(*prompt)p Ff(\))390 1027 y Fs(Expand)41 b(an)m(y)j(sp)s(ecial)f(c)m
-(haracter)h(sequences)f(in)g Fi(prompt)g Fs(and)f(set)i(up)d(the)i(lo)s
+b Fs(rl_message)p Ft(,)f(this)h(function)f(should)g(b)s(e)g(called)i(b)
+s(efore)f(the)g(corresp)s(onding)e(call)j(to)g Fs(rl_)390
+737 y(clear_message)p Ft(.)3350 918 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_expand_prompt)e Fg(\()p Ff(c)m(har)34
+b(*prompt)p Fg(\))390 1027 y Ft(Expand)41 b(an)m(y)j(sp)s(ecial)f(c)m
+(haracter)h(sequences)f(in)g Fj(prompt)g Ft(and)f(set)i(up)d(the)i(lo)s
(cal)h(Readline)390 1137 y(prompt)35 b(redispla)m(y)h(v)-5
b(ariables.)57 b(This)35 b(function)h(is)g(called)h(b)m(y)e
-Fr(readline\(\))p Fs(.)55 b(It)35 b(ma)m(y)i(also)g(b)s(e)390
+Fs(readline\(\))p Ft(.)55 b(It)35 b(ma)m(y)i(also)g(b)s(e)390
1246 y(called)22 b(to)g(expand)f(the)g(primary)f(prompt)g(if)i(the)f
-Fr(rl_on_new_line_with_prom)o(pt\()o(\))15 b Fs(function)390
-1356 y(or)25 b Fr(rl_already_prompted)c Fs(v)-5 b(ariable)26
+Fs(rl_on_new_line_with_prom)o(pt\()o(\))15 b Ft(function)390
+1356 y(or)25 b Fs(rl_already_prompted)c Ft(v)-5 b(ariable)26
b(is)f(used.)39 b(It)25 b(returns)f(the)i(n)m(um)m(b)s(er)e(of)i
(visible)f(c)m(haracters)390 1465 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
@@ -9211,1254 +9294,1355 @@ b(ma)m(y)h(indicate)f(that)390 1575 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 1685 y(b)m(y)41 b(brac)m(k)m(eting)
i(a)e(sequence)g(of)g(suc)m(h)g(c)m(haracters)h(with)f(the)g(sp)s
-(ecial)h(mark)m(ers)f Fr(RL_PROMPT_)390 1794 y(START_IGNORE)32
-b Fs(and)k Fr(RL_PROMPT_END_IGNORE)30 b Fs(\(declared)37
-b(in)e Fr(readline.h)p Fs(.)54 b(This)35 b(ma)m(y)i(b)s(e)390
-1904 y(used)30 b(to)h(em)m(b)s(ed)f(terminal-sp)s(eci\014c)h(escap)s(e)
-f(sequences)h(in)f(prompts.)3350 2084 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_set_prompt)d Ff(\()p Fi(const)31 b(c)m(har)g(*prompt)p
-Ff(\))390 2194 y Fs(Mak)m(e)d(Readline)g(use)f Fi(prompt)h
-Fs(for)e(subsequen)m(t)h(redispla)m(y)-8 b(.)40 b(This)26
-b(calls)i Fr(rl_expand_prompt\(\))390 2303 y Fs(to)j(expand)f(the)g
-(prompt)g(and)g(sets)g Fr(rl_prompt)e Fs(to)j(the)g(result.)150
-2500 y Fh(2.4.7)63 b(Mo)s(difying)43 b(T)-10 b(ext)3350
-2694 y Fs([F)i(unction])-3599 b Fg(int)53 b(rl_insert_text)d
-Ff(\()p Fi(const)31 b(c)m(har)g(*text)p Ff(\))390 2804
-y Fs(Insert)g Fi(text)k Fs(in)m(to)d(the)g(line)g(at)g(the)g(curren)m
+(ecial)h(mark)m(ers)f Fs(RL_PROMPT_)390 1794 y(START_IGNORE)29
+b Ft(and)j Fs(RL_PROMPT_END_IGNORE)26 b Ft(\(declared)33
+b(in)f Fs(readline.h)p Ft(\).)44 b(This)32 b(ma)m(y)h(b)s(e)390
+1904 y(used)d(to)h(em)m(b)s(ed)f(terminal-sp)s(eci\014c)h(escap)s(e)f
+(sequences)h(in)f(prompts.)3350 2084 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_set_prompt)d Fg(\()p Ff(const)34 b(c)m(har)g(*prompt)p
+Fg(\))390 2194 y Ft(Mak)m(e)28 b(Readline)g(use)f Fj(prompt)h
+Ft(for)e(subsequen)m(t)h(redispla)m(y)-8 b(.)40 b(This)26
+b(calls)i Fs(rl_expand_prompt\(\))390 2303 y Ft(to)j(expand)f(the)g
+(prompt)g(and)g(sets)g Fs(rl_prompt)e Ft(to)j(the)g(result.)150
+2500 y Fi(2.4.7)63 b(Mo)s(difying)43 b(T)-10 b(ext)3350
+2694 y Ft([F)i(unction])-3599 b Fh(int)53 b(rl_insert_text)d
+Fg(\()p Ff(const)34 b(c)m(har)g(*text)p Fg(\))390 2804
+y Ft(Insert)d Fj(text)k Ft(in)m(to)d(the)g(line)g(at)g(the)g(curren)m
(t)f(cursor)g(p)s(osition.)45 b(Returns)30 b(the)i(n)m(um)m(b)s(er)f
(of)g(c)m(har-)390 2913 y(acters)g(inserted.)3350 3093
-y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_delete_text)d
-Ff(\()p Fi(in)m(t)31 b(start,)g(in)m(t)g(end)p Ff(\))390
-3203 y Fs(Delete)40 b(the)e(text)h(b)s(et)m(w)m(een)f
-Fi(start)i Fs(and)d Fi(end)k Fs(in)c(the)h(curren)m(t)g(line.)63
+y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_delete_text)d
+Fg(\()p Ff(in)m(t)33 b(start,)g(in)m(t)g(end)p Fg(\))390
+3203 y Ft(Delete)40 b(the)e(text)h(b)s(et)m(w)m(een)f
+Fj(start)i Ft(and)d Fj(end)k Ft(in)c(the)h(curren)m(t)g(line.)63
b(Returns)36 b(the)i(n)m(um)m(b)s(er)f(of)390 3313 y(c)m(haracters)32
-b(deleted.)3350 3493 y([F)-8 b(unction])-3599 b Fg(char)54
-b(*)e(rl_copy_text)d Ff(\()p Fi(in)m(t)31 b(start,)h(in)m(t)f(end)p
-Ff(\))390 3602 y Fs(Return)f(a)g(cop)m(y)h(of)g(the)g(text)g(b)s(et)m
-(w)m(een)g Fi(start)i Fs(and)d Fi(end)j Fs(in)d(the)h(curren)m(t)f
-(line.)3350 3783 y([F)-8 b(unction])-3599 b Fg(int)53
-b(rl_kill_text)c Ff(\()p Fi(in)m(t)32 b(start,)f(in)m(t)g(end)p
-Ff(\))390 3892 y Fs(Cop)m(y)j(the)g(text)i(b)s(et)m(w)m(een)e
-Fi(start)j Fs(and)d Fi(end)j Fs(in)d(the)g(curren)m(t)g(line)g(to)h
+b(deleted.)3350 3493 y([F)-8 b(unction])-3599 b Fh(char)54
+b(*)e(rl_copy_text)d Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)h(end)p
+Fg(\))390 3602 y Ft(Return)d(a)g(cop)m(y)h(of)g(the)g(text)g(b)s(et)m
+(w)m(een)g Fj(start)i Ft(and)d Fj(end)j Ft(in)d(the)h(curren)m(t)f
+(line.)3350 3783 y([F)-8 b(unction])-3599 b Fh(int)53
+b(rl_kill_text)c Fg(\()p Ff(in)m(t)34 b(start,)e(in)m(t)i(end)p
+Fg(\))390 3892 y Ft(Cop)m(y)g(the)g(text)i(b)s(et)m(w)m(een)e
+Fj(start)j Ft(and)d Fj(end)j Ft(in)d(the)g(curren)m(t)g(line)g(to)h
(the)f(kill)h(ring,)g(app)s(ending)390 4002 y(or)f(prep)s(ending)e(to)j
(the)f(last)h(kill)f(if)g(the)g(last)h(command)f(w)m(as)g(a)h(kill)f
(command.)51 b(The)34 b(text)h(is)390 4112 y(deleted.)51
-b(If)33 b Fi(start)j Fs(is)e(less)g(than)f Fi(end)p Fs(,)h(the)g(text)g
+b(If)33 b Fj(start)j Ft(is)e(less)g(than)f Fj(end)p Ft(,)h(the)g(text)g
(is)g(app)s(ended,)f(otherwise)h(prep)s(ended.)48 b(If)33
b(the)390 4221 y(last)e(command)f(w)m(as)h(not)g(a)f(kill,)i(a)f(new)e
(kill)i(ring)g(slot)g(is)f(used.)3350 4401 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_push_macro_input)e Ff(\()p Fi(c)m(har)32
-b(*macro)p Ff(\))390 4511 y Fs(Cause)c Fi(macro)33 b
-Fs(to)c(b)s(e)f(inserted)g(in)m(to)h(the)g(line,)g(as)f(if)h(it)f(had)g
-(b)s(een)g(in)m(v)m(ok)m(ed)h(b)m(y)f(a)h(k)m(ey)g(b)s(ound)d(to)390
-4621 y(a)31 b(macro.)41 b(Not)31 b(esp)s(ecially)h(useful;)e(use)g
-Fr(rl_insert_text\(\))c Fs(instead.)150 4817 y Fh(2.4.8)63
-b(Character)39 b(Input)3350 5011 y Fs([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_read_key)c Ff(\()p Fi(v)m(oid)p Ff(\))390
-5121 y Fs(Return)29 b(the)g(next)h(c)m(haracter)h(a)m(v)-5
+b Fh(int)53 b(rl_push_macro_input)e Fg(\()p Ff(c)m(har)35
+b(*macro)p Fg(\))390 4511 y Ft(Cause)28 b Fj(macro)33
+b Ft(to)c(b)s(e)f(inserted)g(in)m(to)h(the)g(line,)g(as)f(if)h(it)f
+(had)g(b)s(een)g(in)m(v)m(ok)m(ed)h(b)m(y)f(a)h(k)m(ey)g(b)s(ound)d(to)
+390 4621 y(a)31 b(macro.)41 b(Not)31 b(esp)s(ecially)h(useful;)e(use)g
+Fs(rl_insert_text\(\))c Ft(instead.)150 4817 y Fi(2.4.8)63
+b(Character)39 b(Input)3350 5011 y Ft([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_read_key)c Fg(\()p Ff(v)m(oid)p Fg(\))390
+5121 y Ft(Return)29 b(the)g(next)h(c)m(haracter)h(a)m(v)-5
b(ailable)32 b(from)d(Readline's)h(curren)m(t)f(input)g(stream.)41
b(This)28 b(han-)390 5230 y(dles)e(input)g(inserted)g(in)m(to)i(the)e
-(input)g(stream)h(via)g Fi(rl)p 2226 5230 28 4 v 40 w(p)s(ending)p
-2583 5230 V 38 w(input)h Fs(\(see)f(Section)h(2.3)f([Read-)390
-5340 y(line)40 b(V)-8 b(ariables],)43 b(page)d(25\))g(and)f
-Fr(rl_stuff_char\(\))p Fs(,)f(macros,)k(and)d(c)m(haracters)h(read)f
+(input)g(stream)h(via)g Fj(rl)p 2226 5230 28 4 v 40 w(p)s(ending)p
+2583 5230 V 38 w(input)h Ft(\(see)f(Section)h(2.3)f([Read-)390
+5340 y(line)40 b(V)-8 b(ariables],)43 b(page)d(27\))g(and)f
+Fs(rl_stuff_char\(\))p Ft(,)f(macros,)k(and)d(c)m(haracters)h(read)f
(from)p eop end
-%%Page: 37 41
-TeXDict begin 37 40 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(37)390
+%%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
299 y(the)34 b(k)m(eyb)s(oard.)52 b(While)35 b(w)m(aiting)g(for)f
(input,)g(this)g(function)g(will)g(call)i(an)m(y)e(function)g(assigned)
-390 408 y(to)d(the)g Fr(rl_event_hook)26 b Fs(v)-5 b(ariable.)3350
-585 y([F)d(unction])-3599 b Fg(int)53 b(rl_getc)48 b
-Ff(\()p Fi(FILE)30 b(*stream)p Ff(\))390 694 y Fs(Return)20
+390 408 y(to)d(the)g Fs(rl_event_hook)26 b Ft(v)-5 b(ariable.)3350
+574 y([F)d(unction])-3599 b Fh(int)53 b(rl_getc)48 b
+Fg(\()p Ff(FILE)33 b(*stream)p Fg(\))390 684 y Ft(Return)20
b(the)i(next)f(c)m(haracter)i(a)m(v)-5 b(ailable)24 b(from)c
-Fi(stream)p Fs(,)k(whic)m(h)d(is)g(assumed)g(to)h(b)s(e)e(the)i(k)m
-(eyb)s(oard.)3350 871 y([F)-8 b(unction])-3599 b Fg(int)53
-b(rl_stuff_char)d Ff(\()p Fi(in)m(t)31 b(c)p Ff(\))390
-980 y Fs(Insert)h Fi(c)39 b Fs(in)m(to)34 b(the)f(Readline)g(input)f
-(stream.)49 b(It)33 b(will)g(b)s(e)f Fr(")p Fs(read)p
-Fr(")g Fs(b)s(efore)h(Readline)g(attempts)390 1090 y(to)27
+Fj(stream)p Ft(,)k(whic)m(h)d(is)g(assumed)g(to)h(b)s(e)e(the)i(k)m
+(eyb)s(oard.)3350 850 y([F)-8 b(unction])-3599 b Fh(int)53
+b(rl_stuff_char)d Fg(\()p Ff(in)m(t)33 b(c)p Fg(\))390
+959 y Ft(Insert)f Fj(c)39 b Ft(in)m(to)34 b(the)f(Readline)g(input)f
+(stream.)49 b(It)33 b(will)g(b)s(e)f Fs(")p Ft(read)p
+Fs(")g Ft(b)s(efore)h(Readline)g(attempts)390 1069 y(to)27
b(read)g(c)m(haracters)h(from)f(the)g(terminal)g(with)f
-Fr(rl_read_key\(\))p Fs(.)36 b(Up)27 b(to)g(512)h(c)m(haracters)g(ma)m
-(y)390 1200 y(b)s(e)i(pushed)f(bac)m(k.)42 b Fr(rl_stuff_char)27
-b Fs(returns)i(1)i(if)f(the)h(c)m(haracter)h(w)m(as)f(successfully)g
-(inserted;)390 1309 y(0)g(otherwise.)3350 1485 y([F)-8
-b(unction])-3599 b Fg(int)53 b(rl_execute_next)d Ff(\()p
-Fi(in)m(t)31 b(c)p Ff(\))390 1595 y Fs(Mak)m(e)37 b Fi(c)42
-b Fs(b)s(e)35 b(the)h(next)f(command)h(to)g(b)s(e)f(executed)i(when)d
-Fr(rl_read_key\(\))e Fs(is)k(called.)58 b(This)390 1705
-y(sets)31 b Fi(rl)p 635 1705 28 4 v 40 w(p)s(ending)p
-992 1705 V 38 w(input)p Fs(.)3350 1881 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_clear_pending_inpu)q(t)e Ff(\()p Fi(v)m(oid)p
-Ff(\))390 1991 y Fs(Unset)42 b Fi(rl)p 729 1991 V 40
-w(p)s(ending)p 1086 1991 V 38 w(input)p Fs(,)i(e\013ectiv)m(ely)h
+Fs(rl_read_key\(\))p Ft(.)36 b(Up)27 b(to)g(512)h(c)m(haracters)g(ma)m
+(y)390 1178 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 1288 y(0)g(otherwise.)3350 1454 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 1563 y Ft(Mak)m(e)j Fj(c)42
+b Ft(b)s(e)35 b(the)h(next)f(command)h(to)g(b)s(e)f(executed)i(when)d
+Fs(rl_read_key\(\))e Ft(is)k(called.)58 b(This)390 1673
+y(sets)31 b Fj(rl)p 635 1673 28 4 v 40 w(p)s(ending)p
+992 1673 V 38 w(input)p Ft(.)3350 1839 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_clear_pending_inpu)q(t)e Fg(\()p Ff(v)m(oid)p
+Fg(\))390 1948 y Ft(Unset)42 b Fj(rl)p 729 1948 V 40
+w(p)s(ending)p 1086 1948 V 38 w(input)p Ft(,)i(e\013ectiv)m(ely)h
(negating)e(the)f(e\013ect)h(of)f(an)m(y)g(previous)f(call)i(to)g
-Fr(rl_)390 2100 y(execute_next\(\))p Fs(.)59 b(This)36
+Fs(rl_)390 2058 y(execute_next\(\))p Ft(.)59 b(This)36
b(w)m(orks)i(only)g(if)f(the)h(p)s(ending)e(input)h(has)g(not)h
-(already)g(b)s(een)f(read)390 2210 y(with)30 b Fr(rl_read_key\(\))p
-Fs(.)3350 2386 y([F)-8 b(unction])-3599 b Fg(int)53 b
-(rl_set_keyboard_input)q(_tim)q(eou)q(t)e Ff(\()p Fi(in)m(t)32
-b(u)p Ff(\))390 2496 y Fs(While)41 b(w)m(aiting)g(for)f(k)m(eyb)s(oard)
-g(input)f(in)h Fr(rl_read_key\(\))p Fs(,)f(Readline)i(will)f(w)m(ait)h
-(for)f Fi(u)g Fs(mi-)390 2605 y(croseconds)31 b(for)g(input)f(b)s
+(already)g(b)s(een)f(read)390 2167 y(with)30 b Fs(rl_read_key\(\))p
+Ft(.)3350 2333 y([F)-8 b(unction])-3599 b Fh(int)53 b
+(rl_set_keyboard_input)q(_tim)q(eou)q(t)e Fg(\()p Ff(in)m(t)34
+b(u)p Fg(\))390 2443 y Ft(While)41 b(w)m(aiting)g(for)f(k)m(eyb)s(oard)
+g(input)f(in)h Fs(rl_read_key\(\))p Ft(,)f(Readline)i(will)f(w)m(ait)h
+(for)f Fj(u)g Ft(mi-)390 2552 y(croseconds)31 b(for)g(input)f(b)s
(efore)g(calling)j(an)m(y)e(function)f(assigned)i(to)f
-Fr(rl_event_hook)p Fs(.)39 b Fi(u)30 b Fs(m)m(ust)390
-2715 y(b)s(e)h(greater)i(than)f(or)g(equal)g(to)h(zero)f(\(a)h
+Fs(rl_event_hook)p Ft(.)39 b Fj(u)30 b Ft(m)m(ust)390
+2662 y(b)s(e)h(greater)i(than)f(or)g(equal)g(to)h(zero)f(\(a)h
(zero-length)g(timeout)g(is)f(equiv)-5 b(alen)m(t)33
-b(to)g(a)f(p)s(oll\).)45 b(The)390 2824 y(default)31
+b(to)g(a)f(p)s(oll\).)45 b(The)390 2771 y(default)31
b(w)m(aiting)g(p)s(erio)s(d)e(is)i(one-ten)m(th)g(of)g(a)g(second.)40
b(Returns)30 b(the)g(old)h(timeout)g(v)-5 b(alue.)150
-3018 y Fh(2.4.9)63 b(T)-10 b(erminal)41 b(Managemen)m(t)3350
-3210 y Fs([F)-8 b(unction])-3599 b Fg(void)54 b(rl_prep_terminal)c
-Ff(\()p Fi(in)m(t)31 b(meta)p 1670 3210 V 41 w(\015ag)p
-Ff(\))390 3319 y Fs(Mo)s(dify)42 b(the)h(terminal)g(settings)g(for)f
-(Readline's)i(use,)h(so)e Fr(readline\(\))c Fs(can)k(read)f(a)h(single)
-390 3429 y(c)m(haracter)32 b(at)g(a)f(time)h(from)e(the)h(k)m(eyb)s
-(oard.)43 b(The)30 b Fi(meta)p 2376 3429 V 41 w(\015ag)39
-b Fs(argumen)m(t)31 b(should)f(b)s(e)g(non-zero)390 3539
+2958 y Fi(2.4.9)63 b(T)-10 b(erminal)41 b(Managemen)m(t)3350
+3143 y Ft([F)-8 b(unction])-3599 b Fh(void)54 b(rl_prep_terminal)c
+Fg(\()p Ff(in)m(t)33 b(meta)p 1704 3143 30 5 v 44 w(\015ag)p
+Fg(\))390 3252 y Ft(Mo)s(dify)42 b(the)h(terminal)g(settings)g(for)f
+(Readline's)i(use,)h(so)e Fs(readline\(\))c Ft(can)k(read)f(a)h(single)
+390 3362 y(c)m(haracter)32 b(at)g(a)f(time)h(from)e(the)h(k)m(eyb)s
+(oard.)43 b(The)30 b Fj(meta)p 2376 3362 28 4 v 41 w(\015ag)39
+b Ft(argumen)m(t)31 b(should)f(b)s(e)g(non-zero)390 3471
y(if)g(Readline)h(should)f(read)g(eigh)m(t-bit)i(input.)3350
-3715 y([F)-8 b(unction])-3599 b Fg(void)54 b(rl_deprep_terminal)c
-Ff(\()p Fi(v)m(oid)p Ff(\))390 3825 y Fs(Undo)31 b(the)h(e\013ects)h
-(of)f Fr(rl_prep_terminal\(\))p Fs(,)27 b(lea)m(ving)33
+3637 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_deprep_terminal)c
+Fg(\()p Ff(v)m(oid)p Fg(\))390 3747 y Ft(Undo)31 b(the)h(e\013ects)h
+(of)f Fs(rl_prep_terminal\(\))p Ft(,)27 b(lea)m(ving)33
b(the)f(terminal)g(in)f(the)h(state)h(in)e(whic)m(h)390
-3934 y(it)g(w)m(as)g(b)s(efore)f(the)g(most)h(recen)m(t)g(call)h(to)f
-Fr(rl_prep_terminal\(\))p Fs(.)3350 4111 y([F)-8 b(unction])-3599
-b Fg(void)54 b(rl_tty_set_default_bindi)q(ngs)e Ff(\()p
-Fi(Keymap)31 b(kmap)p Ff(\))390 4220 y Fs(Read)37 b(the)g(op)s(erating)
-h(system's)f(terminal)g(editing)h(c)m(haracters)g(\(as)g(w)m(ould)e(b)s
-(e)h(displa)m(y)m(ed)g(b)m(y)390 4330 y Fr(stty)p Fs(\))30
+3856 y(it)g(w)m(as)g(b)s(efore)f(the)g(most)h(recen)m(t)g(call)h(to)f
+Fs(rl_prep_terminal\(\))p Ft(.)3350 4022 y([F)-8 b(unction])-3599
+b Fh(void)54 b(rl_tty_set_default_bindi)q(ngs)e Fg(\()p
+Ff(Keymap)34 b(kmap)p Fg(\))390 4132 y Ft(Read)j(the)g(op)s(erating)h
+(system's)f(terminal)g(editing)h(c)m(haracters)g(\(as)g(w)m(ould)e(b)s
+(e)h(displa)m(y)m(ed)g(b)m(y)390 4241 y Fs(stty)p Ft(\))30
b(to)h(their)f(Readline)h(equiv)-5 b(alen)m(ts.)42 b(The)30
-b(bindings)f(are)i(p)s(erformed)e(in)h Fi(kmap)p Fs(.)3350
-4506 y([F)-8 b(unction])-3599 b Fg(void)54 b(rl_tty_unset_default_bin)q
-(din)q(gs)e Ff(\()p Fi(Keymap)30 b(kmap)p Ff(\))390 4616
-y Fs(Reset)j(the)f(bindings)e(manipulated)i(b)m(y)g Fr
-(rl_tty_set_default_bind)o(ing)o(s)26 b Fs(so)32 b(that)g(the)g(ter-)
-390 4725 y(minal)40 b(editing)g(c)m(haracters)h(are)f(b)s(ound)e(to)i
-Fr(rl_insert)p Fs(.)66 b(The)39 b(bindings)f(are)i(p)s(erformed)e(in)
-390 4835 y Fi(kmap)p Fs(.)3350 5011 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_reset_terminal)e Ff(\()p Fi(const)31
-b(c)m(har)g(*terminal)p 2151 5011 V 41 w(name)p Ff(\))390
-5121 y Fs(Reinitialize)26 b(Readline's)f(idea)f(of)g(the)g(terminal)h
-(settings)f(using)g Fi(terminal)p 2977 5121 V 40 w(name)29
-b Fs(as)24 b(the)g(termi-)390 5230 y(nal)32 b(t)m(yp)s(e)g(\(e.g.,)i
-Fr(vt100)p Fs(\).)44 b(If)31 b Fi(terminal)p 1753 5230
-V 41 w(name)37 b Fs(is)31 b Fr(NULL)p Fs(,)h(the)g(v)-5
-b(alue)32 b(of)g(the)g Fr(TERM)e Fs(en)m(vironmen)m(t)390
-5340 y(v)-5 b(ariable)31 b(is)g(used.)p eop end
-%%Page: 38 42
-TeXDict begin 38 41 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(38)150
-299 y Fh(2.4.10)63 b(Utilit)m(y)40 b(F)-10 b(unctions)3350
-503 y Fs([F)i(unction])-3599 b Fg(int)53 b(rl_save_state)d
-Ff(\()p Fi(struct)30 b(readline)p 1702 503 28 4 v 41
-w(state)h(*sp)p Ff(\))390 612 y Fs(Sa)m(v)m(e)f(a)f(snapshot)e(of)i
-(Readline's)g(in)m(ternal)g(state)h(to)f Fi(sp)p Fs(.)40
-b(The)28 b(con)m(ten)m(ts)i(of)e(the)h Fi(readline)p
-3518 612 V 40 w(state)390 722 y Fs(structure)g(are)g(do)s(cumen)m(ted)g
-(in)g Fr(readline.h)p Fs(.)38 b(The)28 b(caller)j(is)e(resp)s(onsible)f
-(for)h(allo)s(cating)j(the)390 832 y(structure.)3350
-1030 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_restore_state)e
-Ff(\()p Fi(struct)30 b(readline)p 1859 1030 V 41 w(state)h(*sp)p
-Ff(\))390 1140 y Fs(Restore)23 b(Readline's)g(in)m(ternal)g(state)g(to)
-g(that)g(stored)f(in)g Fi(sp)p Fs(,)i(whic)m(h)d(m)m(ust)h(ha)m(v)m(e)i
-(b)s(een)d(sa)m(v)m(ed)i(b)m(y)g(a)390 1250 y(call)30
-b(to)g Fr(rl_save_state)p Fs(.)37 b(The)28 b(con)m(ten)m(ts)j(of)e(the)
-g Fi(readline)p 2470 1250 V 41 w(state)35 b Fs(structure)29
-b(are)g(do)s(cumen)m(ted)390 1359 y(in)h Fr(readline.h)p
-Fs(.)38 b(The)30 b(caller)i(is)e(resp)s(onsible)f(for)i(freeing)f(the)h
-(structure.)3350 1558 y([F)-8 b(unction])-3599 b Fg(void)54
-b(rl_free)47 b Ff(\()p Fi(v)m(oid)31 b(*mem)p Ff(\))390
-1668 y Fs(Deallo)s(cate)25 b(the)c(memory)g(p)s(oin)m(ted)g(to)h(b)m(y)
-f Fi(mem)p Fs(.)38 b Fi(mem)21 b Fs(m)m(ust)g(ha)m(v)m(e)i(b)s(een)d
-(allo)s(cated)j(b)m(y)e Fr(malloc)p Fs(.)3350 1866 y([F)-8
-b(unction])-3599 b Fg(void)54 b(rl_replace_line)c Ff(\()p
-Fi(const)31 b(c)m(har)g(*text,)h(in)m(t)e(clear)p 2305
-1866 V 42 w(undo)p Ff(\))390 1976 y Fs(Replace)41 b(the)e(con)m(ten)m
-(ts)i(of)f Fr(rl_line_buffer)35 b Fs(with)k Fi(text)p
-Fs(.)69 b(The)39 b(p)s(oin)m(t)h(and)e(mark)h(are)h(pre-)390
-2086 y(serv)m(ed,)27 b(if)e(p)s(ossible.)39 b(If)25 b
-Fi(clear)p 1422 2086 V 41 w(undo)k Fs(is)d(non-zero,)h(the)f(undo)e
-(list)i(asso)s(ciated)h(with)e(the)h(curren)m(t)390 2195
-y(line)31 b(is)f(cleared.)3350 2394 y([F)-8 b(unction])-3599
-b Fg(void)54 b(rl_extend_line_buffer)d Ff(\()p Fi(in)m(t)32
-b(len)p Ff(\))390 2503 y Fs(Ensure)d(that)h Fr(rl_line_buffer)d
-Fs(has)j(enough)f(space)i(to)g(hold)f Fi(len)g Fs(c)m(haracters,)i(p)s
-(ossibly)d(real-)390 2613 y(lo)s(cating)j(it)f(if)f(necessary)-8
-b(.)3350 2812 y([F)g(unction])-3599 b Fg(int)53 b(rl_initialize)d
-Ff(\()p Fi(v)m(oid)p Ff(\))390 2921 y Fs(Initialize)39
+b(bindings)f(are)i(p)s(erformed)e(in)h Fj(kmap)p Ft(.)3350
+4407 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_tty_unset_default_bin)q
+(din)q(gs)e Fg(\()p Ff(Keymap)34 b(kmap)p Fg(\))390 4517
+y Ft(Reset)f(the)f(bindings)e(manipulated)i(b)m(y)g Fs
+(rl_tty_set_default_bind)o(ing)o(s)26 b Ft(so)32 b(that)g(the)g(ter-)
+390 4626 y(minal)40 b(editing)g(c)m(haracters)h(are)f(b)s(ound)e(to)i
+Fs(rl_insert)p Ft(.)66 b(The)39 b(bindings)f(are)i(p)s(erformed)e(in)
+390 4736 y Fj(kmap)p Ft(.)3350 4902 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_tty_set_echoing)e Fg(\()p Ff(in)m(t)34
+b(v)-6 b(alue)p Fg(\))390 5011 y Ft(Set)48 b(Readline's)g(idea)g(of)g
+(whether)f(or)g(not)h(it)g(is)f(ec)m(hoing)i(output)e(to)i(its)e
+(output)h(stream)390 5121 y(\()p Fj(rl)p 492 5121 V 40
+w(outstream)p Ft(\).)j(If)32 b Fj(v)-5 b(alue)39 b Ft(is)34
+b(0,)g(Readline)g(do)s(es)f(not)h(displa)m(y)f(output)g(to)h
+Fj(rl)p 3115 5121 V 40 w(outstream)p Ft(;)i(an)m(y)390
+5230 y(other)43 b(v)-5 b(alue)43 b(enables)h(output.)77
+b(The)43 b(initial)h(v)-5 b(alue)43 b(is)g(set)g(when)f(Readline)i
+(initializes)h(the)390 5340 y(terminal)31 b(settings.)42
+b(This)29 b(function)h(returns)f(the)i(previous)f(v)-5
+b(alue.)p eop end
+%%Page: 40 44
+TeXDict begin 40 43 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(40)3350
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_reset_terminal)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*terminal)p 2232 299
+30 5 v 43 w(name)p Fg(\))390 408 y Ft(Reinitialize)26
+b(Readline's)f(idea)f(of)g(the)g(terminal)h(settings)f(using)g
+Fj(terminal)p 2977 408 28 4 v 40 w(name)29 b Ft(as)24
+b(the)g(termi-)390 518 y(nal)32 b(t)m(yp)s(e)g(\(e.g.,)i
+Fs(vt100)p Ft(\).)44 b(If)31 b Fj(terminal)p 1753 518
+V 41 w(name)37 b Ft(is)31 b Fs(NULL)p Ft(,)h(the)g(v)-5
+b(alue)32 b(of)g(the)g Fs(TERM)e Ft(en)m(vironmen)m(t)390
+628 y(v)-5 b(ariable)31 b(is)g(used.)150 822 y Fi(2.4.10)63
+b(Utilit)m(y)40 b(F)-10 b(unctions)3350 1013 y Ft([F)i(unction])-3599
+b Fh(int)53 b(rl_save_state)d Fg(\()p Ff(struct)34 b(readline)p
+1759 1013 30 5 v 44 w(state)f(*sp)p Fg(\))390 1123 y
+Ft(Sa)m(v)m(e)d(a)f(snapshot)e(of)i(Readline's)g(in)m(ternal)g(state)h
+(to)f Fj(sp)p Ft(.)40 b(The)28 b(con)m(ten)m(ts)i(of)e(the)h
+Fj(readline)p 3518 1123 28 4 v 40 w(state)390 1232 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 1342 y(structure.)3350 1518 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_restore_state)e Fg(\()p Ff(struct)34
+b(readline)p 1916 1518 30 5 v 44 w(state)f(*sp)p Fg(\))390
+1628 y Ft(Restore)23 b(Readline's)g(in)m(ternal)g(state)g(to)g(that)g
+(stored)f(in)g Fj(sp)p Ft(,)i(whic)m(h)d(m)m(ust)h(ha)m(v)m(e)i(b)s
+(een)d(sa)m(v)m(ed)i(b)m(y)g(a)390 1737 y(call)30 b(to)g
+Fs(rl_save_state)p Ft(.)37 b(The)28 b(con)m(ten)m(ts)j(of)e(the)g
+Fj(readline)p 2470 1737 28 4 v 41 w(state)35 b Ft(structure)29
+b(are)g(do)s(cumen)m(ted)390 1847 y(in)h Fs(readline.h)p
+Ft(.)38 b(The)30 b(caller)i(is)e(resp)s(onsible)f(for)i(freeing)f(the)h
+(structure.)3350 2023 y([F)-8 b(unction])-3599 b Fh(void)54
+b(rl_free)47 b Fg(\()p Ff(v)m(oid)33 b(*mem)p Fg(\))390
+2133 y Ft(Deallo)s(cate)25 b(the)c(memory)g(p)s(oin)m(ted)g(to)h(b)m(y)
+f Fj(mem)p Ft(.)38 b Fj(mem)21 b Ft(m)m(ust)g(ha)m(v)m(e)i(b)s(een)d
+(allo)s(cated)j(b)m(y)e Fs(malloc)p Ft(.)3350 2309 y([F)-8
+b(unction])-3599 b Fh(void)54 b(rl_replace_line)c Fg(\()p
+Ff(const)34 b(c)m(har)f(*text,)g(in)m(t)g(clear)p 2406
+2309 30 5 v 44 w(undo)p Fg(\))390 2419 y Ft(Replace)41
+b(the)e(con)m(ten)m(ts)i(of)f Fs(rl_line_buffer)35 b
+Ft(with)k Fj(text)p Ft(.)69 b(The)39 b(p)s(oin)m(t)h(and)e(mark)h(are)h
+(pre-)390 2528 y(serv)m(ed,)27 b(if)e(p)s(ossible.)39
+b(If)25 b Fj(clear)p 1422 2528 28 4 v 41 w(undo)k Ft(is)d(non-zero,)h
+(the)f(undo)e(list)i(asso)s(ciated)h(with)e(the)h(curren)m(t)390
+2638 y(line)31 b(is)f(cleared.)3350 2814 y([F)-8 b(unction])-3599
+b Fh(void)54 b(rl_extend_line_buffer)d Fg(\()p Ff(in)m(t)34
+b(len)p Fg(\))390 2924 y Ft(Ensure)29 b(that)h Fs(rl_line_buffer)d
+Ft(has)j(enough)f(space)i(to)g(hold)f Fj(len)g Ft(c)m(haracters,)i(p)s
+(ossibly)d(real-)390 3034 y(lo)s(cating)j(it)f(if)f(necessary)-8
+b(.)3350 3210 y([F)g(unction])-3599 b Fh(int)53 b(rl_initialize)d
+Fg(\()p Ff(v)m(oid)p Fg(\))390 3319 y Ft(Initialize)39
b(or)e(re-initialize)i(Readline's)f(in)m(ternal)f(state.)62
b(It's)37 b(not)g(strictly)h(necessary)f(to)h(call)390
-3031 y(this;)31 b Fr(readline\(\))c Fs(calls)32 b(it)f(b)s(efore)f
-(reading)g(an)m(y)h(input.)3350 3230 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_ding)48 b Ff(\()p Fi(v)m(oid)p Ff(\))390
-3339 y Fs(Ring)30 b(the)h(terminal)g(b)s(ell,)f(ob)s(eying)h(the)f
-(setting)i(of)e Fr(bell-style)p Fs(.)3350 3538 y([F)-8
-b(unction])-3599 b Fg(int)53 b(rl_alphabetic)d Ff(\()p
-Fi(in)m(t)31 b(c)p Ff(\))390 3648 y Fs(Return)f(1)g(if)h
-Fi(c)36 b Fs(is)30 b(an)h(alphab)s(etic)g(c)m(haracter.)3350
-3847 y([F)-8 b(unction])-3599 b Fg(void)54 b(rl_display_match_list)d
-Ff(\()p Fi(c)m(har)31 b(**matc)m(hes,)i(in)m(t)e(len,)g(in)m(t)g(max)p
-Ff(\))390 3956 y Fs(A)k(con)m(v)m(enience)h(function)e(for)g(displa)m
+3429 y(this;)31 b Fs(readline\(\))c Ft(calls)32 b(it)f(b)s(efore)f
+(reading)g(an)m(y)h(input.)3350 3605 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_ding)48 b Fg(\()p Ff(v)m(oid)p Fg(\))390
+3715 y Ft(Ring)30 b(the)h(terminal)g(b)s(ell,)f(ob)s(eying)h(the)f
+(setting)i(of)e Fs(bell-style)p Ft(.)3350 3891 y([F)-8
+b(unction])-3599 b Fh(int)53 b(rl_alphabetic)d Fg(\()p
+Ff(in)m(t)33 b(c)p Fg(\))390 4001 y Ft(Return)d(1)g(if)h
+Fj(c)36 b Ft(is)30 b(an)h(alphab)s(etic)g(c)m(haracter.)3350
+4177 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_display_match_list)d
+Fg(\()p Ff(c)m(har)35 b(**matc)m(hes,)e(in)m(t)g(len,)h(in)m(t)f(max)p
+Fg(\))390 4287 y Ft(A)i(con)m(v)m(enience)h(function)e(for)g(displa)m
(ying)h(a)g(list)g(of)g(strings)f(in)g(columnar)g(format)h(on)f(Read-)
-390 4066 y(line's)g(output)f(stream.)51 b Fr(matches)31
-b Fs(is)j(the)f(list)i(of)e(strings,)i(in)e(argv)h(format,)h(suc)m(h)e
-(as)h(a)g(list)g(of)390 4175 y(completion)26 b(matc)m(hes.)39
-b Fr(len)24 b Fs(is)g(the)g(n)m(um)m(b)s(er)f(of)i(strings)f(in)g
-Fr(matches)p Fs(,)f(and)h Fr(max)f Fs(is)i(the)f(length)h(of)390
-4285 y(the)h(longest)i(string)e(in)g Fr(matches)p Fs(.)37
-b(This)25 b(function)h(uses)g(the)g(setting)i(of)e Fr
-(print-completions-)390 4394 y(horizontally)33 b Fs(to)k(select)h(ho)m
+390 4396 y(line's)g(output)f(stream.)51 b Fs(matches)31
+b Ft(is)j(the)f(list)i(of)e(strings,)i(in)e(argv)h(format,)h(suc)m(h)e
+(as)h(a)g(list)g(of)390 4506 y(completion)26 b(matc)m(hes.)39
+b Fs(len)24 b Ft(is)g(the)g(n)m(um)m(b)s(er)f(of)i(strings)f(in)g
+Fs(matches)p Ft(,)f(and)h Fs(max)f Ft(is)i(the)f(length)h(of)390
+4616 y(the)h(longest)i(string)e(in)g Fs(matches)p Ft(.)37
+b(This)25 b(function)h(uses)g(the)g(setting)i(of)e Fs
+(print-completions-)390 4725 y(horizontally)33 b Ft(to)k(select)h(ho)m
(w)e(the)g(matc)m(hes)i(are)e(displa)m(y)m(ed)h(\(see)g(Section)g
-(1.3.1)h([Readline)390 4504 y(Init)30 b(File)h(Syn)m(tax],)g(page)g
+(1.3.1)h([Readline)390 4835 y(Init)30 b(File)h(Syn)m(tax],)g(page)g
(4\).)42 b(When)29 b(displa)m(ying)i(completions,)h(this)e(function)g
-(sets)g(the)g(n)m(um-)390 4614 y(b)s(er)23 b(of)g(columns)g(used)g(for)
-h(displa)m(y)f(to)i(the)e(v)-5 b(alue)24 b(of)g Fr
-(completion-display-width)p Fs(,)19 b(the)k(v)-5 b(alue)390
-4723 y(of)31 b(the)f(en)m(vironmen)m(t)h(v)-5 b(ariable)31
-b Fr(COLUMNS)p Fs(,)e(or)h(the)h(screen)f(width,)g(in)g(that)h(order.)
-275 4922 y(The)g(follo)m(wing)j(are)e(implemen)m(ted)h(as)f(macros,)h
-(de\014ned)e(in)h Fr(chardefs.h)p Fs(.)43 b(Applications)33
-b(should)150 5032 y(refrain)d(from)g(using)g(them.)3350
-5230 y([F)-8 b(unction])-3599 b Fg(int)53 b(_rl_uppercase_p)d
-Ff(\()p Fi(in)m(t)31 b(c)p Ff(\))390 5340 y Fs(Return)f(1)g(if)h
-Fi(c)36 b Fs(is)30 b(an)h(upp)s(ercase)e(alphab)s(etic)i(c)m(haracter.)
-p eop end
-%%Page: 39 43
-TeXDict begin 39 42 bop 150 -116 a Fs(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 Fg(int)53 b(_rl_lowercase_p)d
-Ff(\()p Fi(in)m(t)31 b(c)p Ff(\))390 408 y Fs(Return)f(1)g(if)h
-Fi(c)36 b Fs(is)30 b(a)h(lo)m(w)m(ercase)i(alphab)s(etic)e(c)m
-(haracter.)3350 569 y([F)-8 b(unction])-3599 b Fg(int)53
-b(_rl_digit_p)c Ff(\()p Fi(in)m(t)31 b(c)p Ff(\))390
-679 y Fs(Return)f(1)g(if)h Fi(c)36 b Fs(is)30 b(a)h(n)m(umeric)f(c)m
-(haracter.)3350 840 y([F)-8 b(unction])-3599 b Fg(int)53
-b(_rl_to_upper)c Ff(\()p Fi(in)m(t)32 b(c)p Ff(\))390
-949 y Fs(If)23 b Fi(c)30 b Fs(is)24 b(a)g(lo)m(w)m(ercase)i(alphab)s
+(sets)g(the)g(n)m(um-)390 4944 y(b)s(er)23 b(of)g(columns)g(used)g(for)
+h(displa)m(y)f(to)i(the)e(v)-5 b(alue)24 b(of)g Fs
+(completion-display-width)p Ft(,)19 b(the)k(v)-5 b(alue)390
+5054 y(of)31 b(the)f(en)m(vironmen)m(t)h(v)-5 b(ariable)31
+b Fs(COLUMNS)p Ft(,)e(or)h(the)h(screen)f(width,)g(in)g(that)h(order.)
+275 5230 y(The)g(follo)m(wing)j(are)e(implemen)m(ted)h(as)f(macros,)h
+(de\014ned)e(in)h Fs(chardefs.h)p Ft(.)43 b(Applications)33
+b(should)150 5340 y(refrain)d(from)g(using)g(them.)p
+eop end
+%%Page: 41 45
+TeXDict begin 41 44 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(41)3350
+299 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_uppercase_p)d
+Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 408 y Ft(Return)c(1)g(if)h
+Fj(c)36 b Ft(is)30 b(an)h(upp)s(ercase)e(alphab)s(etic)i(c)m(haracter.)
+3350 608 y([F)-8 b(unction])-3599 b Fh(int)53 b(_rl_lowercase_p)d
+Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390 718 y Ft(Return)c(1)g(if)h
+Fj(c)36 b Ft(is)30 b(a)h(lo)m(w)m(ercase)i(alphab)s(etic)e(c)m
+(haracter.)3350 918 y([F)-8 b(unction])-3599 b Fh(int)53
+b(_rl_digit_p)c Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390
+1028 y Ft(Return)c(1)g(if)h Fj(c)36 b Ft(is)30 b(a)h(n)m(umeric)f(c)m
+(haracter.)3350 1227 y([F)-8 b(unction])-3599 b Fh(int)53
+b(_rl_to_upper)c Fg(\()p Ff(in)m(t)34 b(c)p Fg(\))390
+1337 y Ft(If)23 b Fj(c)30 b Ft(is)24 b(a)g(lo)m(w)m(ercase)i(alphab)s
(etic)e(c)m(haracter,)j(return)c(the)h(corresp)s(onding)e(upp)s(ercase)
-h(c)m(haracter.)3350 1110 y([F)-8 b(unction])-3599 b
-Fg(int)53 b(_rl_to_lower)c Ff(\()p Fi(in)m(t)32 b(c)p
-Ff(\))390 1220 y Fs(If)c Fi(c)35 b Fs(is)29 b(an)g(upp)s(ercase)f
+h(c)m(haracter.)3350 1537 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 1647 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 1329 y(ter.)3350 1490 y([F)-8
-b(unction])-3599 b Fg(int)53 b(_rl_digit_value)d Ff(\()p
-Fi(in)m(t)31 b(c)p Ff(\))390 1600 y Fs(If)f Fi(c)36 b
-Fs(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 1783 y Fh(2.4.11)63
-b(Miscellaneous)42 b(F)-10 b(unctions)3350 1964 y Fs([F)i(unction])
--3599 b Fg(int)53 b(rl_macro_bind)d Ff(\()p Fi(const)31
-b(c)m(har)g(*k)m(eyseq,)h(const)f(c)m(har)f(*macro,)i(Keymap)565
-2074 y(map)p Ff(\))390 2183 y Fs(Bind)23 b(the)g(k)m(ey)h(sequence)g
-Fi(k)m(eyseq)i Fs(to)e(in)m(v)m(ok)m(e)h(the)f(macro)f
-Fi(macro)p Fs(.)39 b(The)23 b(binding)f(is)i(p)s(erformed)d(in)390
-2293 y Fi(map)p Fs(.)39 b(When)28 b Fi(k)m(eyseq)i Fs(is)e(in)m(v)m(ok)
-m(ed,)i(the)d Fi(macro)33 b Fs(will)28 b(b)s(e)f(inserted)g(in)m(to)i
-(the)e(line.)41 b(This)26 b(function)390 2403 y(is)k(deprecated;)i(use)
-e Fr(rl_generic_bind\(\))25 b Fs(instead.)3350 2563 y([F)-8
-b(unction])-3599 b Fg(void)54 b(rl_macro_dumper)c Ff(\()p
-Fi(in)m(t)31 b(readable)p Ff(\))390 2673 y Fs(Prin)m(t)c(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
-2783 y(to)32 b Fr(rl_outstream)p Fs(.)40 b(If)31 b Fi(readable)36
-b Fs(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 2892 y(can)g(b)s(e)e(made)i(part)f(of)h(an)f
-Fr(inputrc)e Fs(\014le)j(and)e(re-read.)3350 3053 y([F)-8
-b(unction])-3599 b Fg(int)53 b(rl_variable_bind)e Ff(\()p
-Fi(const)31 b(c)m(har)g(*v)-5 b(ariable,)31 b(const)g(c)m(har)g(*v)-5
-b(alue)p Ff(\))390 3163 y Fs(Mak)m(e)31 b(the)e(Readline)g(v)-5
-b(ariable)30 b Fi(v)-5 b(ariable)35 b Fs(ha)m(v)m(e)30
-b Fi(v)-5 b(alue)p Fs(.)41 b(This)28 b(b)s(eha)m(v)m(es)h(as)h(if)f
-(the)g(readline)g(com-)390 3272 y(mand)h(`)p Fr(set)g
-Fk(variable)e(value)p Fs(')h(had)h(b)s(een)h(executed)g(in)g(an)f
-Fr(inputrc)f Fs(\014le)i(\(see)h(Section)f(1.3.1)390
-3382 y([Readline)g(Init)f(File)i(Syn)m(tax],)f(page)g(4\).)3350
-3543 y([F)-8 b(unction])-3599 b Fg(char)54 b(*)e(rl_variable_value)f
-Ff(\()p Fi(const)31 b(c)m(har)g(*v)-5 b(ariable)p Ff(\))390
-3652 y Fs(Return)28 b(a)i(string)f(represen)m(ting)h(the)f(v)-5
+(w)m(ercase)j(c)m(harac-)390 1756 y(ter.)3350 1956 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 2066 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 2273 y Fi(2.4.11)63
+b(Miscellaneous)42 b(F)-10 b(unctions)3350 2477 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
+2587 y(Keymap)g(map)p Fg(\))390 2696 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
+2806 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 2916 y(is)k(deprecated;)i(use)
+e Fs(rl_generic_bind\(\))25 b Ft(instead.)3350 3116 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 3225 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
+3335 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 3444 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 3644 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 3754 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 3863 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
+3973 y([Readline)g(Init)f(File)i(Syn)m(tax],)f(page)g(4\).)3350
+4173 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
+4283 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
-Fi(v)-5 b(ariable)p Fs(.)41 b(F)-8 b(or)30 b(b)s(o)s(olean)390
-3762 y(v)-5 b(ariables,)31 b(this)g(string)f(is)g(either)h(`)p
-Fr(on)p Fs(')f(or)h(`)p Fr(off)p Fs('.)3350 3922 y([F)-8
-b(unction])-3599 b Fg(void)54 b(rl_variable_dumper)c
-Ff(\()p Fi(in)m(t)32 b(readable)p Ff(\))390 4032 y Fs(Prin)m(t)d(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 Fr(rl_outstream)p Fs(.)37 b(If)28 b
-Fi(read-)390 4142 y(able)40 b Fs(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 4251 y Fr(inputrc)28 b Fs(\014le)j(and)f
-(re-read.)3350 4412 y([F)-8 b(unction])-3599 b Fg(int)53
-b(rl_set_paren_blink_ti)q(meou)q(t)f Ff(\()p Fi(in)m(t)31
-b(u)p Ff(\))390 4522 y Fs(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 4631 y(c)m(haracter)32
-b(when)d Fr(blink-matching-paren)c Fs(has)30 b(b)s(een)g(enabled.)3350
-4792 y([F)-8 b(unction])-3599 b Fg(char)54 b(*)e(rl_get_termcap)e
-Ff(\()p Fi(const)31 b(c)m(har)g(*cap)p Ff(\))390 4902
-y Fs(Retriev)m(e)e(the)e(string)g(v)-5 b(alue)27 b(of)g(the)h(termcap)f
-(capabilit)m(y)i Fi(cap)p Fs(.)40 b(Readline)27 b(fetc)m(hes)h(the)g
-(termcap)390 5011 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 5121 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 5230 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 5340 y(only)30 b(those)h(capabilities)i
-(Readline)e(uses.)p eop end
-%%Page: 40 44
-TeXDict begin 40 43 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(40)3350
-299 y([F)-8 b(unction])-3599 b Fg(void)54 b(rl_clear_history)c
-Ff(\()p Fi(v)m(oid)p Ff(\))390 408 y Fs(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 518 y(library's)42
-b Fr(clear_history\(\))d Fs(function.)78 b(This)42 b(di\013ers)g(from)g
-Fr(clear_history)e Fs(b)s(ecause)i(it)390 628 y(frees)30
+Fj(v)-5 b(ariable)p Ft(.)41 b(F)-8 b(or)30 b(b)s(o)s(olean)390
+4392 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 4592 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 4702 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 4811 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 4921 y Fs(inputrc)28
+b Ft(\014le)j(and)f(re-read.)3350 5121 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 5230 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 5340 y(c)m(haracter)32
+b(when)d Fs(blink-matching-paren)c Ft(has)30 b(b)s(een)g(enabled.)p
+eop end
+%%Page: 42 46
+TeXDict begin 42 45 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(42)3350
+299 y([F)-8 b(unction])-3599 b Fh(char)54 b(*)e(rl_get_termcap)e
+Fg(\()p Ff(const)34 b(c)m(har)g(*cap)p Fg(\))390 408
+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 518 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 628 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 737 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 847 y(only)30
+b(those)h(capabilities)i(Readline)e(uses.)3350 1017 y([F)-8
+b(unction])-3599 b Fh(void)54 b(rl_clear_history)c Fg(\()p
+Ff(v)m(oid)p Fg(\))390 1127 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 1236 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 1346 y(frees)30
b(priv)-5 b(ate)31 b(data)g(Readline)g(sa)m(v)m(es)h(in)e(the)h
-(history)f(list.)150 832 y Fh(2.4.12)63 b(Alternate)40
-b(In)m(terface)150 979 y Fs(An)21 b(alternate)j(in)m(terface)f(is)f(a)m
-(v)-5 b(ailable)24 b(to)e(plain)g Fr(readline\(\))p Fs(.)35
-b(Some)21 b(applications)i(need)f(to)g(in)m(terlea)m(v)m(e)150
-1088 y(k)m(eyb)s(oard)35 b(I/O)h(with)f(\014le,)i(device,)h(or)e(windo)
+(history)f(list.)150 1536 y Fi(2.4.12)63 b(Alternate)40
+b(In)m(terface)150 1683 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
+1792 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 1198 y Fr(select\(\))42 b Fs(on)i(v)-5 b(arious)45
+(op)f(to)150 1902 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 1308 y(in)m(v)m(ok)m(ed)33
+(need,)k(readline)d(can)f(also)i(b)s(e)150 2011 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 1417 y(this)e(easy)-8 b(.)3350 1611
-y([F)g(unction])-3599 b Fg(void)54 b(rl_callback_handler_inst)q(all)e
-Ff(\()p Fi(const)31 b(c)m(har)g(*prompt,)565 1721 y(rl)p
-632 1721 28 4 v 40 w(v)m(cpfunc)p 978 1721 V 40 w(t)f(*lhandler)p
-Ff(\))390 1831 y Fs(Set)25 b(up)f(the)h(terminal)g(for)f(readline)i
+b(to)f(mak)m(e)150 2121 y(this)e(easy)-8 b(.)3350 2291
+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 2401 y(rl)p
+639 2401 30 5 v 44 w(v)m(cpfunc)p 1016 2401 V 45 w(t)f(*lhandler)p
+Fg(\))390 2510 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 Fi(prompt)p Fs(.)390 1940 y(Sa)m(v)m(e)34
-b(the)f(v)-5 b(alue)33 b(of)g Fi(lhandler)39 b Fs(to)34
+b(alue)26 b(of)f Fj(prompt)p Ft(.)390 2620 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 2050 y(of)h(input)f(has)g(b)s(een)g(en)m(tered.)57
+(line)390 2730 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 2159 y(argumen)m(t.)3350 2354 y([F)-8
-b(unction])-3599 b Fg(void)54 b(rl_callback_read_char)d
-Ff(\()p Fi(v)m(oid)p Ff(\))390 2463 y Fs(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 2573
-y Fr(rl_callback_read_char\(\))p Fs(,)17 b(whic)m(h)22
+(line)g(as)g(an)390 2839 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 2949 y(\014nished)g(with)h
+(it.)3350 3119 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
+3228 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 3338 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 2682 y(source.)40 b(If)27 b(that)i(c)m(haracter)g(completes)
-h(the)e(line,)h Fr(rl_callback_read_char)22 b Fs(will)28
-b(in)m(v)m(ok)m(e)i(the)390 2792 y Fi(lhandler)47 b Fs(function)40
-b(installed)i(b)m(y)e Fr(rl_callback_handler_insta)o(ll)35
-b Fs(to)41 b(pro)s(cess)f(the)h(line.)390 2902 y(Before)j(calling)h
-(the)e Fi(lhandler)49 b Fs(function,)e(the)c(terminal)h(settings)g(are)
-g(reset)f(to)h(the)g(v)-5 b(alues)390 3011 y(they)44
-b(had)e(b)s(efore)h(calling)i Fr(rl_callback_handler_insta)o(ll)p
-Fs(.)73 b(If)43 b(the)h Fi(lhandler)49 b Fs(function)390
-3121 y(returns,)27 b(and)h(the)g(line)g(handler)f(remains)h(installed,)
+(input)390 3448 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 3557 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 3667 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 3776 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
+3886 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
-3230 y(Readline's)k(use)f(again.)42 b Fr(EOF)29 b Fs(is)i(indicated)g
-(b)m(y)f(calling)i Fi(lhandler)k Fs(with)30 b(a)h Fr(NULL)e
-Fs(line.)3350 3425 y([F)-8 b(unction])-3599 b Fg(void)54
-b(rl_callback_handler_remo)q(ve)e Ff(\()p Fi(v)m(oid)p
-Ff(\))390 3534 y Fs(Restore)38 b(the)f(terminal)h(to)g(its)f(initial)i
-(state)f(and)f(remo)m(v)m(e)h(the)g(line)f(handler.)60
-b(This)37 b(ma)m(y)h(b)s(e)390 3644 y(called)f(from)f(within)g(a)h
-(callbac)m(k)h(as)f(w)m(ell)g(as)f(indep)s(enden)m(tly)-8
-b(.)58 b(If)36 b(the)h Fi(lhandler)42 b Fs(installed)37
-b(b)m(y)390 3753 y Fr(rl_callback_handler_inst)o(all)32
-b Fs(do)s(es)39 b(not)g(exit)g(the)g(program,)i(either)e(this)g
-(function)f(or)390 3863 y(the)32 b(function)f(referred)f(to)i(b)m(y)g
-(the)f(v)-5 b(alue)32 b(of)g Fr(rl_deprep_term_function)25
-b Fs(should)30 b(b)s(e)h(called)390 3973 y(b)s(efore)f(the)h(program)f
-(exits)h(to)g(reset)g(the)f(terminal)h(settings.)150
-4177 y Fh(2.4.13)63 b(A)41 b(Readline)f(Example)150 4324
-y Fs(Here)34 b(is)g(a)g(function)g(whic)m(h)g(c)m(hanges)g(lo)m(w)m
+3996 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 4166 y([F)-8 b(unction])-3599 b Fh(void)54
+b(rl_callback_sigcleanup)e Fg(\()p Ff(v)m(oid)p Fg(\))390
+4275 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 4385 y(to)35 b(rl)p 572 4385 28 4 v
+40 w(callbac)m(k)p 928 4385 V 42 w(read)p 1142 4385 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
+4495 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
+4604 y(Readline's)f(in)m(ternal)g(signal)g(handler)f(calls)h(this)g
+(when)e(appropriate.)3350 4774 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 4884 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 4994 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
+5103 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 5213 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 5322 y(b)s(efore)f(the)h(program)f
+(exits)h(to)g(reset)g(the)f(terminal)h(settings.)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.13)63 b(A)41 b(Readline)f(Example)150 446
+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 4433 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 Fr(M-c)p Fs(',)h(then)e(t)m(yping)g(`)p Fr(M-c)p
-Fs(')150 4543 y(w)m(ould)c(c)m(hange)i(the)f(case)g(of)g(the)g(c)m
+b(alen)m(ts,)37 b(and)150 555 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 665 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
-Fr(M-1)f(0)g(M-c)p Fs(')h(w)m(ould)g(c)m(hange)i(the)150
-4653 y(case)e(of)g(the)g(follo)m(wing)g(10)h(c)m(haracters,)g(lea)m
+Fs(M-1)f(0)g(M-c)p Ft(')h(w)m(ould)g(c)m(hange)i(the)150
+775 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
-4792 y Fr(/*)47 b(Invert)f(the)h(case)g(of)g(the)g(COUNT)f(following)g
-(characters.)e(*/)390 4902 y(int)390 5011 y(invert_case_line)f
-(\(count,)j(key\))629 5121 y(int)h(count,)f(key;)390
-5230 y({)485 5340 y(register)g(int)h(start,)f(end,)h(i;)p
-eop end
-%%Page: 41 45
-TeXDict begin 41 44 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(41)485
-408 y Fr(start)47 b(=)g(rl_point;)485 628 y(if)h(\(rl_point)d(>=)i
-(rl_end\))581 737 y(return)f(\(0\);)485 956 y(if)i(\(count)e(<)h(0\))
-581 1066 y({)676 1176 y(direction)f(=)h(-1;)676 1285
-y(count)g(=)g(-count;)581 1395 y(})485 1504 y(else)581
-1614 y(direction)e(=)j(1;)485 1833 y(/*)g(Find)e(the)h(end)g(of)g(the)g
-(range)g(to)g(modify.)f(*/)485 1943 y(end)h(=)h(start)e(+)i(\(count)e
-(*)h(direction\);)485 2162 y(/*)h(Force)e(it)h(to)g(be)h(within)e
-(range.)g(*/)485 2271 y(if)i(\(end)e(>)i(rl_end\))581
-2381 y(end)f(=)g(rl_end;)485 2491 y(else)g(if)g(\(end)g(<)g(0\))581
-2600 y(end)g(=)g(0;)485 2819 y(if)h(\(start)e(==)h(end\))581
-2929 y(return)f(\(0\);)485 3148 y(if)i(\(start)e(>)h(end\))581
-3258 y({)676 3367 y(int)g(temp)g(=)g(start;)676 3477
-y(start)g(=)g(end;)676 3587 y(end)g(=)h(temp;)581 3696
-y(})485 3915 y(/*)g(Tell)e(readline)g(that)g(we)i(are)f(modifying)e
-(the)i(line,)629 4025 y(so)g(it)g(will)g(save)f(the)h(undo)g
-(information.)d(*/)485 4134 y(rl_modifying)h(\(start,)h(end\);)485
-4354 y(for)h(\(i)h(=)f(start;)f(i)i(!=)f(end;)f(i++\))581
-4463 y({)676 4573 y(if)i(\(_rl_uppercase_p)43 b
-(\(rl_line_buffer[i]\)\))772 4682 y(rl_line_buffer[i])g(=)k
-(_rl_to_lower)e(\(rl_line_buffer[i]\);)676 4792 y(else)i(if)g
-(\(_rl_lowercase_p)d(\(rl_line_buffer[i]\)\))772 4902
-y(rl_line_buffer[i])f(=)k(_rl_to_upper)e(\(rl_line_buffer[i]\);)581
-5011 y(})485 5121 y(/*)j(Move)e(point)h(to)g(on)g(top)g(of)g(the)g
-(last)g(character)e(changed.)g(*/)485 5230 y(rl_point)h(=)h
-(\(direction)e(==)j(1\))f(?)g(end)g(-)h(1)f(:)h(start;)485
-5340 y(return)f(\(0\);)p eop end
-%%Page: 42 46
-TeXDict begin 42 45 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(42)390
-299 y Fr(})150 532 y Fh(2.4.14)63 b(Alternate)40 b(In)m(terface)g
-(Example)150 679 y Fs(Here)f(is)g(a)g(complete)h(program)e(that)h
+956 y Fs(/*)47 b(Invert)f(the)h(case)g(of)g(the)g(COUNT)f(following)g
+(characters.)e(*/)390 1066 y(int)390 1176 y(invert_case_line)f
+(\(count,)j(key\))629 1285 y(int)h(count,)f(key;)390
+1395 y({)485 1504 y(register)g(int)h(start,)f(end,)h(i;)485
+1724 y(start)g(=)g(rl_point;)485 1943 y(if)h(\(rl_point)d(>=)i
+(rl_end\))581 2052 y(return)f(\(0\);)485 2271 y(if)i(\(count)e(<)h(0\))
+581 2381 y({)676 2491 y(direction)f(=)h(-1;)676 2600
+y(count)g(=)g(-count;)581 2710 y(})485 2819 y(else)581
+2929 y(direction)e(=)j(1;)485 3148 y(/*)g(Find)e(the)h(end)g(of)g(the)g
+(range)g(to)g(modify.)f(*/)485 3258 y(end)h(=)h(start)e(+)i(\(count)e
+(*)h(direction\);)485 3477 y(/*)h(Force)e(it)h(to)g(be)h(within)e
+(range.)g(*/)485 3587 y(if)i(\(end)e(>)i(rl_end\))581
+3696 y(end)f(=)g(rl_end;)485 3806 y(else)g(if)g(\(end)g(<)g(0\))581
+3915 y(end)g(=)g(0;)485 4134 y(if)h(\(start)e(==)h(end\))581
+4244 y(return)f(\(0\);)485 4463 y(if)i(\(start)e(>)h(end\))581
+4573 y({)676 4682 y(int)g(temp)g(=)g(start;)676 4792
+y(start)g(=)g(end;)676 4902 y(end)g(=)h(temp;)581 5011
+y(})485 5230 y(/*)g(Tell)e(readline)g(that)g(we)i(are)f(modifying)e
+(the)i(line,)629 5340 y(so)g(it)g(will)g(save)f(the)h(undo)g
+(information.)d(*/)p eop end
+%%Page: 44 48
+TeXDict begin 44 47 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(44)485
+299 y Fs(rl_modifying)45 b(\(start,)h(end\);)485 518
+y(for)h(\(i)h(=)f(start;)f(i)i(!=)f(end;)f(i++\))581
+628 y({)676 737 y(if)i(\(_rl_uppercase_p)43 b(\(rl_line_buffer[i]\)\))
+772 847 y(rl_line_buffer[i])g(=)k(_rl_to_lower)e
+(\(rl_line_buffer[i]\);)676 956 y(else)i(if)g(\(_rl_lowercase_p)d
+(\(rl_line_buffer[i]\)\))772 1066 y(rl_line_buffer[i])f(=)k
+(_rl_to_upper)e(\(rl_line_buffer[i]\);)581 1176 y(})485
+1285 y(/*)j(Move)e(point)h(to)g(on)g(top)g(of)g(the)g(last)g(character)
+e(changed.)g(*/)485 1395 y(rl_point)h(=)h(\(direction)e(==)j(1\))f(?)g
+(end)g(-)h(1)f(:)h(start;)485 1504 y(return)f(\(0\);)390
+1614 y(})150 1847 y Fi(2.4.14)63 b(Alternate)40 b(In)m(terface)g
+(Example)150 1994 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 788 y(from)30 b(the)i(terminal)f(and)f
+b(It)38 b(reads)h(lines)150 2103 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 898 y(functions.)40 b(It)31
-b(understands)d(the)j(EOF)f(c)m(haracter)i(or)e Fr(")p
-Fs(exit)p Fr(")h Fs(to)g(exit)g(the)g(program.)390 1066
-y Fr(/*)47 b(Standard)f(include)g(files.)g(stdio.h)f(is)j(required.)d
-(*/)390 1176 y(#include)h(<stdlib.h>)390 1285 y(#include)g(<unistd.h>)
-390 1504 y(/*)h(Used)g(for)g(select\(2\))e(*/)390 1614
-y(#include)h(<sys/types.h>)390 1724 y(#include)g(<sys/select.h>)390
-1943 y(#include)g(<stdio.h>)390 2162 y(/*)h(Standard)f(readline)f
-(include)h(files.)g(*/)390 2271 y(#include)g(<readline/readline.h>)390
-2381 y(#include)g(<readline/history.h>)390 2600 y(static)g(void)h
-(cb_linehandler)d(\(char)i(*\);)390 2819 y(int)h(running;)390
-2929 y(const)f(char)h(*prompt)f(=)h("rltest$)f(";)390
-3148 y(/*)h(Callback)f(function)f(called)h(for)h(each)g(line)g(when)f
-(accept-line)f(executed,)g(EOF)533 3258 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 3367 y(also)g(call)f(exit\(3\).)g(*/)390 3477 y(static)g(void)390
-3587 y(cb_linehandler)e(\(char)i(*line\))390 3696 y({)485
-3806 y(/*)i(Can)f(use)f(^D)i(\(stty)e(eof\))h(or)g(`exit')f(to)h(exit.)
-f(*/)485 3915 y(if)i(\(line)e(==)h(NULL)g(||)g(strcmp)f(\(line,)g
-("exit"\))g(==)h(0\))581 4025 y({)676 4134 y(if)h(\(line)e(==)h(0\))772
-4244 y(printf)f(\("\\n"\);)676 4354 y(printf)g(\("exit\\n"\);)676
-4463 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 4483 42 84 v 820 4573
+(T)-8 b(AB)32 b(completion)150 2213 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 2381
+y Fs(/*)47 b(Standard)f(include)g(files.)g(stdio.h)f(is)j(required.)d
+(*/)390 2491 y(#include)h(<stdlib.h>)390 2600 y(#include)g(<string.h>)
+390 2710 y(#include)g(<unistd.h>)390 2819 y(#include)g(<locale.h>)390
+3039 y(/*)h(Used)g(for)g(select\(2\))e(*/)390 3148 y(#include)h
+(<sys/types.h>)390 3258 y(#include)g(<sys/select.h>)390
+3477 y(#include)g(<signal.h>)390 3696 y(#include)g(<stdio.h>)390
+3915 y(/*)h(Standard)f(readline)f(include)h(files.)g(*/)390
+4025 y(#include)g(<readline/readline.h>)390 4134 y(#include)g
+(<readline/history.h>)390 4354 y(static)g(void)h(cb_linehandler)d
+(\(char)i(*\);)390 4463 y(static)g(void)h(sighandler)e(\(int\);)390
+4682 y(int)i(running;)390 4792 y(int)g(sigwinch_received;)390
+4902 y(const)f(char)h(*prompt)f(=)h("rltest$)f(";)390
+5121 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 5141 42 84
+v 533 5230 a(reading)g(a)h(character.)e(*/)390 5340 y(static)h(void)p
+eop end
+%%Page: 45 49
+TeXDict begin 45 48 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(45)390
+299 y Fs(sighandler)45 b(\(int)i(sig\))390 408 y({)485
+518 y(sigwinch_received)d(=)j(1;)390 628 y(})390 847
+y(/*)g(Callback)f(function)f(called)h(for)h(each)g(line)g(when)f
+(accept-line)f(executed,)g(EOF)533 956 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
+1066 y(also)g(call)f(exit\(3\).)g(*/)390 1176 y(static)g(void)390
+1285 y(cb_linehandler)e(\(char)i(*line\))390 1395 y({)485
+1504 y(/*)i(Can)f(use)f(^D)i(\(stty)e(eof\))h(or)g(`exit')f(to)h(exit.)
+f(*/)485 1614 y(if)i(\(line)e(==)h(NULL)g(||)g(strcmp)f(\(line,)g
+("exit"\))g(==)h(0\))581 1724 y({)676 1833 y(if)h(\(line)e(==)h(0\))772
+1943 y(printf)f(\("\\n"\);)676 2052 y(printf)g(\("exit\\n"\);)676
+2162 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 2182 42 84 v 820 2271
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 4593 42 76 v 820 4682 a(being)g
-(displayed.)f(*/)676 4792 y(rl_callback_handler_remove)c(\(\);)676
-5011 y(running)46 b(=)i(0;)581 5121 y(})485 5230 y(else)581
-5340 y({)p eop end
-%%Page: 43 47
-TeXDict begin 43 46 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(43)676
-299 y Fr(if)48 b(\(*line\))772 408 y(add_history)d(\(line\);)676
-518 y(printf)h(\("input)g(line:)h(\045s\\n",)f(line\);)676
-628 y(free)h(\(line\);)581 737 y(})390 847 y(})390 1066
-y(int)390 1176 y(main)g(\(int)f(c,)h(char)g(**v\))390
-1285 y({)485 1395 y(fd_set)g(fds;)485 1504 y(int)g(r;)485
-1724 y(/*)h(Install)d(the)i(line)g(handler.)f(*/)485
-1833 y(rl_callback_handler_instal)o(l)c(\(prompt,)j(cb_linehandler\);)
-485 2052 y(/*)j(Enter)e(a)h(simple)g(event)f(loop.)94
+(extra)f(prompt)g(from)p 3874 2292 42 76 v 820 2381 a(being)g
+(displayed.)f(*/)676 2491 y(rl_callback_handler_remove)c(\(\);)676
+2710 y(running)46 b(=)i(0;)581 2819 y(})485 2929 y(else)581
+3039 y({)676 3148 y(if)g(\(*line\))772 3258 y(add_history)d(\(line\);)
+676 3367 y(printf)h(\("input)g(line:)h(\045s\\n",)f(line\);)676
+3477 y(free)h(\(line\);)581 3587 y(})390 3696 y(})390
+3915 y(int)390 4025 y(main)g(\(int)f(c,)h(char)g(**v\))390
+4134 y({)485 4244 y(fd_set)g(fds;)485 4354 y(int)g(r;)485
+4573 y(/*)h(Set)f(the)f(default)g(locale)g(values)g(according)g(to)h
+(environment)e(variables.)g(*/)p 3874 4593 42 84 v 485
+4682 a(setlocale)h(\(LC_ALL,)f(""\);)485 4902 y(/*)j(Handle)e(window)g
+(size)g(changes)g(when)h(readline)e(is)j(not)f(active)f(and)h(reading)
+629 5011 y(characters.)d(*/)485 5121 y(signal)j(\(SIGWINCH,)e
+(sighandler\);)485 5340 y(/*)j(Install)d(the)i(line)g(handler.)f(*/)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)485
+299 y Fs(rl_callback_handler_instal)o(l)42 b(\(prompt,)j
+(cb_linehandler\);)485 518 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
-2162 y(to)g(read)f(on)i(readline's)d(input)h(stream)g(\(defaults)f(to)j
-(standard)d(input\))h(and)629 2271 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
-2381 y(have)g(to)h(modify)g(the)f(user's)h(terminal)e(settings.)g(*/)
-485 2491 y(running)h(=)i(1;)485 2600 y(while)f(\(running\))581
-2710 y({)676 2819 y(FD_ZERO)f(\(&fds\);)676 2929 y(FD_SET)g(\(fileno)g
-(\(rl_instream\),)e(&fds\);)676 3148 y(r)k(=)f(select)f(\(FD_SETSIZE,)f
-(&fds,)h(NULL,)h(NULL,)f(NULL\);)676 3258 y(if)i(\(r)f(<)g(0\))772
-3367 y({)867 3477 y(perror)f(\("rltest:)g(select"\);)867
-3587 y(rl_callback_handler_remov)o(e)c(\(\);)867 3696
-y(break;)772 3806 y(})676 4025 y(if)48 b(\(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 4573 y(return)g(0;)390 4682 y(})150
-4961 y Fq(2.5)68 b(Readline)47 b(Signal)e(Handling)150
-5121 y Fs(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 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 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)p eop
-end
-%%Page: 44 48
-TeXDict begin 44 47 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(44)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
+628 y(to)g(read)f(on)i(readline's)d(input)h(stream)g(\(defaults)f(to)j
+(standard)d(input\))h(and)629 737 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
+847 y(have)g(to)h(modify)g(the)f(user's)h(terminal)e(settings.)g(*/)485
+956 y(running)h(=)i(1;)485 1066 y(while)f(\(running\))581
+1176 y({)676 1285 y(FD_ZERO)f(\(&fds\);)676 1395 y(FD_SET)g(\(fileno)g
+(\(rl_instream\),)e(&fds\);)676 1614 y(r)k(=)f(select)f(\(FD_SETSIZE,)f
+(&fds,)h(NULL,)h(NULL,)f(NULL\);)676 1724 y(if)i(\(r)f(<)g(0)h(&&)f
+(errno)f(!=)h(EINTR\))772 1833 y({)867 1943 y(perror)f(\("rltest:)g
+(select"\);)867 2052 y(rl_callback_handler_remov)o(e)c(\(\);)867
+2162 y(break;)772 2271 y(})676 2381 y(if)48 b(\(sigwinch_received\))390
+2491 y({)485 2600 y(rl_resize_terminal)43 b(\(\);)485
+2710 y(sigwinch_received)h(=)j(0;)390 2819 y(})676 2929
+y(if)h(\(r)f(<)g(0\))390 3039 y(continue;)676 3258 y(if)h(\(FD_ISSET)d
+(\(fileno)h(\(rl_instream\),)e(&fds\)\))772 3367 y
+(rl_callback_read_char)e(\(\);)581 3477 y(})485 3696
+y(printf)47 b(\("rltest:)e(Event)h(loop)h(has)g(exited\\n"\);)485
+3806 y(return)g(0;)390 3915 y(})150 4164 y Fr(2.5)68
+b(Readline)47 b(Signal)e(Handling)150 4323 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
+4433 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 4543 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 4652 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 4762 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 518 y(pro)s(cessing)27 b(when)g(suc)m(h)g(a)h(signal)g
+(sp)s(ecial)150 4871 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 628 y(pro)m(vide)g(application)i(writers)e
+(a)f(sane)f(state,)j(or)150 4981 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
-777 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
-887 y(\()p Fr(SIGINT)p Fs(,)e Fr(SIGQUIT)p Fs(,)f Fr(SIGTERM)p
-Fs(,)g Fr(SIGHUP)p Fs(,)g Fr(SIGALRM)p Fs(,)g Fr(SIGTSTP)p
-Fs(,)g Fr(SIGTTIN)p Fs(,)g(and)g Fr(SIGTTOU)p Fs(\).)59
-b(When)150 996 y(one)27 b(of)g(these)g(signals)g(is)g(receiv)m(ed,)i
+5121 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
+5230 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 5340 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 1106 y(that)33 b(w)m(ere)g(in)f(e\013ect)h(b)s(efore)f
-Fr(readline\(\))e Fs(w)m(as)i(called,)j(reset)d(the)h(signal)g
-(handling)f(to)h(what)f(it)h(w)m(as)150 1215 y(b)s(efore)26
-b Fr(readline\(\))e Fs(w)m(as)j(called,)i(and)d(resend)g(the)h(signal)g
+(to)g(those)p eop end
+%%Page: 47 51
+TeXDict begin 47 50 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(47)150
+299 y(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 408 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
-1325 y(the)34 b(calling)i(application's)f(signal)g(handler)e(returns,)h
+518 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
-1435 y(con)m(tin)m(ue)29 b(to)g(accept)h(input.)39 b(When)28
-b(a)h Fr(SIGINT)d Fs(is)j(receiv)m(ed,)h(the)e(Readline)h(signal)g
-(handler)f(p)s(erforms)150 1544 y(some)39 b(additional)h(w)m(ork,)h
+628 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 737 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 1654 y(description)30
-b(of)h Fr(rl_free_line_state\(\))25 b Fs(b)s(elo)m(w\).)275
-1803 y(There)e(is)i(an)f(additional)h(Readline)g(signal)g(handler,)g
-(for)f Fr(SIGWINCH)p Fs(,)g(whic)m(h)g(the)g(k)m(ernel)h(sends)e(to)j
-(a)150 1913 y(pro)s(cess)i(whenev)m(er)h(the)g(terminal's)g(size)h(c)m
+(b)s(e)e(ab)s(orted)g(\(see)i(the)150 847 y(description)30
+b(of)h Fs(rl_free_line_state\(\))25 b Ft(b)s(elo)m(w\).)275
+1017 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 1127 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
-Fr(xterm)p Fs(\).)39 b(The)150 2022 y(Readline)d Fr(SIGWINCH)e
-Fs(handler)g(up)s(dates)h(Readline's)h(in)m(ternal)h(screen)e(size)i
-(information,)g(and)e(then)150 2132 y(calls)g(an)m(y)f
-Fr(SIGWINCH)e Fs(signal)i(handler)f(the)h(calling)h(application)g(has)f
-(installed.)51 b(Readline)35 b(calls)g(the)150 2242 y(application's)i
-Fr(SIGWINCH)c Fs(signal)i(handler)g(without)g(resetting)h(the)g
-(terminal)f(to)h(its)g(original)g(state.)150 2351 y(If)31
+Fs(xterm)p Ft(\).)39 b(The)150 1236 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 1346 y(calls)g(an)m(y)f
+Fs(SIGWINCH)e Ft(signal)i(handler)f(the)h(calling)h(application)g(has)f
+(installed.)51 b(Readline)35 b(calls)g(the)150 1456 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 1565 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
-2461 y(return)28 b(\(for)i(example,)h(a)f Fr(longjmp)d
-Fs(bac)m(k)k(to)f(a)g(main)g(pro)s(cessing)f(lo)s(op\),)h(it)g
-Fj(must)39 b Fs(call)31 b Fr(rl_cleanup_)150 2570 y(after_signal\(\))26
-b Fs(\(describ)s(ed)k(b)s(elo)m(w\),)h(to)g(restore)g(the)g(terminal)g
-(state.)275 2720 y(Readline)e(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 2829 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
-2939 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
-Fr(readline\(\))p Fs(,)d(not)i(in)g(a)150 3049 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 3263 y([V)-8 b(ariable])-3598 b Fg(int)53
-b(rl_catch_signals)390 3372 y Fs(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 Fr(SIGINT)p Fs(,)f Fr(SIGQUIT)p Fs(,)390
-3482 y Fr(SIGTERM)p Fs(,)h Fr(SIGHUP)p Fs(,)g Fr(SIGALRM)p
-Fs(,)f Fr(SIGTSTP)p Fs(,)h Fr(SIGTTIN)p Fs(,)f(and)i
-Fr(SIGTTOU)p Fs(.)390 3631 y(The)g(default)g(v)-5 b(alue)31
-b(of)g Fr(rl_catch_signals)26 b Fs(is)k(1.)3371 3846
-y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_catch_sigwinch)390
-3955 y Fs(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 4065 y Fr(SIGWINCH)p Fs(.)390 4214
-y(The)30 b(default)g(v)-5 b(alue)31 b(of)g Fr(rl_catch_sigwinch)25
-b Fs(is)31 b(1.)3371 4428 y([V)-8 b(ariable])-3598 b
-Fg(int)53 b(rl_change_environment)390 4538 y Fs(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 Fr(SIGWINCH)p
-Fs(,)e(Read-)390 4648 y(line)h(will)h(mo)s(dify)e(the)h
-Fi(LINES)35 b Fs(and)29 b Fi(COLUMNS)35 b Fs(en)m(vironmen)m(t)30
-b(v)-5 b(ariables)31 b(up)s(on)d(receipt)j(of)g(a)390
-4757 y Fr(SIGWINCH)390 4907 y Fs(The)f(default)g(v)-5
-b(alue)31 b(of)g Fr(rl_change_environment)24 b Fs(is)31
-b(1.)275 5121 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 5230 y(other)39 b(than)f(those)h(Readline)h(catc)m(hes)g
-(\()p Fr(SIGHUP)p Fs(,)g(for)e(example\),)k(Readline)d(pro)m(vides)g
-(con)m(v)m(enience)150 5340 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.)p eop end
-%%Page: 45 49
-TeXDict begin 45 48 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(45)3350
-299 y([F)-8 b(unction])-3599 b Fg(void)54 b(rl_cleanup_after_signal)e
-Ff(\()p Fi(v)m(oid)p Ff(\))390 408 y Fs(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 Fr(readline\(\))390 518 y Fs(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 628 y(v)-5 b(alues)31
-b(of)f Fr(rl_catch_signals)c Fs(and)k Fr(rl_catch_sigwinch)p
-Fs(.)3350 799 y([F)-8 b(unction])-3599 b Fg(void)54 b
-(rl_free_line_state)c Ff(\()p Fi(v)m(oid)p Ff(\))390
-909 y Fs(This)38 b(will)i(free)f(an)m(y)h(partial)g(state)g(asso)s
+1675 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 1784 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 1955 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 2064 y(terface],)48 b(page)c(42\),)j(Readline)c(installs)h
+(signal)g(handlers)e(only)h(for)f(the)h(duration)g(of)g(the)g(call)h
+(to)150 2174 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 2283 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 2393 y(and)k(restores)h(the)f(terminal)h(state.)275
+2563 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 2673 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 2783 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 2892 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 3002 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 3111 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 3221 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
+3331 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 3440 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 3550 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
+3720 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 3830 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 3939 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 4049 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
+4305 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_catch_signals)390
+4414 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 4524 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 4694
+y(The)g(default)g(v)-5 b(alue)31 b(of)g Fs(rl_catch_signals)26
+b Ft(is)k(1.)3371 4950 y([V)-8 b(ariable])-3598 b Fh(int)53
+b(rl_catch_sigwinch)390 5060 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
+5170 y Fs(SIGWINCH)p Ft(.)390 5340 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.)p
+eop end
+%%Page: 48 52
+TeXDict begin 48 51 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(48)3371
+299 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_persistent_signal_)q
+(hand)q(ler)q(s)390 408 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 518 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 628 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 775 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 986 y([V)-8 b(ariable])-3598 b Fh(int)53
+b(rl_change_environment)390 1096 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
+1205 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 1315 y
+Fs(SIGWINCH)390 1463 y Ft(The)f(default)g(v)-5 b(alue)31
+b(of)g Fs(rl_change_environment)24 b Ft(is)31 b(1.)275
+1673 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 1783 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 1892 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 2103 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_pending_signal)e Fg(\()p Ff(v)m(oid)p
+Fg(\))390 2213 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 2322 y(handled,)i(or)g(0)h(if)f(there)h(is)f(no)g(p)s
+(ending)f(signal.)3350 2533 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 2643 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 2752 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 2862 y(v)-5 b(alues)31 b(of)f
+Fs(rl_catch_signals)c Ft(and)k Fs(rl_catch_sigwinch)p
+Ft(.)3350 3072 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
+3182 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
-1019 y(mation,)46 b(an)m(y)d(partial)h(history)e(en)m(try)-8
+3292 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 1128 y(partially-en)m(tered)50
+b(and)42 b(an)m(y)390 3401 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 Fr(rl_cleanup_)390 1238 y(after_signal\(\))p
-Fs(.)74 b(The)42 b(Readline)h(signal)g(handler)f(for)h
-Fr(SIGINT)e Fs(calls)i(this)g(to)g(ab)s(ort)g(the)390
-1347 y(curren)m(t)30 b(input)g(line.)3350 1519 y([F)-8
-b(unction])-3599 b Fg(void)54 b(rl_reset_after_signal)d
-Ff(\()p Fi(v)m(oid)p Ff(\))390 1629 y Fs(This)28 b(will)g(reinitialize)
+(b)s(efore)e Fs(rl_cleanup_)390 3511 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
+3620 y(curren)m(t)30 b(input)g(line.)3350 3831 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 3941 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 1738 y(ing)j(on)f(the)g(v)-5
-b(alues)31 b(of)g Fr(rl_catch_signals)26 b Fs(and)j Fr
-(rl_catch_sigwinch)p Fs(.)275 1910 y(If)38 b(an)i(application)g(do)s
-(es)f(not)h(wish)f(Readline)h(to)g(catc)m(h)h Fr(SIGWINCH)p
-Fs(,)e(it)h(ma)m(y)g(call)h Fr(rl_resize_)150 2020 y(terminal\(\))24
-b Fs(or)j Fr(rl_set_screen_size\(\))22 b Fs(to)28 b(force)g(Readline)f
+(handlers,)f(dep)s(end-)390 4050 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 4261 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 4371 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
-2129 y(size)k(when)f(a)g Fr(SIGWINCH)e Fs(is)j(receiv)m(ed.)3350
-2301 y([F)-8 b(unction])-3599 b Fg(void)54 b(rl_echo_signal_char)d
-Ff(\()p Fi(in)m(t)31 b(sig)p Ff(\))390 2411 y Fs(If)43
+4480 y(size)k(when)f(a)g Fs(SIGWINCH)e Ft(is)j(receiv)m(ed.)3350
+4691 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 4800 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
-2520 y(displa)m(y)31 b(c)m(haracters)h(that)f(generate)h(signals,)f
-(calling)h(this)e(function)g(with)g Fi(sig)39 b Fs(set)31
-b(to)g Fr(SIGINT)p Fs(,)390 2630 y Fr(SIGQUIT)p Fs(,)e(or)h
-Fr(SIGTSTP)e Fs(will)j(displa)m(y)g(the)f(c)m(haracter)i(generating)g
-(that)f(signal.)3350 2802 y([F)-8 b(unction])-3599 b
-Fg(void)54 b(rl_resize_terminal)c Ff(\()p Fi(v)m(oid)p
-Ff(\))390 2911 y Fs(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 3083 y([F)-8 b(unction])-3599 b Fg(void)54 b(rl_set_screen_size)c
-Ff(\()p Fi(in)m(t)32 b(ro)m(ws,)e(in)m(t)h(cols)p Ff(\))390
-3193 y Fs(Set)d(Readline's)h(idea)f(of)g(the)g(terminal)g(size)h(to)g
-Fi(ro)m(ws)i Fs(ro)m(ws)d(and)f Fi(cols)33 b Fs(columns.)40
-b(If)27 b(either)h Fi(ro)m(ws)390 3302 y Fs(or)35 b Fi(columns)k
-Fs(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 3412 y(unc)m(hanged.)275
-3584 y(If)d(an)i(application)g(do)s(es)f(not)h(w)m(an)m(t)g(to)g
-(install)g(a)g Fr(SIGWINCH)d Fs(handler,)j(but)e(is)i(still)g(in)m
-(terested)g(in)150 3693 y(the)d(screen)f(dimensions,)g(Readline's)h
+4910 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 5020 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 5230 y([F)-8 b(unction])-3599 b
+Fh(void)54 b(rl_resize_terminal)c Fg(\()p Ff(v)m(oid)p
+Fg(\))390 5340 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.)p
+eop end
+%%Page: 49 53
+TeXDict begin 49 52 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(49)3350
+299 y([F)-8 b(unction])-3599 b Fh(void)54 b(rl_set_screen_size)c
+Fg(\()p Ff(in)m(t)34 b(ro)m(ws,)f(in)m(t)g(cols)p Fg(\))390
+408 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 518 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 628 y(unc)m(hanged.)275
+817 y(If)d(an)i(application)g(do)s(es)f(not)h(w)m(an)m(t)g(to)g
+(install)g(a)g Fs(SIGWINCH)d Ft(handler,)j(but)e(is)i(still)g(in)m
+(terested)g(in)150 927 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
-3865 y([F)-8 b(unction])-3599 b Fg(void)54 b(rl_get_screen_size)c
-Ff(\()p Fi(in)m(t)32 b(*ro)m(ws,)f(in)m(t)g(*cols)p Ff(\))390
-3975 y Fs(Return)e(Readline's)i(idea)g(of)f(the)g(terminal's)h(size)g
+1117 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
+1226 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 4084 y(men)m(ts.)3350 4256 y([F)-8 b(unction])-3599
-b Fg(void)54 b(rl_reset_screen_size)d Ff(\()p Fi(v)m(oid)p
-Ff(\))390 4366 y Fs(Cause)30 b(Readline)h(to)g(reobtain)g(the)g(screen)
-f(size)h(and)f(recalculate)j(its)e(dimensions.)275 4538
+(argu-)390 1336 y(men)m(ts.)3350 1525 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 1635 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 1825
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 4710 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_set_signals)d Ff(\()p Fi(v)m(oid)p Ff(\))390
-4819 y Fs(Install)40 b(Readline's)h(signal)f(handler)f(for)h
-Fr(SIGINT)p Fs(,)h Fr(SIGQUIT)p Fs(,)f Fr(SIGTERM)p Fs(,)h
-Fr(SIGHUP)p Fs(,)g Fr(SIGALRM)p Fs(,)390 4929 y Fr(SIGTSTP)p
-Fs(,)35 b Fr(SIGTTIN)p Fs(,)f Fr(SIGTTOU)p Fs(,)h(and)g
-Fr(SIGWINCH)p Fs(,)f(dep)s(ending)g(on)h(the)g(v)-5 b(alues)36
-b(of)f Fr(rl_catch_)390 5038 y(signals)28 b Fs(and)i
-Fr(rl_catch_sigwinch)p Fs(.)3350 5210 y([F)-8 b(unction])-3599
-b Fg(int)53 b(rl_clear_signals)e Ff(\()p Fi(v)m(oid)p
-Ff(\))390 5320 y Fs(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 Fr(rl_set_signals\(\))p
-Fs(.)p eop end
-%%Page: 46 50
-TeXDict begin 46 49 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(46)150
-299 y Fq(2.6)68 b(Custom)45 b(Completers)150 458 y Fs(T)m(ypically)-8
-b(,)47 b(a)c(program)g(that)g(reads)f(commands)h(from)f(the)g(user)g
-(has)h(a)g(w)m(a)m(y)g(of)g(disam)m(biguating)150 568
-y(commands)35 b(and)g(data.)56 b(If)35 b(y)m(our)h(program)f(is)g(one)h
-(of)g(these,)h(then)e(it)h(can)g(pro)m(vide)f(completion)i(for)150
-677 y(commands,)29 b(data,)i(or)e(b)s(oth.)39 b(The)29
-b(follo)m(wing)i(sections)f(describ)s(e)e(ho)m(w)i(y)m(our)f(program)g
-(and)f(Readline)150 787 y(co)s(op)s(erate)j(to)h(pro)m(vide)e(this)g
-(service.)150 970 y Fh(2.6.1)63 b(Ho)m(w)40 b(Completing)i(W)-10
-b(orks)150 1117 y Fs(In)26 b(order)f(to)i(complete)h(some)f(text,)h
-(the)f(full)f(list)h(of)f(p)s(ossible)g(completions)h(m)m(ust)g(b)s(e)e
-(a)m(v)-5 b(ailable.)42 b(That)150 1227 y(is,)28 b(it)f(is)g(not)g(p)s
-(ossible)g(to)g(accurately)i(expand)d(a)h(partial)h(w)m(ord)f(without)f
-(kno)m(wing)i(all)f(of)g(the)g(p)s(ossible)150 1336 y(w)m(ords)33
+(Readline's)f(signal)g(handlers.)3350 2014 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_set_signals)d Fg(\()p Ff(v)m(oid)p Fg(\))390
+2124 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 2234 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 2343 y(signals)28 b Ft(and)i
+Fs(rl_catch_sigwinch)p Ft(.)3350 2533 y([F)-8 b(unction])-3599
+b Fh(int)53 b(rl_clear_signals)e Fg(\()p Ff(v)m(oid)p
+Fg(\))390 2642 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 2887 y Fr(2.6)68 b(Custom)45 b(Completers)150
+3047 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 3156 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 3266 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 3375 y(co)s(op)s(erate)j(to)h(pro)
+m(vide)e(this)g(service.)150 3577 y Fi(2.6.1)63 b(Ho)m(w)40
+b(Completing)i(W)-10 b(orks)150 3724 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 3834 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 3943 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 1446 y(to)d(completion,)h(and)e(t)m(w)m(o)i(of)e(the)h
+(terface)150 4053 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 1555 y(F)-8 b(or)39 b(completing)g(other)f(t)m
+b(and)e(username.)150 4163 y(F)-8 b(or)39 b(completing)g(other)f(t)m
(yp)s(es)g(of)h(text,)i(y)m(ou)d(m)m(ust)g(write)g(y)m(our)g(o)m(wn)g
-(completion)h(function.)64 b(This)150 1665 y(section)32
+(completion)h(function.)64 b(This)150 4272 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 1791 y(There)e(are)i(three)g(ma)
+(and)g(pro)m(vides)g(an)h(example.)275 4409 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
-1918 y(1.)61 b(The)43 b(user-in)m(terface)h(function)f
-Fr(rl_complete\(\))p Fs(.)76 b(This)43 b(function)g(is)g(called)i(with)
-e(the)h(same)330 2027 y(argumen)m(ts)36 b(as)g(other)g(bindable)f
-(Readline)h(functions:)51 b Fi(coun)m(t)38 b Fs(and)d
-Fi(in)m(v)m(oking)p 3107 2027 28 4 v 41 w(k)m(ey)p Fs(.)57
-b(It)36 b(isolates)330 2137 y(the)i(w)m(ord)f(to)h(b)s(e)f(completed)i
-(and)d(calls)j Fr(rl_completion_matches\(\))31 b Fs(to)39
-b(generate)g(a)f(list)g(of)330 2247 y(p)s(ossible)31
+4547 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 4656 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 4656 28 4 v 41 w(k)m(ey)p Ft(.)57
+b(It)36 b(isolates)330 4766 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 4875 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 2356
+(completions,)h(inserts)f(the)g(p)s(ossible)330 4985
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
-2466 y(desired.)199 2592 y(2.)61 b(The)33 b(in)m(ternal)h(function)g
-Fr(rl_completion_matches\(\))27 b Fs(uses)33 b(an)g
-(application-supplied)h Fi(gener-)330 2702 y(ator)44
-b Fs(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
-2811 y(these)h(matc)m(hes.)68 b(The)39 b(caller)h(should)e(place)i(the)
-f(address)f(of)h(its)g(generator)i(function)d(in)h Fr(rl_)330
-2921 y(completion_entry_functio)o(n)p Fs(.)199 3047 y(3.)61
-b(The)22 b(generator)i(function)f(is)g(called)h(rep)s(eatedly)f(from)g
-Fr(rl_completion_matches\(\))o Fs(,)c(returning)330 3157
-y(a)33 b(string)g(eac)m(h)h(time.)48 b(The)32 b(argumen)m(ts)h(to)h
-(the)f(generator)h(function)e(are)h Fi(text)j Fs(and)c
-Fi(state)p Fs(.)49 b Fi(text)330 3267 y Fs(is)32 b(the)g(partial)h(w)m
-(ord)f(to)h(b)s(e)e(completed.)47 b Fi(state)38 b Fs(is)32
+5095 y(desired.)199 5230 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 5340 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)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)330
+299 y(these)39 b(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 408 y(completion_entry_functio)o(n)p Ft(.)199
+553 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
+663 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 773 y Ft(is)32 b(the)g(partial)h(w)m
+(ord)f(to)h(b)s(e)e(completed.)47 b Fj(state)38 b Ft(is)32
b(zero)h(the)f(\014rst)g(time)g(the)h(function)e(is)h(called,)330
-3376 y(allo)m(wing)46 b(the)e(generator)h(to)f(p)s(erform)f(an)m(y)h
+882 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 3486 y(zero)30 b(in)m(teger)h(for)d(eac)m(h)j(subsequen)m(t)d
-(call.)42 b(The)29 b(generator)h(function)f(returns)f
-Fr(\(char)h(*\)NULL)e Fs(to)330 3595 y(inform)37 b Fr
-(rl_completion_matches\(\))32 b Fs(that)39 b(there)f(are)g(no)g(more)g
-(p)s(ossibilities)h(left.)65 b(Usually)330 3705 y(the)39
-b(generator)h(function)e(computes)h(the)g(list)g(of)g(p)s(ossible)f
-(completions)i(when)e Fi(state)45 b Fs(is)39 b(zero,)330
-3814 y(and)25 b(returns)f(them)i(one)f(at)i(a)f(time)g(on)f(subsequen)m
-(t)g(calls.)40 b(Eac)m(h)26 b(string)g(the)g(generator)g(function)330
-3924 y(returns)31 b(as)h(a)g(matc)m(h)h(m)m(ust)f(b)s(e)f(allo)s(cated)
-j(with)d Fr(malloc\(\))p Fs(;)g(Readline)h(frees)g(the)g(strings)g
-(when)330 4034 y(it)i(has)g(\014nished)e(with)i(them.)51
-b(Suc)m(h)33 b(a)h(generator)h(function)f(is)g(referred)f(to)h(as)h(an)
-e Fi(application-)330 4143 y(sp)s(eci\014c)d(completion)i(function)p
-Fs(.)3350 4303 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_complete)c
-Ff(\()p Fi(in)m(t)31 b(ignore,)g(in)m(t)g(in)m(v)m(oking)p
-1929 4303 V 42 w(k)m(ey)p Ff(\))390 4413 y Fs(Complete)g(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
+330 992 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 1101 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 1211 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 1321 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 1430 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 1540
+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 1649 y(sp)s(eci\014c)d(completion)i(function)p
+Ft(.)3350 1876 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 1876 30 5 v 43 w(k)m(ey)p Fg(\))390 1985 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
-4522 y(initial)42 b(simple)f(matc)m(hing)i(selection)f(algorithm)h
-(\(see)f Fr(rl_completion_matches\(\))o Fs(\).)67 b(The)390
-4632 y(default)31 b(is)f(to)h(do)f(\014lename)h(completion.)3371
-4792 y([V)-8 b(ariable])-3598 b Fg(rl_compentry_func_t)58
-b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 4902
-y Fs(This)39 b(is)h(a)g(p)s(oin)m(ter)g(to)h(the)f(generator)h
-(function)f(for)f Fr(rl_completion_matches\(\))p Fs(.)63
-b(If)40 b(the)390 5011 y(v)-5 b(alue)24 b(of)g Fr
-(rl_completion_entry_funct)o(ion)17 b Fs(is)24 b Fr(NULL)f
-Fs(then)g(the)h(default)g(\014lename)g(generator)390
-5121 y(function,)49 b Fr(rl_filename_completion_)o(fun)o(ctio)o(n\(\))p
-Fs(,)42 b(is)j(used.)84 b(An)44 b Fi(application-sp)s(eci\014c)390
-5230 y(completion)22 b(function)f Fs(is)g(a)h(function)e(whose)h
-(address)f(is)h(assigned)h(to)f Fr(rl_completion_entry_)390
-5340 y(function)28 b Fs(and)i(whose)g(return)f(v)-5 b(alues)31
-b(are)g(used)e(to)j(generate)f(p)s(ossible)f(completions.)p
-eop end
-%%Page: 47 51
-TeXDict begin 47 50 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(47)150
-299 y Fh(2.6.2)63 b(Completion)41 b(F)-10 b(unctions)150
-446 y Fs(Here)31 b(is)f(the)h(complete)h(list)f(of)f(callable)j
+2095 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
+2204 y(default)31 b(is)f(to)h(do)f(\014lename)h(completion.)3371
+2431 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 2540
+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 2650 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
+2760 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
+2869 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
+2979 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
+3199 y Fi(2.6.2)63 b(Completion)41 b(F)-10 b(unctions)150
+3346 y Ft(Here)31 b(is)f(the)h(complete)h(list)f(of)f(callable)j
(completion)e(functions)f(presen)m(t)h(in)f(Readline.)3350
-640 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_complete_internal)f
-Ff(\()p Fi(in)m(t)31 b(what)p 1828 640 28 4 v 40 w(to)p
-1948 640 V 41 w(do)p Ff(\))390 749 y Fs(Complete)37 b(the)g(w)m(ord)f
-(at)i(or)e(b)s(efore)g(p)s(oin)m(t.)60 b Fi(what)p 2208
-749 V 40 w(to)p 2328 749 V 41 w(do)41 b Fs(sa)m(ys)c(what)f(to)i(do)e
-(with)g(the)h(com-)390 859 y(pletion.)44 b(A)31 b(v)-5
-b(alue)32 b(of)f(`)p Fr(?)p Fs(')g(means)h(list)f(the)h(p)s(ossible)e
-(completions.)45 b(`)p Fr(TAB)p Fs(')31 b(means)g(do)g(standard)390
-969 y(completion.)44 b(`)p Fr(*)p Fs(')32 b(means)f(insert)g(all)h(of)f
-(the)g(p)s(ossible)g(completions.)44 b(`)p Fr(!)p Fs(')32
-b(means)f(to)h(displa)m(y)f(all)390 1078 y(of)k(the)f(p)s(ossible)g
+3572 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 3572 V 44 w(to)p 1994
+3572 V 43 w(do)p Fg(\))390 3682 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 3682
+28 4 v 40 w(to)p 2328 3682 V 41 w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e
+(with)g(the)h(com-)390 3791 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
+3901 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 4011 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 1188 y(completion.)41
-b(`)p Fr(@)p Fs(')27 b(is)h(similar)f(to)h(`)p Fr(!)p
-Fs(',)h(but)d(p)s(ossible)h(completions)i(are)e(not)h(listed)g(if)f
-(the)g(p)s(ossible)390 1297 y(completions)32 b(share)e(a)g(common)h
-(pre\014x.)3350 1491 y([F)-8 b(unction])-3599 b Fg(int)53
-b(rl_complete)c Ff(\()p Fi(in)m(t)31 b(ignore,)g(in)m(t)g(in)m(v)m
-(oking)p 1929 1491 V 42 w(k)m(ey)p Ff(\))390 1601 y Fs(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 1710 y(the)33 b(initial)h(simple)f(matc)m(hing)h(selection)h
-(algorithm)f(\(see)g Fr(rl_completion_matches\(\))27
-b Fs(and)390 1820 y Fr(rl_completion_entry_func)o(tion)o
-Fs(\).)52 b(The)35 b(default)h(is)g(to)h(do)e(\014lename)h(completion.)
-59 b(This)390 1930 y(calls)32 b Fr(rl_complete_internal\(\))24
-b Fs(with)30 b(an)g(argumen)m(t)h(dep)s(ending)e(on)h
-Fi(in)m(v)m(oking)p 3314 1930 V 41 w(k)m(ey)p Fs(.)3350
-2124 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_possible_completio)q(ns)
-f Ff(\()p Fi(in)m(t)31 b(coun)m(t,)g(in)m(t)g(in)m(v)m(oking)p
-2534 2124 V 41 w(k)m(ey)p Ff(\))390 2233 y Fs(List)41
+(as)g(p)s(erforming)e(partial)390 4120 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 4230 y(completions)32 b(share)e(a)g(common)h
+(pre\014x.)3350 4456 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 4456 30 5 v 43 w(k)m(ey)p Fg(\))390 4566
+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 4675 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 4785 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 4894 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 4894 28 4 v 41 w(k)m(ey)p Ft(.)3350
+5121 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 5121 30 5 v 43 w(k)m(ey)p Fg(\))390 5230 y Ft(List)41
b(the)f(p)s(ossible)g(completions.)73 b(See)40 b(description)h(of)g
-Fr(rl_complete)27 b(\(\))p Fs(.)70 b(This)40 b(calls)i
-Fr(rl_)390 2343 y(complete_internal\(\))25 b Fs(with)30
-b(an)g(argumen)m(t)h(of)g(`)p Fr(?)p Fs('.)3350 2537
-y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_insert_completions)f
-Ff(\()p Fi(in)m(t)31 b(coun)m(t,)h(in)m(t)e(in)m(v)m(oking)p
-2429 2537 V 42 w(k)m(ey)p Ff(\))390 2646 y Fs(Insert)j(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 2756 y(w)m(ord.)44 b(See)32
-b(description)g(of)g Fr(rl_complete\(\))p Fs(.)41 b(This)31
-b(calls)i Fr(rl_complete_internal\(\))25 b Fs(with)390
-2865 y(an)30 b(argumen)m(t)h(of)g(`)p Fr(*)p Fs('.)3350
-3059 y([F)-8 b(unction])-3599 b Fg(int)53 b(rl_completion_mode)e
-Ff(\()p Fi(rl)p 1448 3059 V 40 w(command)p 1872 3059
-V 40 w(func)p 2082 3059 V 39 w(t)31 b(*cfunc)p Ff(\))390
-3169 y Fs(Returns)40 b(the)i(appropriate)g(v)-5 b(alue)41
-b(to)i(pass)e(to)h Fr(rl_complete_internal\(\))35 b Fs(dep)s(ending)40
-b(on)390 3279 y(whether)g Fi(cfunc)46 b Fs(w)m(as)41
+Fs(rl_complete)27 b(\(\))p Ft(.)70 b(This)40 b(calls)i
+Fs(rl_)390 5340 y(complete_internal\(\))25 b Ft(with)30
+b(an)g(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)p eop end
+%%Page: 51 55
+TeXDict begin 51 54 bop 150 -116 a Ft(Chapter)30 b(2:)41
+b(Programming)30 b(with)g(GNU)h(Readline)1683 b(51)3350
+299 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 299 30 5 v 44 w(k)m(ey)p Fg(\))390 408 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 518 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
+628 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p Ft('.)3350
+808 y([F)-8 b(unction])-3599 b Fh(int)53 b(rl_completion_mode)e
+Fg(\()p Ff(rl)p 1455 808 V 44 w(command)p 1919 808 V
+44 w(func)p 2147 808 V 46 w(t)33 b(*cfunc)p Fg(\))390
+917 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 1027 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 Fr(show-all-if-)390 3388 y(ambiguous)25
-b Fs(and)i Fr(show-all-if-unmodified)21 b Fs(v)-5 b(ariables.)41
-b(Application-sp)s(eci\014c)29 b(completion)390 3498
+b(alues)41 b(of)g(the)g Fs(show-all-if-)390 1137 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 1246
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 Fr(rl_complete\(\))p Fs(.)3350
-3692 y([F)-8 b(unction])-3599 b Fg(char)54 b(**)e
-(rl_completion_matches)g Ff(\()p Fi(const)31 b(c)m(har)g(*text,)565
-3801 y(rl)p 632 3801 V 40 w(comp)s(en)m(try)p 1094 3801
-V 40 w(func)p 1304 3801 V 39 w(t)g(*en)m(try)p 1661 3801
-V 41 w(func)p Ff(\))390 3911 y Fs(Returns)37 b(an)h(arra)m(y)g(of)g
+(same)h(in)m(terface)h(as)f Fs(rl_complete\(\))p Ft(.)3350
+1426 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
+1536 y(rl)p 639 1536 V 44 w(comp)s(en)m(try)p 1145 1536
+V 44 w(func)p 1373 1536 V 45 w(t)f(*en)m(try)p 1767 1536
+V 44 w(func)p Fg(\))390 1646 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
-Fi(text)p Fs(.)64 b(If)38 b(there)g(are)g(no)390 4020
-y(completions,)f(returns)c Fr(NULL)p Fs(.)52 b(The)34
+Fj(text)p Ft(.)64 b(If)38 b(there)g(are)g(no)390 1755
+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 4130 y(for)26 b Fi(text)p Fs(.)40 b(The)26
+(substitution)390 1865 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 4240 y(with)k(a)h
-Fr(NULL)e Fs(p)s(oin)m(ter.)390 4379 y Fi(en)m(try)p
-603 4379 V 40 w(func)44 b Fs(is)c(a)g(function)f(of)h(t)m(w)m(o)g
-(args,)j(and)38 b(returns)h(a)g Fr(char)30 b(*)p Fs(.)67
-b(The)39 b(\014rst)g(argumen)m(t)h(is)390 4489 y Fi(text)p
-Fs(.)66 b(The)39 b(second)f(is)h(a)g(state)h(argumen)m(t;)j(it)c(is)g
+b(The)26 b(arra)m(y)h(is)f(terminated)390 1974 y(with)k(a)h
+Fs(NULL)e Ft(p)s(oin)m(ter.)390 2107 y Fj(en)m(try)p
+603 2107 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 2217 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
-4598 y(subsequen)m(t)33 b(calls.)52 b Fi(en)m(try)p 1320
-4598 V 41 w(func)38 b Fs(returns)33 b(a)h Fr(NULL)f Fs(p)s(oin)m(ter)g
-(to)i(the)f(caller)h(when)e(there)h(are)g(no)390 4708
-y(more)d(matc)m(hes.)3350 4902 y([F)-8 b(unction])-3599
-b Fg(char)54 b(*)e(rl_filename_completion)q(_fu)q(nct)q(ion)g
-Ff(\()p Fi(const)31 b(c)m(har)g(*text,)h(in)m(t)565 5011
-y(state)p Ff(\))390 5121 y Fs(A)26 b(generator)h(function)e(for)g
+2327 y(subsequen)m(t)33 b(calls.)52 b Fj(en)m(try)p 1320
+2327 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 2436
+y(more)d(matc)m(hes.)3350 2616 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 2726
+y(state)p Fg(\))390 2836 y Ft(A)26 b(generator)h(function)e(for)g
(\014lename)h(completion)h(in)e(the)h(general)h(case.)40
-b Fi(text)28 b Fs(is)e(a)g(partial)h(\014le-)390 5230
+b Fj(text)28 b Ft(is)e(a)g(partial)h(\014le-)390 2945
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
-5340 y(functions)30 b(\(the)h(Bash)f(completion)i(functions)e(call)i
-(this)e(and)g(other)g(Readline)h(functions\).)p eop end
-%%Page: 48 52
-TeXDict begin 48 51 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(48)3350
-299 y([F)-8 b(unction])-3599 b Fg(char)54 b(*)e(rl_username_completion)
-q(_fu)q(nct)q(ion)g Ff(\()p Fi(const)31 b(c)m(har)g(*text,)h(in)m(t)565
-408 y(state)p Ff(\))390 518 y Fs(A)d(completion)g(generator)h(for)e
-(usernames.)40 b Fi(text)31 b Fs(con)m(tains)f(a)f(partial)g(username)f
-(preceded)g(b)m(y)390 628 y(a)j(random)f(c)m(haracter)i(\(usually)e(`)p
-Fr(~)p Fs('\).)42 b(As)31 b(with)f(all)h(completion)h(generators,)g
-Fi(state)37 b Fs(is)31 b(zero)g(on)390 737 y(the)g(\014rst)e(call)j
-(and)e(non-zero)h(for)f(subsequen)m(t)f(calls.)150 955
-y Fh(2.6.3)63 b(Completion)41 b(V)-10 b(ariables)3371
-1170 y Fs([V)i(ariable])-3598 b Fg(rl_compentry_func_t)58
-b(*)53 b(rl_completion_entry_fun)q(cti)q(on)390 1279
-y Fs(A)34 b(p)s(oin)m(ter)f(to)h(the)g(generator)h(function)e(for)g
-Fr(rl_completion_matches\(\))p Fs(.)44 b Fr(NULL)32 b
-Fs(means)h(to)390 1389 y(use)d Fr(rl_filename_completion_fu)o(nct)o
-(ion\()o(\))p Fs(,)25 b(the)30 b(default)h(\014lename)f(completer.)3371
-1609 y([V)-8 b(ariable])-3598 b Fg(rl_completion_func_t)58
+3055 y(functions)30 b(\(the)h(Bash)f(completion)i(functions)e(call)i
+(this)e(and)g(other)g(Readline)h(functions\).)3350 3235
+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
+3345 y(state)p Fg(\))390 3454 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 3564 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 3673 y(the)g(\014rst)e(call)j
+(and)e(non-zero)h(for)f(subsequen)m(t)f(calls.)150 3870
+y Fi(2.6.3)63 b(Completion)41 b(V)-10 b(ariables)3371
+4064 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 4173
+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 4283 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
+4463 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
-1719 y Fs(A)35 b(p)s(oin)m(ter)g(to)g(an)g(alternativ)m(e)i(function)d
+4573 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 1829 y Fi(text)p Fs(,)26 b Fi(start)p Fs(,)f(and)d
-Fi(end)p Fs(.)38 b Fi(start)25 b Fs(and)e Fi(end)j Fs(are)d(indices)g
-(in)g Fr(rl_line_buffer)c Fs(de\014ning)j(the)h(b)s(ound-)390
-1938 y(aries)j(of)h Fi(text)p Fs(,)h(whic)m(h)d(is)h(a)h(c)m(haracter)g
+390 4682 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
+4792 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
-Fr(NULL)p Fs(,)h(or)g(if)390 2048 y(this)c(v)-5 b(ariable)22
-b(is)g(set)h(to)f Fr(NULL)p Fs(,)h(then)f Fr(rl_complete\(\))c
-Fs(will)k(call)h(the)f(v)-5 b(alue)23 b(of)f Fr(rl_completion_)390
-2157 y(entry_function)i Fs(to)30 b(generate)f(matc)m(hes,)i(otherwise)d
+Fs(NULL)p Ft(,)h(or)g(if)390 4902 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
+5011 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
-2267 y(used.)37 b(If)22 b(this)g(function)g(sets)h(the)g
-Fr(rl_attempted_completion)o(_ove)o(r)16 b Fs(v)-5 b(ariable)24
-b(to)f(a)f(non-zero)390 2377 y(v)-5 b(alue,)35 b(Readline)g(will)f(not)
+5121 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 5230 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 2486 y(no)d(matc)m(hes.)3371
-2707 y([V)-8 b(ariable])-3598 b Fg(rl_quote_func_t)57
-b(*)52 b(rl_filename_quoting_)q(func)q(tio)q(n)390 2816
-y Fs(A)33 b(p)s(oin)m(ter)f(to)h(a)g(function)g(that)g(will)g(quote)g
+(function)f(returns)390 5340 y(no)d(matc)m(hes.)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)3371
+299 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 408
+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
-2926 y(This)k(is)i(called)g(if)f(\014lename)h(completion)g(is)f(b)s
+518 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
-3036 y(in)33 b Fr(rl_filename_quote_charac)o(ter)o(s)27
-b Fs(app)s(ears)33 b(in)g(a)g(completed)h(\014lename.)50
-b(The)32 b(function)390 3145 y(is)37 b(called)h(with)e
-Fi(text)p Fs(,)k Fi(matc)m(h)p 1438 3145 28 4 v 41 w(t)m(yp)s(e)p
-Fs(,)f(and)d Fi(quote)p 2119 3145 V 41 w(p)s(oin)m(ter)p
-Fs(.)60 b(The)36 b Fi(text)k Fs(is)d(the)g(\014lename)g(to)h(b)s(e)390
-3255 y(quoted.)76 b(The)42 b Fi(matc)m(h)p 1210 3255
-V 41 w(t)m(yp)s(e)48 b Fs(is)42 b(either)h Fr(SINGLE_MATCH)p
-Fs(,)f(if)g(there)g(is)h(only)f(one)h(completion)390
-3364 y(matc)m(h,)33 b(or)e Fr(MULT_MATCH)p Fs(.)41 b(Some)31
+628 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 737 y(is)37 b(called)h(with)e
+Fj(text)p Ft(,)k Fj(matc)m(h)p 1438 737 28 4 v 41 w(t)m(yp)s(e)p
+Ft(,)f(and)d Fj(quote)p 2119 737 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
+847 y(quoted.)76 b(The)42 b Fj(matc)m(h)p 1210 847 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
+956 y(matc)m(h,)33 b(or)e Fs(MULT_MATCH)p Ft(.)41 b(Some)31
b(functions)g(use)g(this)h(to)g(decide)f(whether)g(or)h(not)f(to)h
-(insert)g(a)390 3474 y(closing)22 b(quote)f(c)m(haracter.)40
-b(The)20 b Fi(quote)p 1751 3474 V 41 w(p)s(oin)m(ter)27
-b Fs(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 3584 y(the)31 b(user)e(t)m(yp)s(ed.)41
+(insert)g(a)390 1066 y(closing)22 b(quote)f(c)m(haracter.)40
+b(The)20 b Fj(quote)p 1751 1066 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 1176 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 3804 y([V)-8 b(ariable])-3598 b Fg(rl_dequote_func_t)57
-b(*)c(rl_filename_dequoting_)q(fun)q(cti)q(on)390 3914
-y Fs(A)30 b(p)s(oin)m(ter)f(to)i(a)f(function)f(that)h(will)g(remo)m(v)
+(haracter.)3371 1410 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 1519
+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
-4023 y(a)i(\014lename)g(b)s(efore)f(completion)h(is)g(attempted,)h(so)f
+1629 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
-4133 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 Fi(text)p
-Fs(,)42 b(the)c(text)390 4243 y(of)k(the)h(w)m(ord)f(to)g(b)s(e)g
-(dequoted,)j(and)d Fi(quote)p 2014 4243 V 41 w(c)m(har)p
-Fs(,)j(whic)m(h)d(is)h(the)f(quoting)h(c)m(haracter)g(that)390
-4352 y(delimits)33 b(the)f(\014lename)g(\(usually)h(`)p
-Fr(')p Fs(')f(or)g(`)p Fr(")p Fs('\).)46 b(If)32 b Fi(quote)p
-2368 4352 V 41 w(c)m(har)39 b Fs(is)32 b(zero,)i(the)e(\014lename)g(w)m
-(as)h(not)390 4462 y(in)d(an)g(em)m(b)s(edded)g(string.)3371
-4682 y([V)-8 b(ariable])-3598 b Fg(rl_linebuf_func_t)57
-b(*)c(rl_char_is_quoted_p)390 4792 y Fs(A)37 b(p)s(oin)m(ter)g(to)g(a)g
+1738 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 1848 y(of)k(the)h(w)m(ord)f(to)g(b)s(e)g
+(dequoted,)j(and)d Fj(quote)p 2014 1848 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
+1958 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 1958 V 41 w(c)m(har)39 b Ft(is)32 b(zero,)i(the)e(\014lename)g(w)m
+(as)h(not)390 2067 y(in)d(an)g(em)m(b)s(edded)g(string.)3371
+2301 y([V)-8 b(ariable])-3598 b Fh(rl_linebuf_func_t)57
+b(*)c(rl_char_is_quoted_p)390 2411 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 4902 y(in)e(the)h(line)f(bu\013er)g
+(sp)s(eci\014c)f(c)m(haracter)390 2521 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 5011 y(calling)26 b(Readline)g(uses.)38
+(the)f(program)390 2630 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 Fi(text)p Fs(,)27 b(the)e(text)h(of)f(the)390 5121
-y(line,)31 b(and)g Fi(index)p Fs(,)f(the)h(index)f(of)h(the)g(c)m
+b Fj(text)p Ft(,)27 b(the)e(text)h(of)f(the)390 2740
+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 5230 y(c)m(haracter)h(found)d(in)g Fr
-(rl_completer_word_break_ch)o(ara)o(cter)o(s)24 b Fs(should)29
-b(b)s(e)h(used)f(to)i(break)390 5340 y(w)m(ords)f(for)g(the)h
-(completer.)p eop end
-%%Page: 49 53
-TeXDict begin 49 52 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(49)3371
-299 y([V)-8 b(ariable])-3598 b Fg(rl_compignore_func_t)58
-b(*)53 b(rl_ignore_some_complet)q(ion)q(s_fu)q(nct)q(ion)390
-408 y Fs(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
-518 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
-Fr(NULL)d Fs(ter-)390 628 y(minated)f(arra)m(y)g(of)g(matc)m(hes.)43
-b(The)31 b(\014rst)f(elemen)m(t)i(\()p Fr(matches[0])p
-Fs(\))d(is)h(the)h(maximal)h(substring)390 737 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 847 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
-1043 y([V)-8 b(ariable])-3598 b Fg(rl_icppfunc_t)56 b(*)d
-(rl_directory_completio)q(n_ho)q(ok)390 1152 y Fs(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
-1262 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 1372 y(pathnames.)70 b(It)41 b(is)f(called)h
+(whether)g(a)390 2849 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 2959 y(w)m(ords)f(for)g(the)h
+(completer.)3371 3193 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 3303 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 3412 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 3522 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
+3631 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
+3741 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 3975 y([V)-8 b(ariable])-3598
+b Fh(rl_icppfunc_t)56 b(*)d(rl_directory_completio)q(n_ho)q(ok)390
+4085 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 4194 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 4304 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 1481 y(as)d(an)f(argumen)m(t,)j(and)d(ma)m(y)i
+(directory)h(name\))390 4413 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 1591 y(string,)j(the)d(old)h(v)-5
+(with)f(a)h(new)390 4523 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 1700
+(directory)i(name)f(should)g(ha)m(v)m(e)i(a)390 4633
y(trailing)c(slash.)54 b(The)35 b(mo)s(di\014ed)e(v)-5
b(alue)36 b(will)f(b)s(e)f(used)g(as)i(part)e(of)h(the)h(completion,)h
-(replacing)390 1810 y(the)32 b(directory)g(p)s(ortion)f(of)h(the)g
+(replacing)390 4742 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 1920 y(expansion)j(is)h(p)s(erformed,)f
+(ev)m(en)g(if)e(no)h(other)390 4852 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 2029 y(directory)c(name,)g(b)s(ecause)f
+(haracters)h(from)e(the)390 4961 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
-Fr(opendir\(\))p Fs(.)390 2170 y(The)25 b(directory)i(completion)g(ho)s
+Fs(opendir\(\))p Ft(.)390 5121 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 2279 y(tion)35 b(mo)s(di\014es)e(its)i(directory)
+(if)e(the)i(func-)390 5230 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 2389 y(argumen)m(t)d(if)f(it)h(returns)e(0.)3371
-2585 y([V)-8 b(ariable])-3598 b Fg(rl_icppfunc_t)56 b(*)d
-(rl_directory_rewrite_h)q(ook;)390 2694 y Fs(If)24 b(non-zero,)i(this)e
+h(directory)390 5340 y(argumen)m(t)d(if)f(it)h(returns)e(0.)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)3371
+299 y([V)-8 b(ariable])-3598 b Fh(rl_icppfunc_t)56 b(*)d
+(rl_directory_rewrite_h)q(ook;)390 408 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 2804 y(This)h(function)g(tak)m
+(completing)h(a)g(directory)g(name.)390 518 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 2914 y(Unlik)m(e)40
-b Fr(rl_directory_completion_h)o(ook)p Fs(,)35 b(it)40
+(di\014ed)g(as)h(an)f(argumen)m(t.)390 628 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
-3023 y(in)35 b Fr(opendir)p Fs(,)g(not)g(what)h(is)f(displa)m(y)m(ed)h
+737 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 3133 y(serted.)k(It)27 b(is)f(called)h(b)s(efore)f(rl)p
-1463 3133 28 4 v 40 w(directory)p 1859 3133 V 41 w(completion)p
-2333 3133 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 3242 y(expansion)35 b(is)h(p)s(erformed,)f(this)h
+390 847 y(serted.)k(It)27 b(is)f(called)h(b)s(efore)f(rl)p
+1463 847 28 4 v 40 w(directory)p 1859 847 V 41 w(completion)p
+2333 847 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 956 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 3352 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 Fr(opendir\(\))p
-Fs(.)390 3492 y(The)37 b(directory)i(rewrite)f(ho)s(ok)f(returns)g(an)h
+(from)e(the)390 1066 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 1199 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
-3602 y(tion)e(mo)s(d\014es)e(its)h(directory)h(argumen)m(t.)58
+1309 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
-3712 y(argumen)m(t)31 b(if)f(it)h(returns)e(0.)3371 3908
-y([V)-8 b(ariable])-3598 b Fg(rl_icppfunc_t)56 b(*)d
-(rl_filename_stat_hook)390 4017 y Fs(If)30 b(non-zero,)h(this)f(is)g
+1418 y(argumen)m(t)31 b(if)f(it)h(returns)e(0.)3371 1598
+y([V)-8 b(ariable])-3598 b Fh(rl_icppfunc_t)56 b(*)d
+(rl_filename_stat_hook)390 1708 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 4127 y(whic)m(h)g(c)m(haracter)i(to)e(app)s
+g(b)s(efore)f(deciding)390 1817 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 4236 y(name)36 b(argumen)m(t,)h(and)e
+(di\014es)f(its)i(\014lename)390 1927 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
-Fr(stat\(\))e Fs(to)i(determine)g(the)g(\014le's)390
-4346 y(t)m(yp)s(e)41 b(and)f(c)m(haracteristics.)73 b(This)40
+Fs(stat\(\))e Ft(to)i(determine)g(the)g(\014le's)390
+2037 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 4456 y(from)30 b(the)g(\014lename.)390
-4596 y(The)i(stat)h(ho)s(ok)f(returns)f(an)h(in)m(teger)i(that)e
+(haracters)390 2146 y(from)30 b(the)g(\014lename.)390
+2279 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 4706 y(directory)42 b(argumen)m(t.)73 b(The)40 b(function)h(should)
+390 2389 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
-4815 y(returns)29 b(0.)3371 5011 y([V)-8 b(ariable])-3598
-b Fg(rl_dequote_func_t)57 b(*)c(rl_filename_rewrite_ho)q(ok)390
-5121 y Fs(If)39 b(non-zero,)k(this)d(is)f(the)h(address)f(of)h(a)g
+2498 y(returns)29 b(0.)3371 2679 y([V)-8 b(ariable])-3598
+b Fh(rl_dequote_func_t)57 b(*)c(rl_filename_rewrite_ho)q(ok)390
+2788 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
-5230 y(from)f(the)h(\014lesystem)g(for)g(completion)h(and)e(comparing)i
+2898 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
-5340 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)p
-eop end
-%%Page: 50 54
-TeXDict begin 50 53 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(50)390
-299 y(con)m(v)m(ersion)35 b(on)g(the)f(\014lename,)i(suc)m(h)d(as)i
+3007 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
+3117 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 408 y(from)f(a)g(\014lesystem)h(format)g(to)g(a)f(c)m
+(v)m(erting)390 3226 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 518 y(men)m(ts:)49 b Fi(fname)p Fs(,)36
+(o)g(argu-)390 3336 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
-Fi(fnlen)p Fs(,)h(its)g(length)g(in)f(b)m(ytes.)53 b(It)35
-b(m)m(ust)390 628 y(either)24 b(return)e(its)h(\014rst)g(argumen)m(t)g
+Fj(fnlen)p Ft(,)h(its)g(length)g(in)f(b)m(ytes.)53 b(It)35
+b(m)m(ust)390 3446 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 737 y(in)j(newly-allo)s(cated)i(memory)-8
+(v)m(erted)i(\014lename)390 3555 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 847 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 956 y(the)j(allo)s(cated)h(string.)3371
-1134 y([V)-8 b(ariable])-3598 b Fg(rl_compdisp_func_t)58
+(against)i(the)e(w)m(ord)390 3665 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 3774 y(the)j(allo)s(cated)h
+(string.)3371 3954 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
-1244 y Fs(If)22 b(non-zero,)i(then)e(this)g(is)g(the)g(address)f(of)h
+4064 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 1354 y(normally)h(displa)m(y)h(the)f(list)h(of)f(p)s(ossible)g
+390 4174 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 1463 y(displa)m(ying)37 b(the)h(list.)61
+(Readline)390 4283 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
-Fr(char)30 b(**)p Fi(matc)m(hes)p Fs(,)39 b Fr(int)d
-Fi(n)m(um)p 3370 1463 28 4 v 40 w(matc)m(hes)p Fs(,)390
-1573 y Fr(int)26 b Fi(max)p 735 1573 V 40 w(length)p
-Fs(\))h(where)f Fi(matc)m(hes)31 b Fs(is)c(the)f(arra)m(y)h(of)g(matc)m
-(hing)g(strings,)h Fi(n)m(um)p 3152 1573 V 39 w(matc)m(hes)j
-Fs(is)c(the)390 1682 y(n)m(um)m(b)s(er)h(of)h(strings)g(in)g(that)g
-(arra)m(y)-8 b(,)31 b(and)d Fi(max)p 2020 1682 V 40 w(length)i
-Fs(is)f(the)g(length)h(of)f(the)g(longest)h(string)f(in)390
-1792 y(that)g(arra)m(y)-8 b(.)41 b(Readline)28 b(pro)m(vides)g(a)h(con)
-m(v)m(enience)h(function,)e Fr(rl_display_match_list)p
-Fs(,)23 b(that)390 1902 y(tak)m(es)36 b(care)g(of)f(doing)g(the)g
-(displa)m(y)f(to)i(Readline's)f(output)g(stream.)54 b(That)35
-b(function)f(ma)m(y)i(b)s(e)390 2011 y(called)c(from)d(this)i(ho)s(ok.)
-3371 2189 y([V)-8 b(ariable])-3598 b Fg(const)54 b(char)f(*)g
-(rl_basic_word_break_ch)q(ara)q(cter)q(s)390 2299 y Fs(The)44
+Fs(char)30 b(**)p Fj(matc)m(hes)p Ft(,)39 b Fs(int)d
+Fj(n)m(um)p 3370 4283 V 40 w(matc)m(hes)p Ft(,)390 4393
+y Fs(int)26 b Fj(max)p 735 4393 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 4393 V 39 w(matc)m(hes)j
+Ft(is)c(the)390 4502 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 4502 V 40 w(length)h
+Ft(is)g(the)f(length)h(of)g(the)f(longest)i(string)390
+4612 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 4722 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 4831 y(function)d(from)g(this)g(ho)s(ok.)
+3371 5011 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 5121 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
-2408 y(routine.)61 b(The)37 b(default)g(v)-5 b(alue)37
+5230 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 2518 y(completion)c(in)e(Bash:)41
-b Fr(")30 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p Fs(.)3371 2696
-y([V)-8 b(ariable])-3598 b Fg(const)54 b(char)f(*)g
-(rl_basic_quote_charact)q(ers)390 2806 y Fs(A)30 b(list)i(of)e(quote)h
+(break)g(w)m(ords)f(for)390 5340 y(completion)c(in)e(Bash:)41
+b Fs(")30 b(\\t\\n\\"\\\\'`@$><=;|&{\(")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)3371
+299 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_basic_quote_charact)q(ers)390 408 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
-2984 y([V)-8 b(ariable])-3598 b Fg(const)54 b(char)f(*)g
-(rl_completer_word_brea)q(k_c)q(hara)q(cte)q(rs)390 3093
-y Fs(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 Fr(rl_complete_)390
-3203 y(internal\(\))p Fs(.)38 b(The)30 b(default)g(list)h(is)g(the)f(v)
--5 b(alue)31 b(of)g Fr(rl_basic_word_break_cha)o(ract)o(ers)p
-Fs(.)3371 3381 y([V)-8 b(ariable])-3598 b Fg(rl_cpvfunc_t)56
-b(*)d(rl_completion_word_brea)q(k_ho)q(ok)390 3491 y
-Fs(If)31 b(non-zero,)i(this)e(is)h(the)f(address)g(of)g(a)h(function)g
+628 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 737
+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
+847 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(.)3371 1066 y([V)-8 b(ariable])-3598 b Fh(rl_cpvfunc_t)56
+b(*)d(rl_completion_word_brea)q(k_ho)q(ok)390 1176 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
-3600 y(to)k(separate)g(w)m(ords)f(for)g(w)m(ord)g(completion.)54
+1285 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
-Fr(rl_)390 3710 y(completer_word_break_cha)o(ract)o(ers)26
-b Fs(to)34 b(b)s(e)e(used)g(to)i(p)s(erform)e(the)h(curren)m(t)f
-(completion.)390 3819 y(The)24 b(function)h(ma)m(y)g(c)m(ho)s(ose)h(to)
-f(set)g Fr(rl_completer_word_break_ch)o(arac)o(ter)o(s)19
-b Fs(itself.)39 b(If)25 b(the)390 3929 y(function)30
-b(returns)f Fr(NULL)p Fs(,)h Fr(rl_completer_word_break)o(_cha)o(rac)o
-(ters)24 b Fs(is)30 b(used.)3371 4107 y([V)-8 b(ariable])-3598
-b Fg(const)54 b(char)f(*)g(rl_completer_quote_cha)q(rac)q(ters)390
-4217 y Fs(A)34 b(list)g(of)g(c)m(haracters)h(whic)m(h)e(can)h(b)s(e)g
+Fs(rl_)390 1395 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 1504 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 1614 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 1833 y([V)-8 b(ariable])-3598
+b Fh(const)54 b(char)f(*)g(rl_completer_quote_cha)q(rac)q(ters)390
+1943 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 4326 y(o)s(ccurs)26 b(on)g(the)g(en)m(tire)i
-(substring,)e(and)f(within)h(the)g(substring)g Fr
-(rl_completer_word_break)o(_)390 4436 y(characters)32
-b Fs(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 4545 y(list.)3371
-4724 y([V)-8 b(ariable])-3598 b Fg(const)54 b(char)f(*)g
-(rl_filename_quote_char)q(act)q(ers)390 4833 y Fs(A)34
+b(Completion)390 2052 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 2162 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 2271 y(list.)3371
+2491 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_filename_quote_char)q(act)q(ers)390 2600 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
-4943 y(app)s(ear)d(in)g(a)h(completed)g(\014lename.)41
+2710 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
-5121 y([V)-8 b(ariable])-3598 b Fg(const)54 b(char)f(*)g
-(rl_special_prefixes)390 5230 y Fs(The)27 b(list)i(of)e(c)m(haracters)j
+2929 y([V)-8 b(ariable])-3598 b Fh(const)54 b(char)f(*)g
+(rl_special_prefixes)390 3039 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 Fi(text)k Fs(when)390 5340 y(it)25 b(is)g(passed)f(to)h
+(left)i(in)e Fj(text)k Ft(when)390 3148 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)p eop end
-%%Page: 51 55
-TeXDict begin 51 54 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(51)390
-299 y(kind)27 b(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 Fr(")p Fs($@)p Fr(")e Fs(so)h(that)g(it)h(can)390
-408 y(complete)j(shell)e(v)-5 b(ariables)31 b(and)f(hostnames.)3371
-628 y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_completion_query_i)q
-(tems)390 737 y Fs(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 847 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 956 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 1176 y([V)-8
-b(ariable])-3598 b Fg(int)53 b(rl_completion_append_)q(char)q(act)q(er)
-390 1285 y Fs(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
-1395 y(c)m(haracter)23 b(is)e(app)s(ended)f(to)i(the)g(inserted)f
+g(help)f(determine)h(what)390 3258 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
+3367 y(complete)j(shell)e(v)-5 b(ariables)31 b(and)f(hostnames.)3371
+3587 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_query_i)q
+(tems)390 3696 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 3806 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 3915 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 4134 y([V)-8 b(ariable])-3598 b Fh(int)53
+b(rl_completion_append_)q(char)q(act)q(er)390 4244 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
+4354 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 1504 y(\(`)31 b('\).)86 b(Setting)46 b(this)f(to)h(the)g
-(n)m(ull)f(c)m(haracter)i(\(`)p Fr(\\0)p Fs('\))f(prev)m(en)m(ts)g(an)m
-(ything)g(b)s(eing)f(app)s(ended)390 1614 y(automatically)-8
+(haracter)390 4463 y(\(`)31 b('\).)86 b(Setting)46 b(this)f(to)h(the)g
+(n)m(ull)f(c)m(haracter)i(\(`)p Fs(\\0)p Ft('\))f(prev)m(en)m(ts)g(an)m
+(ything)g(b)s(eing)f(app)s(ended)390 4573 y(automatically)-8
b(.)66 b(This)37 b(can)h(b)s(e)f(c)m(hanged)h(in)g(application-sp)s
-(eci\014c)h(completion)g(functions)e(to)390 1724 y(pro)m(vide)j(the)g
+(eci\014c)h(completion)g(functions)e(to)390 4682 y(pro)m(vide)j(the)g
(\\most)g(sensible)g(w)m(ord)f(separator)i(c)m(haracter")h(according)e
-(to)h(an)e(application-)390 1833 y(sp)s(eci\014c)30 b(command)g(line)h
-(syn)m(tax)g(sp)s(eci\014cation.)3371 2052 y([V)-8 b(ariable])-3598
-b Fg(int)53 b(rl_completion_suppres)q(s_ap)q(pen)q(d)390
-2162 y Fs(If)33 b(non-zero,)i Fi(rl)p 949 2162 28 4 v
-39 w(completion)p 1421 2162 V 42 w(app)s(end)p 1755 2162
-V 38 w(c)m(haracter)42 b Fs(is)33 b(not)g(app)s(ended)f(to)i(matc)m
-(hes)g(at)g(the)g(end)390 2271 y(of)28 b(the)f(command)h(line,)h(as)e
+(to)h(an)e(application-)390 4792 y(sp)s(eci\014c)30 b(command)g(line)h
+(syn)m(tax)g(sp)s(eci\014cation.)3371 5011 y([V)-8 b(ariable])-3598
+b Fh(int)53 b(rl_completion_suppres)q(s_ap)q(pen)q(d)390
+5121 y Ft(If)33 b(non-zero,)i Fj(rl)p 949 5121 28 4 v
+39 w(completion)p 1421 5121 V 42 w(app)s(end)p 1755 5121
+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 5230 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 2381
+(efore)g(an)m(y)f(application-sp)s(eci\014c)390 5340
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
-2600 y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_completion_quote_c)q
-(hara)q(cte)q(r)390 2710 y Fs(When)36 b(Readline)h(is)f(completing)h
+(e)g(c)m(hanged)h(within)f(suc)m(h)g(a)h(function.)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(int)53 b(rl_completion_quote_c)q
+(hara)q(cte)q(r)390 408 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 2819 y Fi(rl)p 457 2819 V 40 w(completer)p
-885 2819 V 41 w(quote)p 1145 2819 V 41 w(c)m(haracters)p
-Fs(,)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 2929 y(This)30 b(is)g(set)h(b)s(efore)f(an)m
+(haracters)g(in)390 518 y Fj(rl)p 457 518 28 4 v 40 w(completer)p
+885 518 V 41 w(quote)p 1145 518 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 628 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 3148 y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_completion_suppres)
-q(s_qu)q(ote)390 3258 y Fs(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 3367 y(completion)25 b(on)e(a)h(quoted)g(string.)38
+3371 831 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_suppres)q
+(s_qu)q(ote)390 941 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 1050 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 3477 y(function)30 b(is)g(called,)i(and)e
+(eci\014c)h(completion)390 1160 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.)
-3371 3696 y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_completion_found_q)
-q(uote)390 3806 y Fs(When)31 b(Readline)i(is)e(completing)i(quoted)f
+3371 1363 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_found_q)
+q(uote)390 1473 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 3915 y(the)21 b(w)m(ord)g(b)s(eing)g(completed)h
+-5 b(alue)32 b(if)390 1583 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 4025 y(bac)m(kslashes.)42
+(haracters,)i(including)390 1692 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 4244 y([V)-8
-b(ariable])-3598 b Fg(int)53 b(rl_completion_mark_sy)q(mlin)q(k_d)q
-(irs)390 4354 y Fs(If)31 b(non-zero,)i(a)f(slash)g(will)g(b)s(e)f(app)s
+(completion)g(function)e(is)g(called.)3371 1896 y([V)-8
+b(ariable])-3598 b Fh(int)53 b(rl_completion_mark_sy)q(mlin)q(k_d)q
+(irs)390 2005 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 4463 y(to)25 b(directory)g(names,)g(sub)5
+(links)390 2115 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
-Fi(mark-directories)k Fs(v)-5 b(ariable.)390 4573 y(This)27
+Fj(mark-directories)k Ft(v)-5 b(ariable.)390 2225 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
-4682 y(user's)42 b(global)h(preference)g(\(set)g(via)g(the)f
-Fi(mark-symlink)m(ed-directories)48 b Fs(Readline)43
-b(v)-5 b(ariable\))390 4792 y(if)38 b(appropriate.)62
+2334 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 2444 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 4902
+(preference)g(b)s(efore)g(an)m(y)h(application-)390 2553
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 5011 y(user's)d(preferences)g(are)h(honored.)3371
-5230 y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_ignore_completion_)q
-(dupl)q(ica)q(tes)390 5340 y Fs(If)30 b(non-zero,)h(then)f(duplicates)h
+b(alue,)33 b(the)390 2663 y(user's)d(preferences)g(are)h(honored.)3371
+2866 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_ignore_completion_)q
+(dupl)q(ica)q(tes)390 2976 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.)p eop end
-%%Page: 52 56
-TeXDict begin 52 55 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(52)3371
-299 y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_filename_completio)q
-(n_de)q(sir)q(ed)390 408 y Fs(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 518 y(is)40 b Fj(always)49
-b Fs(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 628 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 737 y(function,)24
+b(default)i(is)f(1.)3371 3180 y([V)-8 b(ariable])-3598
+b Fh(int)53 b(rl_filename_completio)q(n_de)q(sir)q(ed)390
+3289 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 3399 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 3508 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 3618 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 847 y(pleted)35
+(Readline)h(attempts)g(to)g(quote)g(com-)390 3727 y(pleted)35
b(\014lenames)g(if)g(they)h(con)m(tain)g(an)m(y)f(c)m(haracters)i(in)e
-Fr(rl_filename_quote_chara)o(cter)o(s)390 956 y Fs(and)30
-b Fr(rl_filename_quoting_des)o(ired)24 b Fs(is)30 b(set)h(to)g(a)g
-(non-zero)g(v)-5 b(alue.)3371 1141 y([V)d(ariable])-3598
-b Fg(int)53 b(rl_filename_quoting_d)q(esir)q(ed)390 1250
-y Fs(Non-zero)29 b(means)f(that)h(the)f(results)g(of)g(the)g(matc)m
+Fs(rl_filename_quote_chara)o(cter)o(s)390 3837 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 4041 y([V)d(ariable])-3598
+b Fh(int)53 b(rl_filename_quoting_d)q(esir)q(ed)390 4150
+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
-1360 y(\(or)43 b(an)f(application-sp)s(eci\014c)i(quoting)f(mec)m
+4260 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
-1469 y(an)m(y)28 b(c)m(haracters)h(in)e Fr(rl_filename_quote_chars)p
-Fs(.)34 b(This)27 b(is)g Fj(always)37 b Fs(non-zero)28
-b(when)f(comple-)390 1579 y(tion)h(is)g(attempted,)h(and)e(can)h(only)g
+4369 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 4479 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 1689 y(function.)37 b(The)21 b(quoting)g(is)g
+(completion)390 4589 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 Fr(rl_filename_)390 1798 y(quoting_function)p
-Fs(.)3371 1983 y([V)-8 b(ariable])-3598 b Fg(int)53 b
-(rl_attempted_completi)q(on_o)q(ver)390 2092 y Fs(If)93
+(to)g(b)m(y)g Fs(rl_filename_)390 4698 y(quoting_function)p
+Ft(.)3371 4902 y([V)-8 b(ariable])-3598 b Fh(int)53 b
+(rl_attempted_completi)q(on_o)q(ver)390 5011 y Ft(If)93
b(an)h(application-sp)s(eci\014c)i(completion)f(function)f(assigned)g
-(to)h Fr(rl_attempted_)390 2202 y(completion_function)48
-b Fs(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 2311 y(p)s(erform)28
+(to)h Fs(rl_attempted_)390 5121 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 5230 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 2421 y(returns)e(no)h(matc)m
+(application's)i(completion)g(function)390 5340 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 2605 y([V)-8
-b(ariable])-3598 b Fg(int)53 b(rl_sort_completion_ma)q(tche)q(s)390
-2715 y Fs(If)29 b(an)h(application)h(sets)f(this)g(v)-5
+(application's)i(completion)f(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_sort_completion_ma)q
+(tche)q(s)390 408 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 2824 y(\(whic)m(h)25 b(implies)f(that)i(it)f
+(of)f(completions)390 518 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 2934 y(1,)32
+b(The)24 b(default)h(v)-5 b(alue)25 b(is)390 628 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 3044
-y(of)31 b Fr(rl_ignore_completion_du)o(pli)o(cate)o(s)p
-Fs(,)25 b(will)30 b(attempt)i(to)f(remo)m(v)m(e)h(duplicate)f(matc)m
-(hes.)3371 3228 y([V)-8 b(ariable])-3598 b Fg(int)53
-b(rl_completion_type)390 3337 y Fs(Set)35 b(to)h(a)f(c)m(haracter)i
+h(and,)f(dep)s(ending)f(on)h(the)g(v)-5 b(alue)390 737
+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 922 y([V)-8 b(ariable])-3598 b Fh(int)53 b
+(rl_completion_type)390 1031 y Ft(Set)35 b(to)h(a)f(c)m(haracter)i
(describing)e(the)g(t)m(yp)s(e)g(of)g(completion)i(Readline)e(is)g
-(curren)m(tly)h(attempt-)390 3447 y(ing;)f(see)f(the)g(description)f
-(of)g Fr(rl_complete_internal\(\))28 b Fs(\(see)34 b(Section)g(2.6.2)h
-([Completion)390 3557 y(F)-8 b(unctions],)39 b(page)f(47\))f(for)g(the)
+(curren)m(tly)h(attempt-)390 1141 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 1250 y(F)-8 b(unctions],)39 b(page)f(50\))f(for)g(the)
g(list)g(of)g(c)m(haracters.)61 b(This)36 b(is)g(set)i(to)f(the)g
-(appropriate)f(v)-5 b(alue)390 3666 y(b)s(efore)31 b(an)m(y)h
+(appropriate)f(v)-5 b(alue)390 1360 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 3776 y(to)g(presen)m(t)g(the)f
-(same)h(in)m(terface)h(as)e Fr(rl_complete\(\))p Fs(.)3371
-3960 y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_completion_invokin)q
-(g_ke)q(y)390 4070 y Fs(Set)41 b(to)g(the)g(\014nal)g(c)m(haracter)h
+(allo)m(wing)f(suc)m(h)e(functions)390 1469 y(to)g(presen)m(t)g(the)f
+(same)h(in)m(terface)h(as)e Fs(rl_complete\(\))p Ft(.)3371
+1654 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_completion_invokin)q
+(g_ke)q(y)390 1763 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 4179 y(functions)c(that)h(call)h
-Fr(rl_complete_internal\(\))p Fs(.)56 b(This)37 b(is)g(set)h(to)g(the)g
-(appropriate)f(v)-5 b(alue)390 4289 y(b)s(efore)30 b(an)m(y)h
+(the)g(completion)390 1873 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 1983 y(b)s(efore)30 b(an)m(y)h
(application-sp)s(eci\014c)h(completion)f(function)f(is)h(called.)3371
-4473 y([V)-8 b(ariable])-3598 b Fg(int)53 b(rl_inhibit_completion)390
-4583 y Fs(If)28 b(this)g(v)-5 b(ariable)29 b(is)f(non-zero,)i
+2167 y([V)-8 b(ariable])-3598 b Fh(int)53 b(rl_inhibit_completion)390
+2276 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 4692 y(inserted)h(as)h(an)m(y)g(other)f(b)s(ound)e
-(to)k Fr(self-insert)p Fs(.)150 4892 y Fh(2.6.4)63 b(A)40
-b(Short)i(Completion)g(Example)150 5039 y Fs(Here)30
+(will)f(b)s(e)390 2386 y(inserted)h(as)h(an)m(y)g(other)f(b)s(ound)e
+(to)k Fs(self-insert)p Ft(.)150 2585 y Fi(2.6.4)63 b(A)40
+b(Short)i(Completion)g(Example)150 2732 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
-5148 y Fr(fileman)p Fs(,)40 b(and)f(the)h(source)g(co)s(de)g(resides)f
-(in)g Fr(examples/fileman.c)p Fs(.)64 b(This)39 b(sample)h(application)
-150 5258 y(pro)m(vides)26 b(completion)i(of)e(command)g(names,)h(line)f
+2842 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 2951 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: 53 57
-TeXDict begin 53 56 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(53)390
+%%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 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)
@@ -10494,9 +10678,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: 54 58
-TeXDict begin 54 57 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(54)390
+%%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
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
@@ -10532,9 +10716,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: 55 59
-TeXDict begin 55 58 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(55)625
+%%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)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
@@ -10561,9 +10745,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: 56 60
-TeXDict begin 56 59 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(56)468
+%%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)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
@@ -10604,9 +10788,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: 57 61
-TeXDict begin 57 60 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(57)390
+%%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)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
@@ -10645,9 +10829,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: 58 62
-TeXDict begin 58 61 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(58)390
+%%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
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
@@ -10675,9 +10859,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: 59 63
-TeXDict begin 59 62 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(59)468
+%%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)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\)\);)
@@ -10706,9 +10890,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: 60 64
-TeXDict begin 60 63 bop 150 -116 a Fs(Chapter)30 b(2:)41
-b(Programming)30 b(with)g(GNU)h(Readline)1683 b(60)625
+%%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)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
@@ -10737,22 +10921,20 @@ 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: 61 65
-TeXDict begin 61 64 bop 150 -116 a Fs(App)s(endix)29
-b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1603
-b(61)150 299 y Fo(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 Fs(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 Fp(\015)e
-Fs(2000,)j(2001,)f(2002,)g(2007,)h(2008)f(F)-8 b(ree)31
+%%Page: 65 69
+TeXDict begin 65 68 bop 3659 -116 a Ft(65)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
+Ft(2000,)j(2001,)f(2002,)g(2007,)h(2008)f(F)-8 b(ree)31
b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 745
-y Fr(http://fsf.org/)390 964 y Fs(Ev)m(ery)m(one)g(is)g(p)s(ermitted)f
+y Fs(http://fsf.org/)390 964 y Ft(Ev)m(ery)m(one)g(is)g(p)s(ermitted)f
(to)h(cop)m(y)g(and)f(distribute)g(v)m(erbatim)h(copies)390
1074 y(of)g(this)f(license)h(do)s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f
(is)f(not)h(allo)m(w)m(ed.)199 1207 y(0.)61 b(PREAMBLE)330
1340 y(The)37 b(purp)s(ose)e(of)i(this)g(License)h(is)f(to)h(mak)m(e)g
(a)g(man)m(ual,)h(textb)s(o)s(ok,)h(or)d(other)g(functional)h(and)330
-1450 y(useful)29 b(do)s(cumen)m(t)h Fi(free)36 b Fs(in)29
+1450 y(useful)29 b(do)s(cumen)m(t)h Fj(free)36 b Ft(in)29
b(the)i(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j
(the)e(e\013ectiv)m(e)j(freedom)330 1559 y(to)f(cop)m(y)g(and)f
(redistribute)g(it,)h(with)g(or)f(without)g(mo)s(difying)g(it,)i
@@ -10821,10 +11003,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: 62 66
-TeXDict begin 62 65 bop 150 -116 a Fs(App)s(endix)29
+%%Page: 66 70
+TeXDict begin 66 69 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(62)330 299 y(under)26 b(this)i(License.)40 b(If)27
+b(66)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
@@ -10862,23 +11044,23 @@ b(is)f(not)h(T)-8 b(ransparen)m(t)34 b(if)g(used)g(for)g(an)m(y)g
(substan)m(tial)h(amoun)m(t)g(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g
(is)330 2134 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)f(called)i
(\\Opaque".)330 2285 y(Examples)53 b(of)g(suitable)h(formats)f(for)g(T)
--8 b(ransparen)m(t)53 b(copies)h(include)f(plain)g Fl(asci)r(i)g
-Fs(without)330 2395 y(markup,)37 b(T)-8 b(exinfo)36 b(input)f(format,)j
+-8 b(ransparen)m(t)53 b(copies)h(include)f(plain)g Fm(asci)r(i)g
+Ft(without)330 2395 y(markup,)37 b(T)-8 b(exinfo)36 b(input)f(format,)j
(LaT)1759 2414 y(E)1810 2395 y(X)e(input)f(format,)j
-Fd(SGML)f Fs(or)f Fd(XML)g Fs(using)g(a)g(publicly)330
-2504 y(a)m(v)-5 b(ailable)42 b Fd(DTD)p Fs(,)h(and)c
-(standard-conforming)g(simple)h Fd(HTML)p Fs(,)i(P)m(ostScript)e(or)f
-Fd(PDF)h Fs(designed)330 2614 y(for)e(h)m(uman)f(mo)s(di\014cation.)65
+Fd(SGML)f Ft(or)f Fd(XML)g Ft(using)g(a)g(publicly)330
+2504 y(a)m(v)-5 b(ailable)42 b Fd(DTD)p Ft(,)h(and)c
+(standard-conforming)g(simple)h Fd(HTML)p Ft(,)i(P)m(ostScript)e(or)f
+Fd(PDF)h Ft(designed)330 2614 y(for)e(h)m(uman)f(mo)s(di\014cation.)65
b(Examples)38 b(of)h(transparen)m(t)f(image)h(formats)g(include)f
-Fd(PNG)p Fs(,)i Fd(X)n(CF)330 2724 y Fs(and)e Fd(JPG)p
-Fs(.)64 b(Opaque)38 b(formats)h(include)f(proprietary)h(formats)f(that)
+Fd(PNG)p Ft(,)i Fd(X)n(CF)330 2724 y Ft(and)e Fd(JPG)p
+Ft(.)64 b(Opaque)38 b(formats)h(include)f(proprietary)h(formats)f(that)
h(can)g(b)s(e)f(read)h(and)f(edited)330 2833 y(only)54
b(b)m(y)f(proprietary)h(w)m(ord)f(pro)s(cessors,)59 b
-Fd(SGML)54 b Fs(or)f Fd(XML)h Fs(for)g(whic)m(h)f(the)h
-Fd(DTD)g Fs(and/or)330 2943 y(pro)s(cessing)61 b(to)s(ols)h(are)f(not)g
+Fd(SGML)54 b Ft(or)f Fd(XML)h Ft(for)g(whic)m(h)f(the)h
+Fd(DTD)g Ft(and/or)330 2943 y(pro)s(cessing)61 b(to)s(ols)h(are)f(not)g
(generally)i(a)m(v)-5 b(ailable,)71 b(and)60 b(the)h(mac)m
-(hine-generated)j Fd(HTML)p Fs(,)330 3052 y(P)m(ostScript)31
-b(or)f Fd(PDF)h Fs(pro)s(duced)d(b)m(y)j(some)f(w)m(ord)g(pro)s
+(hine-generated)j Fd(HTML)p Ft(,)330 3052 y(P)m(ostScript)31
+b(or)f Fd(PDF)h Ft(pro)s(duced)d(b)m(y)j(some)f(w)m(ord)g(pro)s
(cessors)g(for)g(output)g(purp)s(oses)f(only)-8 b(.)330
3203 y(The)34 b(\\Title)h(P)m(age")i(means,)e(for)f(a)h(prin)m(ted)f(b)
s(o)s(ok,)h(the)f(title)i(page)f(itself,)h(plus)e(suc)m(h)f(follo)m
@@ -10915,10 +11097,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: 63 67
-TeXDict begin 63 66 bop 150 -116 a Fs(App)s(endix)29
+%%Page: 67 71
+TeXDict begin 67 70 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(63)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
+b(67)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
@@ -11008,10 +11190,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: 64 68
-TeXDict begin 64 67 bop 150 -116 a Fs(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(64)510 299 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g
+b(68)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
@@ -11090,10 +11272,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: 65 69
-TeXDict begin 65 68 bop 150 -116 a Fs(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(65)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
+b(69)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
@@ -11178,10 +11360,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: 66 70
-TeXDict begin 66 69 bop 150 -116 a Fs(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(66)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h
+b(70)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
@@ -11266,10 +11448,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: 67 71
-TeXDict begin 67 70 bop 150 -116 a Fs(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(67)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)330
+b(71)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
@@ -11277,7 +11459,7 @@ b(License)e(from)g(time)h(to)g(time.)46 b(Suc)m(h)31
b(new)h(v)m(ersions)g(will)h(b)s(e)e(similar)h(in)g(spirit)330
653 y(to)j(the)g(presen)m(t)f(v)m(ersion,)i(but)e(ma)m(y)h(di\013er)f
(in)g(detail)h(to)g(address)f(new)g(problems)f(or)i(concerns.)330
-762 y(See)c Fr(http://www.gnu.org/copy)o(left)o(/)p Fs(.)330
+762 y(See)c Fs(http://www.gnu.org/copy)o(left)o(/)p Ft(.)330
897 y(Eac)m(h)f(v)m(ersion)g(of)g(the)f(License)h(is)g(giv)m(en)g(a)g
(distinguishing)f(v)m(ersion)h(n)m(um)m(b)s(er.)39 b(If)29
b(the)g(Do)s(cumen)m(t)330 1006 y(sp)s(eci\014es)45 b(that)h(a)g
@@ -11333,11 +11515,11 @@ 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: 68 72
-TeXDict begin 68 71 bop 150 -116 a Fs(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(68)150 299 y Fq(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 Fs(T)-8 b(o)35
+b(72)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
568 y(do)s(cumen)m(t)30 b(and)g(put)g(the)g(follo)m(wing)i(cop)m(yrigh)
@@ -11351,7 +11533,7 @@ y(under)h(the)f(terms)g(of)g(the)g(GNU)g(Free)g(Documentation)i
1029 y(with)g(no)e(Invariant)j(Sections,)f(no)f(Front-Cover)h(Texts,)g
(and)f(no)f(Back-Cover)468 1116 y(Texts.)80 b(A)40 b(copy)g(of)g(the)f
(license)i(is)f(included)h(in)f(the)g(section)g(entitled)h(``GNU)468
-1203 y(Free)g(Documentation)h(License''.)275 1337 y Fs(If)d(y)m(ou)h
+1203 y(Free)g(Documentation)h(License''.)275 1337 y Ft(If)d(y)m(ou)h
(ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)41 b(Sections,)i(F)-8
b(ron)m(t-Co)m(v)m(er)42 b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k
(T)-8 b(exts,)43 b(replace)e(the)150 1447 y(\\with)6
@@ -11359,7 +11541,7 @@ b(.)22 b(.)g(.)12 b(T)-8 b(exts.")41 b(line)31 b(with)f(this:)547
1559 y Fe(with)40 b(the)g(Invariant)h(Sections)g(being)g
Fc(list)f(their)g(titles)p Fe(,)h(with)547 1646 y(the)f(Front-Cover)i
(Texts)e(being)g Fc(list)p Fe(,)h(and)f(with)g(the)g(Back-Cover)h
-(Texts)547 1733 y(being)f Fc(list)p Fe(.)275 1868 y Fs(If)34
+(Texts)547 1733 y(being)f Fc(list)p Fe(.)275 1868 y Ft(If)34
b(y)m(ou)i(ha)m(v)m(e)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(without)f
(Co)m(v)m(er)h(T)-8 b(exts,)38 b(or)d(some)g(other)h(com)m(bination)g
(of)g(the)150 1978 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g
@@ -11371,805 +11553,654 @@ 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: 69 73
-TeXDict begin 69 72 bop 150 -116 a Fs(Concept)31 b(Index)2927
-b(69)150 299 y Fo(Concept)52 b(Index)150 638 y Fq(A)150
-754 y Fb(application-sp)r(eci\014c)27 b(completion)f(functions)17
-b Fa(:)d(:)f(:)g(:)g(:)h(:)f(:)43 b Fb(46)150 1005 y
-Fq(C)150 1121 y Fb(command)26 b(editing)17 b Fa(:)d(:)f(:)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(:)44 b Fb(1)150 1372 y Fq(E)150
-1488 y Fb(editing)26 b(command)g(lines)15 b Fa(:)f(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)42 b Fb(1)150 1738 y Fq(I)150 1855 y Fb(initialization)28
-b(\014le,)e(readline)15 b Fa(:)f(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b
-Fb(4)150 1942 y(in)n(teraction,)27 b(readline)c Fa(:)13
+%%Page: 73 77
+TeXDict begin 73 76 bop 150 -116 a Ft(Concept)31 b(Index)2927
+b(73)150 100 y Fp(Concept)52 b(Index)146 434 y Fr(A)150
+550 y Fb(application-sp)r(eci\014c)27 b(completion)f(functions)e
+Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(49)146 796 y
+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
+y Fr(E)150 1275 y Fb(editing)26 b(command)g(lines)c 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(:)36 b Fb(1)146 1522 y Fr(I)150
+1638 y Fb(initialization)28 b(\014le,)e(readline)c Fa(:)13
b(:)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(:)49 b Fb(1)150
-2193 y Fq(K)150 2309 y Fb(kill)26 b(ring)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(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)50
-b Fb(2)2025 638 y(killing)26 b(text)21 b Fa(:)14 b(:)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(:)49
-b Fb(2)2025 925 y Fq(N)2025 1056 y Fb(notation,)26 b(readline)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(:)g(:)g(:)h(:)f(:)g(:)g(:)38
-b Fb(1)2025 1343 y Fq(R)2025 1474 y Fb(readline,)26 b(function)12
-b Fa(:)i(:)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(:)39
-b Fb(22)2025 1761 y Fq(V)2025 1891 y Fb(v)l(ariables,)27
-b(readline)c Fa(:)13 b(:)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(:)50
-b Fb(4)2025 2178 y Fq(Y)2025 2309 y Fb(y)n(anking)25
-b(text)11 b Fa(:)h(:)h(:)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(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)38 b Fb(2)p eop end
-%%Page: 70 74
-TeXDict begin 70 73 bop 150 -116 a Fs(F)-8 b(unction)31
-b(and)f(V)-8 b(ariable)32 b(Index)2370 b(70)150 299 y
-Fo(F)-13 b(unction)52 b(and)h(V)-13 b(ariable)53 b(Index)p
-159 610 41 6 v 150 726 a Fe(_rl_digit_p)24 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(:)h(:)f(:)g(:)g(:)g(:)g(:)48
-b Fb(39)150 814 y Fe(_rl_digit_value)11 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)36 b Fb(4)150 1726 y(in)n(teraction,)27
+b(readline)12 b Fa(:)h(:)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(:)26
+b Fb(1)146 1972 y Fr(K)150 2088 y Fb(kill)g(ring)12 b
+Fa(:)h(:)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(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(39)150 901 y Fe(_rl_lowercase_p)11
-b Fa(:)17 b(:)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(:)38
-b Fb(39)150 988 y Fe(_rl_to_lower)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(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(39)150 1076
-y Fe(_rl_to_upper)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(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)45 b Fb(39)150 1163 y Fe(_rl_uppercase_p)11
-b Fa(:)17 b(:)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(:)38
-b Fb(38)150 1415 y Fq(A)150 1531 y Fe(abort)27 b(\(C-g\))11
-b Fa(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(2)150 2176 y(killing)g(text)11
+b Fa(:)h(:)h(:)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(:)g
+(:)g(:)g(:)g(:)26 b Fb(2)2021 434 y Fr(N)2025 566 y Fb(notation,)g
+(readline)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(:)h(:)f(:)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(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: 74 78
+TeXDict begin 74 77 bop 3659 -116 a Ft(74)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
+(:)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(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)32 b Fb(41)150 1043 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(:)
+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
+1222 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
+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 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
-(:)37 b Fb(19)150 1618 y Fe(accept-line)28 b(\(Newline)g(or)e(Return\))
-8 b Fa(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34
-b Fb(14)150 1871 y Fq(B)150 1987 y Fe(backward-char)29
-b(\(C-b\))8 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34
-b Fb(14)150 2074 y Fe(backward-delete-char)c(\(Rubout\))17
-b Fa(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)43
-b Fb(16)150 2161 y Fe(backward-kill-line)30 b(\(C-x)c(Rubout\))18
-b Fa(:)d(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)45
-b Fb(17)150 2249 y Fe(backward-kill-word)30 b(\(M-DEL\))7
-b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)33 b Fb(17)150 2336 y Fe(backward-word)c(\(M-b\))8
-b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(14)150
-2423 y Fe(beginning-of-history)c(\(M-<\))7 b Fa(:)15
-b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33
-b Fb(15)150 2511 y Fe(beginning-of-line)c(\(C-a\))15
-b Fa(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)41 b Fb(14)150 2598 y(b)r(ell-st)n(yle)21
-b Fa(:)13 b(:)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(:)g(:)g(:)h(:)f(:)47 b Fb(4)150 2685 y(bind-tt)n(y-sp)r(ecial-c)n
-(hars)15 b Fa(:)d(:)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(:)42
-b Fb(5)150 2935 y Fq(C)150 3051 y Fe(call-last-kbd-macro)30
-b(\(C-x)c(e\))11 b Fa(:)j(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)38 b Fb(19)150 3139 y Fe(capitalize-word)29
-b(\(M-c\))21 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(17)150
-3226 y Fe(character-search)29 b(\(C-]\))17 b Fa(:)e(:)e(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(20)150 3313 y Fe(character-search-backward)31 b(\(M-C-]\))6
-b Fa(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)33 b Fb(20)150
-3401 y Fe(clear-screen)28 b(\(C-l\))10 b Fa(:)15 b(:)e(:)g(:)g(:)h(:)f
+(:)31 b Fb(22)150 1815 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(16)146 2111 y Fr(B)150 2234 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
+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
+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(19)150 2503 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
+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
+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(:)
+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
+(:)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(:)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
+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
+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(18)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(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(21)150
+3636 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(:)
-g(:)g(:)g(:)37 b Fb(14)150 3488 y(colored-stats)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(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)37 b Fb(5)150 3575 y(commen)n(t-b)r(egin)17 b Fa(:)d(:)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(:)44 b Fb(5)150
-3662 y Fe(complete)27 b(\(TAB\))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(:)47 b Fb(18)150 3750 y(completion-displa)n
-(y-width)22 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(:)48 b Fb(5)150
-3837 y(completion-ignore-case)13 b Fa(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:)g
+23 b Fb(19)150 3726 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
+(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(:)
-40 b Fb(5)150 3924 y(completion-map-case)9 b Fa(:)14
-b(:)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(:)36 b Fb(5)150
-4012 y(completion-pre\014x-displa)n(y-length)8 b Fa(:)k(:)h(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)34 b Fb(5)150
-4099 y(completion-query-items)17 b Fa(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)44
-b Fb(5)150 4186 y(con)n(v)n(ert-meta)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(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)47 b Fb(5)150
-4273 y Fe(copy-backward-word)30 b(\(\))20 b Fa(:)13 b(:)g(:)g(:)h(:)f
+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(:)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(:)
-46 b Fb(18)150 4361 y Fe(copy-forward-word)29 b(\(\))23
-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(:)49 b Fb(18)150 4448 y
-Fe(copy-region-as-kill)30 b(\(\))17 b Fa(:)d(:)f(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(18)150 4700 y Fq(D)150 4816 y Fe(delete-char)28
-b(\(C-d\))13 b Fa(:)h(:)f(:)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(:)39
-b Fb(16)150 4904 y Fe(delete-char-or-list)30 b(\(\))17
-b Fa(:)d(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)44 b Fb(19)150 4991 y Fe(delete-horizontal-space)31
-b(\(\))7 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)33 b Fb(18)150 5078 y Fe(digit-argument)c(\()p
-Fc(M-0)p Fe(,)e Fc(M-1)p Fe(,)f(...)g Fc(M--)p Fe(\))7
-b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(18)150
-5166 y(disable-completion)13 b Fa(:)h(:)g(:)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(:)40 b Fb(6)150 5253 y Fe(do-uppercase-version)30
-b(\(M-a,)d(M-b,)f(M-)p Fc(x)p Fe(,)h(...)q(\))310 5340
-y 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(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(20)2025 610
-y Fe(downcase-word)28 b(\(M-l\))8 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(:)g(:)g(:)
-h(:)34 b Fb(17)2025 698 y Fe(dump-functions)29 b(\(\))13
-b Fa(:)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(:)39 b Fb(20)2025
-786 y Fe(dump-macros)28 b(\(\))21 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(:)h(:)f(:)g(:)47 b Fb(21)2025 874 y Fe(dump-variables)29
-b(\(\))13 b Fa(:)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(:)39
-b Fb(21)2025 1130 y Fq(E)2025 1247 y Fb(editing-mo)r(de)21
+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
+(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
+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-uppercase-version)c(\(M-a,)d(M-b,)f(M-)p
+Fc(x)p Fe(,)h(...\))12 b Fa(:)i(:)27 b Fb(22)2025 1464
+y Fe(downcase-word)h(\(M-l\))14 b Fa(:)g(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)28
+b Fb(19)2025 1552 y Fe(dump-functions)h(\(\))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)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(:)48 b Fb(6)2025 1335 y Fe(emacs-editing-mode)29 b(\(C-e\))12
-b Fa(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)39 b Fb(21)2025 1423 y(enable-k)n(eypad)17
-b Fa(:)c(:)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(:)46
-b Fb(6)2025 1511 y Fe(end-kbd-macro)28 b(\(C-x)f(\)\))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(:)36 b Fb(19)2025 1599 y Fc(end-of-file)28
-b Fe(\(usually)f(C-d\))16 b Fa(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)43 b Fb(16)2025 1687
-y Fe(end-of-history)29 b(\(M->\))23 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(:)49
-b Fb(15)2025 1775 y Fe(end-of-line)28 b(\(C-e\))13 b
-Fa(:)h(:)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(:)h(:)39 b Fb(14)2025
-1863 y Fe(exchange-point-and-mark)31 b(\(C-x)26 b(C-x\))13
-b Fa(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(20)2025
-1951 y(expand-tilde)14 b Fa(:)e(:)h(:)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(:)41 b Fb(6)2025 2205 y Fq(F)2025
-2322 y Fe(forward-backward-delete-char)32 b(\(\))11 b
-Fa(:)j(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38 b
-Fb(16)2025 2410 y Fe(forward-char)28 b(\(C-f\))10 b Fa(:)15
-b(:)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(:)37 b Fb(14)2025 2498
-y Fe(forward-search-history)30 b(\(C-s\))21 b Fa(:)13
-b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)46
-b Fb(15)2025 2586 y Fe(forward-word)28 b(\(M-f\))10 b
-Fa(:)15 b(:)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(:)37 b Fb(14)2025
-2831 y Fq(H)2025 2949 y Fb(history-preserv)n(e-p)r(oin)n(t)9
-b Fa(:)j(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)36 b Fb(6)2025
-3037 y Fe(history-search-backward)31 b(\(\))7 b Fa(:)13
-b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34
-b Fb(15)2025 3125 y Fe(history-search-forward)c(\(\))10
-b Fa(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)36 b Fb(15)2025 3213 y(history-size)16 b Fa(:)d(:)h(:)f(:)g(:)g
+g(:)g(:)h(:)f(:)g(:)g(:)24 b Fb(23)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
+(haracters)13 b Fa(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)29
+b Fb(6)2025 2196 y(editing-mo)r(de)10 b Fa(:)j(:)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(:)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(:)
+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
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)33
+b Fb(6)2025 2548 y(enable-k)n(eypad)7 b Fa(:)12 b(:)h(:)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(:)g(:)g(:)g(:)g(:)23 b Fb(7)2025
+2636 y Fe(end-kbd-macro)28 b(\(C-x)f(\)\))16 b Fa(:)d(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)30 b Fb(21)2025 2724 y Fc(end-of-file)e Fe(\(usually)f(C-d\))d
+Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)37 b Fb(18)2025 2812 y Fe(end-of-history)29
+b(\(M->\))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(17)2025
+2900 y Fe(end-of-line)i(\(C-e\))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(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
(:)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(:)43
-b Fb(6)2025 3301 y Fe(history-substr-search-backward)32
-b(\(\))6 b Fa(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)33
-b Fb(15)2025 3389 y Fe(history-substr-search-forward)f(\(\))9
-b Fa(:)k(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)35 b Fb(15)2025
-3477 y(horizon)n(tal-scroll-mo)r(de)23 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)48 b Fb(6)2025 3713 y Fq(I)2025 3831 y Fb(input-meta)19
-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(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)47 b Fb(7)2025 3919 y Fe(insert-comment)29
-b(\(M-#\))23 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(:)49 b Fb(20)2025
-4007 y Fe(insert-completions)29 b(\(M-*\))12 b Fa(:)j(:)e(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)39
-b Fb(19)2025 4095 y(isearc)n(h-terminators)21 b Fa(:)13
+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
+(:)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
+(:)g(:)g(:)23 b Fb(17)2025 3718 y Fe(forward-word)28
+b(\(M-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)2021 3970 y Fr(H)2025 4089 y Fb(history-preserv)n(e-p)r(oin)n
+(t)15 b Fa(:)d(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)30 b Fb(7)2025
+4177 y Fe(history-search-backward)h(\(\))13 b Fa(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)28 b
+Fb(17)2025 4265 y Fe(history-search-forward)i(\(\))16
+b Fa(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)30 b Fb(17)2025 4353 y(history-size)22 b Fa(:)13
b(:)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(:)47 b Fb(7)2025
-4332 y Fq(K)2025 4449 y Fb(k)n(eymap)8 b Fa(:)k(:)h(:)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(:)g(:)35
-b Fb(7)2025 4537 y Fe(kill-line)27 b(\(C-k\))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(:)45 b Fb(17)2025 4625 y
-Fe(kill-region)28 b(\(\))21 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)37 b Fb(7)2025 4441 y Fe(history-substr-search-backward)32
+b(\(\))12 b Fa(:)i(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)27
+b Fb(17)2025 4529 y Fe(history-substr-search-forward)32
+b(\(\))15 b Fa(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)29
+b Fb(17)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 b Fa(:)j(:)h(:)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(:)g(:)g(:)g(:)g(:)24
+b Fb(7)2025 5074 y Fe(insert-comment)29 b(\(M-#\))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(22)2025 5162
+y Fe(insert-completions)j(\(M-*\))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(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: 75 79
+TeXDict begin 75 78 bop 150 -116 a Ft(F)-8 b(unction)31
+b(and)f(V)-8 b(ariable)32 b(Index)2370 b(75)146 294 y
+Fr(K)150 426 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(:)
-g(:)h(:)f(:)g(:)47 b Fb(18)2025 4713 y Fe(kill-whole-line)29
-b(\(\))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(:)g(:)g(:)g(:)37
-b Fb(17)2025 4801 y Fe(kill-word)27 b(\(M-d\))18 b Fa(:)d(:)e(:)g(:)g
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)29
+b Fb(8)150 519 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 611 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 703 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(19)150 791 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(19)146 1136 y Fr(M)150 1268 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
+1360 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 1453 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 1545 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
+1638 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 1730 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 1817 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(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(17)2025 5046
-y Fq(M)2025 5164 y Fb(mark-mo)r(di\014ed-lines)11 b Fa(:)i(:)g(:)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(:)38 b Fb(7)2025 5252 y(mark-symlink)n
-(ed-directories)8 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(7)2025
-5340 y(matc)n(h-hidden-\014les)18 b Fa(:)12 b(:)h(:)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(:)45 b Fb(7)p eop end
-%%Page: 71 75
-TeXDict begin 71 74 bop 150 -116 a Fs(F)-8 b(unction)31
-b(and)f(V)-8 b(ariable)32 b(Index)2370 b(71)150 299 y
-Fe(menu-complete)29 b(\(\))16 b Fa(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+h(:)f(:)g(:)36 b Fb(7)146 2171 y Fr(N)150 2303 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 2387 y Fe(non-incremental-forward-)227 2474
+y(search-history)e(\(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 2561 y Fe(non-incremental-reverse-)227 2648
+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 3012 y Fr(O)150 3145 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(:)
-g(:)g(:)42 b Fb(19)150 386 y Fe(menu-complete-backward)31
-b(\(\))10 b Fa(:)j(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)36 b Fb(19)150 473 y(men)n(u-complete-displa)n
-(y-pre\014x)19 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)48 b Fb(8)150 561 y(meta-\015ag)15
-b Fa(:)f(:)f(:)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(:)g
-(:)g(:)h(:)f(:)g(:)42 b Fb(7)150 811 y Fq(N)150 927 y
-Fe(next-history)28 b(\(C-n\))10 b Fa(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)37 b Fb(15)150 1014 y Fe(non-incremental-forward-searc)q(h-hi)q
-(story)32 b(\(M-n\))310 1102 y 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(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33
-b Fb(15)150 1189 y Fe(non-incremental-reverse-searc)q(h-hi)q(story)f
-(\(M-p\))310 1276 y 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(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33
-b Fb(15)150 1510 y Fq(O)150 1626 y Fb(output-meta)13
-b Fa(:)f(:)i(:)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
-(:)g(:)40 b Fb(8)150 1713 y Fe(overwrite-mode)29 b(\(\))13
-b Fa(:)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(:)39 b Fb(17)150
-1955 y Fq(P)150 2071 y Fb(page-completions)21 b Fa(:)13
-b(:)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(:)46
-b Fb(8)150 2158 y Fe(possible-completions)30 b(\(M-?\))7
-b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)33 b Fb(19)150 2246 y Fe(prefix-meta)28 b(\(ESC\))13
-b Fa(:)h(:)f(:)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(:)39 b Fb(20)150
-2333 y Fe(previous-history)29 b(\(C-p\))17 b Fa(:)e(:)e(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(14)150 2420 y Fe(print-last-kbd-macro)30 b(\(\))15
-b Fa(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)41 b Fb(19)150 2673 y Fq(Q)150 2789 y
-Fe(quoted-insert)29 b(\(C-q)d(or)g(C-v\))c Fa(:)13 b(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)47 b
-Fb(16)150 3041 y Fq(R)150 3157 y Fe(re-read-init-file)29
-b(\(C-x)e(C-r\))11 b Fa(:)j(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)38 b Fb(19)150 3245 y Fe(readline)12
-b Fa(:)j(:)e(:)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(:)g(:)g(:)g
-(:)g(:)h(:)f(:)38 b Fb(22)150 3332 y Fe(redraw-current-line)30
-b(\(\))17 b Fa(:)d(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(14)150 3419 y
-Fe(reverse-search-history)31 b(\(C-r\))20 b Fa(:)13 b(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)45 b Fb(15)150
-3506 y(rev)n(ert-all-at-newline)22 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(:)48 b Fb(8)150 3594 y Fe(revert-line)28 b(\(M-r\))13
-b Fa(:)h(:)f(:)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(:)39 b Fb(20)150
-3681 y Fe(rl_add_defun)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(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(30)150 3768 y Fe(rl_add_funmap_entry)18
-b Fa(:)g(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(34)150 3856
-y Fe(rl_add_undo)24 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(:)h(:)
-f(:)g(:)g(:)g(:)g(:)48 b Fb(34)150 3943 y Fe(rl_alphabetic)16
-b Fa(:)g(:)e(:)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(:)43
-b Fb(38)150 4030 y Fe(rl_already_prompted)18 b Fa(:)g(:)13
-b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(26)150 4118 y Fe
-(rl_attempted_completion_funct)q(ion)25 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)45 b Fb(48)150 4205 y Fe(rl_attempted_completion_over)13
-b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39
-b Fb(52)150 4292 y Fe(rl_basic_quote_characters)26 b
-Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)46 b Fb(50)150 4380 y Fe(rl_basic_word_break_character)q(s)7
-b Fa(:)19 b(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33
-b Fb(50)150 4467 y Fe(rl_begin_undo_group)18 b Fa(:)g(:)13
-b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(34)150 4554 y Fe(rl_bind_key)24
+34 b Fb(8)150 3232 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
+3577 y Fr(P)150 3709 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 3802 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 3894 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
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)21
+b Fb(16)150 4074 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(21)146 4429 y Fr(Q)150 4556
+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
+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
+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(16)2025 672 y Fe
+(reverse-search-history)30 b(\(C-r\))8 b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Fb(17)2025
+760 y(rev)n(ert-all-at-newline)10 b Fa(:)k(:)f(:)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(:)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(:)h(:)f(:)g(:)g(:)g(:)g(:)
-48 b Fb(31)150 4641 y Fe(rl_bind_key_if_unbound)10 b
-Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(32)150 4729 y Fe
-(rl_bind_key_if_unbound_in_map)11 b Fa(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(32)150 4816 y Fe(rl_bind_key_in_map)
-25 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(:)47 b Fb(31)150
-4903 y Fe(rl_bind_keyseq)14 b Fa(:)i(:)d(:)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(:)40 b Fb(32)150 4991 y Fe(rl_bind_keyseq_if_unbound)26
-b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)46 b Fb(32)150 5078 y Fe(rl_bind_keyseq_if_unbound_in_)q(map)25
-b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(32)150
-5165 y Fe(rl_bind_keyseq_in_map)13 b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39
-b Fb(32)150 5253 y Fe(rl_binding_keymap)6 b Fa(:)17 b(:)c(:)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(:)32 b Fb(28)150 5340 y Fe
-(rl_callback_handler_install)15 b Fa(:)k(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 b Fb(40)2025 299 y
-Fe(rl_callback_handler_remove)17 b Fa(:)i(:)13 b(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fb(40)2025 387
-y Fe(rl_callback_read_char)13 b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40
-b Fb(40)2025 476 y Fe(rl_catch_signals)9 b Fa(:)16 b(:)d(:)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(:)35 b Fb(44)2025 564 y Fe(rl_catch_sigwinch)6
-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(:)33 b Fb(44)2025
-653 y Fe(rl_change_environment)13 b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40
-b Fb(44)2025 741 y Fe(rl_char_is_quoted_p)18 b Fa(:)f(:)c(:)h(:)f(:)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(36)2025 1197 y
+Fe(rl_alphabetic)g Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)37 b Fb(40)2025 1284 y Fe(rl_begin_undo_group)7
+b Fa(:)17 b(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(36)2025
+1371 y Fe(rl_bind_key)10 b Fa(:)16 b(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+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(33)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
+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(:)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(33)2025 1721
+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(34)2025 1808 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(34)2025 1896 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(34)2025 1983 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(34)2025 2070 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(42)2025 2158 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(42)2025
+2245 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(42)2025 2332 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(42)2025 2420 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(48)2025 2507 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 2595 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(:)45 b Fb(48)2025 830 y Fe(rl_cleanup_after_signal)8
-b Fa(:)18 b(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)34 b Fb(45)2025 918 y Fe(rl_clear_history)9
-b Fa(:)16 b(:)d(:)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(:)35
-b Fb(40)2025 1006 y Fe(rl_clear_message)9 b Fa(:)16 b(:)d(:)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(:)35 b Fb(35)2025 1095 y Fe
-(rl_clear_pending_input)10 b Fa(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)37
-b Fb(37)2025 1183 y Fe(rl_clear_signals)9 b Fa(:)16 b(:)d(:)g(:)h(:)f
+g(:)g(:)g(:)h(:)f(:)29 b Fb(37)2025 2682 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(39)2025 2769 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(49)2025 2857 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(37)2025 2944 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(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(45)2025 1272 y Fe(rl_complete)11
-b Fa(:)k(:)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(:)37
-b Fb(46,)27 b(47)2025 1360 y Fe(rl_complete_internal)16
-b Fa(:)h(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(47)2025 1449 y Fe
-(rl_completer_quote_characters)10 b Fa(:)19 b(:)13 b(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(50)2025 1537 y Fe
-(rl_completer_word_break_charac)q(ters)15 b Fa(:)k(:)13
-b(:)g(:)g(:)g(:)g(:)g(:)41 b Fb(50)2025 1625 y Fe
-(rl_completion_append_character)8 b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(51)2025 1714 y Fe
-(rl_completion_display_matches_)q(hook)15 b Fa(:)k(:)13
-b(:)g(:)g(:)g(:)g(:)g(:)41 b Fb(50)2025 1802 y Fe
-(rl_completion_entry_function)25 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)45 b Fb(46,)27 b(48)2025 1891 y Fe
-(rl_completion_found_quote)e Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Fb(51)2025 1979
-y Fe(rl_completion_invoking_key)17 b Fa(:)i(:)13 b(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fb(52)2025
-2068 y Fe(rl_completion_mark_symlink_dir)q(s)27 b Fa(:)14
-b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)48 b Fb(51)2025
-2156 y Fe(rl_completion_matches)13 b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40
-b Fb(47)2025 2245 y Fe(rl_completion_mode)25 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(:)47 b Fb(47)2025 2333 y
-Fe(rl_completion_query_items)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Fb(51)2025
-2421 y Fe(rl_completion_quote_character)10 b Fa(:)19
-b(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36
-b Fb(51)2025 2510 y Fe(rl_completion_suppress_append)10
-b Fa(:)19 b(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36
-b Fb(51)2025 2598 y Fe(rl_completion_suppress_quote)13
-b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)39
-b Fb(51)2025 2687 y Fe(rl_completion_type)25 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(:)47 b Fb(52)2025 2775 y
-Fe(rl_completion_word_break_hook)10 b Fa(:)19 b(:)13
-b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b
-Fb(50)2025 2864 y Fe(rl_copy_keymap)14 b Fa(:)i(:)d(:)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(:)40 b Fb(31)2025 2952 y Fe(rl_copy_text)21
-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(:)45
-b Fb(36)2025 3041 y Fe(rl_crlf)15 b Fa(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g
+g(:)25 b Fb(50)2025 3031 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(50)2025 3119 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(51)2025 3206 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 3293
+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 3381 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(38)2025 3468 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(:)h(:)f(:)g(:)g(:)41
-b Fb(35)2025 3129 y Fe(rl_delete_text)14 b Fa(:)i(:)d(:)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(:)40 b Fb(36)2025 3217 y Fe
-(rl_deprep_term_function)8 b Fa(:)18 b(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)34
-b Fb(28)2025 3306 y Fe(rl_deprep_terminal)25 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(:)47 b Fb(37)2025 3394 y
-Fe(rl_ding)15 b Fa(:)f(:)f(:)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(:)g(:)41 b Fb(38)2025 3483
-y Fe(rl_directory_completion_hook)13 b Fa(:)19 b(:)13
-b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)39
-b Fb(49)2025 3571 y Fe(rl_directory_rewrite_hook;)17
-b Fa(:)i(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)44 b Fb(49)2025 3660 y Fe(rl_discard_keymap)6 b Fa(:)17
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35
+b Fb(37)2025 3556 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(38)2025 3643 y
+Fe(rl_deprep_terminal)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24
+b Fb(39)2025 3730 y Fe(rl_ding)e Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35
+b Fb(40)2025 3818 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(:)33 b Fb(31)2025
-3748 y Fe(rl_dispatching)14 b Fa(:)i(:)d(:)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(:)40 b Fb(25)2025 3836 y Fe(rl_display_match_list)13
-b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(38)2025 3925 y
-Fe(rl_display_prompt)6 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(:)
-33 b Fb(26)2025 4013 y Fe(rl_do_undo)7 b Fa(:)15 b(:)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(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b
-Fb(34)2025 4102 y Fe(rl_done)15 b Fa(:)f(:)f(:)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(:)g(:)41
-b Fb(25)2025 4190 y Fe(rl_echo_signal_char)18 b Fa(:)f(:)c(:)h(:)f(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(33)2025
+3905 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(40)2025 3992 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(:)45 b Fb(45)2025 4279 y Fe(rl_editing_mode)11
-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(:)g(:)g(:)g(:)38
-b Fb(30)2025 4367 y Fe(rl_end)17 b Fa(:)d(:)g(:)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(:)g(:)44
-b Fb(25)2025 4456 y Fe(rl_end_undo_group)6 b Fa(:)17
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(36)2025
+4080 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(48)2025 4167 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(:)33 b Fb(34)2025
-4544 y Fe(rl_erase_empty_line)18 b Fa(:)f(:)c(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45
-b Fb(25)2025 4632 y Fe(rl_event_hook)16 b Fa(:)g(:)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(:)g(:)g(:)g(:)43 b Fb(27)2025 4721 y
-Fe(rl_execute_next)11 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(:)g(:)
-g(:)g(:)38 b Fb(37)2025 4809 y Fe(rl_executing_key)9
-b Fa(:)16 b(:)d(:)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(:)35
-b Fb(28)2025 4898 y Fe(rl_executing_keymap)18 b Fa(:)f(:)c(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)45 b Fb(28)2025 4986 y Fe(rl_executing_keyseq)18
-b Fa(:)f(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(28)2025 5075
-y Fe(rl_executing_macro)25 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(:)47
-b Fb(28)2025 5163 y Fe(rl_expand_prompt)9 b Fa(:)16 b(:)d(:)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(:)35 b Fb(36)2025 5252 y Fe(rl_explicit_arg)11
-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(:)g(:)g(:)g(:)38
-b Fb(30)2025 5340 y Fe(rl_extend_line_buffer)13 b Fa(:)18
-b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)40 b Fb(38)p eop end
-%%Page: 72 76
-TeXDict begin 72 75 bop 150 -116 a Fs(F)-8 b(unction)31
-b(and)f(V)-8 b(ariable)32 b(Index)2370 b(72)150 299 y
-Fe(rl_filename_completion_desire)q(d)7 b Fa(:)19 b(:)13
-b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(52)150
-387 y Fe(rl_filename_completion_functi)q(on)28 b Fa(:)13
-b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(47)150
-476 y Fe(rl_filename_dequoting_functio)q(n)7 b Fa(:)19
-b(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33
-b Fb(48)150 564 y Fe(rl_filename_quote_characters)13
-b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39
-b Fb(50)150 653 y Fe(rl_filename_quoting_desired)15 b
-Fa(:)k(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41
-b Fb(52)150 741 y Fe(rl_filename_quoting_function)13
-b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39
-b Fb(48)150 830 y Fe(rl_filename_rewrite_hook)28 b Fa(:)13
-b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)49 b Fb(49)150 918 y Fe(rl_filename_stat_hook)13 b
-Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(49)150 1006 y Fe
-(rl_forced_update_display)28 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(35)150
-1095 y Fe(rl_free)15 b Fa(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(36)2025
+4255 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(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(38)150
-1183 y Fe(rl_free_keymap)14 b Fa(:)i(:)d(:)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(:)40 b Fb(31)150 1272 y Fe(rl_free_line_state)25
-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(:)47 b Fb(45)150
-1360 y Fe(rl_free_undo_list)6 b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g
+g(:)g(:)g(:)32 b Fb(39)2025 4342 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 4429 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(40)2025 4517 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(51)2025
+4604 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 4691 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(40)2025 4779 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 4866 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(48)2025 4954 y Fe(rl_free_undo_list)12 b Fa(:)17
+b(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27 b Fb(36)2025
+5041 y Fe(rl_function_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(35)2025 5128 y Fe(rl_function_of_keyseq)g
+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)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)150 260 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(:)h(:)32 b Fb(34)150 1449 y Fe(rl_function_dumper)25
-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(:)47 b Fb(33)150
-1537 y Fe(rl_function_of_keyseq)13 b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39
-b Fb(33)150 1625 y Fe(rl_funmap_names)11 b Fa(:)17 b(:)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(:)38 b Fb(33)150 1714 y Fe(rl_generic_bind)11
-b Fa(:)17 b(:)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(:)38
-b Fb(33)150 1802 y Fe(rl_get_keymap)16 b Fa(:)g(:)e(:)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(:)43 b Fb(31)150 1891 y Fe
-(rl_get_keymap_by_name)13 b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39
-b Fb(31)150 1979 y Fe(rl_get_keymap_name)25 b Fa(:)13
+g(:)32 b Fb(35)150 347 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 434 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 522 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(:)g(:)g(:)g(:)47 b Fb(31)150 2068 y
-Fe(rl_get_screen_size)25 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(:)47
-b Fb(45)150 2156 y Fe(rl_get_termcap)14 b Fa(:)i(:)d(:)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(:)40 b Fb(39)150 2245 y Fe(rl_getc)15
-b Fa(:)f(:)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(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)41 b Fb(37)150 2333 y Fe(rl_getc_function)9
-b Fa(:)16 b(:)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(:)35
-b Fb(27)150 2421 y Fe(rl_gnu_readline_p)6 b Fa(:)17 b(:)c(:)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(:)32 b Fb(26)150 2510 y Fe
-(rl_ignore_completion_duplicat)q(es)c Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)48 b Fb(51)150 2598 y Fe(rl_ignore_some_completions_fu)q
-(ncti)q(on)12 b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)38
-b Fb(49)150 2687 y Fe(rl_inhibit_completion)13 b Fa(:)18
-b(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)39 b Fb(52)150 2775 y Fe(rl_initialize)16
-b Fa(:)g(:)e(:)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(:)43
-b Fb(38)150 2864 y Fe(rl_input_available_hook)8 b Fa(:)18
-b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)34 b Fb(27)150 2952 y Fe(rl_insert_completions)13
-b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(47)150 3041 y
-Fe(rl_insert_text)14 b Fa(:)i(:)d(:)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(:)40 b Fb(36)150 3129 y Fe(rl_instream)24 b Fa(:)13
+(:)g(:)g(:)h(:)f(:)33 b Fb(33)150 609 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
+696 y Fe(rl_get_screen_size)10 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)24 b Fb(49)150 783 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(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48
-b Fb(26)150 3217 y Fe(rl_invoking_keyseqs)18 b Fa(:)g(:)13
-b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(33)150 3306 y Fe
-(rl_invoking_keyseqs_in_map)18 b Fa(:)g(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(33)150 3394 y
-Fe(rl_key_sequence_length)10 b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37
-b Fb(28)150 3483 y Fe(rl_kill_text)22 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34
+b Fb(42)150 871 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 958 y Fe(rl_initialize)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(40)150 1045 y
+Fe(rl_insert_completions)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33
+b Fb(51)150 1132 y Fe(rl_insert_text)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(38)150 1220 y Fe
+(rl_invoking_keyseqs)7 b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21
+b Fb(35)150 1307 y Fe(rl_invoking_keyseqs_in_map)7 b
+Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)21 b Fb(35)150 1394 y Fe(rl_kill_text)8 b Fa(:)16
+b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
+b Fb(38)150 1481 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(35)150 1568 y Fe(rl_macro_bind)25
+b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
+b Fb(41)150 1656 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(:)h(:)f(:)g(:)45 b Fb(36)150 3571
-y Fe(rl_last_func)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(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)45 b Fb(27)150 3660 y Fe(rl_library_version)25
-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(:)47 b Fb(26)150
-3748 y Fe(rl_line_buffer)14 b Fa(:)i(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(41)150 1743 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(32)150
+1830 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(:)40 b Fb(25)150 3836 y Fe(rl_list_funmap_names)16
-b Fa(:)h(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)42 b Fb(33)150 3925 y Fe(rl_macro_bind)16
-b Fa(:)g(:)e(:)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(:)43
-b Fb(39)150 4013 y Fe(rl_macro_dumper)11 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)
+(:)f(:)g(:)g(:)34 b Fb(33)150 1917 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(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(39)150 4102 y Fe
-(rl_make_bare_keymap)18 b Fa(:)g(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44
-b Fb(30)150 4190 y Fe(rl_make_keymap)14 b Fa(:)i(:)d(:)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(:)40 b Fb(31)150 4279 y Fe(rl_mark)15
-b Fa(:)f(:)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(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)41 b Fb(25)150 4367 y Fe(rl_message)7
-b Fa(:)15 b(:)e(:)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(:)33 b Fb(35)150 4456 y Fe(rl_modifying)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(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45
-b Fb(34)150 4544 y Fe(rl_named_function)6 b Fa(:)17 b(:)c(:)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(:)32 b Fb(33)150 4632 y Fe(rl_num_chars_to_read)16
-b Fa(:)h(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)42 b Fb(25)150 4721 y Fe(rl_numeric_arg)14
-b Fa(:)i(:)d(:)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(:)40
-b Fb(30)150 4809 y Fe(rl_on_new_line)14 b Fa(:)i(:)d(:)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(:)40 b Fb(35)150 4898 y Fe
-(rl_on_new_line_with_prompt)18 b Fa(:)g(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(35)150 4986 y
-Fe(rl_outstream)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(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)45 b Fb(26)150 5075 y Fe(rl_parse_and_bind)6
+(:)g(:)27 b Fb(37)150 2005 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(36)150 2092 y Fe(rl_named_function)12 b Fa(:)17
+b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150
+2179 y Fe(rl_on_new_line)d Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)34 b Fb(37)150 2266 y Fe(rl_on_new_line_with_prompt)7
+b Fa(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)21 b Fb(37)150 2354 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(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)32 b Fb(33)150
-5163 y Fe(rl_pending_input)9 b Fa(:)16 b(:)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(:)35 b Fb(25)150 5252 y Fe(rl_point)12 b Fa(:)j(:)e(:)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(:)g(:)g(:)g(:)g(:)h(:)f(:)38
-b Fb(25)150 5340 y Fe(rl_possible_completions)8 b Fa(:)18
-b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)34 b Fb(47)2025 299 y Fe(rl_pre_input_hook)6
-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(:)33 b Fb(27)2025
-387 y Fe(rl_prefer_env_winsize)13 b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40
-b Fb(26)2025 474 y Fe(rl_prep_term_function)13 b Fa(:)18
-b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)40 b Fb(28)2025 562 y Fe(rl_prep_terminal)9
-b Fa(:)16 b(:)d(:)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(:)35
-b Fb(37)2025 650 y Fe(rl_prompt)9 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(:)f(:)g(:)g(:)36 b
-Fb(26)2025 738 y Fe(rl_push_macro_input)18 b Fa(:)f(:)c(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150
+2441 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(:)45 b Fb(36)2025 826 y Fe(rl_read_init_file)6 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(:)33 b Fb(33)2025
-913 y Fe(rl_read_key)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+g(:)h(:)26 b Fb(48)150 2528 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(50)150 2615 y Fe(rl_prep_terminal)15
+b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b
+Fb(39)150 2703 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(:)g(:)g(:)g(:)48 b Fb(36)2025 1001 y Fe(rl_readline_name)9
-b Fa(:)16 b(:)d(:)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(:)35
-b Fb(26)2025 1089 y Fe(rl_readline_state)6 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(:)33 b Fb(28)2025
-1177 y Fe(rl_readline_version)18 b Fa(:)f(:)c(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45
-b Fb(26)2025 1265 y Fe(rl_redisplay)21 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(:)45 b Fb(35)2025 1352
-y Fe(rl_redisplay_function)13 b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40
-b Fb(27)2025 1440 y Fe(rl_replace_line)11 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(:)g(:)g(:)g(:)38 b Fb(38)2025 1528 y Fe
-(rl_reset_after_signal)13 b Fa(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40
-b Fb(45)2025 1616 y Fe(rl_reset_line_state)18 b Fa(:)f(:)c(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)45 b Fb(35)2025 1704 y Fe(rl_reset_screen_size)16
-b Fa(:)h(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(45)2025 1791 y Fe
-(rl_reset_terminal)6 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(:)33
-b Fb(37)2025 1879 y Fe(rl_resize_terminal)25 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(:)47 b Fb(45)2025 1967 y
-Fe(rl_restore_prompt)6 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(:)
-33 b Fb(36)2025 2055 y Fe(rl_restore_state)9 b Fa(:)16
-b(:)d(:)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(:)35 b Fb(38)2025
-2142 y Fe(rl_save_prompt)14 b Fa(:)i(:)d(:)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(:)40 b Fb(35)2025 2230 y Fe(rl_save_state)16
-b Fa(:)g(:)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(:)g(:)g(:)g(:)43
-b Fb(38)2025 2318 y Fe(rl_set_key)7 b Fa(:)15 b(:)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(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(32)2025
-2406 y Fe(rl_set_keyboard_input_timeout)10 b Fa(:)19
-b(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36
-b Fb(37)2025 2494 y Fe(rl_set_keymap)16 b Fa(:)g(:)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(:)g(:)g(:)g(:)43 b Fb(31)2025 2581 y
-Fe(rl_set_paren_blink_timeout)17 b Fa(:)i(:)13 b(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fb(39)2025 2669
-y Fe(rl_set_prompt)16 b Fa(:)g(:)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(:)
-g(:)g(:)g(:)43 b Fb(36)2025 2757 y Fe(rl_set_screen_size)25
-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(:)47 b Fb(45)2025
-2845 y Fe(rl_set_signals)14 b Fa(:)i(:)d(:)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(:)40 b Fb(45)2025 2933 y Fe(rl_show_char)21
-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(:)45
-b Fb(35)2025 3020 y Fe(rl_signal_event_hook)16 b Fa(:)h(:)c(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)42 b Fb(27)2025 3108 y Fe(rl_sort_completion_matches)17
-b Fa(:)i(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)44 b Fb(52)2025 3196 y Fe(rl_special_prefixes)18 b
-Fa(:)f(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(50)2025 3284 y
-Fe(rl_startup_hook)11 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(:)g(:)
-g(:)g(:)38 b Fb(27)2025 3372 y Fe(rl_stuff_char)16 b
-Fa(:)g(:)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(:)g(:)g(:)g(:)43
-b Fb(37)2025 3459 y Fe(rl_terminal_name)9 b Fa(:)16 b(:)d(:)g(:)h(:)f
+g(:)h(:)f(:)21 b Fb(38)150 2790 y Fe(rl_read_init_file)12
+b Fa(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(35)150
+2877 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(38)150 2964 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 3052 y Fe(rl_replace_line)17
+b Fa(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
+b Fb(40)150 3139 y Fe(rl_reset_after_signal)24 b Fa(:)13
+b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)33 b Fb(48)150 3226 y Fe(rl_reset_line_state)7
+b Fa(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(37)150
+3313 y Fe(rl_reset_screen_size)26 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36
+b Fb(49)150 3401 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
+3488 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(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(26)2025 3547 y Fe
-(rl_tty_set_default_bindings)15 b Fa(:)k(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)41 b Fb(37)2025 3635 y
-Fe(rl_tty_unset_default_bindings)10 b Fa(:)19 b(:)13
-b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b
-Fb(37)2025 3723 y Fe(rl_unbind_command_in_map)28 b Fa(:)13
-b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)49 b Fb(32)2025 3810 y Fe(rl_unbind_function_in_map)25
-b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)46 b Fb(32)2025 3898 y Fe(rl_unbind_key)16 b Fa(:)g(:)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(:)g(:)g(:)g(:)43 b Fb(32)2025
-3986 y Fe(rl_unbind_key_in_map)16 b Fa(:)h(:)c(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42
-b Fb(32)2025 4074 y Fe(rl_username_completion_functio)q(n)27
-b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)48
-b Fb(48)2025 4162 y Fe(rl_variable_bind)9 b Fa(:)16 b(:)d(:)g(:)h(:)f
+g(:)24 b Fb(48)150 3575 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
+3662 y Fe(rl_restore_state)15 b Fa(:)h(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)29 b Fb(40)150 3750 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(37)150 3837 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 3924 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(:)35 b Fb(39)2025 4249 y Fe(rl_variable_dumper)25
-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(:)47 b Fb(39)2025
-4337 y Fe(rl_variable_value)6 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(:)33 b Fb(39)2025 4583 y Fq(S)2025 4700 y Fe(self-insert)28
-b(\(a,)e(b,)g(A,)g(1,)g(!,)g(...)q(\))9 b Fa(:)k(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(16)2025 4788 y Fe(set-mark)27
-b(\(C-@\))22 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(:)h(:)f(:)g
-(:)47 b Fb(20)2025 4875 y(sho)n(w-all-if-am)n(biguous)14
-b Fa(:)h(:)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(:)41 b Fb(8)2025
-4963 y(sho)n(w-all-if-unmo)r(di\014ed)23 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(:)50 b Fb(8)2025 5051 y(sho)n(w-mo)r(de-in-prompt)9
-b Fa(:)j(:)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(:)36 b Fb(8)2025
-5139 y(skip-completed-text)11 b Fa(:)h(:)h(:)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(:)38 b Fb(8)2025 5227 y Fe(skip-csi-sequence)29
-b(\(\))23 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(:)49 b Fb(20)2025
-5314 y Fe(start-kbd-macro)29 b(\(C-x)d(\(\))c Fa(:)13
+g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(34)150 4011 y Fe
+(rl_set_keyboard_input_timeout)17 b Fa(:)h(:)c(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(39)150 4099 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 4186 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(41)150 4273 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(:)48 b Fb(19)p eop end
-%%Page: 73 77
-TeXDict begin 73 76 bop 150 -116 a Fs(F)-8 b(unction)31
-b(and)f(V)-8 b(ariable)32 b(Index)2370 b(73)150 299 y
-Fq(T)150 415 y Fe(tab-insert)28 b(\(M-TAB\))10 b Fa(:)15
-b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(16)150 502
-y Fe(tilde-expand)28 b(\(M-~\))10 b Fa(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
+b Fb(38)150 4360 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 4447
+y Fe(rl_set_signals)f Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)34 b Fb(49)150 4535 y Fe(rl_show_char)8 b Fa(:)16
+b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
+b Fb(37)150 4622 y Fe(rl_stuff_char)j Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(39)150 4709 y Fe
+(rl_tty_set_default_bindings)27 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(39)2025 260 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(39)2025 347 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(39)2025 435 y Fe(rl_unbind_command_in_map)11 b Fa(:)19
+b(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)26 b Fb(34)2025 523 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 610 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 698 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 786 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(51)2025
+873 y Fe(rl_variable_bind)15 b Fa(:)h(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)29 b Fb(41)2025 961 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(41)2025
+1048 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(:)37 b Fb(20)150 590 y Fe(transpose-chars)29 b(\(C-t\))21
-b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(16)150 677 y Fe(transpose-words)29
-b(\(M-t\))21 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(17)150
-929 y Fq(U)150 1045 y Fe(undo)27 b(\(C-_)f(or)g(C-x)g(C-u\))6
-b Fa(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)32 b Fb(20)150 1133
-y Fe(universal-argument)e(\(\))20 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
-b Fb(18)150 1220 y Fe(unix-filename-rubout)30 b(\(\))15
-b Fa(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)41 b Fb(18)150 1307 y Fe(unix-line-discard)29
-b(\(C-u\))15 b Fa(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 b Fb(17)150 1395 y
-Fe(unix-word-rubout)29 b(\(C-w\))17 b Fa(:)e(:)e(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(17)2025 299 y Fe(upcase-word)28 b(\(M-u\))13 b Fa(:)h(:)f(:)g(:)g
+g(:)g(:)27 b Fb(41)2021 1292 y Fr(S)2025 1410 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(18)2025 1497 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 1585 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 1672
+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 1760 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
+1848 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 1935 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(22)2025 2022
+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 2266 y Fr(T)2025 2383 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(18)2025
+2471 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 2558 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 2645 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 2899 y Fr(U)2025 3016 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
+3104 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(:)
-g(:)g(:)g(:)g(:)g(:)h(:)39 b Fb(17)2025 559 y Fq(V)2025
-678 y Fe(vi-editing-mode)29 b(\(M-C-j\))15 b Fa(:)f(:)f(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)41
-b Fb(21)2025 767 y(visible-stats)7 b Fa(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g
+23 b Fb(20)2025 3192 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 3279 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(19)2025 3367
+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 3454 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
+3708 y Fr(V)2025 3825 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
+3913 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 4000 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
+4087 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 4329 y
+Fr(Y)2025 4447 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(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34 b
-Fb(9)2025 1009 y Fq(Y)2025 1128 y Fe(yank)26 b(\(C-y\))14
-b Fa(:)g(:)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(:)g(:)g(:)g(:)g(:)h
-(:)f(:)40 b Fb(18)2025 1217 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))
-c Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)47 b Fb(16)2025 1306 y Fe(yank-nth-arg)28 b(\(M-C-y\))c
-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(:)49 b Fb(15)2025 1395 y
-Fe(yank-pop)27 b(\(M-y\))22 b Fa(:)13 b(:)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 4534 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 4622 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(17)2025 4709
+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(:)
-g(:)h(:)f(:)g(:)47 b Fb(18)p eop end
+h(:)f(:)g(:)g(:)24 b Fb(20)p eop end
%%Trailer
userdict /end-hook known{end-hook}if
diff --git a/doc/readline_3.ps b/doc/readline_3.ps
index 306aa74..5c74c3f 100644
--- a/doc/readline_3.ps
+++ b/doc/readline_3.ps
@@ -1,11 +1,11 @@
%!PS-Adobe-3.0
-%%Creator: groff version 1.19.2
-%%CreationDate: Tue Feb 11 16:57:26 2014
+%%Creator: groff version 1.22.3
+%%CreationDate: Wed Sep 7 17:16:26 2016
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%+ font Courier
-%%DocumentSuppliedResources: procset grops 1.19 2
+%%DocumentSuppliedResources: procset grops 1.22 3
%%Pages: 16
%%PageOrder: Ascend
%%DocumentMedia: Default 612 792 0 () ()
@@ -15,7 +15,7 @@
%%PageMedia: Default
%%EndDefaults
%%BeginProlog
-%%BeginResource: procset grops 1.19 2
+%%BeginResource: procset grops 1.22 3
%!PS-Adobe-3.0 Resource-ProcSet
/setpacking where{
pop
@@ -73,6 +73,7 @@ exch pop add exch pop
/level0 save def
1 setlinecap
1 setlinejoin
+DEFS/BPhook known{DEFS begin BPhook end}if
72 RES div dup scale
LS{
90 rotate
@@ -138,7 +139,10 @@ pop
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
{
-1 index/FID ne{def}{pop pop}ifelse
+1 index/FID ne
+2 index/UniqueID ne
+and
+{def}{pop pop}ifelse
}forall
/Encoding exch def
dup/FontName exch def
@@ -176,8 +180,10 @@ newpath
userdict begin
/showpage{}def
/setpagedevice{}def
+mark
}bind def
/PEND{
+cleartomark
countdictstack CNT sub{end}repeat
level1 restore
}bind def
@@ -231,8 +237,9 @@ def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1
-10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0
+/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
+-.219(NA)72 84 S(ME).219 E F0
(readline \255 get a line from a user with editing)108 96 Q F1(SYNOPSIS)
72 112.8 Q/F2 10/Times-Bold@0 SF(#include <stdio.h>)108 124.8 Q
(#include <r)108 136.8 Q(eadline/r)-.18 E(eadline.h>)-.18 E(#include <r)
@@ -240,7 +247,7 @@ 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\2552011 Free Softw)-.1 E(are F)-.1 E(oundation, Inc.)
+(yright \251 1989\2552014 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)
@@ -277,14 +284,14 @@ F(If)6.089 E F2(EOF)3.589 E F0 1.089(is encountered)3.589 F .283
-.65 E F3(meta)2.962 E F0 -.1(ke)2.842 G .082(ys are denoted by M\255)
-.05 F F3 -.1(ke)C(y)-.2 E F0 2.583(,s)C 2.583(oM)-2.583 G .083
(\255x means Meta\255X.)-2.583 F .083(\(On k)5.083 F -.15(ey)-.1 G .083
-(boards without a).15 F F3(meta)108 422.4 Q F0 -.1(ke)3.491 G 2.031 -.65
-(y, M)-.05 H<ad>.65 E F3(x)A F0 .731(means ESC)3.231 F F3(x)3.231 E F0
-3.231(,i)C .731(.e., press the Escape k)-3.231 F 1.03 -.15(ey t)-.1 H
-.73(hen the).15 F F3(x)4 E F0 -.1(ke)3.76 G 4.53 -.65(y. T)-.05 H .73
-(his mak).65 F .73(es ESC the)-.1 F F3 .73(meta pr)3.23 F(e\214x)-.37 E
-F0(.)A .48(The combination M\255C\255)108 434.4 R F3(x)A 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
+(boards without a).15 F F3(meta)108.38 422.4 Q F0 -.1(ke)3.472 G 2.012
+-.65(y, M)-.05 H<ad>.65 E F3(x)A F0 .712(means ESC)3.212 F F3(x)3.212 E
+F0 3.212(,i)C .712(.e., press the Escape k)-3.212 F 1.011 -.15(ey t)-.1
+H .711(hen the).15 F F3(x)3.981 E F0 -.1(ke)3.741 G 4.511 -.65(y. T)-.05
+H .711(his mak).65 F .711(es ESC the)-.1 F F3 .711(meta pr)3.211 F
+(e\214x)-.37 E F0(.)A .48(The combination M\255C\255)108 434.4 R F3(x)A
+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
@@ -298,26 +305,27 @@ F0(.)A .48(The combination M\255C\255)108 434.4 R F3(x)A F0 .48
(ard direction \(e.g.,)-.1 F F2(kill\255line)3.518 E F0 3.518(\)c)C
1.018(auses that command to act in a backw)-3.518 F 1.018
(ard direction.)-.1 F(Com-)6.018 E(mands whose beha)108 499.2 Q
-(vior with ar)-.2 E(guments de)-.18 E(viates from this are noted.)-.25 E
-.811(When a command is described as)108 516 R F3(killing)3.311 E F0(te)
-3.311 E .811(xt, the te)-.15 F .811(xt deleted is sa)-.15 F -.15(ve)-.2
-G 3.311(df).15 G .812(or possible future retrie)-3.311 F -.25(va)-.25 G
-3.312(l\().25 G F3(yank-)-3.312 E(ing)108 528 Q F0 2.529(\). The)B .029
-(killed te)2.529 F .029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G
-2.529(na)-2.529 G F3 .029(kill ring)B F0 5.029(.C)C(onsecuti)-5.029 E
-.329 -.15(ve k)-.25 H .029(ills cause the te).15 F .029
-(xt to be accumulated into one unit,)-.15 F .567(which can be yank)108
-540 R .567(ed all at once.)-.1 F .567(Commands which do not kill te)
-5.567 F .567(xt separate the chunks of te)-.15 F .567(xt on the kill)
--.15 F(ring.)108 552 Q F1(INITIALIZA)72 568.8 Q(TION FILE)-1.04 E F0
-.091(Readline is 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
+(vior with ar)-.2 E(guments de)-.18 E(viates from this are noted belo)
+-.25 E -.65(w.)-.25 G .811(When a command is described as)108 516 R F3
+(killing)3.311 E F0(te)3.311 E .811(xt, the te)-.15 F .811
+(xt deleted is sa)-.15 F -.15(ve)-.2 G 3.311(df).15 G .812
+(or possible future retrie)-3.311 F -.25(va)-.25 G 3.312(l\().25 G F3
+(yank-)-3.312 E(ing)108 528 Q F0 2.529(\). The)B .029(killed te)2.529 F
+.029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F3
+.029(kill ring)B F0 5.029(.C)C(onsecuti)-5.029 E .329 -.15(ve k)-.25 H
+.029(ills cause the te).15 F .029(xt to be accumulated into one unit,)
+-.15 F .567(which can be yank)108 540 R .567(ed all at once.)-.1 F .567
+(Commands which do not kill te)5.567 F .567
+(xt separate the chunks of te)-.15 F .567(xt on the kill)-.15 F(ring.)
+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\
@@ -336,15 +344,16 @@ 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 6.3)72 768 Q(2014 January 6)128.74 E(1)198.45 E 0 Cg
-EP
+-.18 E(GNU Readline 7.0)72 768 Q(2016 February 28)123.74 E(1)193.45 E 0
+Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R
-(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
+/F0 10/Times-Roman@0 SF 117.355(READLINE\(3\) Library)72 48 R
+(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
(wing symbolic character names are recognized while processing k)-.25 F
@@ -358,86 +367,88 @@ 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)
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)
-.1 H(s).15 E(pressed \(a)108 141.6 Q F1(macr)2.5 E(o)-.45 E F0(\).)A/F2
-10/Times-Bold@0 SF -.25(Ke)87 163.2 S 2.5(yB).25 G(indings)-2.5 E F0
-.366(The syntax for controlling k)108 175.2 R .666 -.15(ey b)-.1 H .366
+10/Times-Bold@0 SF -.25(Ke)87 158.4 S 2.5(yB).25 G(indings)-2.5 E F0
+.366(The syntax for controlling k)108 170.4 R .666 -.15(ey b)-.1 H .366
(indings in the).15 F F1(inputr)2.876 E(c)-.37 E F0 .366
(\214le is simple.)3.176 F .366(All that is required is the name of the)
-5.366 F .383(command or the te)108 187.2 R .383(xt of a macro and a k)
--.15 F .683 -.15(ey s)-.1 H .383
-(equence to which it should be bound. The name may be speci-).15 F .853
-(\214ed in one of tw)108 199.2 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 211.2 R .419(name and k)2.919 F .719
--.15(ey s)-.1 H .419(equence are separated by a colon.).15 F .419
+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
-223.2 Q 1.755(When using the form)108 240 R F2 -.1(ke)4.255 G(yname).1 E
-F0(:)A F1(function-name).833 E F0(or)4.255 E F1(macr)4.255 E(o)-.45 E F0
-(,)A F1 -.1(ke)4.255 G(yname)-.2 E F0 1.756(is the name of a k)4.435 F
-2.056 -.15(ey s)-.1 H 1.756(pelled out in).15 F 2.5(English. F)108 252 R
-(or e)-.15 E(xample:)-.15 E(Control\255u: uni)144 276 Q -.15(ve)-.25 G
-(rsal\255ar).15 E(gument)-.18 E(Meta\255Rubout: backw)144 288 Q
-(ard\255kill\255w)-.1 E(ord)-.1 E(Control\255o: "> output")144 300 Q
-.148(In the abo)108 316.8 R .448 -.15(ve ex)-.15 H(ample,).15 E F1
-(C\255u)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 328.8
-Q(ord)-.1 E F0 3.835(,a)C(nd)-3.835 E F1(C\255o)3.675 E F0 1.336
+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
+.662 -.15(ey s)-.1 H .362(pelled out in Eng-).15 F 2.5(lish. F)108 247.2
+R(or e)-.15 E(xample:)-.15 E(Control\255u: uni)144 271.2 Q -.15(ve)-.25
+G(rsal\255ar).15 E(gument)-.18 E(Meta\255Rubout: backw)144 283.2 Q
+(ard\255kill\255w)-.1 E(ord)-.1 E(Control\255o: "> output")144 295.2 Q
+.148(In the abo)108 312 R .448 -.15(ve ex)-.15 H(ample,).15 E F1(C\255u)
+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
-340.8 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 357.6 R F2("k)2.556
+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
(fers from)-.25 F F2 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15
(ve i)-.15 H 2.555(nt).15 G .055(hat strings)-2.555 F 1.284
-(denoting an entire k)108 369.6 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
+(denoting an entire k)108 364.8 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
ay be speci\214ed by placing the sequence within double quotes.).15 F
-(Some)6.284 E .386(GNU Emacs style k)108 381.6 R .686 -.15(ey e)-.1 H
+(Some)6.284 E .386(GNU Emacs style k)108 376.8 R .686 -.15(ey e)-.1 H
.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .385
(xample, b)-.15 F .385(ut the symbolic character names)-.2 F
-(are not recognized.)108 393.6 Q("\\C\255u": uni)144 417.6 Q -.15(ve)
+(are not recognized.)108 388.8 Q("\\C\255u": uni)144 412.8 Q -.15(ve)
-.25 G(rsal\255ar).15 E(gument)-.18 E
-("\\C\255x\\C\255r": re\255read\255init\255\214le)144 429.6 Q
-("\\e[11~": "Function K)144 441.6 Q .3 -.15(ey 1)-.25 H(").15 E .198
-(In this e)108 458.4 R(xample,)-.15 E F1(C-u)2.538 E F0 .199(is ag)2.949
+("\\C\255x\\C\255r": re\255read\255init\255\214le)144 424.8 Q
+("\\e[11~": "Function K)144 436.8 Q .3 -.15(ey 1)-.25 H(").15 E .198
+(In this e)108 453.6 R(xample,)-.15 E F1(C-u)2.538 E F0 .199(is ag)2.949
F .199(ain bound to the function)-.05 F F2(uni)2.699 E -.1(ve)-.1 G
(rsal\255ar).1 E(gument)-.1 E F0(.)A F1 .199(C-x C-r)5.039 F F0 .199
-(is bound to the function)3.429 F F2 -.18(re)108 470.4 S<ad72>.18 E
+(is bound to the function)3.429 F F2 -.18(re)108 465.6 S<ad72>.18 E
(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1(ESC [ 1 1 ~)3.01
E F0(is bound to insert the te)3.94 E(xt)-.15 E F3(Function Key 1)2.5 E
-F0(.)A(The full set of GNU Emacs style escape sequences a)108 487.2 Q
+F0(.)A(The full set of GNU Emacs style escape sequences a)108 482.4 Q
-.25(va)-.2 G(ilable when specifying k).25 E .3 -.15(ey s)-.1 H
-(equences is).15 E F2<5c43ad>144 499.2 Q F0(control pre\214x)20.3 E F2
-<5c4dad>144 511.2 Q F0(meta pre\214x)18.08 E F2(\\e)144 523.2 Q F0
-(an escape character)28.78 E F2(\\\\)144 535.2 Q F0(backslash)30.44 E F2
-(\\")144 547.2 Q F0(literal ", a double quote)27.67 E F2(\\')144 559.2 Q
-F0(literal ', a single quote)29.89 E(In addition to the GNU Emacs style\
- escape sequences, a second set of backslash escapes is a)108 576 Q -.25
-(va)-.2 G(ilable:).25 E F2(\\a)144 588 Q F0(alert \(bell\))28.22 E F2
-(\\b)144 600 Q F0(backspace)27.66 E F2(\\d)144 612 Q F0(delete)27.66 E
-F2(\\f)144 624 Q F0(form feed)29.89 E F2(\\n)144 636 Q F0(ne)27.66 E
-(wline)-.25 E F2(\\r)144 648 Q F0(carriage return)28.78 E F2(\\t)144 660
-Q F0(horizontal tab)29.89 E F2(\\v)144 672 Q F0 -.15(ve)28.22 G
-(rtical tab).15 E F2(\\)144 684 Q F1(nnn)A F0
-(the eight-bit character whose v)18.22 E(alue is the octal v)-.25 E
+(equences is).15 E F2<5c43ad>144 494.4 Q F0(control pre\214x)180 494.4 Q
+F2<5c4dad>144 506.4 Q F0(meta pre\214x)180 506.4 Q F2(\\e)144 518.4 Q F0
+(an escape character)180 518.4 Q F2(\\\\)144 530.4 Q F0(backslash)180
+530.4 Q F2(\\")144 542.4 Q F0(literal ", a double quote)180 542.4 Q F2
+(\\')144 554.4 Q F0(literal ', a single quote)180 554.4 Q(In addition t\
+o the GNU Emacs style escape sequences, a second set of backslash escap\
+es is a)108 571.2 Q -.25(va)-.2 G(ilable:).25 E F2(\\a)144 583.2 Q F0
+(alert \(bell\))180 583.2 Q F2(\\b)144 595.2 Q F0(backspace)180 595.2 Q
+F2(\\d)144 607.2 Q F0(delete)180 607.2 Q F2(\\f)144 619.2 Q F0
+(form feed)180 619.2 Q F2(\\n)144 631.2 Q F0(ne)180 631.2 Q(wline)-.25 E
+F2(\\r)144 643.2 Q F0(carriage return)180 643.2 Q F2(\\t)144 655.2 Q F0
+(horizontal tab)180 655.2 Q F2(\\v)144 667.2 Q F0 -.15(ve)180 667.2 S
+(rtical tab).15 E F2(\\)144 679.2 Q F1(nnn)A F0
+(the eight-bit character whose v)180 679.2 Q(alue is the octal v)-.25 E
(alue)-.25 E F1(nnn)2.5 E F0(\(one to three digits\))2.5 E F2(\\x)144
-696 Q F1(HH)A F0(the eight-bit character whose v)13.78 E(alue is the he)
--.25 E(xadecimal v)-.15 E(alue)-.25 E F1(HH)2.5 E F0(\(one or tw)2.5 E
-2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E .74(When entering the te)
-108 712.8 R .74(xt of a macro, single or double quotes should be used t\
-o indicate a macro de\214nition.)-.15 F .089(Unquoted te)108 724.8 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 6.3)72 768 Q(2014 January 6)128.74 E(2)
-198.45 E 0 Cg EP
+691.2 Q F1(HH)A F0(the eight-bit character whose v)180 691.2 Q
+(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F1(HH)2.5 E F0
+(\(one or tw)2.5 E 2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E .74
+(When entering the te)108 708 R .74(xt of a macro, single or double quo\
+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(2016 February 28)123.74 E(2)193.45 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R(are e)
-108 84 Q 2.5(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G
+/F0 10/Times-Roman@0 SF 117.355(READLINE\(3\) Library)72 48 R
+(Functions Manual)2.5 E(READLINE\(3\))119.855 E(are e)108 84 Q 2.5
+(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G
(ther character in the macro te)-2.5 E(xt, including " and '.)-.15 E/F1
10/Times-Bold@0 SF(Bash)108 100.8 Q F0(allo)2.93 E .43
(ws the current readline k)-.25 F .73 -.15(ey b)-.1 H .429
@@ -477,1051 +488,1128 @@ E 5.043(.A)-.55 G -.25(va)-2.5 G .043(riable may be set in the).25 F F2
3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25(va)
-.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F1(audible)3.44 E F0(,)A
(readline attempts to ring the terminal')144 300 Q 2.5(sb)-.55 G(ell.)
--2.5 E F1(bind\255tty\255special\255chars \(On\))108 312 Q F0 .055
-(If set to)144 324 R F1(On)2.555 E F0 2.555(,r)C .056(eadline attempts \
-to bind the control characters treated specially by the k)-2.555 F
-(ernel')-.1 E 2.556(st)-.55 G(ermi-)-2.556 E(nal dri)144 336 Q -.15(ve)
--.25 G 2.5(rt).15 G 2.5(ot)-2.5 G(heir readline equi)-2.5 E -.25(va)-.25
-G(lents.).25 E F1(color)108 348 Q(ed\255stats \(Off\))-.18 E F0 1.58
-(If set to)144 360 R F1(On)4.08 E F0 4.08(,r)C 1.579
-(eadline displays possible completions using dif)-4.08 F 1.579
-(ferent colors to indicate their \214le)-.25 F 2.5(type. The)144 372 R
-(color de\214nitions are tak)2.5 E(en from the v)-.1 E(alue of the)-.25
-E F1(LS_COLORS)2.5 E F0(en)2.5 E(vironment v)-.4 E(ariable.)-.25 E F1
-(comment\255begin \(`)108 384 Q(`#')-.63 E('\))-.63 E F0 .062
-(The string that is inserted in)144 396 R F1(vi)2.562 E F0 .062
+-2.5 E F1(bind\255tty\255special\255chars \(On\))108 312 Q F0 .333
+(If set to)144 324 R F1(On)2.833 E F0 .334(\(the def)2.833 F .334
+(ault\), readline attempts to bind the control characters)-.1 F .334
+(treated specially by the)7.834 F -.1(ke)144 336 S(rnel').1 E 2.5(st)
+-.55 G(erminal dri)-2.5 E -.15(ve)-.25 G 2.5(rt).15 G 2.5(ot)-2.5 G
+(heir readline equi)-2.5 E -.25(va)-.25 G(lents.).25 E F1
+(blink\255matching\255par)108 348 Q(en \(Off\))-.18 E F0 .21(If set to)
+144 360 R F1(On)2.71 E F0 2.71(,r)C .21
+(eadline attempts to brie\215y mo)-2.71 F .51 -.15(ve t)-.15 H .21
+(he cursor to an opening parenthesis when a closing).15 F
+(parenthesis is inserted.)144 372 Q F1(color)108 384 Q
+(ed\255completion\255pr)-.18 E(e\214x \(Off\))-.18 E F0 .515(If set to)
+144 396 R F1(On)3.015 E F0 3.015(,w)C .515(hen listing completions, rea\
+dline displays the common pre\214x of the set of possible)-3.015 F 2.936
+(completions using a dif)144 408 R 2.936(ferent color)-.25 F 7.936(.T)
+-.55 G 2.936(he color de\214nitions are tak)-7.936 F 2.935
+(en from the v)-.1 F 2.935(alue of the)-.25 F F1(LS_COLORS)144 420 Q F0
+(en)2.5 E(vironment v)-.4 E(ariable.)-.25 E F1(color)108 432 Q
+(ed\255stats \(Off\))-.18 E F0 1.579(If set to)144 444 R F1(On)4.079 E
+F0 4.079(,r)C 1.579(eadline displays possible completions using dif)
+-4.079 F 1.58(ferent colors to indicate their \214le)-.25 F 2.5
+(type. The)144 456 R(color de\214nitions are tak)2.5 E(en from the v)-.1
+E(alue of the)-.25 E F1(LS_COLORS)2.5 E F0(en)2.5 E(vironment v)-.4 E
+(ariable.)-.25 E F1(comment\255begin \(`)108 468 Q(`#')-.63 E('\))-.63 E
+F0 .062(The string that is inserted in)144 480 R F1(vi)2.562 E F0 .062
(mode when the)2.562 F F1(insert\255comment)2.562 E F0 .062
(command is e)2.562 F -.15(xe)-.15 G 2.562(cuted. This).15 F(com-)2.562
-E(mand is bound to)144 408 Q F1(M\255#)2.5 E F0(in emacs mode and to)2.5
+E(mand is bound to)144 492 Q F1(M\255#)2.5 E F0(in emacs mode and to)2.5
E F1(#)2.5 E F0(in vi command mode.)2.5 E F1
-(completion\255display\255width \(-1\))108 420 Q F0 1.453(The number of\
+(completion\255display\255width \(-1\))108 504 Q F0 1.453(The number of\
screen columns used to display possible matches when performing comple\
-tion.)144 432 R .193(The v)144 444 R .193(alue is ignored if it is less\
- than 0 or greater than the terminal screen width.)-.25 F 2.694(Av)5.194
-G .194(alue of 0 will)-2.944 F
-(cause matches to be displayed one per line.)144 456 Q(The def)5 E
-(ault v)-.1 E(alue is -1.)-.25 E F1(completion\255ignor)108 468 Q
-(e\255case \(Off\))-.18 E F0(If set to)144 480 Q F1(On)2.5 E F0 2.5(,r)C
+tion.)144 516 R .194(The v)144 528 R .193(alue is ignored if it is less\
+ than 0 or greater than the terminal screen width.)-.25 F 2.693(Av)5.193
+G .193(alue of 0 will)-2.943 F
+(cause matches to be displayed one per line.)144 540 Q(The def)5 E
+(ault v)-.1 E(alue is -1.)-.25 E F1(completion\255ignor)108 552 Q
+(e\255case \(Off\))-.18 E F0(If set to)144 564 Q F1(On)2.5 E F0 2.5(,r)C
(eadline performs \214lename matching and completion in a case\255insen\
siti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1
-(completion\255map\255case \(Off\))108 492 Q F0 .094(If set to)144 504 R
+(completion\255map\255case \(Off\))108 576 Q F0 .093(If set to)144 588 R
F1(On)2.593 E F0 2.593(,a)C(nd)-2.593 E F1(completion\255ignor)2.593 E
(e\255case)-.18 E F0 .093(is enabled, readline treats h)2.593 F .093
-(yphens \()-.05 F F2<ad>A F0 2.593(\)a)C .093(nd underscores)-2.593 F
-(\()144 516 Q F2(_)A F0 2.5(\)a)C 2.5(se)-2.5 G(qui)-2.5 E -.25(va)-.25
+(yphens \()-.05 F F2<ad>A F0 2.593(\)a)C .094(nd underscores)-2.593 F
+(\()144 600 Q F2(_)A F0 2.5(\)a)C 2.5(se)-2.5 G(qui)-2.5 E -.25(va)-.25
G(lent when performing case\255insensiti).25 E .3 -.15(ve \214)-.25 H
-(lename matching and completion.).15 E F1(completion\255pr)108 528 Q
+(lename matching and completion.).15 E F1(completion\255pr)108 612 Q
(e\214x\255display\255length \(0\))-.18 E F0 .829(The length in charact\
ers of the common pre\214x of a list of possible completions that is di\
-splayed)144 540 R 1.275(without modi\214cation.)144 552 R 1.275
-(When set to a v)6.275 F 1.274(alue greater than zero, common pre\214x)
--.25 F 1.274(es longer than this)-.15 F -.25(va)144 564 S(lue are repla\
+splayed)144 624 R 1.274(without modi\214cation.)144 636 R 1.274
+(When set to a v)6.274 F 1.274(alue greater than zero, common pre\214x)
+-.25 F 1.275(es longer than this)-.15 F -.25(va)144 648 S(lue are repla\
ced with an ellipsis when displaying possible completions.).25 E F1
-(completion\255query\255items \(100\))108 576 Q F0 .529
-(This determines when the user is queried about vie)144 588 R .53
-(wing the number of possible completions gen-)-.25 F .561(erated by the)
-144 600 R F1(possible\255completions)3.061 E F0 3.061(command. It)3.061
-F .561(may be set to an)3.061 F 3.06(yi)-.15 G(nte)-3.06 E .56(ger v)
--.15 F .56(alue greater than or)-.25 F .782(equal to zero.)144 612 R
+(completion\255query\255items \(100\))108 660 Q F0 .53
+(This determines when the user is queried about vie)144 672 R .529
+(wing the number of possible completions gen-)-.25 F .56(erated by the)
+144 684 R F1(possible\255completions)3.06 E F0 3.06(command. It)3.06 F
+.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.782 F .783(alue of this)-.25 F -.25(va)144 624 S .237
+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 636 Q 2.5(An)5 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
(alue causes readline to ne)-.1 E -.15(ve)-.25 G 2.5(ra).15 G(sk.)-2.5 E
-F1(con)108 648 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .612(If set to)
-144 660 R F1(On)3.112 E F0 3.112(,r)C .613(eadline will con)-3.112 F
--.15(ve)-.4 G .613(rt characters with the eighth bit set to an ASCII k)
-.15 F .913 -.15(ey s)-.1 H .613(equence by).15 F 1.316(stripping the ei\
-ghth bit and pre\214xing it with an escape character \(in ef)144 672 R
-1.315(fect, using escape as the)-.25 F F2(meta pr)144 684 Q(e\214x)-.37
-E F0(\).)A F1(disable\255completion \(Off\))108 696 Q F0 .038(If set to)
-144 708 R F1(On)2.538 E F0 2.538(,r)C .038(eadline will inhibit w)-2.538
-F .038(ord completion.)-.1 F .038
-(Completion characters will be inserted into the)5.038 F(line as if the)
-144 720 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E F0
-(.)A(GNU Readline 6.3)72 768 Q(2014 January 6)128.74 E(3)198.45 E 0 Cg
-EP
+(GNU Readline 7.0)72 768 Q(2016 February 28)123.74 E(3)193.45 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(editing\255mode \(emacs\))108 84 Q F0 .142
-(Controls whether readline be)144 96 R .141(gins with a set of k)-.15 F
-.441 -.15(ey b)-.1 H .141(indings similar to).15 F/F2 10/Times-Italic@0
-SF(Emacs)2.641 E F0(or)2.641 E F2(vi)2.641 E F0(.)A F1(editing\255mode)
-5.141 E F0(can be set to either)144 108 Q F1(emacs)2.5 E F0(or)2.5 E F1
-(vi)2.5 E F0(.)A F1(echo\255contr)108 120 Q(ol\255characters \(On\))-.18
-E F0 1.21(When set to)144 132 R F1(On)3.71 E F0 3.71(,o)C 3.71(no)-3.71
-G 1.211(perating systems that indicate the)-3.71 F 3.711(ys)-.15 G 1.211
+/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
+(con)108 84 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .613(If set to)144
+96 R F1(On)3.113 E F0 3.113(,r)C .613(eadline will con)-3.113 F -.15(ve)
+-.4 G .613(rt characters with the eighth bit set to an ASCII k).15 F
+.912 -.15(ey s)-.1 H .612(equence by).15 F 1.315(stripping the eighth b\
+it and pre\214xing it with an escape character \(in ef)144 108 R 1.316
+(fect, using escape as the)-.25 F/F2 10/Times-Italic@0 SF .503(meta pr)
+144 120 R(e\214x)-.37 E F0 3.003(\). The)B(def)3.003 E .503(ault is)-.1
+F F2(On)3.003 E F0 3.003(,b)C .503(ut readline will set it to)-3.203 F
+F2(Of)3.003 E(f)-.18 E F0 .502(if the locale contains eight-bit char)
+3.003 F(-)-.2 E(acters.)144 132 Q F1(disable\255completion \(Off\))108
+144 Q F0 .038(If set to)144 156 R F1(On)2.538 E F0 2.538(,r)C .038
+(eadline will inhibit w)-2.538 F .038(ord completion.)-.1 F .038
+(Completion characters will be inserted into the)5.038 F(line as if the)
+144 168 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E F0
+(.)A F1(echo\255contr)108 180 Q(ol\255characters \(On\))-.18 E F0 1.211
+(When set to)144 192 R F1(On)3.711 E F0 3.711(,o)C 3.711(no)-3.711 G
+1.211(perating systems that indicate the)-3.711 F 3.711(ys)-.15 G 1.21
(upport it, readline echoes a character)-3.711 F
-(corresponding to a signal generated from the k)144 144 Q -.15(ey)-.1 G
-(board.).15 E F1(enable\255k)108 156 Q(eypad \(Off\))-.1 E F0 .893
-(When set to)144 168 R F1(On)3.393 E F0 3.393(,r)C .893
+(corresponding to a signal generated from the k)144 204 Q -.15(ey)-.1 G
+(board.).15 E F1(editing\255mode \(emacs\))108 216 Q F0 .141
+(Controls whether readline be)144 228 R .141(gins with a set of k)-.15 F
+.441 -.15(ey b)-.1 H .141(indings similar to).15 F F2(Emacs)2.642 E F0
+(or)2.642 E F2(vi)2.642 E F0(.)A F1(editing\255mode)5.142 E F0
+(can be set to either)144 240 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E
+F0(.)A F1(enable\255brack)108 252 Q(eted\255paste \(Off\))-.1 E F0 1.222
+(When set to)144 264 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
+(paste into the editing b)144 276 R(uf)-.2 E .353(fer as a single strin\
+g of characters, instead of treating each character as if)-.25 F .544
+(it had been read from the k)144 288 R -.15(ey)-.1 G 3.043(board. This)
+.15 F .543(can pre)3.043 F -.15(ve)-.25 G .543
+(nt pasted characters from being interpreted as).15 F(editing commands.)
+144 300 Q F1(enable\255k)108 312 Q(eypad \(Off\))-.1 E F0 .892
+(When set to)144 324 R F1(On)3.393 E F0 3.393(,r)C .893
(eadline will try to enable the application k)-3.393 F -.15(ey)-.1 G
-.893(pad when it is called.).15 F .892(Some sys-)5.893 F
-(tems need this to enable the arro)144 180 Q 2.5(wk)-.25 G -.15(ey)-2.6
-G(s.).15 E F1(enable\255meta\255k)108 192 Q(ey \(On\))-.1 E F0 .64
-(When set to)144 204 R F1(On)3.14 E F0 3.14(,r)C .64
+.893(pad when it is called.).15 F .893(Some sys-)5.893 F
+(tems need this to enable the arro)144 336 Q 2.5(wk)-.25 G -.15(ey)-2.6
+G(s.).15 E F1(enable\255meta\255k)108 348 Q(ey \(On\))-.1 E F0 .64
+(When set to)144 360 R F1(On)3.14 E F0 3.14(,r)C .64
(eadline will try to enable an)-3.14 F 3.14(ym)-.15 G .64
(eta modi\214er k)-3.14 F .94 -.15(ey t)-.1 H .64
-(he terminal claims to support).15 F(when it is called.)144 216 Q
+(he terminal claims to support).15 F(when it is called.)144 372 Q
(On man)5 E 2.5(yt)-.15 G(erminals, the meta k)-2.5 E .3 -.15(ey i)-.1 H
2.5(su).15 G(sed to send eight-bit characters.)-2.5 E F1
-(expand\255tilde \(Off\))108 228 Q F0(If set to)144 240 Q F1(On)2.5 E F0
+(expand\255tilde \(Off\))108 384 Q F0(If set to)144 396 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 252 Q(eser)-.18 E -.1
-(ve)-.1 G(\255point \(Off\)).1 E F0 1.339(If set to)144 264 R F1(On)
-3.839 E F0 3.839(,t)C 1.338(he history code attempts to place point at \
-the same location on each history line)-3.839 F(retrie)144 276 Q -.15
+-.15 E(ord completion.)-.1 E F1(history\255pr)108 408 Q(eser)-.18 E -.1
+(ve)-.1 G(\255point \(Off\)).1 E F0 1.338(If set to)144 420 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 432 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 \(0\))108 288 Q F0 .948
-(Set the maximum number of history entries sa)144 300 R -.15(ve)-.2 G
-3.448(di).15 G 3.448(nt)-3.448 G .948(he history list.)-3.448 F .949
-(If set to zero, an)5.948 F 3.449(ye)-.15 G(xisting)-3.599 E .483
-(history entries are deleted and no ne)144 312 R 2.983(we)-.25 G .483
-(ntries are sa)-2.983 F -.15(ve)-.2 G 2.983(d. If).15 F .482(set to a v)
-2.983 F .482(alue less than zero, the num-)-.25 F
-(ber of history entries is not limited.)144 324 Q(By def)5 E
-(ault, the number of history entries is not limited.)-.1 E F1
-(horizontal\255scr)108 336 Q(oll\255mode \(Off\))-.18 E F0 .448
-(When set to)144 348 R F1(On)2.948 E F0 2.948(,m)C(ak)-2.948 E .448
-(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .449
+(history\255size \(unset\))108 444 Q F0 .949
+(Set the maximum number of history entries sa)144 456 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 468 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 480 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 492 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 504 Q F1(horizontal\255scr)108 516 Q(oll\255mode \(Off\))-.18 E F0
+.449(When set to)144 528 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 360 R(w)-.25 E(line.)144 372 Q F1(input\255meta \(Off\))108 384
-Q F0 .367(If set to)144 396 R F1(On)2.867 E F0 2.867(,r)C .367(eadline \
+ ne)144 540 R(w)-.25 E(line.)144 552 Q F1(input\255meta \(Off\))108 564
+Q F0 .367(If set to)144 576 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 .957(acters it reads\), re)144 408 R -.05
+ in the char)-2.867 F(-)-.2 E .956(acters it reads\), re)144 588 R -.05
(ga)-.15 G .956(rdless of what the terminal claims it can support.).05 F
-.956(The name)5.956 F F1(meta\255\215ag)3.456 E F0 .956(is a)3.456 F
-(synon)144 420 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 432 Q
-(ch\255terminators \(`)-.18 E(`C\255[ C\255J')-.63 E('\))-.63 E F0 .439
-(The string of characters that should terminate an incremental search w\
-ithout subsequently e)144 444 R -.15(xe)-.15 G(cut-).15 E .935
-(ing the character as a command.)144 456 R .935(If this v)5.935 F .935
+.957(The name)5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F
+(synon)144 600 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 612 Q F1(isear)
+108 624 Q(ch\255terminators \(`)-.18 E(`C\255[ C\255J')-.63 E('\))-.63 E
+F0 .439(The string of characters that should terminate an incremental s\
+earch without subsequently e)144 636 R -.15(xe)-.15 G(cut-).15 E .935
+(ing the character as a command.)144 648 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(and)144 468 Q F2
+(alue, the characters)-3.684 F F2(ESC)3.434 E F0(and)144 660 Q F2
(C\255J)2.5 E F0(will terminate an incremental search.)2.5 E F1 -.1(ke)
-108 480 S(ymap \(emacs\)).1 E F0 2.323(Set the current readline k)144
-492 R -.15(ey)-.1 G 4.823(map. The).15 F 2.323(set of le)4.823 F -.05
+108 672 S(ymap \(emacs\)).1 E F0 2.323(Set the current readline k)144
+684 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 F2
2.324(emacs, emacs-standar)4.823 F(d,)-.37 E .809
-(emacs-meta, emacs-ctlx, vi, vi-mo)144 504 R(ve)-.1 E 3.308(,v)-.1 G
+(emacs-meta, emacs-ctlx, vi, vi-mo)144 696 R(ve)-.1 E 3.308(,v)-.1 G
(i-command)-3.308 E F0 3.308(,a)C(nd)-3.308 E F2(vi-insert)3.308 E F0(.)
.68 E F2(vi)5.808 E F0 .808(is equi)3.308 F -.25(va)-.25 G .808(lent to)
-.25 F F2(vi-command)3.308 E F0(;)A F2(emacs)144 516 Q F0 .697(is equi)
+.25 F F2(vi-command)3.308 E F0(;)A F2(emacs)144 708 Q F0 .697(is equi)
3.196 F -.25(va)-.25 G .697(lent to).25 F F2(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 F2(emacs)3.197 E F0 5.697(.T).27 G .697(he v)-5.697 F
-.697(alue of)-.25 F F1(editing\255mode)3.197 E F0(also af)144 528 Q
-(fects the def)-.25 E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1 -.1(ke)
-108 540 S(yseq\255timeout \(500\)).1 E F0 .368(Speci\214es the duration)
-144 552 R F2 -.37(re)2.867 G(adline).37 E F0 .367(will w)2.867 F .367
+.697(alue of)-.25 F F1(editing\255mode)3.197 E F0(also af)144 720 Q
+(fects the def)-.25 E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E
+(GNU Readline 7.0)72 768 Q(2016 February 28)123.74 E(4)193.45 E 0 Cg EP
+%%Page: 5 5
+%%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
+(emacs\255mode\255string \(@\))108 84 Q F0 .051(This string is displaye\
+d immediately before the last line of the primary prompt when emacs edi\
+ting)144 96 R .292(mode is acti)144 108 R -.15(ve)-.25 G 5.292(.T).15 G
+.292(he v)-5.292 F .293(alue is e)-.25 F .293(xpanded lik)-.15 F 2.793
+(eak)-.1 G .593 -.15(ey b)-2.893 H .293
+(inding, so the standard set of meta- and control).15 F(pre\214x)144 120
+Q .602(es and backslash escape sequences is a)-.15 F -.25(va)-.2 G 3.101
+(ilable. Use).25 F .601(the \\1 and \\2 escapes to be)3.101 F .601
+(gin and end)-.15 F .019(sequences of non-printing characters, which ca\
+n be used to embed a terminal control sequence into)144 132 R
+(the mode string.)144 144 Q F1 -.1(ke)108 156 S(yseq\255timeout \(500\))
+.1 E F0 .368(Speci\214es the duration)144 168 R/F2 10/Times-Italic@0 SF
+-.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 564 R
+-.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 576 R .62
+-.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 F2 -.37(re)
-2.82 G(adline).37 E F0(will)2.82 E .906(use the shorter b)144 588 R .907
+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 600 R F2 -.37(re)2.55 G(adline)
+(alue of)-.25 F .05(1000 means that)144 216 R F2 -.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 612 R(alue,)-.25
+(less than or equal to zero, or to a non-numeric v)144 228 R(alue,)-.25
E F2 -.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)
--2.552 E(to decide which k)144 624 Q .3 -.15(ey s)-.1 H
-(equence to complete.).15 E F1(mark\255dir)108 636 Q(ectories \(On\))
--.18 E F0(If set to)144 648 Q F1(On)2.5 E F0 2.5(,c)C
+-2.552 E(to decide which k)144 240 Q .3 -.15(ey s)-.1 H
+(equence to complete.).15 E F1(mark\255dir)108 252 Q(ectories \(On\))
+-.18 E F0(If set to)144 264 Q F1(On)2.5 E F0 2.5(,c)C
(ompleted directory names ha)-2.5 E .3 -.15(ve a s)-.2 H(lash appended.)
-.15 E F1(mark\255modi\214ed\255lines \(Off\))108 660 Q F0(If set to)144
-672 Q F1(On)2.5 E F0 2.5(,h)C(istory lines that ha)-2.5 E .3 -.15(ve b)
+.15 E F1(mark\255modi\214ed\255lines \(Off\))108 276 Q F0(If set to)144
+288 Q F1(On)2.5 E F0 2.5(,h)C(istory lines that ha)-2.5 E .3 -.15(ve b)
-.2 H(een modi\214ed are displayed with a preceding asterisk \().15 E F1
-(*)A F0(\).)A F1(mark\255symlink)108 684 Q(ed\255dir)-.1 E
-(ectories \(Off\))-.18 E F0 .175(If set to)144 696 R F1(On)2.675 E F0
+(*)A F0(\).)A F1(mark\255symlink)108 300 Q(ed\255dir)-.1 E
+(ectories \(Off\))-.18 E F0 .175(If set to)144 312 R F1(On)2.675 E F0
2.675(,c)C .175
(ompleted names which are symbolic links to directories ha)-2.675 F .475
--.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 708
-Q(alue of)-.25 E F1(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A
-(GNU Readline 6.3)72 768 Q(2014 January 6)128.74 E(4)198.45 E 0 Cg EP
-%%Page: 5 5
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(match\255hidden\255\214les \(On\))108 84 Q F0 .192
-(This v)144 96 R .192(ariable, when set to)-.25 F F1(On)2.692 E F0 2.692
-(,c)C .192(auses readline to match \214les whose names be)-2.692 F .193
+-.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 324
+Q(alue of)-.25 E F1(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A F1
+(match\255hidden\255\214les \(On\))108 336 Q F0 .192(This v)144 348 R
+.192(ariable, when set to)-.25 F F1(On)2.692 E F0 2.692(,c)C .192
+(auses readline to match \214les whose names be)-2.692 F .193
(gin with a `.)-.15 F 2.693('\()-.7 G(hidden)-2.693 E .457
-(\214les\) when performing \214lename completion.)144 108 R .456
+(\214les\) when performing \214lename completion.)144 360 R .456
(If set to)5.456 F F1(Off)2.956 E F0 2.956(,t)C .456(he leading `.)
-2.956 F 2.956('m)-.7 G .456(ust be supplied by the)-2.956 F
-(user in the \214lename to be completed.)144 120 Q F1
-(menu\255complete\255display\255pr)108 132 Q(e\214x \(Off\))-.18 E F0
-1.585(If set to)144 144 R F1(On)4.085 E F0 4.085(,m)C 1.585(enu complet\
+(user in the \214lename to be completed.)144 372 Q F1
+(menu\255complete\255display\255pr)108 384 Q(e\214x \(Off\))-.18 E F0
+1.585(If set to)144 396 R F1(On)4.085 E F0 4.085(,m)C 1.585(enu complet\
ion displays the common pre\214x of the list of possible completions)
--4.085 F(\(which may be empty\) before c)144 156 Q
-(ycling through the list.)-.15 E F1(output\255meta \(Off\))108 168 Q F0
-.507(If set to)144 180 R F1(On)3.007 E F0 3.007(,r)C .507(eadline will \
+-4.085 F(\(which may be empty\) before c)144 408 Q
+(ycling through the list.)-.15 E F1(output\255meta \(Off\))108 420 Q F0
+.507(If set to)144 432 R F1(On)3.007 E F0 3.007(,r)C .507(eadline will \
display characters with the eighth bit set directly rather than as a me\
-ta-)-3.007 F(pre\214x)144 192 Q(ed escape sequence.)-.15 E F1
-(page\255completions \(On\))108 204 Q F0 .808(If set to)144 216 R F1(On)
-3.308 E F0 3.308(,r)C .808(eadline uses an internal)-3.308 F/F2 10
-/Times-Italic@0 SF(mor)3.308 E(e)-.37 E F0(-lik)A 3.308(ep)-.1 G .808
+ta-)-3.007 F(pre\214x)144 444 Q .884(ed escape sequence.)-.15 F .884
+(The def)5.884 F .884(ault is)-.1 F F2(Of)3.384 E(f)-.18 E F0 3.384(,b)C
+.884(ut readline will set it to)-3.584 F F2(On)3.384 E F0 .885
+(if the locale contains)3.384 F(eight-bit characters.)144 456 Q F1
+(page\255completions \(On\))108 468 Q F0 .809(If set to)144 480 R F1(On)
+3.308 E F0 3.308(,r)C .808(eadline uses an internal)-3.308 F F2(mor)
+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 228 Q F1
-(print\255completions\255horizontally \(Off\))108 240 Q F0 1.319
-(If set to)144 252 R F1(On)3.819 E F0 3.819(,r)C 1.318(eadline will dis\
-play completions with matches sorted horizontally in alphabetical)-3.819
-F(order)144 264 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
-E F1 -2.29 -.18(re v)108 276 T(ert\255all\255at\255newline \(Off\)).08 E
-F0 .698(If set to)144 288 R F1(On)3.198 E F0 3.198(,r)C .699
+(tions at a time.)144 492 Q F1
+(print\255completions\255horizontally \(Off\))108 504 Q F0 1.318
+(If set to)144 516 R F1(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 F1 -2.29 -.18(re v)108 540 T(ert\255all\255at\255newline \(Off\)).08 E
+F0 .699(If set to)144 552 R F1(On)3.199 E F0 3.199(,r)C .699
(eadline will undo all changes to history lines before returning when)
--3.198 F F1(accept\255line)3.199 E F0(is)3.199 E -.15(exe)144 300 S
+-3.199 F F1(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
(ault, history lines may be modi\214ed and retain indi)-.1 F .186
-(vidual undo lists across calls to)-.25 F F1 -.18(re)144 312 S(adline)
-.18 E F0(.)A F1(sho)108 324 Q(w\255all\255if\255ambiguous \(Off\))-.1 E
-F0 .303(This alters the def)144 336 R .303(ault beha)-.1 F .304
+(vidual undo lists across calls to)-.25 F F1 -.18(re)144 576 S(adline)
+.18 E F0(.)A F1(sho)108 588 Q(w\255all\255if\255ambiguous \(Off\))-.1 E
+F0 .304(This alters the def)144 600 R .304(ault beha)-.1 F .304
(vior of the completion functions.)-.2 F .304(If set to)5.304 F F1(On)
-2.804 E F0 2.804(,w)C .304(ords which ha)-2.904 F .604 -.15(ve m)-.2 H
+2.804 E F0 2.803(,w)C .303(ords which ha)-2.903 F .603 -.15(ve m)-.2 H
(ore).15 E 1.264(than one possible completion cause the matches to be l\
-isted immediately instead of ringing the)144 348 R(bell.)144 360 Q F1
-(sho)108 372 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.345
-(This alters the def)144 384 R 5.345(ault beha)-.1 F 5.345
-(vior of the completion functions in a f)-.2 F 5.346(ashion similar to)
--.1 F F1(sho)144 396 Q(w\255all\255if\255ambiguous)-.1 E F0 6.691(.I)C
-4.191(fs)-6.691 G 1.691(et to)-4.191 F F1(On)4.191 E F0 4.191(,w)C 1.691
+isted immediately instead of ringing the)144 612 R(bell.)144 624 Q F1
+(sho)108 636 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.346
+(This alters the def)144 648 R 5.346(ault beha)-.1 F 5.345
+(vior of the completion functions in a f)-.2 F 5.345(ashion similar to)
+-.1 F F1(sho)144 660 Q(w\255all\255if\255ambiguous)-.1 E F0 6.69(.I)C
+4.19(fs)-6.69 G 1.691(et to)-4.19 F F1(On)4.191 E F0 4.191(,w)C 1.691
(ords which ha)-4.291 F 1.991 -.15(ve m)-.2 H 1.691
-(ore than one possible completion).15 F 1.039(without an)144 408 R 3.539
+(ore than one possible completion).15 F 1.04(without an)144 672 R 3.54
(yp)-.15 G 1.039
-(ossible partial completion \(the possible completions don')-3.539 F
-3.539(ts)-.18 G 1.04(hare a common pre\214x\))-3.539 F(cause the matche\
-s to be listed immediately instead of ringing the bell.)144 420 Q F1
-(sho)108 432 Q(w\255mode\255in\255pr)-.1 E(ompt \(Off\))-.18 E F0 1.019
-(If set to)144 444 R F1(On)3.519 E F0 3.519(,a)C 1.018
-(dd a character to the be)-3.519 F 1.018
-(ginning of the prompt indicating the editing mode: emacs)-.15 F
-(\(@\), vi command \(:\) or vi insertion \(+\).)144 456 Q F1
-(skip\255completed\255text \(Off\))108 468 Q F0 .094(If set to)144 480 R
-F1(On)2.594 E F0 2.594(,t)C .095(his alters the def)-2.594 F .095
-(ault completion beha)-.1 F .095
-(vior when inserting a single match into the line.)-.2 F(It')144 492 Q
-2.546(so)-.55 G .046(nly acti)-2.546 F .346 -.15(ve w)-.25 H .046
-(hen performing completion in the middle of a w).15 F 2.545(ord. If)-.1
-F .045(enabled, readline does not)2.545 F 1.394(insert characters from \
-the completion that match characters after point in the w)144 504 R
-1.395(ord being com-)-.1 F(pleted, so portions of the w)144 516 Q
+(ossible partial completion \(the possible completions don')-3.54 F
+3.539(ts)-.18 G 1.039(hare a common pre\214x\))-3.539 F(cause the match\
+es to be listed immediately instead of ringing the bell.)144 684 Q F1
+(sho)108 696 Q(w\255mode\255in\255pr)-.1 E(ompt \(Off\))-.18 E F0 .251
+(If set to)144 708 R F1(On)2.751 E F0 2.751(,a)C .252
+(dd a character to the be)-2.751 F .252
+(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.)-.2 E(GNU Readline 7.0)72 768 Q(2016 February 28)123.74 E(5)
+193.45 E 0 Cg EP
+%%Page: 6 6
+%%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
+(skip\255completed\255text \(Off\))108 84 Q F0 .095(If set to)144 96 R
+F1(On)2.595 E F0 2.595(,t)C .095(his alters the def)-2.595 F .095
+(ault completion beha)-.1 F .094
+(vior when inserting a single match into the line.)-.2 F(It')144 108 Q
+2.545(so)-.55 G .045(nly acti)-2.545 F .345 -.15(ve w)-.25 H .046
+(hen performing completion in the middle of a w).15 F 2.546(ord. If)-.1
+F .046(enabled, readline does not)2.546 F 1.394(insert characters from \
+the completion that match characters after point in the w)144 120 R
+1.394(ord being com-)-.1 F(pleted, so portions of the w)144 132 Q
(ord follo)-.1 E(wing the cursor are not duplicated.)-.25 E F1
-(visible\255stats \(Off\))108 528 Q F0 .847(If set to)144 540 R F1(On)
+(vi\255cmd\255mode\255string \(\(cmd\)\))108 144 Q F0 1.198(This string\
+ is displayed immediately before the last line of the primary prompt wh\
+en vi editing)144 156 R .522(mode is acti)144 168 R .822 -.15(ve a)-.25
+H .522(nd in command mode.).15 F .522(The v)5.522 F .522(alue is e)-.25
+F .522(xpanded lik)-.15 F 3.022(eak)-.1 G .821 -.15(ey b)-3.122 H .521
+(inding, so the standard).15 F .869(set of meta- and control pre\214x)
+144 180 R .869(es and backslash escape sequences is a)-.15 F -.25(va)-.2
+G 3.37(ilable. Use).25 F .87(the \\1 and \\2)3.37 F .387(escapes to be)
+144 192 R .386(gin and end sequences of non-printing characters, which \
+can be used to embed a ter)-.15 F(-)-.2 E
+(minal control sequence into the mode string.)144 204 Q F1
+(vi\255ins\255mode\255string \(\(ins\)\))108 216 Q F0 1.198(This string\
+ is displayed immediately before the last line of the primary prompt wh\
+en vi editing)144 228 R .783(mode is acti)144 240 R 1.083 -.15(ve a)-.25
+H .783(nd in insertion mode.).15 F .783(The v)5.783 F .783(alue is e)
+-.25 F .783(xpanded lik)-.15 F 3.283(eak)-.1 G 1.083 -.15(ey b)-3.383 H
+.783(inding, so the standard).15 F .869
+(set of meta- and control pre\214x)144 252 R .869
+(es and backslash escape sequences is a)-.15 F -.25(va)-.2 G 3.37
+(ilable. Use).25 F .87(the \\1 and \\2)3.37 F .387(escapes to be)144 264
+R .386(gin and end sequences of non-printing characters, which can be u\
+sed to embed a ter)-.15 F(-)-.2 E
+(minal 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 552 Q F1(Conditional Constructs)
-87 568.8 Q F0 .05(Readline implements a f)108 580.8 R .05(acility simil\
+(st)-.55 G .846(ype as reported by)-3.346 F/F2 10/Times-Italic@0 SF
+(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\
-sor)-.1 F .097(which allo)108 592.8 R .097(ws k)-.25 F .396 -.15(ey b)
+sor)-.1 F .096(which allo)108 352.8 R .096(ws k)-.25 F .396 -.15(ey b)
-.1 H .096(indings and v).15 F .096
-(ariable settings to be performed as the result of tests.)-.25 F .096
-(There are four parser)5.096 F(directi)108 604.8 Q -.15(ve)-.25 G 2.5
-(su).15 G(sed.)-2.5 E F1($if)108 621.6 Q F0(The)24.89 E F1($if)2.962 E
-F0 .462(construct allo)2.962 F .463(ws bindings to be made based on the\
- editing mode, the terminal being used,)-.25 F .478
-(or the application using readline.)144 633.6 R .477(The te)5.477 F .477
+(ariable settings to be performed as the result of tests.)-.25 F .097
+(There are four parser)5.096 F(directi)108 364.8 Q -.15(ve)-.25 G 2.5
+(su).15 G(sed.)-2.5 E F1($if)108 381.6 Q F0(The)144 381.6 Q F1($if)2.963
+E F0 .463(construct allo)2.963 F .462(ws bindings to be made based on t\
+he editing mode, the terminal being used,)-.25 F .477
+(or the application using readline.)144 393.6 R .477(The te)5.477 F .477
(xt of the test e)-.15 F .477
(xtends to the end of the line; no characters)-.15 F
-(are required to isolate it.)144 645.6 Q F1(mode)144 662.4 Q F0(The)
-12.67 E F1(mode=)3.711 E F0 1.211(form of the)3.711 F F1($if)3.711 E F0
+(are required to isolate it.)144 405.6 Q F1(mode)144 422.4 Q F0(The)180
+422.4 Q F1(mode=)3.712 E F0 1.212(form of the)3.712 F F1($if)3.711 E F0
(directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711(su).15 G 1.211
(sed to test whether readline is in emacs or vi)-3.711 F 3.065
-(mode. This)180 674.4 R .565(may be used in conjunction with the)3.065 F
+(mode. This)180 434.4 R .565(may be used in conjunction with the)3.065 F
F1 .565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to)
-3.065 F .029(set bindings in the)180 686.4 R F2(emacs-standar)2.529 E(d)
+3.065 F .03(set bindings in the)180 446.4 R F2(emacs-standar)2.529 E(d)
-.37 E F0(and)2.529 E F2(emacs-ctlx)2.529 E F0 -.1(ke)2.529 G .029
-(ymaps only if readline is starting out)-.05 F(in emacs mode.)180 698.4
-Q F1(term)144 715.2 Q F0(The)15.46 E F1(term=)3.197 E F0 .696
-(form may be used to include terminal-speci\214c k)3.197 F .996 -.15
-(ey b)-.1 H .696(indings, perhaps to bind).15 F .654(the k)180 727.2 R
+(ymaps only if readline is starting out)-.05 F(in emacs mode.)180 458.4
+Q F1(term)144 475.2 Q F0(The)180 475.2 Q F1(term=)3.196 E F0 .696
+(form may be used to include terminal-speci\214c k)3.196 F .996 -.15
+(ey b)-.1 H .697(indings, perhaps to bind).15 F .654(the k)180 487.2 R
.954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154
(sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1
-(wo)3.154 G .654(rd on the right side of).1 F(GNU Readline 6.3)72 768 Q
-(2014 January 6)128.74 E(5)198.45 E 0 Cg EP
-%%Page: 6 6
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R(the)
-180 84 Q/F1 10/Times-Bold@0 SF(=)3.004 E F0 .504(is tested ag)3.004 F
-.503(ainst the full name of the terminal and the portion of the termina\
-l name)-.05 F(before the \214rst)180 96 Q F1<ad>2.5 E F0 5(.T)C
-(his allo)-5 E(ws)-.25 E/F2 10/Times-Italic@0 SF(sun)2.84 E F0
+(wo)3.154 G .654(rd on the right side of).1 F(the)180 499.2 Q F1(=)3.003
+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(application)144 112.8 Q F0(The)180
-124.8 Q F1(application)3.003 E F0 .503
+2.5(,f).77 G(or instance.)-2.5 E F1(application)144 528 Q F0(The)180 540
+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
-136.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 .5(particular v)180
-148.8 R 3(alue. This)-.25 F .501(could be used to bind k)3 F .801 -.15
-(ey s)-.1 H .501(equences to functions useful for a spe-).15 F .397
-(ci\214c program.)180 160.8 R -.15(Fo)5.397 G 2.896(ri).15 G .396
+552 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 564 R 3.001(alue. This)-.25 F .501(could be used to bind k)3.001 F
+.801 -.15(ey s)-.1 H .5(equences to functions useful for a spe-).15 F
+.396(ci\214c program.)180 576 R -.15(Fo)5.396 G 2.896(ri).15 G .396
(nstance, the follo)-2.896 F .396(wing command adds a k)-.25 F .696 -.15
-(ey s)-.1 H .396(equence that quotes the).15 F(current or pre)180 172.8
-Q(vious w)-.25 E(ord in)-.1 E F1(bash)2.5 E F0(:)A F1($if)180 196.8 Q F0
-(Bash)2.5 E 2.5(#Q)180 208.8 S(uote the current or pre)-2.5 E(vious w)
--.25 E(ord)-.1 E("\\C-xq": "\\eb\\"\\ef\\"")180 220.8 Q F1($endif)180
-232.8 Q($endif)108 249.6 Q F0(This command, as seen in the pre)9.33 E
+(ey s)-.1 H .397(equence that quotes the).15 F(current or pre)180 588 Q
+(vious w)-.25 E(ord in)-.1 E F1(bash)2.5 E F0(:)A F1($if)180 612 Q F0
+(Bash)2.5 E 2.5(#Q)180 624 S(uote the current or pre)-2.5 E(vious w)-.25
+E(ord)-.1 E("\\C-xq": "\\eb\\"\\ef\\"")180 636 Q F1($endif)180 648 Q
+($endif)108 664.8 Q F0(This command, as seen in the pre)144 664.8 Q
(vious e)-.25 E(xample, terminates an)-.15 E F1($if)2.5 E F0(command.)
-2.5 E F1($else)108 266.4 Q F0(Commands in this branch of the)15.45 E F1
-($if)2.5 E F0(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15
-G(cuted if the test f).15 E(ails.)-.1 E F1($include)108 283.2 Q F0 .356
-(This directi)144 295.2 R .656 -.15(ve t)-.25 H(ak).15 E .356
-(es a single \214lename as an ar)-.1 F .357
+2.5 E F1($else)108 681.6 Q F0(Commands in this branch of the)144 681.6 Q
+F1($if)2.5 E F0(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)
+-.15 G(cuted if the test f).15 E(ails.)-.1 E F1($include)108 698.4 Q F0
+.357(This directi)144 710.4 R .657 -.15(ve t)-.25 H(ak).15 E .357
+(es a single \214lename as an ar)-.1 F .356
(gument and reads commands and bindings from that)-.18 F 2.5(\214le. F)
-144 307.2 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
--.15(ve w)-.25 H(ould read).05 E F2(/etc/inputr)2.5 E(c)-.37 E F0(:)A F1
-($include)144 331.2 Q F2(/etc/inputr)5.833 E(c)-.37 E/F3 10.95
-/Times-Bold@0 SF(SEARCHING)72 348 Q F0 1.004(Readline pro)108 360 R
-1.003(vides commands for searching through the command history for line\
-s containing a speci\214ed)-.15 F 2.5(string. There)108 372 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 .697
-(Incremental searches be)108 388.8 R .697
+144 722.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
+-.15(ve w)-.25 H(ould read).05 E F2(/etc/inputr)2.5 E(c)-.37 E F0(:)A
+(GNU Readline 7.0)72 768 Q(2016 February 28)123.74 E(6)193.45 E 0 Cg EP
+%%Page: 7 7
+%%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
+($include)144 84 Q/F2 10/Times-Italic@0 SF(/etc/inputr)5.833 E(c)-.37 E
+/F3 10.95/Times-Bold@0 SF(SEARCHING)72 100.8 Q F0 1.003(Readline pro)108
+112.8 R 1.003(vides commands for searching through the command history \
+for lines containing a speci\214ed)-.15 F 2.5(string. There)108 124.8 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
+(Incremental searches be)108 141.6 R .698
(gin before the user has \214nished typing the search string.)-.15 F
-.698(As each character of the)5.698 F .113
-(search string is typed, readline displays the ne)108 400.8 R .112
+.697(As each character of the)5.697 F .112
+(search string is typed, readline displays the ne)108 153.6 R .112
(xt entry from the history matching the string typed so f)-.15 F(ar)-.1
-E 5.112(.A)-.55 G(n)-5.112 E .544
-(incremental search requires only as man)108 412.8 R 3.044(yc)-.15 G
-.544(haracters as needed to \214nd the desired history entry)-3.044 F
-5.545(.T)-.65 G 3.045(os)-6.345 G(earch)-3.045 E(backw)108 424.8 Q .181
+E 5.113(.A)-.55 G(n)-5.113 E .545
+(incremental search requires only as man)108 165.6 R 3.045(yc)-.15 G
+.544(haracters as needed to \214nd the desired history entry)-3.045 F
+5.544(.T)-.65 G 3.044(os)-6.344 G(earch)-3.044 E(backw)108 177.6 Q .18
(ard in the history for a particular string, type)-.1 F F1(C\255r)2.681
-E F0 5.181(.T)C(yping)-5.981 E F1(C\255s)2.68 E F0 .18(searches forw)
-2.68 F .18(ard through the history)-.1 F(.)-.65 E .354
-(The characters present in the v)108 436.8 R .354(alue of the)-.25 F F1
+E F0 5.181(.T)C(yping)-5.981 E F1(C\255s)2.681 E F0 .181(searches forw)
+2.681 F .181(ard through the history)-.1 F(.)-.65 E .354
+(The characters present in the v)108 189.6 R .354(alue of the)-.25 F F1
(isear)2.854 E(ch-terminators)-.18 E F0 -.25(va)2.854 G .354
(riable are used to terminate an incremen-).25 F .6(tal search.)108
-448.8 R .6(If that v)5.6 F .6(ariable has not been assigned a v)-.25 F
+201.6 R .6(If that v)5.6 F .6(ariable has not been assigned a v)-.25 F
.6(alue the)-.25 F F2(Escape)3.1 E F0(and)3.1 E F1(C\255J)3.1 E F0 .6
-(characters will terminate an)3.1 F .122(incremental search.)108 460.8 R
-F1(C\255G)5.122 E F0 .122
-(will abort an incremental search and restore the original line.)2.622 F
-.123(When the search is)5.123 F(terminated, the history entry containin\
-g the search string becomes the current line.)108 472.8 Q 2.407 -.8
-(To \214)108 489.6 T .806
+(characters will terminate an)3.1 F .123(incremental search.)108 213.6 R
+F1(C\255G)5.123 E F0 .123
+(will abort an incremental search and restore the original line.)2.623 F
+.122(When the search is)5.122 F(terminated, the history entry containin\
+g the search string becomes the current line.)108 225.6 Q 2.406 -.8
+(To \214)108 242.4 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
-.806(This will search back-)5.806 F -.1(wa)108 501.6 S 1.308(rd or forw)
+.807(This will search back-)5.806 F -.1(wa)108 254.4 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.309(ther k).15 F -.15(ey)-.1 G .317
+-.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 513.6 R -.15(xe)-.15 G .317(cute that command.).15 F -.15(Fo)5.317 G
-2.817(ri).15 G(nstance,)-2.817 E 3.48(an)108 525.6 S -.25(ew)-3.48 G .98
-(line will terminate the search and accept the line, thereby e).25 F
--.15(xe)-.15 G .981(cuting the command from the history).15 F 3.062
-(list. A)108 537.6 R(mo)3.062 E -.15(ve)-.15 G .562
+108 266.4 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 278.4 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 290.4 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 549.6 Q .567(Non-incremental searches read the entire sea\
+(editing.)108 302.4 Q .567(Non-incremental searches read the entire sea\
rch string before starting to search for matching history lines.)108
-566.4 R(The search string may be typed by the user or be part of the co\
-ntents of the current line.)108 578.4 Q F3(EDITING COMMANDS)72 595.2 Q
-F0 1.392(The follo)108 607.2 R 1.391
+319.2 R(The search string may be typed by the user or be part of the co\
+ntents of the current line.)108 331.2 Q F3(EDITING COMMANDS)72 348 Q F0
+1.391(The follo)108 360 R 1.391
(wing is a list of the names of the commands and the def)-.25 F 1.391
(ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F
-3.891(ya)-.15 G(re)-3.891 E 2.5(bound. Command)108 619.2 R
+3.892(ya)-.15 G(re)-3.892 E 2.5(bound. Command)108 372 R
(names without an accompan)2.5 E(ying k)-.15 E .3 -.15(ey s)-.1 H
-(equence are unbound by def).15 E(ault.)-.1 E .054(In the follo)108 636
-R .054(wing descriptions,)-.25 F F2(point)2.554 E F0 .055
-(refers to the current cursor position, and)2.554 F F2(mark)2.555 E F0
-.055(refers to a cursor position)2.555 F(sa)108 648 Q -.15(ve)-.2 G 2.5
-(db).15 G 2.5(yt)-2.5 G(he)-2.5 E F1(set\255mark)2.5 E F0 2.5
+(equence are unbound by def).15 E(ault.)-.1 E .055(In the follo)108
+388.8 R .055(wing descriptions,)-.25 F F2(point)2.555 E F0 .055
+(refers to the current cursor position, and)2.555 F F2(mark)2.555 E F0
+.054(refers to a cursor position)2.554 F(sa)108 400.8 Q -.15(ve)-.2 G
+2.5(db).15 G 2.5(yt)-2.5 G(he)-2.5 E F1(set\255mark)2.5 E F0 2.5
(command. The)2.5 F(te)2.5 E
(xt between the point and mark is referred to as the)-.15 E F2 -.37(re)
-2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 664.8 Q(or Mo)-.25 E(ving)-.1
-E(beginning\255of\255line \(C\255a\))108 676.8 Q F0(Mo)144 688.8 Q .3
+2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 417.6 Q(or Mo)-.25 E(ving)-.1
+E(beginning\255of\255line \(C\255a\))108 429.6 Q F0(Mo)144 441.6 Q .3
-.15(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1
-(end\255of\255line \(C\255e\))108 700.8 Q F0(Mo)144 712.8 Q .3 -.15
-(ve t)-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E(GNU Readline 6.3)72
-768 Q(2014 January 6)128.74 E(6)198.45 E 0 Cg EP
-%%Page: 7 7
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF -.25(fo)108 84 S(rward\255char \(C\255f\)).25 E F0(Mo)
-144 96 Q .3 -.15(ve f)-.15 H(orw).15 E(ard a character)-.1 E(.)-.55 E F1
-(backward\255char \(C\255b\))108 108 Q F0(Mo)144 120 Q .3 -.15(ve b)-.15
-H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 132 S(rward\255w).25 E
-(ord \(M\255f\))-.1 E F0(Mo)144 144 Q .823 -.15(ve f)-.15 H(orw).15 E
-.523(ard to the end of the ne)-.1 F .523(xt w)-.15 F 3.023(ord. W)-.1 F
-.522(ords are composed of alphanumeric characters \(let-)-.8 F
-(ters and digits\).)144 156 Q F1(backward\255w)108 168 Q(ord \(M\255b\))
--.1 E F0(Mo)144 180 Q 1.71 -.15(ve b)-.15 H 1.41
+(end\255of\255line \(C\255e\))108 453.6 Q F0(Mo)144 465.6 Q .3 -.15
+(ve t)-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108
+477.6 S(rward\255char \(C\255f\)).25 E F0(Mo)144 489.6 Q .3 -.15(ve f)
+-.15 H(orw).15 E(ard a character)-.1 E(.)-.55 E F1
+(backward\255char \(C\255b\))108 501.6 Q F0(Mo)144 513.6 Q .3 -.15(ve b)
+-.15 H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 525.6 S(rward\255w)
+.25 E(ord \(M\255f\))-.1 E F0(Mo)144 537.6 Q .822 -.15(ve f)-.15 H(orw)
+.15 E .522(ard to the end of the ne)-.1 F .523(xt w)-.15 F 3.023(ord. W)
+-.1 F .523(ords are composed of alphanumeric characters \(let-)-.8 F
+(ters and digits\).)144 549.6 Q F1(backward\255w)108 561.6 Q
+(ord \(M\255b\))-.1 E F0(Mo)144 573.6 Q 1.71 -.15(ve b)-.15 H 1.41
(ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91
(ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F
-(characters \(letters and digits\).)144 192 Q F1(clear\255scr)108 204 Q
-(een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 216 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 228 Q F1 -.18(re)108 240
-S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144
-252 Q F1(Commands f)87 268.8 Q(or Manipulating the History)-.25 E
-(accept\255line \(Newline, Retur)108 280.8 Q(n\))-.15 E F0 .364
-(Accept the line re)144 292.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 304.8 R F1
-(add_history\(\))3.241 E F0 5.741(.I)C 3.241(ft)-5.741 G .74
+(characters \(letters and digits\).)144 585.6 Q F1(clear\255scr)108
+597.6 Q(een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 609.6 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 621.6 Q F1 -.18(re)108
+633.6 S(draw\255curr).18 E(ent\255line)-.18 E F0
+(Refresh the current line.)144 645.6 Q F1(Commands f)87 662.4 Q
+(or Manipulating the History)-.25 E(accept\255line \(Newline, Retur)108
+674.4 Q(n\))-.15 E F0 .365(Accept the line re)144 686.4 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 698.4 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 316.8 Q F1(pr)108 328.8 Q
--.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0(Fetch the pre)144
-340.8 Q(vious command from the history list, mo)-.25 E
-(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 352.8 Q
-F0(Fetch the ne)144 364.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 376.8 Q F0(Mo)144 388.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 400.8 Q F0(Mo)144 412.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 424.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0
-1.47(Search backw)144 436.8 R 1.471
-(ard starting at the current line and mo)-.1 F 1.471
-(ving `up' through the history as necessary)-.15 F(.)-.65 E
-(This is an incremental search.)144 448.8 Q F1 -.25(fo)108 460.8 S
-(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.132
-(Search forw)144 472.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 484.8 Q F1
-(non\255incr)108 496.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 508.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 520.8 S
-(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 532.8 Q
-(emental\255f)-.18 E(orward\255sear)-.25 E(ch\255history \(M\255n\))-.18
-E F0 1.354(Search forw)144 544.8 R 1.354(ard through the history using \
-a non-incremental search for a string supplied by the)-.1 F(user)144
-556.8 Q(.)-.55 E F1(history\255sear)108 568.8 Q(ch\255backward)-.18 E F0
-.95(Search backw)144 580.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 592.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 604.8 Q(This is a non-incremental search.)5 E F1
-(history\255sear)108 616.8 Q(ch\255f)-.18 E(orward)-.25 E F0 .248
-(Search forw)144 628.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 640.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 652.8 Q F1
-(history\255substring\255sear)108 664.8 Q(ch\255backward)-.18 E F0 .95
-(Search backw)144 676.8 R .951(ard through the history for the string o\
-f characters between the start of the current)-.1 F .007
-(line and the current cursor position \(the)144 688.8 R F2(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 700.8 R
-(is a non-incremental search.)2.5 E(GNU Readline 6.3)72 768 Q
-(2014 January 6)128.74 E(7)198.45 E 0 Cg EP
+(line is restored to its original state.)144 710.4 Q(GNU Readline 7.0)72
+768 Q(2016 February 28)123.74 E(7)193.45 E 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(history\255substring\255sear)108 84 Q(ch\255f)-.18 E
-(orward)-.25 E F0 .248(Search forw)144 96 R .249(ard through the histor\
-y for the string of characters between the start of the current line)-.1
-F .319(and the point.)144 108 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 120 Q F1
-(yank\255nth\255ar)108 132 Q 2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622
-(Insert the \214rst ar)144 144 R .622(gument to the pre)-.18 F .622
+/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
+(pr)108 84 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0
+(Fetch the pre)144 96 Q(vious command from the history list, mo)-.25 E
+(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 108 Q
+F0(Fetch the ne)144 120 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 132 Q F0(Mo)144 144 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 156 Q F0(Mo)144 168 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
+180 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 1.471
+(Search backw)144 192 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 204 Q F1 -.25(fo)108 216 S
+(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131
+(Search forw)144 228 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 240 Q F1(non\255incr)108
+252 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 264 R .164(ar\
+d through the history starting at the current line using a non-incremen\
+tal search for)-.1 F 2.5(as)144 276 S(tring supplied by the user)-2.5 E
+(.)-.55 E F1(non\255incr)108 288 Q(emental\255f)-.18 E(orward\255sear)
+-.25 E(ch\255history \(M\255n\))-.18 E F0 1.353(Search forw)144 300 R
+1.354(ard through the history using a non-incremental search for a stri\
+ng supplied by the)-.1 F(user)144 312 Q(.)-.55 E F1(history\255sear)108
+324 Q(ch\255backward)-.18 E F0 .951(Search backw)144 336 R .951(ard thr\
+ough the history for the string of characters between the start of the \
+current)-.1 F .12(line and the current cursor position \(the)144 348 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 360 Q(This is a non-incremental search.)5 E F1
+(history\255sear)108 372 Q(ch\255f)-.18 E(orward)-.25 E F0 .249
+(Search forw)144 384 R .249(ard through the history for the string of c\
+haracters between the start of the current line)-.1 F .035
+(and the point.)144 396 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 408 Q F1
+(history\255substring\255sear)108 420 Q(ch\255backward)-.18 E F0 .951
+(Search backw)144 432 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 444 R F2(point)2.507 E
+F0 2.507(\). The)B .007(search string may match an)2.507 F .007
+(ywhere in a history)-.15 F 2.5(line. This)144 456 R
+(is a non-incremental search.)2.5 E F1(history\255substring\255sear)108
+468 Q(ch\255f)-.18 E(orward)-.25 E F0 .249(Search forw)144 480 R .249(a\
+rd through the history for the string of characters between the start o\
+f the current line)-.1 F .318(and the point.)144 492 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 504 Q F1
+(yank\255nth\255ar)108 516 Q 2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622
+(Insert the \214rst ar)144 528 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 156 R -.4(Wi)5.795 G .794
-(th an ar).4 F(gument)-.18 E/F2 10/Times-Italic@0 SF(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 168 Q .291(vious command be)-.25 F .291
-(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 180 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 192 Q
-(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 204 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 216 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 228 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 240 Q .806 -.15(ve b)-.15 H .507
+.622(vious line\))-.25 F .794(at point.)144 540 R -.4(Wi)5.794 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 .795(ords in the)-.1 F(pre)144
+552 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 .291(ord from the end of)-.1 F .281(the pre)144 564 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 576 Q
+(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 588 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 600 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 612 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 624 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 252 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 264 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
+1.396(to the \214rst call\) of each line in turn.)144 636 R(An)6.396 E
+3.896(yn)-.15 G 1.396(umeric ar)-3.896 F 1.397
+(gument supplied to these successi)-.18 F 1.697 -.15(ve c)-.25 H(alls)
+.15 E .492(determines the direction to mo)144 648 R .792 -.15(ve t)-.15
+H .492(hrough the history).15 F 5.491(.A)-.65 G(ne)-2.5 E -.05(ga)-.15 G
+(ti).05 E .791 -.15(ve a)-.25 H -.18(rg).15 G .491
(ument switches the direction).18 F .494
-(through the history \(back or forw)144 276 R 2.994(ard\). The)-.1 F
+(through the history \(back or forw)144 660 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 288 Q
+(acilities are used to e)-.1 F .494(xtract the last)-.15 F(ar)144 672 Q
(gument, as if the "!$" history e)-.18 E(xpansion had been speci\214ed.)
--.15 E F1(Commands f)87 304.8 Q(or Changing T)-.25 E(ext)-.92 E F2
-(end\255of\255\214le)108 316.8 Q F1(\(usually C\255d\))2.5 E F0 .798
-(The character indicating end-of-\214le as set, for e)144 328.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 340.8 R
-.592(ginning of the line, Readline interprets it)-.15 F
-(as the end of input and returns)144 352.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 364.8 Q
-F0 .441(Delete the character at point.)144 376.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 388.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 400.8 Q F0 .553(Delete the character behind the cursor)144 412.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 424.8 Q F1
--.25(fo)108 436.8 S(rward\255backward\255delete\255char).25 E F0 .473
-(Delete the character under the cursor)144 448.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 460.8 Q F1
-(quoted\255insert \(C\255q, C\255v\))108 472.8 Q F0 1.229(Add the ne)144
-484.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 496.8
-Q F0 2.5(,f)C(or e)-2.5 E(xample.)-.15 E F1(tab\255insert \(M-T)108
-508.8 Q(AB\))-.9 E F0(Insert a tab character)144 520.8 Q(.)-.55 E F1
-(self\255insert \(a, b, A, 1, !, ...\))108 532.8 Q F0
-(Insert the character typed.)144 544.8 Q F1
-(transpose\255chars \(C\255t\))108 556.8 Q F0 .321
-(Drag the character before point forw)144 568.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
-(If point is at the end of the line, then this transposes the tw)144
-580.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 592.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 604.8 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144
-616.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 628.8 Q 2.5
-(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 640.8 Q
-(ord \(M\255u\))-.1 E F0 1.699(Uppercase the current \(or follo)144
-652.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 664.8 S(rd, b).1
-E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 676.8 Q
-(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 688.8 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 700.8 S(rd, b).1 E(ut do not mo)-.2 E .3
--.15(ve p)-.15 H(oint.).15 E(GNU Readline 6.3)72 768 Q(2014 January 6)
-128.74 E(8)198.45 E 0 Cg EP
+-.15 E F1(Commands f)87 688.8 Q(or Changing T)-.25 E(ext)-.92 E F2
+(end\255of\255\214le)108 700.8 Q F1(\(usually C\255d\))2.5 E F0 .799
+(The character indicating end-of-\214le as set, for e)144 712.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 724.8 R
+.593(ginning of the line, Readline interprets it)-.15 F
+(GNU Readline 7.0)72 768 Q(2016 February 28)123.74 E(8)193.45 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(capitalize\255w)108 84 Q(ord \(M\255c\))-.1 E F0 1.975
-(Capitalize the current \(or follo)144 96 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 108 S(rd, b).1 E(ut do not mo)-.2 E .3 -.15(ve p)-.15
-H(oint.).15 E F1 -.1(ove)108 120 S(rwrite\255mode).1 E F0 -.8(To)144 132
-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 144 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 156 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 168 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 180 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 192 Q
-(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87
-208.8 Q(anking)-.85 E(kill\255line \(C\255k\))108 220.8 Q F0
-(Kill the te)144 232.8 Q(xt from point to the end of the line.)-.15 E F1
-(backward\255kill\255line \(C\255x Rubout\))108 244.8 Q F0(Kill backw)
-144 256.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
-(unix\255line\255discard \(C\255u\))108 268.8 Q F0(Kill backw)144 280.8
+/F0 10/Times-Roman@0 SF 117.355(READLINE\(3\) Library)72 48 R
+(Functions Manual)2.5 E(READLINE\(3\))119.855 E
+(as the end of input and returns)144 84 Q/F1 9/Times-Bold@0 SF(EOF)2.5 E
+/F2 9/Times-Roman@0 SF(.)A/F3 10/Times-Bold@0 SF
+(delete\255char \(C\255d\))108 96 Q F0 .442
+(Delete the character at point.)144 108 R .442
+(If this function is bound to the same character as the tty)5.442 F F3
+(EOF)2.941 E F0(char)2.941 E(-)-.2 E(acter)144 120 Q 2.5(,a)-.4 G(s)-2.5
+E F3(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 F3(backward\255delete\255char \(Rubout\))
+108 132 Q F0 .552(Delete the character behind the cursor)144 144 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 .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 156 Q F3 -.25
+(fo)108 168 S(rward\255backward\255delete\255char).25 E F0 .474
+(Delete the character under the cursor)144 180 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 192 Q F3
+(quoted\255insert \(C\255q, C\255v\))108 204 Q F0 1.228(Add the ne)144
+216 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 F3(C\255q)144 228 Q
+F0 2.5(,f)C(or e)-2.5 E(xample.)-.15 E F3(tab\255insert \(M-T)108 240 Q
+(AB\))-.9 E F0(Insert a tab character)144 252 Q(.)-.55 E F3
+(self\255insert \(a, b, A, 1, !, ...\))108 264 Q F0
+(Insert the character typed.)144 276 Q F3(transpose\255chars \(C\255t\))
+108 288 Q F0 .322(Drag the character before point forw)144 300 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 312
+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(ar)144 324 Q(guments ha)-.18 E .3
+-.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F3
+(transpose\255w)108 336 Q(ords \(M\255t\))-.1 E F0 .024(Drag the w)144
+348 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 360 Q 2.5
+(ow)-.1 G(ords on the line.)-2.6 E F3(upcase\255w)108 372 Q
+(ord \(M\255u\))-.1 E F0 1.698(Uppercase the current \(or follo)144 384
+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 396 S(rd, b).1 E
+(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F3(do)108 408 Q
+(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 420 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 432 S(rd, b).1 E(ut do not mo)-.2 E .3
+-.15(ve p)-.15 H(oint.).15 E F3(capitalize\255w)108 444 Q
+(ord \(M\255c\))-.1 E F0 1.974(Capitalize the current \(or follo)144 456
+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.975
+(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 468 S(rd, b).1
+E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F3 -.1(ove)108 480
+S(rwrite\255mode).1 E F0 -.8(To)144 492 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 504 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 516 Q F3
+(emacs)4.395 E F0(mode;)4.395 E F3(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/F4 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
+528 R -.15(ove)3.968 G 1.468(rwrite mode, characters bound to).15 F F3
+(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 540 R .958
+(xt to the right.)-.15 F .957(Characters bound to)5.958 F F3
+(backward\255delete\255char)3.457 E F0 .957(replace the character)3.457
+F(before point with a space.)144 552 Q(By def)5 E
+(ault, this command is unbound.)-.1 E F3(Killing and Y)87 568.8 Q
+(anking)-.85 E(kill\255line \(C\255k\))108 580.8 Q F0(Kill the te)144
+592.8 Q(xt from point to the end of the line.)-.15 E F3
+(backward\255kill\255line \(C\255x Rubout\))108 604.8 Q F0(Kill backw)
+144 616.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F3
+(unix\255line\255discard \(C\255u\))108 628.8 Q F0(Kill backw)144 640.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 292.8 Q F0
+-2.5 G(he kill-ring.)-2.5 E F3(kill\255whole\255line)108 652.8 Q F0
(Kill all characters on the current line, no matter where point is.)144
-304.8 Q F1(kill\255w)108 316.8 Q(ord \(M\255d\))-.1 E F0 1.308
-(Kill from point the end of the current w)144 328.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 340.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 352.8 Q
-(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 364.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 376.8 Q
-(ord\255rubout \(C\255w\))-.1 E F0 .364(Kill the w)144 388.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
-400.8 Q F1(unix\255\214lename\255rubout)108 412.8 Q F0 .167(Kill the w)
-144 424.8 R .166
+664.8 Q F3(kill\255w)108 676.8 Q(ord \(M\255d\))-.1 E F0 1.308
+(Kill from point the end of the current w)144 688.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 700.8 S
+(rd boundaries are the same as those used by).8 E F3 -.25(fo)2.5 G
+(rward\255w).25 E(ord)-.1 E F0(.)A(GNU Readline 7.0)72 768 Q
+(2016 February 28)123.74 E(9)193.45 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
+(backward\255kill\255w)108 84 Q(ord \(M\255Rubout\))-.1 E F0(Kill the w)
+144 96 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 108 Q(ord\255rubout \(C\255w\))-.1 E
+F0 .365(Kill the w)144 120 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
+132 Q F1(unix\255\214lename\255rubout)108 144 Q F0 .166(Kill the w)144
+156 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 436.8 Q
+-.1 F .167(ord boundaries.)-.1 F(The)5.167 E(killed te)144 168 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 448.8 Q F0
-(Delete all spaces and tabs around point.)144 460.8 Q F1(kill\255r)108
-472.8 Q(egion)-.18 E F0 1.13(Kill the te)144 484.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 496.8 S(gion)-.03 E
-F0(.)A F1(copy\255r)108 508.8 Q(egion\255as\255kill)-.18 E F0(Cop)144
-520.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 180 Q F0
+(Delete all spaces and tabs around point.)144 192 Q F1(kill\255r)108 204
+Q(egion)-.18 E F0 1.13(Kill the te)144 216 R 1.13
+(xt between the point and)-.15 F/F2 10/Times-Italic@0 SF(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
+228 S(gion)-.03 E F0(.)A F1(copy\255r)108 240 Q(egion\255as\255kill)-.18
+E F0(Cop)144 252 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 532.8 Q(ord)-.1 E F0(Cop)144 544.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 556.8
-Q(ord)-.1 E F0(.)A F1(copy\255f)108 568.8 Q(orward\255w)-.25 E(ord)-.1 E
-F0(Cop)144 580.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 592.8 Q(ord)-.1 E F0(.)
-A F1(yank \(C\255y\))108 604.8 Q F0 -1(Ya)144 616.8 S
+(copy\255backward\255w)108 264 Q(ord)-.1 E F0(Cop)144 276 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 288
+Q(ord)-.1 E F0(.)A F1(copy\255f)108 300 Q(orward\255w)-.25 E(ord)-.1 E
+F0(Cop)144 312 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 324 Q(ord)-.1 E F0(.)A F1
+(yank \(C\255y\))108 336 Q F0 -1(Ya)144 348 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 628.8 Q F0
-(Rotate the kill ring, and yank the ne)144 640.8 Q 2.5(wt)-.25 G 2.5
+E F1(yank\255pop \(M\255y\))108 360 Q F0
+(Rotate the kill ring, and yank the ne)144 372 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 657.6 Q
-(guments)-.1 E(digit\255ar)108 669.6 Q
-(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .642
-(Add this digit to the ar)144 681.6 R .641
-(gument already accumulating, or start a ne)-.18 F 3.141(wa)-.25 G -.18
-(rg)-3.141 G 3.141(ument. M\255\255).18 F .641(starts a ne)3.141 F(g-)
--.15 E(ati)144 693.6 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
-(uni)108 705.6 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .778
-(This is another w)144 717.6 R .779(ay to specify an ar)-.1 F 3.279
-(gument. If)-.18 F .779(this command is follo)3.279 F .779
-(wed by one or more digits,)-.25 F 2.684
+F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 388.8 Q
+(guments)-.1 E(digit\255ar)108 400.8 Q
+(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .367
+(Add this digit to the ar)144 412.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 424.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G
+(ument.).18 E F1(uni)108 436.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1
+E F0 .779(This is another w)144 448.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
-729.6 R 5.184(gument. If)-.18 F 2.684(the command is)5.184 F
-(GNU Readline 6.3)72 768 Q(2014 January 6)128.74 E(9)198.45 E 0 Cg EP
-%%Page: 10 10
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R(follo)
-144 84 Q .244(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E/F1 10
-/Times-Bold@0 SF(uni)2.744 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E
-F0(ag)2.744 E .244(ain ends the numeric ar)-.05 F .244(gument, b)-.18 F
-.245(ut is other)-.2 F(-)-.2 E .899(wise ignored.)144 96 R .898
-(As a special case, if this command is immediately follo)5.899 F .898
+460.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
+472.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 .898(wise ignored.)144 484.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 108 R .243
+(neither a digit or minus sign, the ar)144 496.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 120 Q .378
+-.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 508.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 132 Q 2.5(,as)-.4 G(econd time mak)
+.378(gument count)-.18 F(four)144 520.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 148.8 Q(complete \(T)108 160.8 Q(AB\))-.9 E F0 1.908
-(Attempt to perform completion on the te)144 172.8 R 1.908
-(xt before point.)-.15 F 1.909(The actual completion performed is)6.909
-F(application-speci\214c.)144 184.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 196.8 Q .656
-(xt be)-.15 F .656(gins with)-.15 F F1($)3.156 E F0 .656
+(Completing)87 537.6 Q(complete \(T)108 549.6 Q(AB\))-.9 E F0 1.909
+(Attempt to perform completion on the te)144 561.6 R 1.908
+(xt before point.)-.15 F 1.908(The actual completion performed is)6.908
+F(application-speci\214c.)144 573.6 Q F1(Bash)5.517 E F0 3.017(,f)C .518
+(or instance, attempts completion treating the te)-3.017 F .518
+(xt as a v)-.15 F .518(ariable \(if the)-.25 F(te)144 585.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 208.8 R .929
-(If none of these produces a match, \214lename)5.929 F 1.273
-(completion is attempted.)144 220.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 597.6 R .93
+(If none of these produces a match, \214lename)5.929 F 1.274
+(completion is attempted.)144 609.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 232.8 S(riab\
+(ws completion of program functions and)-.25 F -.25(va)144 621.6 S(riab\
les, and only attempts \214lename completion under certain circumstance\
-s.).25 E F1(possible\255completions \(M\255?\))108 244.8 Q F0 .262
-(List the possible completions of the te)144 256.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 268.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 280.8 Q(vironment v)-.4 E
-(ariable)-.25 E/F2 9/Times-Bold@0 SF(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF
+s.).25 E F1(possible\255completions \(M\255?\))108 633.6 Q F0 .261
+(List the possible completions of the te)144 645.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 657.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 669.6 Q(vironment v)-.4 E
+(ariable)-.25 E/F3 9/Times-Bold@0 SF(COLUMNS)2.5 E/F4 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 292.8 Q F0 .783
-(Insert all completions of the te)144 304.8 R .783
+(insert\255completions \(M\255*\))108 681.6 Q F0 .783
+(Insert all completions of the te)144 693.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
-316.8 Q F0(.)A F1(menu\255complete)108 328.8 Q F0 .928(Similar to)144
-340.8 R F1(complete)3.428 E F0 3.428(,b)C .929(ut replaces the w)-3.628
-F .929(ord to be completed with a single match from the list of)-.1 F
-1.194(possible completions.)144 352.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 364.8 R .828
+.783(een generated by).15 F F1(possible\255com-)3.283 E(pletions)144
+705.6 Q F0(.)A(GNU Readline 7.0)72 768 Q(2016 February 28)123.74 E(10)
+188.45 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
+(menu\255complete)108 84 Q F0 .929(Similar to)144 96 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.193
+(possible completions.)144 108 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 120 R .828
(At the end of the list of completions, the bell is rung)5.828 F .727
-(\(subject to the setting of)144 376.8 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 388.8 R 1.73(ard in the list of matches; a ne)-.1 F
+(\(subject to the setting of)144 132 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/F2 10/Times-Italic@0 SF(n)3.227 E
+F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.228 E F0 1.73
+(positions forw)144 144 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 400.8 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 412.8 Q F0 .82
-(Identical to)144 424.8 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
+E(through the list.)144 156 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 168 Q F0 .82(Identical to)144
+180 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 436.8 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 448.8 Q F0 .373
-(Deletes the character under the cursor if not at the be)144 460.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 472.8 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 489.6 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr)
-108 501.6 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)).833 E F0(Be)144 513.6 Q
+(menu\255complete)144 192 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 204 Q F0 .374
+(Deletes the character under the cursor if not at the be)144 216 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 228 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 244.8 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr)108
+256.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)).833 E F0(Be)144 268.8 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 525.6 Q 2.5(o\()
--.18 G(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 537.6 Q
+(ey)-.1 G(board macro.).15 E F1(end\255kbd\255macr)108 280.8 Q 2.5(o\()
+-.18 G(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 292.8 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 549.6 Q 2.5(o\()-.18 G(C\255x e\))-2.5
-E F0(Re-e)144 561.6 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1
-G .999(board macro de\214ned, by making the characters in the macro app\
-ear as if).15 F .662(typed at the k)144 573.6 R -.15(ey)-.1 G(board.).15
-E F1(print\255last\255kbd\255macr)5.663 E 3.163(o\()-.18 G(\))-3.163 E
-F0 .663(Print the last k)3.163 F -.15(ey)-.1 G .663
+(call\255last\255kbd\255macr)108 304.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
+E F0(Re-e)144 316.8 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 .663(typed at the k)144 328.8 R -.15(ey)-.1 G
+(board.).15 E F1(print\255last\255kbd\255macr)5.663 E 3.163(o\()-.18 G
+(\))-3.163 E F0 .663(Print the last k)3.163 F -.15(ey)-.1 G .663
(board macro de\214ned in a for).15 F(-)-.2 E(mat suitable for the)144
-585.6 Q F4(inputr)2.5 E(c)-.37 E F0(\214le.)2.5 E F1(Miscellaneous)87
-602.4 Q -.18(re)108 614.4 S<ad72>.18 E
-(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777
-(Read in the contents of the)144 626.4 R F4(inputr)4.277 E(c)-.37 E F0
-1.776(\214le, and incorporate an)4.276 F 4.276(yb)-.15 G 1.776
-(indings or v)-4.276 F 1.776(ariable assignments)-.25 F(found there.)144
-638.4 Q F1(abort \(C\255g\))108 650.4 Q F0 3.248
-(Abort the current editing command and ring the terminal')144 662.4 R
-5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1
-(bell\255style)144 674.4 Q F0(\).)A F1(do\255upper)108 686.4 Q
-(case\255v)-.18 E(ersion \(M\255a, M\255b, M\255)-.1 E F4(x)A F1 2.5(,.)
-C(..\))-2.5 E F0 1.756(If the meta\214ed character)144 698.4 R F4(x)
-4.256 E F0 1.755(is lo)4.256 F 1.755
+340.8 Q F2(inputr)2.5 E(c)-.37 E F0(\214le.)2.5 E F1(Miscellaneous)87
+357.6 Q -.18(re)108 369.6 S<ad72>.18 E
+(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.776
+(Read in the contents of the)144 381.6 R F2(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
+393.6 Q F1(abort \(C\255g\))108 405.6 Q F0 3.249
+(Abort the current editing command and ring the terminal')144 417.6 R
+5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1
+(bell\255style)144 429.6 Q F0(\).)A F1(do\255upper)108 441.6 Q
+(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.755(If the meta\214ed character)144 453.6 R F2(x)
+4.255 E F0 1.755(is lo)4.255 F 1.756
(wercase, run the command that is bound to the corresponding)-.25 F
-(uppercase character)144 710.4 Q(.)-.55 E(GNU Readline 6.3)72 768 Q
-(2014 January 6)128.74 E(10)193.45 E 0 Cg EP
-%%Page: 11 11
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(pr)108 84 Q(e\214x\255meta \(ESC\))-.18 E F0
-(Metafy the ne)144 96 Q(xt character typed.)-.15 E/F2 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 108 Q F0
-(Incremental undo, separately remembered for each line.)144 120 Q F1
--2.29 -.18(re v)108 132 T(ert\255line \(M\255r\)).08 E F0 1.095
-(Undo all changes made to this line.)144 144 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
+(uppercase character)144 465.6 Q(.)-.55 E F1(pr)108 477.6 Q
+(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 489.6 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 501.6 Q F0
+(Incremental undo, separately remembered for each line.)144 513.6 Q F1
+-2.29 -.18(re v)108 525.6 T(ert\255line \(M\255r\)).08 E F0 1.095
+(Undo all changes made to this line.)144 537.6 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 156 Q F1
-(tilde\255expand \(M\255&\))108 168 Q F0(Perform tilde e)144 180 Q
+(return the line to its initial state.)144 549.6 Q F1
+(tilde\255expand \(M\255&\))108 561.6 Q F0(Perform tilde e)144 573.6 Q
(xpansion on the current w)-.15 E(ord.)-.1 E F1
-(set\255mark \(C\255@, M\255<space>\))108 192 Q F0
-(Set the mark to the point.)144 204 Q(If a numeric ar)5 E
+(set\255mark \(C\255@, M\255<space>\))108 585.6 Q F0
+(Set the mark to the point.)144 597.6 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 216 Q F0(Sw)144
-228 Q .283(ap the point with the mark.)-.1 F .283
+(exchange\255point\255and\255mark \(C\255x C\255x\))108 609.6 Q F0(Sw)
+144 621.6 Q .282(ap the point with the mark.)-.1 F .283
(The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G
-2.782(dp).15 G .282(osition, and the old)-2.782 F(cursor position is sa)
-144 240 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 252 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144 264 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 276 Q(vious occurrences.)-.25 E F1(character\255sear)108 288 Q
-(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 300 S 1.044
-(haracter is read and point is mo)-3.544 F -.15(ve)-.15 G 3.544(dt).15 G
+2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa)
+144 633.6 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 645.6 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144
+657.6 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 669.6 Q(vious occurrences.)-.25 E F1(character\255sear)108 681.6 Q
+(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 693.6 S 1.043
+(haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G
3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044
-(vious occurrence of that character)-.25 F 6.043(.A)-.55 G(ne)-2.5 E
+(vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E
-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G
-(count searches for subsequent occurrences.)144 312 Q F1
-(skip\255csi\255sequence)108 324 Q F0 1.826
-(Read enough characters to consume a multi-k)144 336 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 348 R .791
-(Such sequences be)5.791 F .791
+(count searches for subsequent occurrences.)144 705.6 Q
+(GNU Readline 7.0)72 768 Q(2016 February 28)123.74 E(11)188.45 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
+(skip\255csi\255sequence)108 84 Q F0 1.827
+(Read enough characters to consume a multi-k)144 96 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 108 R .791
+(Such sequences be)5.79 F .791
(gin with a Control Sequence Indicator \(CSI\), usually ESC\255[.)-.15 F
-.331(If this sequence is bound to "\\[", k)144 360 R -.15(ey)-.1 G 2.831
-(sp).15 G .331(roducing such sequences will ha)-2.831 F .632 -.15(ve n)
--.2 H 2.832(oe).15 G -.25(ff)-2.832 G .332(ect unless e).25 F(xplic-)
+.332(If this sequence is bound to "\\[", k)144 120 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 372 R(uf)-.2 E(fer)-.25 E 5.026(.T)
--.55 G(his)-5.026 E(is unbound by def)144 384 Q(ault, b)-.1 E
+y characters into the editing b)144 132 R(uf)-.2 E(fer)-.25 E 5.026(.T)
+-.55 G(his)-5.026 E(is unbound by def)144 144 Q(ault, b)-.1 E
(ut usually bound to ESC\255[.)-.2 E F1(insert\255comment \(M\255#\))108
-396 Q F0 -.4(Wi)144 408 S .48(thout a numeric ar).4 F .48(gument, the v)
--.18 F .481(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0
--.25(va)2.981 G .481(riable is inserted at the).25 F(be)144 420 Q .098
-(ginning of the current line.)-.15 F .098(If a numeric ar)5.098 F .097
-(gument is supplied, this command acts as a toggle:)-.18 F(if)5.097 E
-.321(the characters at the be)144 432 R .321
+156 Q F0 -.4(Wi)144 168 S .481(thout a numeric ar).4 F .481
+(gument, the v)-.18 F .481(alue of the readline)-.25 F F1
+(comment\255begin)2.981 E F0 -.25(va)2.981 G .48
+(riable is inserted at the).25 F(be)144 180 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 192 R .321
(ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1
-(comment\255begin)2.821 E F0 2.822(,t)C .322(he v)-2.822 F .322(alue is)
--.25 F 1.014(inserted, otherwise the characters in)144 444 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 456 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 468 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 480 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 492
-Q F0 .626(Print all of the functions and their k)144 504 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 516 Q
-(ay that it can be made part of an)-.1 E/F3 10/Times-Italic@0 SF(inputr)
-2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 528 Q(ariables)-.1 E F0
-.283(Print all of the settable v)144 540 R .283(ariables and their v)
+(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 204 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 216 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 228 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 240 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 252
+Q F0 .627(Print all of the functions and their k)144 264 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 276 Q
+(ay that it can be made part of an)-.1 E/F2 10/Times-Italic@0 SF(inputr)
+2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 288 Q(ariables)-.1 E F0
+.283(Print all of the settable v)144 300 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 552 Q
-(ay that it can be made part of an)-.1 E F3(inputr)2.5 E(c)-.37 E F0
-(\214le.)2.5 E F1(dump\255macr)108 564 Q(os)-.18 E F0 .592
-(Print all of the readline k)144 576 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 588 Q
+(ment is supplied, the output is formatted in such a w)144 312 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 324 Q(os)-.18 E F0 .593
+(Print all of the readline k)144 336 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 348 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 F3(inputr)3.027 E(c)-.37 E F0
-(\214le.)144 600 Q F1(emacs\255editing\255mode \(C\255e\))108 612 Q F0
-(When in)144 624 Q F1(vi)2.5 E F0(command mode, this causes a switch to)
+(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0
+(\214le.)144 360 Q F1(emacs\255editing\255mode \(C\255e\))108 372 Q F0
+(When in)144 384 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 636 Q F0(When in)144 648 Q F1
+(vi\255editing\255mode \(M\255C\255j\))108 396 Q F0(When in)144 408 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 664.8 Q -.548(AU)
--.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .064(The follo)
-108 676.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 688.8 R F3(meta\214ed)
+F0(editing mode.)2.5 E/F3 10.95/Times-Bold@0 SF(DEF)72 424.8 Q -.548(AU)
+-.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .065(The follo)
+108 436.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 448.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 700.8 R F1
-(self\255insert)3.615 E F0 1.116(function, which just inserts the gi)
+(printable ASCII characters not mentioned)3.027 F 1.116
+(in the list of emacs standard bindings are bound to the)108 460.8 R F1
+(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
-712.8 R .945(In vi insertion mode, all characters not speci\214cally me\
-ntioned are bound to)5.945 F F1(self\255insert)108 724.8 Q F0 5.358(.C)C
-.358(haracters assigned to signal generation by)-5.358 F F3(stty)2.859 E
+472.8 R .945(In vi insertion mode, all characters not speci\214cally me\
+ntioned are bound to)5.945 F F1(self\255insert)108 484.8 Q F0 5.359(.C)C
+.359(haracters assigned to signal generation by)-5.359 F F2(stty)2.859 E
F0 .359(\(1\) or the terminal dri).32 F -.15(ve)-.25 G 1.159 -.4(r, s)
-.15 H .359(uch as C-Z or C-C,).4 F(GNU Readline 6.3)72 768 Q
-(2014 January 6)128.74 E(11)193.45 E 0 Cg EP
-%%Page: 12 12
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R .188
-(retain that function.)108 84 R .188(Upper and lo)5.188 F .188(wer case\
- meta\214ed characters are bound to the same function in the emacs)-.25
-F .304(mode meta k)108 96 R -.15(ey)-.1 G 2.804(map. The).15 F .305(rem\
-aining characters are unbound, which causes readline to ring the bell \
-\(subject)2.804 F(to the setting of the)108 108 Q/F1 10/Times-Bold@0 SF
-(bell\255style)2.5 E F0 -.25(va)2.5 G(riable\).).25 E F1(Emacs Mode)87
-124.8 Q F0(Emacs Standard bindings)151.2 136.8 Q 2.5("C-@" set-mark)
-151.2 160.8 R 2.5("C-A" be)151.2 172.8 R(ginning-of-line)-.15 E 2.5
-("C-B" backw)151.2 184.8 R(ard-char)-.1 E 2.5("C-D" delete-char)151.2
-196.8 R 2.5("C-E" end-of-line)151.2 208.8 R 2.5("C-F" forw)151.2 220.8 R
-(ard-char)-.1 E 2.5("C-G" abort)151.2 232.8 R 2.5("C-H" backw)151.2
-244.8 R(ard-delete-char)-.1 E 2.5("C-I" complete)151.2 256.8 R 2.5
-("C-J" accept-line)151.2 268.8 R 2.5("C-K" kill-line)151.2 280.8 R 2.5
-("C-L" clear)151.2 292.8 R(-screen)-.2 E 2.5("C-M" accept-line)151.2
-304.8 R 2.5("C-N" ne)151.2 316.8 R(xt-history)-.15 E 2.5("C-P" pre)151.2
-328.8 R(vious-history)-.25 E 2.5("C-Q" quoted-insert)151.2 340.8 R 2.5
-("C-R" re)151.2 352.8 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
-("C-S" forw)151.2 364.8 R(ard-search-history)-.1 E 2.5
-("C-T" transpose-chars)151.2 376.8 R 2.5("C-U" unix-line-discard)151.2
-388.8 R 2.5("C-V" quoted-insert)151.2 400.8 R 2.5("C-W" unix-w)151.2
-412.8 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 424.8 R 2.5
-("C-]" character)151.2 436.8 R(-search)-.2 E 2.5("C-_" undo)151.2 448.8
-R 3.333("")151.2 460.8 S(to "/")-.833 E(self-insert)5 E 2.5("0" to)151.2
-472.8 R 2.5("9" self-insert)2.5 F 2.5(":" to)151.2 484.8 R 2.5
-("~" self-insert)2.5 F 2.5("C-?" backw)151.2 496.8 R(ard-delete-char)-.1
-E(Emacs Meta bindings)151.2 513.6 Q 2.5("M-C-G" abort)151.2 537.6 R 2.5
-("M-C-H" backw)151.2 549.6 R(ard-kill-w)-.1 E(ord)-.1 E 2.5
-("M-C-I" tab-insert)151.2 561.6 R 2.5("M-C-J" vi-editing-mode)151.2
-573.6 R 2.5("M-C-M" vi-editing-mode)151.2 585.6 R 2.5("M-C-R" re)151.2
-597.6 R -.15(ve)-.25 G(rt-line).15 E 2.5("M-C-Y" yank-nth-ar)151.2 609.6
-R(g)-.18 E 2.5("M-C-[" complete)151.2 621.6 R 2.5("M-C-]" character)
-151.2 633.6 R(-search-backw)-.2 E(ard)-.1 E 2.5("M-space" set-mark)151.2
-645.6 R 2.5("M-#" insert-comment)151.2 657.6 R 2.5("M-&" tilde-e)151.2
-669.6 R(xpand)-.15 E 2.5("M-*" insert-completions)151.2 681.6 R 2.5
-("M--" digit-ar)151.2 693.6 R(gument)-.18 E 2.5("M-." yank-last-ar)151.2
-705.6 R(g)-.18 E 2.5("M-0" digit-ar)151.2 717.6 R(gument)-.18 E 2.5
-("M-1" digit-ar)151.2 729.6 R(gument)-.18 E(GNU Readline 6.3)72 768 Q
-(2014 January 6)128.74 E(12)193.45 E 0 Cg EP
+.15 H .358(uch as C-Z or C-C,).4 F .187(retain that function.)108 496.8
+R .187(Upper and lo)5.187 F .188(wer case meta\214ed characters are bou\
+nd to the same function in the emacs)-.25 F .305(mode meta k)108 508.8 R
+-.15(ey)-.1 G 2.805(map. The).15 F .305(remaining characters are unboun\
+d, which causes readline to ring the bell \(subject)2.805 F
+(to the setting of the)108 520.8 Q F1(bell\255style)2.5 E F0 -.25(va)2.5
+G(riable\).).25 E F1(Emacs Mode)87 537.6 Q F0(Emacs Standard bindings)
+151.2 549.6 Q 2.5("C-@" set-mark)151.2 573.6 R 2.5("C-A" be)151.2 585.6
+R(ginning-of-line)-.15 E 2.5("C-B" backw)151.2 597.6 R(ard-char)-.1 E
+2.5("C-D" delete-char)151.2 609.6 R 2.5("C-E" end-of-line)151.2 621.6 R
+2.5("C-F" forw)151.2 633.6 R(ard-char)-.1 E 2.5("C-G" abort)151.2 645.6
+R 2.5("C-H" backw)151.2 657.6 R(ard-delete-char)-.1 E 2.5
+("C-I" complete)151.2 669.6 R 2.5("C-J" accept-line)151.2 681.6 R 2.5
+("C-K" kill-line)151.2 693.6 R 2.5("C-L" clear)151.2 705.6 R(-screen)-.2
+E 2.5("C-M" accept-line)151.2 717.6 R 2.5("C-N" ne)151.2 729.6 R
+(xt-history)-.15 E(GNU Readline 7.0)72 768 Q(2016 February 28)123.74 E
+(12)188.45 E 0 Cg EP
%%Page: 13 13
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5
-("M-2" digit-ar)151.2 84 R(gument)-.18 E 2.5("M-3" digit-ar)151.2 96 R
-(gument)-.18 E 2.5("M-4" digit-ar)151.2 108 R(gument)-.18 E 2.5
-("M-5" digit-ar)151.2 120 R(gument)-.18 E 2.5("M-6" digit-ar)151.2 132 R
-(gument)-.18 E 2.5("M-7" digit-ar)151.2 144 R(gument)-.18 E 2.5
-("M-8" digit-ar)151.2 156 R(gument)-.18 E 2.5("M-9" digit-ar)151.2 168 R
-(gument)-.18 E 2.5("M-<" be)151.2 180 R(ginning-of-history)-.15 E 2.5
-("M-=" possible-completions)151.2 192 R 2.5("M->" end-of-history)151.2
-204 R 2.5("M-?" possible-completions)151.2 216 R 2.5("M-B" backw)151.2
-228 R(ard-w)-.1 E(ord)-.1 E 2.5("M-C" capitalize-w)151.2 240 R(ord)-.1 E
-2.5("M-D" kill-w)151.2 252 R(ord)-.1 E 2.5("M-F" forw)151.2 264 R(ard-w)
--.1 E(ord)-.1 E 2.5("M-L" do)151.2 276 R(wncase-w)-.25 E(ord)-.1 E 2.5
-("M-N" non-incremental-forw)151.2 288 R(ard-search-history)-.1 E 2.5
-("M-P" non-incremental-re)151.2 300 R -.15(ve)-.25 G(rse-search-history)
-.15 E 2.5("M-R" re)151.2 312 R -.15(ve)-.25 G(rt-line).15 E 2.5
-("M-T" transpose-w)151.2 324 R(ords)-.1 E 2.5("M-U" upcase-w)151.2 336 R
-(ord)-.1 E 2.5("M-Y" yank-pop)151.2 348 R 2.5
-("M-\\" delete-horizontal-space)151.2 360 R 2.5("M-~" tilde-e)151.2 372
-R(xpand)-.15 E 2.5("M-C-?" backw)151.2 384 R(ard-kill-w)-.1 E(ord)-.1 E
-2.5("M-_" yank-last-ar)151.2 396 R(g)-.18 E(Emacs Control-X bindings)
-151.2 412.8 Q 2.5("C-XC-G" abort)151.2 436.8 R 2.5
-("C-XC-R" re-read-init-\214le)151.2 448.8 R 2.5("C-XC-U" undo)151.2
-460.8 R 2.5("C-XC-X" e)151.2 472.8 R(xchange-point-and-mark)-.15 E 2.5
-("C-X\(" start-kbd-macro)151.2 484.8 R 2.5("C-X\)" end-kbd-macro)151.2
-496.8 R 2.5("C-XE" call-last-kbd-macro)151.2 508.8 R 2.5("C-XC-?" backw)
-151.2 520.8 R(ard-kill-line)-.1 E/F1 10/Times-Bold@0 SF
-(VI Mode bindings)87 549.6 Q F0(VI Insert Mode functions)151.2 561.6 Q
-2.5("C-D" vi-eof-maybe)151.2 585.6 R 2.5("C-H" backw)151.2 597.6 R
-(ard-delete-char)-.1 E 2.5("C-I" complete)151.2 609.6 R 2.5
-("C-J" accept-line)151.2 621.6 R 2.5("C-M" accept-line)151.2 633.6 R 2.5
-("C-R" re)151.2 645.6 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
-("C-S" forw)151.2 657.6 R(ard-search-history)-.1 E 2.5
-("C-T" transpose-chars)151.2 669.6 R 2.5("C-U" unix-line-discard)151.2
-681.6 R 2.5("C-V" quoted-insert)151.2 693.6 R 2.5("C-W" unix-w)151.2
-705.6 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 717.6 R 2.5("C-[" vi-mo)
-151.2 729.6 R -.15(ve)-.15 G(ment-mode).15 E(GNU Readline 6.3)72 768 Q
-(2014 January 6)128.74 E(13)193.45 E 0 Cg EP
+/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-P" pre)151.2 84 R
+(vious-history)-.25 E 2.5("C-Q" quoted-insert)151.2 96 R 2.5("C-R" re)
+151.2 108 R -.15(ve)-.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2
+120 R(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 132 R 2.5
+("C-U" unix-line-discard)151.2 144 R 2.5("C-V" quoted-insert)151.2 156 R
+2.5("C-W" unix-w)151.2 168 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 180 R
+2.5("C-]" character)151.2 192 R(-search)-.2 E 2.5("C-_" undo)151.2 204 R
+3.333("")151.2 216 S(to "/")-.833 E(self-insert)5 E 2.5("0" to)151.2 228
+R 2.5("9" self-insert)2.5 F 2.5(":" to)151.2 240 R 2.5("~" self-insert)
+2.5 F 2.5("C-?" backw)151.2 252 R(ard-delete-char)-.1 E
+(Emacs Meta bindings)151.2 268.8 Q 2.5("M-C-G" abort)151.2 292.8 R 2.5
+("M-C-H" backw)151.2 304.8 R(ard-kill-w)-.1 E(ord)-.1 E 2.5
+("M-C-I" tab-insert)151.2 316.8 R 2.5("M-C-J" vi-editing-mode)151.2
+328.8 R 2.5("M-C-M" vi-editing-mode)151.2 340.8 R 2.5("M-C-R" re)151.2
+352.8 R -.15(ve)-.25 G(rt-line).15 E 2.5("M-C-Y" yank-nth-ar)151.2 364.8
+R(g)-.18 E 2.5("M-C-[" complete)151.2 376.8 R 2.5("M-C-]" character)
+151.2 388.8 R(-search-backw)-.2 E(ard)-.1 E 2.5("M-space" set-mark)151.2
+400.8 R 2.5("M-#" insert-comment)151.2 412.8 R 2.5("M-&" tilde-e)151.2
+424.8 R(xpand)-.15 E 2.5("M-*" insert-completions)151.2 436.8 R 2.5
+("M--" digit-ar)151.2 448.8 R(gument)-.18 E 2.5("M-." yank-last-ar)151.2
+460.8 R(g)-.18 E 2.5("M-0" digit-ar)151.2 472.8 R(gument)-.18 E 2.5
+("M-1" digit-ar)151.2 484.8 R(gument)-.18 E 2.5("M-2" digit-ar)151.2
+496.8 R(gument)-.18 E 2.5("M-3" digit-ar)151.2 508.8 R(gument)-.18 E 2.5
+("M-4" digit-ar)151.2 520.8 R(gument)-.18 E 2.5("M-5" digit-ar)151.2
+532.8 R(gument)-.18 E 2.5("M-6" digit-ar)151.2 544.8 R(gument)-.18 E 2.5
+("M-7" digit-ar)151.2 556.8 R(gument)-.18 E 2.5("M-8" digit-ar)151.2
+568.8 R(gument)-.18 E 2.5("M-9" digit-ar)151.2 580.8 R(gument)-.18 E 2.5
+("M-<" be)151.2 592.8 R(ginning-of-history)-.15 E 2.5
+("M-=" possible-completions)151.2 604.8 R 2.5("M->" end-of-history)151.2
+616.8 R 2.5("M-?" possible-completions)151.2 628.8 R 2.5("M-B" backw)
+151.2 640.8 R(ard-w)-.1 E(ord)-.1 E 2.5("M-C" capitalize-w)151.2 652.8 R
+(ord)-.1 E 2.5("M-D" kill-w)151.2 664.8 R(ord)-.1 E 2.5("M-F" forw)151.2
+676.8 R(ard-w)-.1 E(ord)-.1 E 2.5("M-L" do)151.2 688.8 R(wncase-w)-.25 E
+(ord)-.1 E 2.5("M-N" non-incremental-forw)151.2 700.8 R
+(ard-search-history)-.1 E 2.5("M-P" non-incremental-re)151.2 712.8 R
+-.15(ve)-.25 G(rse-search-history).15 E 2.5("M-R" re)151.2 724.8 R -.15
+(ve)-.25 G(rt-line).15 E(GNU Readline 7.0)72 768 Q(2016 February 28)
+123.74 E(13)188.45 E 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5
-("C-_" undo)151.2 84 R 3.333("")151.2 96 S(to "~")-.833 E(self-insert)5
-E 2.5("C-?" backw)151.2 108 R(ard-delete-char)-.1 E
-(VI Command Mode functions)151.2 124.8 Q 2.5("C-D" vi-eof-maybe)151.2
-148.8 R 2.5("C-E" emacs-editing-mode)151.2 160.8 R 2.5("C-G" abort)151.2
-172.8 R 2.5("C-H" backw)151.2 184.8 R(ard-char)-.1 E 2.5
-("C-J" accept-line)151.2 196.8 R 2.5("C-K" kill-line)151.2 208.8 R 2.5
-("C-L" clear)151.2 220.8 R(-screen)-.2 E 2.5("C-M" accept-line)151.2
-232.8 R 2.5("C-N" ne)151.2 244.8 R(xt-history)-.15 E 2.5("C-P" pre)151.2
-256.8 R(vious-history)-.25 E 2.5("C-Q" quoted-insert)151.2 268.8 R 2.5
-("C-R" re)151.2 280.8 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
-("C-S" forw)151.2 292.8 R(ard-search-history)-.1 E 2.5
-("C-T" transpose-chars)151.2 304.8 R 2.5("C-U" unix-line-discard)151.2
-316.8 R 2.5("C-V" quoted-insert)151.2 328.8 R 2.5("C-W" unix-w)151.2
-340.8 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 352.8 R 2.5("C-_" vi-undo)
-151.2 364.8 R -4.166 3.333("" f)151.2 376.8 T(orw)-3.333 E(ard-char)-.1
-E 2.5("#" insert-comment)151.2 388.8 R 2.5("$" end-of-line)151.2 400.8 R
-2.5("%" vi-match)151.2 412.8 R 2.5("&" vi-tilde-e)151.2 424.8 R(xpand)
--.15 E 2.5("*" vi-complete)151.2 436.8 R 2.5("+" ne)151.2 448.8 R
-(xt-history)-.15 E 2.5("," vi-char)151.2 460.8 R(-search)-.2 E 2.5
-("-" pre)151.2 472.8 R(vious-history)-.25 E 2.5("." vi-redo)151.2 484.8
-R 2.5("/" vi-search)151.2 496.8 R 2.5("0" be)151.2 508.8 R
-(ginning-of-line)-.15 E("1" to "9")151.2 520.8 Q(vi-ar)5 E(g-digit)-.18
-E 2.5(";" vi-char)151.2 532.8 R(-search)-.2 E 2.5("=" vi-complete)151.2
-544.8 R 2.5("?" vi-search)151.2 556.8 R 2.5("A" vi-append-eol)151.2
-568.8 R 2.5("B" vi-pre)151.2 580.8 R(v-w)-.25 E(ord)-.1 E 2.5
-("C" vi-change-to)151.2 592.8 R 2.5("D" vi-delete-to)151.2 604.8 R 2.5
-("E" vi-end-w)151.2 616.8 R(ord)-.1 E 2.5("F" vi-char)151.2 628.8 R
-(-search)-.2 E 2.5("G" vi-fetch-history)151.2 640.8 R 2.5
-("I" vi-insert-be)151.2 652.8 R(g)-.15 E 2.5("N" vi-search-ag)151.2
-664.8 R(ain)-.05 E 2.5("P" vi-put)151.2 676.8 R 2.5("R" vi-replace)151.2
-688.8 R 2.5("S" vi-subst)151.2 700.8 R 2.5("T" vi-char)151.2 712.8 R
-(-search)-.2 E 2.5("U" re)151.2 724.8 R -.15(ve)-.25 G(rt-line).15 E
-(GNU Readline 6.3)72 768 Q(2014 January 6)128.74 E(14)193.45 E 0 Cg EP
+/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-T" transpose-w)
+151.2 84 R(ords)-.1 E 2.5("M-U" upcase-w)151.2 96 R(ord)-.1 E 2.5
+("M-Y" yank-pop)151.2 108 R 2.5("M-\\" delete-horizontal-space)151.2 120
+R 2.5("M-~" tilde-e)151.2 132 R(xpand)-.15 E 2.5("M-C-?" backw)151.2 144
+R(ard-kill-w)-.1 E(ord)-.1 E 2.5("M-_" yank-last-ar)151.2 156 R(g)-.18 E
+(Emacs Control-X bindings)151.2 172.8 Q 2.5("C-XC-G" abort)151.2 196.8 R
+2.5("C-XC-R" re-read-init-\214le)151.2 208.8 R 2.5("C-XC-U" undo)151.2
+220.8 R 2.5("C-XC-X" e)151.2 232.8 R(xchange-point-and-mark)-.15 E 2.5
+("C-X\(" start-kbd-macro)151.2 244.8 R 2.5("C-X\)" end-kbd-macro)151.2
+256.8 R 2.5("C-XE" call-last-kbd-macro)151.2 268.8 R 2.5("C-XC-?" backw)
+151.2 280.8 R(ard-kill-line)-.1 E/F1 10/Times-Bold@0 SF
+(VI Mode bindings)87 309.6 Q F0(VI Insert Mode functions)151.2 321.6 Q
+2.5("C-D" vi-eof-maybe)151.2 345.6 R 2.5("C-H" backw)151.2 357.6 R
+(ard-delete-char)-.1 E 2.5("C-I" complete)151.2 369.6 R 2.5
+("C-J" accept-line)151.2 381.6 R 2.5("C-M" accept-line)151.2 393.6 R 2.5
+("C-R" re)151.2 405.6 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
+("C-S" forw)151.2 417.6 R(ard-search-history)-.1 E 2.5
+("C-T" transpose-chars)151.2 429.6 R 2.5("C-U" unix-line-discard)151.2
+441.6 R 2.5("C-V" quoted-insert)151.2 453.6 R 2.5("C-W" unix-w)151.2
+465.6 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 477.6 R 2.5("C-[" vi-mo)
+151.2 489.6 R -.15(ve)-.15 G(ment-mode).15 E 2.5("C-_" undo)151.2 501.6
+R 3.333("")151.2 513.6 S(to "~")-.833 E(self-insert)5 E 2.5("C-?" backw)
+151.2 525.6 R(ard-delete-char)-.1 E(VI Command Mode functions)151.2
+542.4 Q 2.5("C-D" vi-eof-maybe)151.2 566.4 R 2.5
+("C-E" emacs-editing-mode)151.2 578.4 R 2.5("C-G" abort)151.2 590.4 R
+2.5("C-H" backw)151.2 602.4 R(ard-char)-.1 E 2.5("C-J" accept-line)151.2
+614.4 R 2.5("C-K" kill-line)151.2 626.4 R 2.5("C-L" clear)151.2 638.4 R
+(-screen)-.2 E 2.5("C-M" accept-line)151.2 650.4 R 2.5("C-N" ne)151.2
+662.4 R(xt-history)-.15 E 2.5("C-P" pre)151.2 674.4 R(vious-history)-.25
+E 2.5("C-Q" quoted-insert)151.2 686.4 R 2.5("C-R" re)151.2 698.4 R -.15
+(ve)-.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 710.4 R
+(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 722.4 R
+(GNU Readline 7.0)72 768 Q(2016 February 28)123.74 E(14)188.45 E 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5
-("W" vi-ne)151.2 84 R(xt-w)-.15 E(ord)-.1 E 2.5("X" backw)151.2 96 R
-(ard-delete-char)-.1 E 2.5("Y" vi-yank-to)151.2 108 R 2.5
-("\\" vi-complete)151.2 120 R 2.5("^" vi-\214rst-print)151.2 132 R 2.5
-("_" vi-yank-ar)151.2 144 R(g)-.18 E 2.5("`" vi-goto-mark)151.2 156 R
-2.5("a" vi-append-mode)151.2 168 R 2.5("b" vi-pre)151.2 180 R(v-w)-.25 E
-(ord)-.1 E 2.5("c" vi-change-to)151.2 192 R 2.5("d" vi-delete-to)151.2
-204 R 2.5("e" vi-end-w)151.2 216 R(ord)-.1 E 2.5("f" vi-char)151.2 228 R
-(-search)-.2 E 2.5("h" backw)151.2 240 R(ard-char)-.1 E 2.5
-("i" vi-insertion-mode)151.2 252 R 2.5("j" ne)151.2 264 R(xt-history)
--.15 E 2.5("k" pre)151.2 276 R(v-history)-.25 E 2.5("l" forw)151.2 288 R
-(ard-char)-.1 E 2.5("m" vi-set-mark)151.2 300 R 2.5("n" vi-search-ag)
-151.2 312 R(ain)-.05 E 2.5("p" vi-put)151.2 324 R 2.5
-("r" vi-change-char)151.2 336 R 2.5("s" vi-subst)151.2 348 R 2.5
-("t" vi-char)151.2 360 R(-search)-.2 E 2.5("u" vi-undo)151.2 372 R 2.5
-("w" vi-ne)151.2 384 R(xt-w)-.15 E(ord)-.1 E 2.5("x" vi-delete)151.2 396
-R 2.5("y" vi-yank-to)151.2 408 R 2.5("|" vi-column)151.2 420 R 2.5
-("~" vi-change-case)151.2 432 R/F1 10.95/Times-Bold@0 SF(SEE ALSO)72
-448.8 Q/F2 10/Times-Italic@0 SF(The Gnu Readline Libr)108 460.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 472.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 484.8 Q F0(\(1\))A F1
-(FILES)72 501.6 Q F2(~/.inputr)109.666 513.6 Q(c)-.37 E F0(Indi)144
-525.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 542.4 S(THORS).548 E F0
-(Brian F)108 554.4 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E
-(bfox@gnu.or)108 566.4 Q(g)-.18 E(Chet Rame)108 583.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 595.2 Q(y@case.edu)-.15 E F1 -.11(BU)72
-612 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .691(If you \214nd a b)
-108 624 R .691(ug in)-.2 F F3 -.18(re)3.191 G(adline,).18 E F0 .691
-(you should report it.)3.191 F .69(But \214rst, you should mak)5.69 F
-3.19(es)-.1 G .69(ure that it really is a b)-3.19 F(ug,)-.2 E
-(and that it appears in the latest v)108 636 Q(ersion of the)-.15 E F3
+/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-U" unix-line-discard)151.2 84 R 2.5("C-V" quoted-insert)151.2 96 R
+2.5("C-W" unix-w)151.2 108 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 120 R
+2.5("C-_" vi-undo)151.2 132 R -4.166 3.333("" f)151.2 144 T(orw)-3.333 E
+(ard-char)-.1 E 2.5("#" insert-comment)151.2 156 R 2.5("$" end-of-line)
+151.2 168 R 2.5("%" vi-match)151.2 180 R 2.5("&" vi-tilde-e)151.2 192 R
+(xpand)-.15 E 2.5("*" vi-complete)151.2 204 R 2.5("+" ne)151.2 216 R
+(xt-history)-.15 E 2.5("," vi-char)151.2 228 R(-search)-.2 E 2.5
+("-" pre)151.2 240 R(vious-history)-.25 E 2.5("." vi-redo)151.2 252 R
+2.5("/" vi-search)151.2 264 R 2.5("0" be)151.2 276 R(ginning-of-line)
+-.15 E("1" to "9")151.2 288 Q(vi-ar)5 E(g-digit)-.18 E 2.5(";" vi-char)
+151.2 300 R(-search)-.2 E 2.5("=" vi-complete)151.2 312 R 2.5
+("?" vi-search)151.2 324 R 2.5("A" vi-append-eol)151.2 336 R 2.5
+("B" vi-pre)151.2 348 R(v-w)-.25 E(ord)-.1 E 2.5("C" vi-change-to)151.2
+360 R 2.5("D" vi-delete-to)151.2 372 R 2.5("E" vi-end-w)151.2 384 R(ord)
+-.1 E 2.5("F" vi-char)151.2 396 R(-search)-.2 E 2.5
+("G" vi-fetch-history)151.2 408 R 2.5("I" vi-insert-be)151.2 420 R(g)
+-.15 E 2.5("N" vi-search-ag)151.2 432 R(ain)-.05 E 2.5("P" vi-put)151.2
+444 R 2.5("R" vi-replace)151.2 456 R 2.5("S" vi-subst)151.2 468 R 2.5
+("T" vi-char)151.2 480 R(-search)-.2 E 2.5("U" re)151.2 492 R -.15(ve)
+-.25 G(rt-line).15 E 2.5("W" vi-ne)151.2 504 R(xt-w)-.15 E(ord)-.1 E 2.5
+("X" backw)151.2 516 R(ard-delete-char)-.1 E 2.5("Y" vi-yank-to)151.2
+528 R 2.5("\\" vi-complete)151.2 540 R 2.5("^" vi-\214rst-print)151.2
+552 R 2.5("_" vi-yank-ar)151.2 564 R(g)-.18 E 2.5("`" vi-goto-mark)151.2
+576 R 2.5("a" vi-append-mode)151.2 588 R 2.5("b" vi-pre)151.2 600 R(v-w)
+-.25 E(ord)-.1 E 2.5("c" vi-change-to)151.2 612 R 2.5("d" vi-delete-to)
+151.2 624 R 2.5("e" vi-end-w)151.2 636 R(ord)-.1 E 2.5("f" vi-char)151.2
+648 R(-search)-.2 E 2.5("h" backw)151.2 660 R(ard-char)-.1 E 2.5
+("i" vi-insertion-mode)151.2 672 R 2.5("j" ne)151.2 684 R(xt-history)
+-.15 E 2.5("k" pre)151.2 696 R(v-history)-.25 E 2.5("l" forw)151.2 708 R
+(ard-char)-.1 E 2.5("m" vi-set-mark)151.2 720 R(GNU Readline 7.0)72 768
+Q(2016 February 28)123.74 E(15)188.45 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("n" vi-search-ag)
+151.2 84 R(ain)-.05 E 2.5("p" vi-put)151.2 96 R 2.5("r" vi-change-char)
+151.2 108 R 2.5("s" vi-subst)151.2 120 R 2.5("t" vi-char)151.2 132 R
+(-search)-.2 E 2.5("u" vi-undo)151.2 144 R 2.5("w" vi-ne)151.2 156 R
+(xt-w)-.15 E(ord)-.1 E 2.5("x" vi-delete)151.2 168 R 2.5("y" vi-yank-to)
+151.2 180 R 2.5("|" vi-column)151.2 192 R 2.5("~" vi-change-case)151.2
+204 R/F1 10.95/Times-Bold@0 SF(SEE ALSO)72 220.8 Q/F2 10/Times-Italic@0
+SF(The Gnu Readline Libr)108 232.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 244.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 256.8 Q F0(\(1\))A F1(FILES)72 273.6 Q F2(~/.inputr)109.666
+285.6 Q(c)-.37 E F0(Indi)144 297.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
+314.4 S(THORS).548 E F0(Brian F)108 326.4 Q(ox, Free Softw)-.15 E(are F)
+-.1 E(oundation)-.15 E(bfox@gnu.or)108 338.4 Q(g)-.18 E(Chet Rame)108
+355.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 367.2 Q(y@case.edu)
+-.15 E F1 -.11(BU)72 384 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0
+.69(If you \214nd a b)108 396 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 408 Q(ersion of the)-.15 E F3
-.18(re)2.5 G(adline).18 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.)
-.15 E .704(Once you ha)108 652.8 R 1.004 -.15(ve d)-.2 H .704
+.15 E .705(Once you ha)108 424.8 R 1.005 -.15(ve d)-.2 H .705
(etermined that a b).15 F .704(ug actually e)-.2 F .704(xists, mail a b)
--.15 F .705(ug report to)-.2 F F2 -.2(bu)3.205 G(g\255r).2 E(eadline)
--.37 E F0(@)A F2(gnu.or)A(g)-.37 E F0 5.705(.I)C 3.205(fy)-5.705 G(ou)
--3.205 E(ha)108 664.8 Q 1.81 -.15(ve a \214)-.2 H 1.51
-(x, you are welcome to mail that as well!).15 F 1.509
-(Suggestions and `philosophical' b)6.509 F 1.509(ug reports may be)-.2 F
-(mailed to)108 676.8 Q F2 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F2
+-.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 436.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 448.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 693.6 Q
+(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 465.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 6.3)72 768 Q(2014 January 6)128.74 E(15)193.45 E 0 Cg EP
-%%Page: 16 16
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/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 6.3)72 768
-Q(2014 January 6)128.74 E(16)193.45 E 0 Cg EP
+F1 -.11(BU)72 482.4 S(GS).11 E F0(It')108 494.4 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
+(2016 February 28)123.74 E(16)188.45 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/rlman.texi b/doc/rlman.texi
index 17a8292..737f971 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--2014 Free Software Foundation, Inc.
+Copyright @copyright{} 1988--2016 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 40de49c..b8ce90f 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--2014 Free Software Foundation, Inc.
+Copyright (C) 1988--2016 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -282,7 +282,7 @@ At the very least, it should be aware that it can be passed a
negative argument.
A command function should return 0 if its action completes successfully,
-and a non-zero value if some error occurs.
+and a value greater than zero if some error occurs.
This is the convention obeyed by all of the builtin Readline bindable
command functions.
@@ -963,6 +963,10 @@ redisplay.
It should be used after setting @var{rl_already_prompted}.
@end deftypefun
+@deftypefun int rl_clear_visible_line (void)
+Clear the screen lines corresponding to the current line's contents.
+@end deftypefun
+
@deftypefun int rl_reset_line_state (void)
Reset the display state to a clean state and redisplay the current line
starting on a new line.
@@ -1020,7 +1024,7 @@ It returns the number of visible characters on the last line of the
Applications may indicate that the prompt contains characters that take
up no physical screen space when displayed by bracketing a sequence of
such characters with the special markers @code{RL_PROMPT_START_IGNORE}
-and @code{RL_PROMPT_END_IGNORE} (declared in @file{readline.h}. This may
+and @code{RL_PROMPT_END_IGNORE} (declared in @file{readline.h}). This may
be used to embed terminal-specific escape sequences in prompts.
@end deftypefun
@@ -1136,6 +1140,14 @@ that the terminal editing characters are bound to @code{rl_insert}.
The bindings are performed in @var{kmap}.
@end deftypefun
+@deftypefun int rl_tty_set_echoing (int value)
+Set Readline's idea of whether or not it is echoing output to its output
+stream (@var{rl_outstream}). If @var{value} is 0, Readline does not display
+output to @var{rl_outstream}; any other value enables output. The initial
+value is set when Readline initializes the terminal settings.
+This function returns the previous value.
+@end deftypefun
+
@deftypefun int rl_reset_terminal (const char *terminal_name)
Reinitialize Readline's idea of the terminal settings using
@var{terminal_name} as the terminal type (e.g., @code{vt100}).
@@ -1307,6 +1319,8 @@ expanded value of @var{prompt}. Save the value of @var{lhandler} to
use as a handler function to call when a complete line of input has been
entered.
The handler function receives the text of the line as an argument.
+As with @code{readline()}, the handler function should @code{free} the
+line when it it finished with it.
@end deftypefun
@deftypefun void rl_callback_read_char (void)
@@ -1326,9 +1340,17 @@ the terminal settings are modified for Readline's use again.
@code{NULL} line.
@end deftypefun
+@deftypefun void rl_callback_sigcleanup (void)
+Clean up any internal state the callback interface uses to maintain state
+between calls to rl_callback_read_char (e.g., the state of any active
+incremental searches). This is intended to be used by applications that
+wish to perform their own signal handling; Readline's internal signal handler
+calls this when appropriate.
+@end deftypefun
+
@deftypefun void rl_callback_handler_remove (void)
Restore the terminal to its initial state and remove the line handler.
-This may be called from within a callback as well as independently.
+You may call this function from within a callback as well as independently.
If the @var{lhandler} installed by @code{rl_callback_handler_install}
does not exit the program, either this function or the function referred
to by the value of @code{rl_deprep_term_function} should be called before
@@ -1413,12 +1435,16 @@ It understands the EOF character or "exit" to exit the program.
@example
/* Standard include files. stdio.h is required. */
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
+#include <locale.h>
/* Used for select(2) */
#include <sys/types.h>
#include <sys/select.h>
+#include <signal.h>
+
#include <stdio.h>
/* Standard readline include files. */
@@ -1426,10 +1452,20 @@ It understands the EOF character or "exit" to exit the program.
#include <readline/history.h>
static void cb_linehandler (char *);
+static void sighandler (int);
int running;
+int sigwinch_received;
const char *prompt = "rltest$ ";
+/* Handle SIGWINCH and window size changes when readline is not active and
+ reading a character. */
+static void
+sighandler (int sig)
+@{
+ sigwinch_received = 1;
+@}
+
/* Callback function called for each line when accept-line executed, EOF
seen, or EOF character read. This sets a flag and returns; it could
also call exit(3). */
@@ -1464,6 +1500,13 @@ main (int c, char **v)
fd_set fds;
int r;
+ /* Set the default locale values according to environment variables. */
+ setlocale (LC_ALL, "");
+
+ /* Handle window size changes when readline is not active and reading
+ characters. */
+ signal (SIGWINCH, sighandler);
+
/* Install the line handler. */
rl_callback_handler_install (prompt, cb_linehandler);
@@ -1478,12 +1521,19 @@ main (int c, char **v)
FD_SET (fileno (rl_instream), &fds);
r = select (FD_SETSIZE, &fds, NULL, NULL, NULL);
- if (r < 0)
+ if (r < 0 && errno != EINTR)
@{
perror ("rltest: select");
rl_callback_handler_remove ();
break;
@}
+ if (sigwinch_received)
+ @{
+ rl_resize_terminal ();
+ sigwinch_received = 0;
+ @}
+ if (r < 0)
+ continue;
if (FD_ISSET (fileno (rl_instream), &fds))
rl_callback_read_char ();
@@ -1532,7 +1582,30 @@ resetting the terminal to its original state. If the application's signal
handler does more than update its idea of the terminal size and return (for
example, a @code{longjmp} back to a main processing loop), it @emph{must}
call @code{rl_cleanup_after_signal()} (described below), to restore the
-terminal state.
+terminal state.
+
+When an application is using the callback interface
+(@pxref{Alternate Interface}), Readline installs signal handlers only for
+the duration of the call to @code{rl_callback_read_char}. Applications
+using the callback interface should be prepared to clean up Readline's
+state if they wish to handle the signal before the line handler completes
+and restores the terminal state.
+
+If an application using the callback interface wishes to have Readline
+install its signal handlers at the time the application calls
+@code{rl_callback_handler_install} and remove them only when a complete
+line of input has been read, it should set the
+@code{rl_persistent_signal_handlers} variable to a non-zero value.
+This allows an application to defer all of the handling of the signals
+Readline catches to Readline.
+Applications should use this variable with care; it can result in Readline
+catching signals and not acting on them (or allowing the application to react
+to them) until the application calls @code{rl_callback_read_char}. This
+can result in an application becoming less responsive to keyboard signals
+like SIGINT.
+If an application does not want or need to perform any signal handling, or
+does not need to do any processing between calls to @code{rl_callback_read_char},
+setting this variable may be desirable.
Readline provides two variables that allow application writers to
control whether or not it will catch certain signals and act on them
@@ -1555,6 +1628,15 @@ Readline will install a signal handler for @code{SIGWINCH}.
The default value of @code{rl_catch_sigwinch} is 1.
@end deftypevar
+@deftypevar int rl_persistent_signal_handlers
+If an application using the callback interface wishes Readline's signal
+handlers to be installed and active during the set of calls to
+@code{rl_callback_read_char} that constitutes an entire single line,
+it should set this variable to a non-zero value.
+
+The default value of @code{rl_persistent_signal_handlers} is 0.
+@end deftypevar
+
@deftypevar int rl_change_environment
If this variable is set to a non-zero value,
and Readline is handling @code{SIGWINCH}, Readline will modify the
@@ -1570,6 +1652,11 @@ for example),
Readline provides convenience functions to do the necessary terminal
and internal state cleanup upon receipt of a signal.
+@deftypefun int rl_pending_signal (void)
+Return the signal number of the most recent signal Readline received but
+has not yet handled, or 0 if there is no pending signal.
+@end deftypefun
+
@deftypefun void rl_cleanup_after_signal (void)
This function will reset the state of the terminal to what it was before
@code{readline()} was called, and remove the Readline signal handlers for
@@ -1942,8 +2029,8 @@ where @var{matches} is the array of matching strings,
@var{num_matches} is the number of strings in that array, and
@var{max_length} is the length of the longest string in that array.
Readline provides a convenience function, @code{rl_display_match_list},
-that takes care of doing the display to Readline's output stream. That
-function may be called from this hook.
+that takes care of doing the display to Readline's output stream.
+You may call that function from this hook.
@end deftypevar
@deftypevar {const char *} rl_basic_word_break_characters
diff --git a/doc/rluser.texi b/doc/rluser.texi
index 0af6c02..4c094c8 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--2014 Free Software Foundation, Inc.
+Copyright (C) 1988--2016 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
@@ -423,9 +423,23 @@ the terminal's bell.
@item bind-tty-special-chars
@vindex bind-tty-special-chars
-If set to @samp{on}, Readline attempts to bind the control characters
-treated specially by the kernel's terminal driver to their Readline
-equivalents.
+If set to @samp{on} (the default), Readline attempts to bind the control
+characters treated specially by the kernel's terminal driver to their
+Readline equivalents.
+
+@item blink-matching-paren
+@vindex blink-matching-paren
+If set to @samp{on}, Readline attempts to briefly move the cursor to an
+opening parenthesis when a closing parenthesis is inserted. The default
+is @samp{off}.
+
+@item colored-completion-prefix
+@vindex colored-completion-prefix
+If set to @samp{on}, when listing completions, Readline displays the
+common prefix of the set of possible completions using a different color.
+The color definitions are taken from the value of the @env{LS_COLORS}
+environment variable.
+The default is @samp{off}.
@item colored-stats
@vindex colored-stats
@@ -485,7 +499,9 @@ The default limit is @code{100}.
If set to @samp{on}, Readline will convert characters with the
eighth bit set to an @sc{ascii} key sequence by stripping the eighth
bit and prefixing an @key{ESC} character, converting them to a
-meta-prefixed key sequence. The default value is @samp{on}.
+meta-prefixed key sequence. The default value is @samp{on}, but
+will be set to @samp{off} if the locale is one that contains
+eight-bit characters.
@item disable-completion
@vindex disable-completion
@@ -493,6 +509,12 @@ If set to @samp{On}, Readline will inhibit word completion.
Completion characters will be inserted into the line as if they had
been mapped to @code{self-insert}. The default is @samp{off}.
+@item echo-control-characters
+@vindex echo-control-characters
+When set to @samp{on}, on operating systems that indicate they support it,
+readline echoes a character corresponding to a signal generated from the
+keyboard. The default is @samp{on}.
+
@item editing-mode
@vindex editing-mode
The @code{editing-mode} variable controls which default set of
@@ -500,10 +522,24 @@ key bindings is used. By default, Readline starts up in Emacs editing
mode, where the keystrokes are most similar to Emacs. This variable can be
set to either @samp{emacs} or @samp{vi}.
-@item echo-control-characters
-When set to @samp{on}, on operating systems that indicate they support it,
-readline echoes a character corresponding to a signal generated from the
-keyboard. The default is @samp{on}.
+@item emacs-mode-string
+@vindex emacs-mode-string
+This string is displayed immediately before the last line of the primary
+prompt when emacs editing mode is active. 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 @samp{\1} and @samp{\2} escapes to begin and end sequences of
+non-printing characters, which can be used to embed a terminal control
+sequence into the mode string.
+The default is @samp{@@}.
+
+@item enable-bracketed-paste
+@vindex enable-bracketed-paste
+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}.
@item enable-keypad
@vindex enable-keypad
@@ -537,6 +573,8 @@ are saved.
If set to a value less than zero, the number of history entries is not
limited.
By default, the number of history entries is not limited.
+If an attempt is made to set @var{history-size} to a non-numeric value,
+the maximum number of history entries will be set to 500.
@item horizontal-scroll-mode
@vindex horizontal-scroll-mode
@@ -552,8 +590,9 @@ this variable is set to @samp{off}.
If set to @samp{on}, Readline will enable eight-bit input (it
will not clear the eighth bit in the characters it reads),
regardless of what the terminal claims it can support. The
-default value is @samp{off}. The name @code{meta-flag} is a
-synonym for this variable.
+default value is @samp{off}, but Readline will set it to @samp{on} if the
+locale contains eight-bit characters.
+The name @code{meta-flag} is a synonym for this variable.
@item isearch-terminators
@vindex isearch-terminators
@@ -574,8 +613,9 @@ Acceptable @code{keymap} names are
@code{vi-move},
@code{vi-command}, and
@code{vi-insert}.
-@code{vi} is equivalent to @code{vi-command}; @code{emacs} is
-equivalent to @code{emacs-standard}. The default value is @code{emacs}.
+@code{vi} is equivalent to @code{vi-command} (@code{vi-move} is also a
+synonym); @code{emacs} is equivalent to @code{emacs-standard}.
+The default value is @code{emacs}.
The value of the @code{editing-mode} variable also affects the
default keymap.
@@ -631,7 +671,9 @@ the list. The default is @samp{off}.
@vindex output-meta
If set to @samp{on}, Readline will display characters with the
eighth bit set directly rather than as a meta-prefixed escape
-sequence. The default is @samp{off}.
+sequence.
+The default is @samp{off}, but Readline will set it to @samp{on} if the
+locale contains eight-bit characters.
@item page-completions
@vindex page-completions
@@ -673,8 +715,8 @@ The default value is @samp{off}.
@item show-mode-in-prompt
@vindex show-mode-in-prompt
If set to @samp{on}, add a character to the beginning of the prompt
-indicating the editing mode: emacs (@samp{@@}), vi command (@samp{:}),
-or vi insertion (@samp{+}).
+indicating the editing mode: emacs, vi command, or vi insertion.
+The mode strings are user-settable.
The default value is @samp{off}.
@item skip-completed-text
@@ -691,6 +733,30 @@ rather than @samp{Makefilefile}, assuming there is a single possible
completion.
The default value is @samp{off}.
+@item vi-cmd-mode-string
+@vindex vi-cmd-mode-string
+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 is expanded like a
+key binding, so the standard set of meta- and control prefixes and
+backslash escape sequences is available.
+Use the @samp{\1} and @samp{\2} escapes to begin and end sequences of
+non-printing characters, which can be used to embed a terminal control
+sequence into the mode string.
+The default is @samp{(cmd)}.
+
+@item vi-ins-mode-string
+@vindex vi-ins-mode-string
+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 @samp{\1} and @samp{\2} escapes to begin and end sequences of
+non-printing characters, which can be used to embed a terminal control
+sequence into the mode string.
+The default is @samp{(ins)}.
+
@item visible-stats
@vindex visible-stats
If set to @samp{on}, a character denoting a file's type
@@ -1122,17 +1188,19 @@ the history as necessary. This is an incremental search.
@item forward-search-history (C-s)
Search forward starting at the current line and moving `down' through
-the the history as necessary. This is an incremental search.
+the history as necessary. This is an incremental search.
@item non-incremental-reverse-search-history (M-p)
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.
@item non-incremental-forward-search-history (M-n)
Search forward starting at the current line and moving `down'
-through the the history as necessary using a non-incremental search
+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.
@item history-search-forward ()
Search forward through the history for the string of characters
@@ -1224,6 +1292,14 @@ Insert a tab character.
@item self-insert (a, b, A, 1, !, @dots{})
Insert yourself.
+@item bracketed-paste-begin ()
+This function is intended to be bound to the "bracketed paste" escape
+sequence sent by some terminals, and such a binding is assigned by default.
+It allows Readline to insert the pasted text as a single unit without treating
+each character as if it had been read from the keyboard. The characters
+are inserted as if each one was bound to @code{self-insert}) instead of
+executing any editing commands.
+
@item transpose-chars (C-t)
Drag the character before the cursor forward over
the character at the cursor, moving the
@@ -1275,7 +1351,7 @@ By default, this command is unbound.
Kill the text from point to the end of the line.
@item backward-kill-line (C-x Rubout)
-Kill backward to the beginning of the line.
+Kill backward from the cursor to the beginning of the current line.
@item unix-line-discard (C-u)
Kill backward from the cursor to the beginning of the current line.
@@ -1357,7 +1433,7 @@ leading minus sign, those digits define the argument.
If the command is followed by digits, executing @code{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
+character that is neither a digit nor 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 argument count four, a second time makes the
@@ -1788,6 +1864,10 @@ is removed before attempting a match.
Any completion that matches the pattern will be removed from the list.
A leading @samp{!} negates the pattern; in this case any completion
not matching the pattern will be removed.
+If the @code{nocasematch} shell option
+(see the description of @code{shopt} in @ref{The Shopt Builtin})
+is enabled, the match is performed without regard to the case
+of alphabetic characters.
Finally, any prefix and suffix specified with the @option{-P} and @option{-S}
options are added to each member of the completion list, and the result is
@@ -1941,6 +2021,9 @@ with @option{-F}.
Tell Readline not to quote the completed words if they are filenames
(quoting filenames is the default).
+@item nosort
+Tell Readline not to sort the list of possible completions alphabetically.
+
@item nospace
Tell Readline not to append a space (the default) to words completed at
the end of the line.
diff --git a/doc/rluserman.dvi b/doc/rluserman.dvi
index 9fd215b..b6ec82f 100644
--- a/doc/rluserman.dvi
+++ b/doc/rluserman.dvi
Binary files differ
diff --git a/doc/rluserman.html b/doc/rluserman.html
index 22df7f4..e742ff0 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 February, 11 2014 by texi2html 1.64 -->
+<!-- Created on September, 7 2016 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -588,13 +588,29 @@ the terminal's bell.
<DT><CODE>bind-tty-special-chars</CODE>
<DD><A NAME="IDX6"></A>
-If set to <SAMP>`on'</SAMP>, Readline attempts to bind the control characters
-treated specially by the kernel's terminal driver to their Readline
-equivalents.
+If set to <SAMP>`on'</SAMP> (the default), Readline attempts to bind the control
+characters treated specially by the kernel's terminal driver to their
+Readline equivalents.
<P>
-<DT><CODE>colored-stats</CODE>
+<DT><CODE>blink-matching-paren</CODE>
<DD><A NAME="IDX7"></A>
+If set to <SAMP>`on'</SAMP>, Readline attempts to briefly move the cursor to an
+opening parenthesis when a closing parenthesis is inserted. The default
+is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>colored-completion-prefix</CODE>
+<DD><A NAME="IDX8"></A>
+If set to <SAMP>`on'</SAMP>, when listing completions, Readline displays the
+common prefix of the set of possible completions using a different color.
+The color definitions are taken from the value of the <CODE>LS_COLORS</CODE>
+environment variable.
+The default is <SAMP>`off'</SAMP>.
+<P>
+
+<DT><CODE>colored-stats</CODE>
+<DD><A NAME="IDX9"></A>
If set to <SAMP>`on'</SAMP>, Readline displays possible completions using different
colors to indicate their file type.
The color definitions are taken from the value of the <CODE>LS_COLORS</CODE>
@@ -603,14 +619,14 @@ The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>comment-begin</CODE>
-<DD><A NAME="IDX8"></A>
+<DD><A NAME="IDX10"></A>
The string to insert at the beginning of the line when the
<CODE>insert-comment</CODE> command is executed. The default value
is <CODE>"#"</CODE>.
<P>
<DT><CODE>completion-display-width</CODE>
-<DD><A NAME="IDX9"></A>
+<DD><A NAME="IDX11"></A>
The number of screen columns used to display possible matches
when performing completion.
The value is ignored if it is less than 0 or greater than the terminal
@@ -620,21 +636,21 @@ The default value is -1.
<P>
<DT><CODE>completion-ignore-case</CODE>
-<DD><A NAME="IDX10"></A>
+<DD><A NAME="IDX12"></A>
If set to <SAMP>`on'</SAMP>, Readline performs filename matching and completion
in a case-insensitive fashion.
The default value is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>completion-map-case</CODE>
-<DD><A NAME="IDX11"></A>
+<DD><A NAME="IDX13"></A>
If set to <SAMP>`on'</SAMP>, and <VAR>completion-ignore-case</VAR> is enabled, Readline
treats hyphens (<SAMP>`-'</SAMP>) and underscores (<SAMP>`_'</SAMP>) as equivalent when
performing case-insensitive filename matching and completion.
<P>
<DT><CODE>completion-prefix-display-length</CODE>
-<DD><A NAME="IDX12"></A>
+<DD><A NAME="IDX14"></A>
The length in characters of the common prefix of a list of possible
completions that is displayed without modification. When set to a
value greater than zero, common prefixes longer than this value are
@@ -642,7 +658,7 @@ replaced with an ellipsis when displaying possible completions.
<P>
<DT><CODE>completion-query-items</CODE>
-<DD><A NAME="IDX13"></A>
+<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,
@@ -654,36 +670,60 @@ The default limit is <CODE>100</CODE>.
<P>
<DT><CODE>convert-meta</CODE>
-<DD><A NAME="IDX14"></A>
+<DD><A NAME="IDX16"></A>
If set to <SAMP>`on'</SAMP>, Readline will convert characters with the
eighth bit set to an ASCII key sequence by stripping the eighth
bit and prefixing an <KBD>ESC</KBD> character, converting them to a
-meta-prefixed key sequence. The default value is <SAMP>`on'</SAMP>.
+meta-prefixed key sequence. The default value is <SAMP>`on'</SAMP>, but
+will be set to <SAMP>`off'</SAMP> if the locale is one that contains
+eight-bit characters.
<P>
<DT><CODE>disable-completion</CODE>
-<DD><A NAME="IDX15"></A>
+<DD><A NAME="IDX17"></A>
If set to <SAMP>`On'</SAMP>, Readline will inhibit word completion.
Completion characters will be inserted into the line as if they had
been mapped to <CODE>self-insert</CODE>. The default is <SAMP>`off'</SAMP>.
<P>
+<DT><CODE>echo-control-characters</CODE>
+<DD><A NAME="IDX18"></A>
+When set to <SAMP>`on'</SAMP>, on operating systems that indicate they support it,
+readline echoes a character corresponding to a signal generated from the
+keyboard. The default is <SAMP>`on'</SAMP>.
+<P>
+
<DT><CODE>editing-mode</CODE>
-<DD><A NAME="IDX16"></A>
+<DD><A NAME="IDX19"></A>
The <CODE>editing-mode</CODE> variable controls which default set of
key bindings is used. By default, Readline starts up in Emacs editing
mode, where the keystrokes are most similar to Emacs. This variable can be
set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
<P>
-<DT><CODE>echo-control-characters</CODE>
-<DD>When set to <SAMP>`on'</SAMP>, on operating systems that indicate they support it,
-readline echoes a character corresponding to a signal generated from the
-keyboard. The default is <SAMP>`on'</SAMP>.
+<DT><CODE>emacs-mode-string</CODE>
+<DD><A NAME="IDX20"></A>
+This string is displayed immediately before the last line of the primary
+prompt when emacs editing mode is active. 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 <SAMP>`\1'</SAMP> and <SAMP>`\2'</SAMP> escapes to begin and end sequences of
+non-printing characters, which can be used to embed a terminal control
+sequence into the mode string.
+The default is <SAMP>`@'</SAMP>.
+<P>
+
+<DT><CODE>enable-bracketed-paste</CODE>
+<DD><A NAME="IDX21"></A>
+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>.
<P>
<DT><CODE>enable-keypad</CODE>
-<DD><A NAME="IDX17"></A>
+<DD><A NAME="IDX22"></A>
When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
keypad when it is called. Some systems need this to enable the
arrow keys. The default is <SAMP>`off'</SAMP>.
@@ -697,13 +737,13 @@ The default is <SAMP>`on'</SAMP>.
<P>
<DT><CODE>expand-tilde</CODE>
-<DD><A NAME="IDX18"></A>
+<DD><A NAME="IDX23"></A>
If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
attempts word completion. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>history-preserve-point</CODE>
-<DD><A NAME="IDX19"></A>
+<DD><A NAME="IDX24"></A>
If set to <SAMP>`on'</SAMP>, the history code attempts to place the point (the
current cursor position) at the
same location on each history line retrieved with <CODE>previous-history</CODE>
@@ -711,17 +751,19 @@ or <CODE>next-history</CODE>. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>history-size</CODE>
-<DD><A NAME="IDX20"></A>
+<DD><A NAME="IDX25"></A>
Set the maximum number of history entries saved in the history list.
If set to zero, any existing history entries are deleted and no new entries
are saved.
If set to a value less than zero, the number of history entries is not
limited.
By default, the number of history entries is not limited.
+If an attempt is made to set <VAR>history-size</VAR> to a non-numeric value,
+the maximum number of history entries will be set to 500.
<P>
<DT><CODE>horizontal-scroll-mode</CODE>
-<DD><A NAME="IDX21"></A>
+<DD><A NAME="IDX26"></A>
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
@@ -730,17 +772,18 @@ this variable is set to <SAMP>`off'</SAMP>.
<P>
<DT><CODE>input-meta</CODE>
-<DD><A NAME="IDX22"></A>
-<A NAME="IDX23"></A>
+<DD><A NAME="IDX27"></A>
+<A NAME="IDX28"></A>
If set to <SAMP>`on'</SAMP>, Readline will enable eight-bit input (it
will not clear the eighth bit in the characters it reads),
regardless of what the terminal claims it can support. The
-default value is <SAMP>`off'</SAMP>. The name <CODE>meta-flag</CODE> is a
-synonym for this variable.
+default value is <SAMP>`off'</SAMP>, but Readline will set it to <SAMP>`on'</SAMP> if the
+locale contains eight-bit characters.
+The name <CODE>meta-flag</CODE> is a synonym for this variable.
<P>
<DT><CODE>isearch-terminators</CODE>
-<DD><A NAME="IDX24"></A>
+<DD><A NAME="IDX29"></A>
The string of characters that should terminate an incremental search without
subsequently executing the character as a command (see section <A HREF="rluserman.html#SEC8">1.2.5 Searching for Commands in the History</A>).
If this variable has not been given a value, the characters <KBD>ESC</KBD> and
@@ -748,7 +791,7 @@ If this variable has not been given a value, the characters <KBD>ESC</KBD> and
<P>
<DT><CODE>keymap</CODE>
-<DD><A NAME="IDX25"></A>
+<DD><A NAME="IDX30"></A>
Sets Readline's idea of the current keymap for key binding commands.
Acceptable <CODE>keymap</CODE> names are
<CODE>emacs</CODE>,
@@ -759,8 +802,9 @@ Acceptable <CODE>keymap</CODE> names are
<CODE>vi-move</CODE>,
<CODE>vi-command</CODE>, and
<CODE>vi-insert</CODE>.
-<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE>; <CODE>emacs</CODE> is
-equivalent to <CODE>emacs-standard</CODE>. The default value is <CODE>emacs</CODE>.
+<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE> (<CODE>vi-move</CODE> is also a
+synonym); <CODE>emacs</CODE> is equivalent to <CODE>emacs-standard</CODE>.
+The default value is <CODE>emacs</CODE>.
The value of the <CODE>editing-mode</CODE> variable also affects the
default keymap.
<P>
@@ -788,14 +832,14 @@ appended. The default is <SAMP>`on'</SAMP>.
<P>
<DT><CODE>mark-modified-lines</CODE>
-<DD><A NAME="IDX26"></A>
+<DD><A NAME="IDX31"></A>
This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an
asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
This variable is <SAMP>`off'</SAMP> by default.
<P>
<DT><CODE>mark-symlinked-directories</CODE>
-<DD><A NAME="IDX27"></A>
+<DD><A NAME="IDX32"></A>
If set to <SAMP>`on'</SAMP>, completed names which are symbolic links
to directories have a slash appended (subject to the value of
<CODE>mark-directories</CODE>).
@@ -803,7 +847,7 @@ The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>match-hidden-files</CODE>
-<DD><A NAME="IDX28"></A>
+<DD><A NAME="IDX33"></A>
This variable, when set to <SAMP>`on'</SAMP>, causes Readline to match files whose
names begin with a <SAMP>`.'</SAMP> (hidden files) when performing filename
completion.
@@ -813,21 +857,23 @@ This variable is <SAMP>`on'</SAMP> by default.
<P>
<DT><CODE>menu-complete-display-prefix</CODE>
-<DD><A NAME="IDX29"></A>
+<DD><A NAME="IDX34"></A>
If set to <SAMP>`on'</SAMP>, menu completion displays the common prefix of the
list of possible completions (which may be empty) before cycling through
the list. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>output-meta</CODE>
-<DD><A NAME="IDX30"></A>
+<DD><A NAME="IDX35"></A>
If set to <SAMP>`on'</SAMP>, Readline will display characters with the
eighth bit set directly rather than as a meta-prefixed escape
-sequence. The default is <SAMP>`off'</SAMP>.
+sequence.
+The default is <SAMP>`off'</SAMP>, but Readline will set it to <SAMP>`on'</SAMP> if the
+locale contains eight-bit characters.
<P>
<DT><CODE>page-completions</CODE>
-<DD><A NAME="IDX31"></A>
+<DD><A NAME="IDX36"></A>
If set to <SAMP>`on'</SAMP>, Readline uses an internal <CODE>more</CODE>-like pager
to display a screenful of possible completions at a time.
This variable is <SAMP>`on'</SAMP> by default.
@@ -840,7 +886,7 @@ The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>revert-all-at-newline</CODE>
-<DD><A NAME="IDX32"></A>
+<DD><A NAME="IDX37"></A>
If set to <SAMP>`on'</SAMP>, Readline will undo all changes to history lines
before returning when <CODE>accept-line</CODE> is executed. By default,
history lines may be modified and retain individual undo lists across
@@ -848,7 +894,7 @@ calls to <CODE>readline</CODE>. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>show-all-if-ambiguous</CODE>
-<DD><A NAME="IDX33"></A>
+<DD><A NAME="IDX38"></A>
This alters the default behavior of the completion functions. If
set to <SAMP>`on'</SAMP>,
words which have more than one possible completion cause the
@@ -857,7 +903,7 @@ The default value is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>show-all-if-unmodified</CODE>
-<DD><A NAME="IDX34"></A>
+<DD><A NAME="IDX39"></A>
This alters the default behavior of the completion functions in
a fashion similar to <VAR>show-all-if-ambiguous</VAR>.
If set to <SAMP>`on'</SAMP>,
@@ -869,15 +915,15 @@ The default value is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>show-mode-in-prompt</CODE>
-<DD><A NAME="IDX35"></A>
+<DD><A NAME="IDX40"></A>
If set to <SAMP>`on'</SAMP>, add a character to the beginning of the prompt
-indicating the editing mode: emacs (<SAMP>`@'</SAMP>), vi command (<SAMP>`:'</SAMP>),
-or vi insertion (<SAMP>`+'</SAMP>).
+indicating the editing mode: emacs, vi command, or vi insertion.
+The mode strings are user-settable.
The default value is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>skip-completed-text</CODE>
-<DD><A NAME="IDX36"></A>
+<DD><A NAME="IDX41"></A>
If set to <SAMP>`on'</SAMP>, 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
@@ -891,8 +937,34 @@ completion.
The default value is <SAMP>`off'</SAMP>.
<P>
+<DT><CODE>vi-cmd-mode-string</CODE>
+<DD><A NAME="IDX42"></A>
+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 is expanded like a
+key binding, so the standard set of meta- and control prefixes and
+backslash escape sequences is available.
+Use the <SAMP>`\1'</SAMP> and <SAMP>`\2'</SAMP> escapes to begin and end sequences of
+non-printing characters, which can be used to embed a terminal control
+sequence into the mode string.
+The default is <SAMP>`(cmd)'</SAMP>.
+<P>
+
+<DT><CODE>vi-ins-mode-string</CODE>
+<DD><A NAME="IDX43"></A>
+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 <SAMP>`\1'</SAMP> and <SAMP>`\2'</SAMP> escapes to begin and end sequences of
+non-printing characters, which can be used to embed a terminal control
+sequence into the mode string.
+The default is <SAMP>`(ins)'</SAMP>.
+<P>
+
<DT><CODE>visible-stats</CODE>
-<DD><A NAME="IDX37"></A>
+<DD><A NAME="IDX44"></A>
If set to <SAMP>`on'</SAMP>, a character denoting a file's type
is appended to the filename when listing possible
completions. The default is <SAMP>`off'</SAMP>.
@@ -1308,54 +1380,54 @@ The text between the point and mark is referred to as the <EM>region</EM>.
<H3> 1.4.1 Commands For Moving </H3>
<!--docid::SEC14::-->
<DL COMPACT>
-<A NAME="IDX38"></A>
+<A NAME="IDX45"></A>
<DT><CODE>beginning-of-line (C-a)</CODE>
-<DD><A NAME="IDX39"></A>
+<DD><A NAME="IDX46"></A>
Move to the start of the current line.
<P>
-<A NAME="IDX40"></A>
+<A NAME="IDX47"></A>
<DT><CODE>end-of-line (C-e)</CODE>
-<DD><A NAME="IDX41"></A>
+<DD><A NAME="IDX48"></A>
Move to the end of the line.
<P>
-<A NAME="IDX42"></A>
+<A NAME="IDX49"></A>
<DT><CODE>forward-char (C-f)</CODE>
-<DD><A NAME="IDX43"></A>
+<DD><A NAME="IDX50"></A>
Move forward a character.
<P>
-<A NAME="IDX44"></A>
+<A NAME="IDX51"></A>
<DT><CODE>backward-char (C-b)</CODE>
-<DD><A NAME="IDX45"></A>
+<DD><A NAME="IDX52"></A>
Move back a character.
<P>
-<A NAME="IDX46"></A>
+<A NAME="IDX53"></A>
<DT><CODE>forward-word (M-f)</CODE>
-<DD><A NAME="IDX47"></A>
+<DD><A NAME="IDX54"></A>
Move forward to the end of the next word.
Words are composed of letters and digits.
<P>
-<A NAME="IDX48"></A>
+<A NAME="IDX55"></A>
<DT><CODE>backward-word (M-b)</CODE>
-<DD><A NAME="IDX49"></A>
+<DD><A NAME="IDX56"></A>
Move back to the start of the current or previous word.
Words are composed of letters and digits.
<P>
-<A NAME="IDX50"></A>
+<A NAME="IDX57"></A>
<DT><CODE>clear-screen (C-l)</CODE>
-<DD><A NAME="IDX51"></A>
+<DD><A NAME="IDX58"></A>
Clear the screen and redraw the current line,
leaving the current line at the top of the screen.
<P>
-<A NAME="IDX52"></A>
+<A NAME="IDX59"></A>
<DT><CODE>redraw-current-line ()</CODE>
-<DD><A NAME="IDX53"></A>
+<DD><A NAME="IDX60"></A>
Refresh the current line. By default, this is unbound.
<P>
@@ -1381,9 +1453,9 @@ Refresh the current line. By default, this is unbound.
<P>
<DL COMPACT>
-<A NAME="IDX54"></A>
+<A NAME="IDX61"></A>
<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX55"></A>
+<DD><A NAME="IDX62"></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
@@ -1392,64 +1464,66 @@ If this line is a modified history line, the history line is restored
to its original state.
<P>
-<A NAME="IDX56"></A>
+<A NAME="IDX63"></A>
<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX57"></A>
+<DD><A NAME="IDX64"></A>
Move `back' through the history list, fetching the previous command.
<P>
-<A NAME="IDX58"></A>
+<A NAME="IDX65"></A>
<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX59"></A>
+<DD><A NAME="IDX66"></A>
Move `forward' through the history list, fetching the next command.
<P>
-<A NAME="IDX60"></A>
+<A NAME="IDX67"></A>
<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX61"></A>
+<DD><A NAME="IDX68"></A>
Move to the first line in the history.
<P>
-<A NAME="IDX62"></A>
+<A NAME="IDX69"></A>
<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX63"></A>
+<DD><A NAME="IDX70"></A>
Move to the end of the input history, i.e., the line currently
being entered.
<P>
-<A NAME="IDX64"></A>
+<A NAME="IDX71"></A>
<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX65"></A>
+<DD><A NAME="IDX72"></A>
Search backward starting at the current line and moving `up' through
the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX66"></A>
+<A NAME="IDX73"></A>
<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX67"></A>
+<DD><A NAME="IDX74"></A>
Search forward starting at the current line and moving `down' through
-the the history as necessary. This is an incremental search.
+the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX68"></A>
+<A NAME="IDX75"></A>
<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX69"></A>
+<DD><A NAME="IDX76"></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="IDX70"></A>
+<A NAME="IDX77"></A>
<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX71"></A>
+<DD><A NAME="IDX78"></A>
Search forward starting at the current line and moving `down'
-through the the history as necessary using a non-incremental search
+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="IDX72"></A>
+<A NAME="IDX79"></A>
<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX73"></A>
+<DD><A NAME="IDX80"></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.
@@ -1457,9 +1531,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX74"></A>
+<A NAME="IDX81"></A>
<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX75"></A>
+<DD><A NAME="IDX82"></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.
@@ -1467,9 +1541,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX76"></A>
+<A NAME="IDX83"></A>
<DT><CODE>history-substr-search-forward ()</CODE>
-<DD><A NAME="IDX77"></A>
+<DD><A NAME="IDX84"></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.
@@ -1477,9 +1551,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX78"></A>
+<A NAME="IDX85"></A>
<DT><CODE>history-substr-search-backward ()</CODE>
-<DD><A NAME="IDX79"></A>
+<DD><A NAME="IDX86"></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.
@@ -1487,9 +1561,9 @@ This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX80"></A>
+<A NAME="IDX87"></A>
<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX81"></A>
+<DD><A NAME="IDX88"></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>,
@@ -1500,9 +1574,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="IDX82"></A>
+<A NAME="IDX89"></A>
<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX83"></A>
+<DD><A NAME="IDX90"></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>.
@@ -1539,60 +1613,71 @@ as if the <SAMP>`!$'</SAMP> history expansion had been specified.
<DL COMPACT>
-<A NAME="IDX84"></A>
+<A NAME="IDX91"></A>
<DT><CODE><I>end-of-file</I> (usually C-d)</CODE>
-<DD><A NAME="IDX85"></A>
+<DD><A NAME="IDX92"></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="IDX86"></A>
+<A NAME="IDX93"></A>
<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX87"></A>
+<DD><A NAME="IDX94"></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="IDX88"></A>
+<A NAME="IDX95"></A>
<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX89"></A>
+<DD><A NAME="IDX96"></A>
Delete the character behind the cursor. A numeric argument means
to kill the characters instead of deleting them.
<P>
-<A NAME="IDX90"></A>
+<A NAME="IDX97"></A>
<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX91"></A>
+<DD><A NAME="IDX98"></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="IDX92"></A>
+<A NAME="IDX99"></A>
<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX93"></A>
+<DD><A NAME="IDX100"></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="IDX94"></A>
+<A NAME="IDX101"></A>
<DT><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX95"></A>
+<DD><A NAME="IDX102"></A>
Insert a tab character.
<P>
-<A NAME="IDX96"></A>
+<A NAME="IDX103"></A>
<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX97"></A>
+<DD><A NAME="IDX104"></A>
Insert yourself.
<P>
-<A NAME="IDX98"></A>
+<A NAME="IDX105"></A>
+<DT><CODE>bracketed-paste-begin ()</CODE>
+<DD><A NAME="IDX106"></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
+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</CODE>) instead of
+executing any editing commands.
+<P>
+
+<A NAME="IDX107"></A>
<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX99"></A>
+<DD><A NAME="IDX108"></A>
Drag the character before the cursor forward over
the character at the cursor, moving the
cursor forward as well. If the insertion point
@@ -1601,39 +1686,39 @@ transposes the last two characters of the line.
Negative arguments have no effect.
<P>
-<A NAME="IDX100"></A>
+<A NAME="IDX109"></A>
<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX101"></A>
+<DD><A NAME="IDX110"></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="IDX102"></A>
+<A NAME="IDX111"></A>
<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX103"></A>
+<DD><A NAME="IDX112"></A>
Uppercase the current (or following) word. With a negative argument,
uppercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX104"></A>
+<A NAME="IDX113"></A>
<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX105"></A>
+<DD><A NAME="IDX114"></A>
Lowercase the current (or following) word. With a negative argument,
lowercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX106"></A>
+<A NAME="IDX115"></A>
<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX107"></A>
+<DD><A NAME="IDX116"></A>
Capitalize the current (or following) word. With a negative argument,
capitalize the previous word, but do not move the cursor.
<P>
-<A NAME="IDX108"></A>
+<A NAME="IDX117"></A>
<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX109"></A>
+<DD><A NAME="IDX118"></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
@@ -1673,106 +1758,106 @@ By default, this command is unbound.
<DL COMPACT>
-<A NAME="IDX110"></A>
+<A NAME="IDX119"></A>
<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX111"></A>
+<DD><A NAME="IDX120"></A>
Kill the text from point to the end of the line.
<P>
-<A NAME="IDX112"></A>
+<A NAME="IDX121"></A>
<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX113"></A>
-Kill backward to the beginning of the line.
+<DD><A NAME="IDX122"></A>
+Kill backward from the cursor to the beginning of the current line.
<P>
-<A NAME="IDX114"></A>
+<A NAME="IDX123"></A>
<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX115"></A>
+<DD><A NAME="IDX124"></A>
Kill backward from the cursor to the beginning of the current line.
<P>
-<A NAME="IDX116"></A>
+<A NAME="IDX125"></A>
<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX117"></A>
+<DD><A NAME="IDX126"></A>
Kill all characters on the current line, no matter where point is.
By default, this is unbound.
<P>
-<A NAME="IDX118"></A>
+<A NAME="IDX127"></A>
<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX119"></A>
+<DD><A NAME="IDX128"></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="IDX120"></A>
+<A NAME="IDX129"></A>
<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX121"></A>
+<DD><A NAME="IDX130"></A>
Kill the word behind point.
Word boundaries are the same as <CODE>backward-word</CODE>.
<P>
-<A NAME="IDX122"></A>
+<A NAME="IDX131"></A>
<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX123"></A>
+<DD><A NAME="IDX132"></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="IDX124"></A>
+<A NAME="IDX133"></A>
<DT><CODE>unix-filename-rubout ()</CODE>
-<DD><A NAME="IDX125"></A>
+<DD><A NAME="IDX134"></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="IDX126"></A>
+<A NAME="IDX135"></A>
<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX127"></A>
+<DD><A NAME="IDX136"></A>
Delete all spaces and tabs around point. By default, this is unbound.
<P>
-<A NAME="IDX128"></A>
+<A NAME="IDX137"></A>
<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX129"></A>
+<DD><A NAME="IDX138"></A>
Kill the text in the current region.
By default, this command is unbound.
<P>
-<A NAME="IDX130"></A>
+<A NAME="IDX139"></A>
<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX131"></A>
+<DD><A NAME="IDX140"></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="IDX132"></A>
+<A NAME="IDX141"></A>
<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX133"></A>
+<DD><A NAME="IDX142"></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="IDX134"></A>
+<A NAME="IDX143"></A>
<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX135"></A>
+<DD><A NAME="IDX144"></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="IDX136"></A>
+<A NAME="IDX145"></A>
<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX137"></A>
+<DD><A NAME="IDX146"></A>
Yank the top of the kill ring into the buffer at point.
<P>
-<A NAME="IDX138"></A>
+<A NAME="IDX147"></A>
<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX139"></A>
+<DD><A NAME="IDX148"></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>
@@ -1796,23 +1881,23 @@ the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
<!--docid::SEC18::-->
<DL COMPACT>
-<A NAME="IDX140"></A>
+<A NAME="IDX149"></A>
<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX141"></A>
+<DD><A NAME="IDX150"></A>
Add this digit to the argument already accumulating, or start a new
argument. <KBD>M--</KBD> starts a negative argument.
<P>
-<A NAME="IDX142"></A>
+<A NAME="IDX151"></A>
<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX143"></A>
+<DD><A NAME="IDX152"></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.
If the command is followed by digits, executing <CODE>universal-argument</CODE>
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
+character that is neither a digit nor 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 argument count four, a second time makes the
@@ -1840,33 +1925,33 @@ By default, this is not bound to a key.
<P>
<DL COMPACT>
-<A NAME="IDX144"></A>
+<A NAME="IDX153"></A>
<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX145"></A>
+<DD><A NAME="IDX154"></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="IDX146"></A>
+<A NAME="IDX155"></A>
<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX147"></A>
+<DD><A NAME="IDX156"></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="IDX148"></A>
+<A NAME="IDX157"></A>
<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX149"></A>
+<DD><A NAME="IDX158"></A>
Insert all completions of the text before point that would have
been generated by <CODE>possible-completions</CODE>.
<P>
-<A NAME="IDX150"></A>
+<A NAME="IDX159"></A>
<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX151"></A>
+<DD><A NAME="IDX160"></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
@@ -1881,17 +1966,17 @@ This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
by default.
<P>
-<A NAME="IDX152"></A>
+<A NAME="IDX161"></A>
<DT><CODE>menu-complete-backward ()</CODE>
-<DD><A NAME="IDX153"></A>
+<DD><A NAME="IDX162"></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="IDX154"></A>
+<A NAME="IDX163"></A>
<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX155"></A>
+<DD><A NAME="IDX164"></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
@@ -1920,29 +2005,29 @@ This command is unbound by default.
<!--docid::SEC20::-->
<DL COMPACT>
-<A NAME="IDX156"></A>
+<A NAME="IDX165"></A>
<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX157"></A>
+<DD><A NAME="IDX166"></A>
Begin saving the characters typed into the current keyboard macro.
<P>
-<A NAME="IDX158"></A>
+<A NAME="IDX167"></A>
<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX159"></A>
+<DD><A NAME="IDX168"></A>
Stop saving the characters typed into the current keyboard macro
and save the definition.
<P>
-<A NAME="IDX160"></A>
+<A NAME="IDX169"></A>
<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX161"></A>
+<DD><A NAME="IDX170"></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="IDX162"></A>
+<A NAME="IDX171"></A>
<DT><CODE>print-last-kbd-macro ()</CODE>
-<DD><A NAME="IDX163"></A>
+<DD><A NAME="IDX172"></A>
Print the last keboard macro defined in a format suitable for the
<VAR>inputrc</VAR> file.
<P>
@@ -1968,87 +2053,87 @@ Print the last keboard macro defined in a format suitable for the
<!--docid::SEC21::-->
<DL COMPACT>
-<A NAME="IDX164"></A>
+<A NAME="IDX173"></A>
<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX165"></A>
+<DD><A NAME="IDX174"></A>
Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
any bindings or variable assignments found there.
<P>
-<A NAME="IDX166"></A>
+<A NAME="IDX175"></A>
<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX167"></A>
+<DD><A NAME="IDX176"></A>
Abort the current editing command and
ring the terminal's bell (subject to the setting of
<CODE>bell-style</CODE>).
<P>
-<A NAME="IDX168"></A>
+<A NAME="IDX177"></A>
<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX169"></A>
+<DD><A NAME="IDX178"></A>
If the metafied character <VAR>x</VAR> is lowercase, run the command
that is bound to the corresponding uppercase character.
<P>
-<A NAME="IDX170"></A>
+<A NAME="IDX179"></A>
<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX171"></A>
+<DD><A NAME="IDX180"></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="IDX172"></A>
+<A NAME="IDX181"></A>
<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX173"></A>
+<DD><A NAME="IDX182"></A>
Incremental undo, separately remembered for each line.
<P>
-<A NAME="IDX174"></A>
+<A NAME="IDX183"></A>
<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX175"></A>
+<DD><A NAME="IDX184"></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="IDX176"></A>
+<A NAME="IDX185"></A>
<DT><CODE>tilde-expand (M-~)</CODE>
-<DD><A NAME="IDX177"></A>
+<DD><A NAME="IDX186"></A>
Perform tilde expansion on the current word.
<P>
-<A NAME="IDX178"></A>
+<A NAME="IDX187"></A>
<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX179"></A>
+<DD><A NAME="IDX188"></A>
Set the mark to the point. If a
numeric argument is supplied, the mark is set to that position.
<P>
-<A NAME="IDX180"></A>
+<A NAME="IDX189"></A>
<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX181"></A>
+<DD><A NAME="IDX190"></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="IDX182"></A>
+<A NAME="IDX191"></A>
<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX183"></A>
+<DD><A NAME="IDX192"></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="IDX184"></A>
+<A NAME="IDX193"></A>
<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX185"></A>
+<DD><A NAME="IDX194"></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="IDX186"></A>
+<A NAME="IDX195"></A>
<DT><CODE>skip-csi-sequence ()</CODE>
-<DD><A NAME="IDX187"></A>
+<DD><A NAME="IDX196"></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
@@ -2058,9 +2143,9 @@ stray characters into the editing buffer. This is unbound by default,
but usually bound to ESC-[.
<P>
-<A NAME="IDX188"></A>
+<A NAME="IDX197"></A>
<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX189"></A>
+<DD><A NAME="IDX198"></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
@@ -2071,43 +2156,43 @@ the line.
In either case, the line is accepted as if a newline had been typed.
<P>
-<A NAME="IDX190"></A>
+<A NAME="IDX199"></A>
<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX191"></A>
+<DD><A NAME="IDX200"></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="IDX192"></A>
+<A NAME="IDX201"></A>
<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX193"></A>
+<DD><A NAME="IDX202"></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="IDX194"></A>
+<A NAME="IDX203"></A>
<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX195"></A>
+<DD><A NAME="IDX204"></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="IDX196"></A>
+<A NAME="IDX205"></A>
<DT><CODE>emacs-editing-mode (C-e)</CODE>
-<DD><A NAME="IDX197"></A>
+<DD><A NAME="IDX206"></A>
When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
editing mode.
<P>
-<A NAME="IDX198"></A>
+<A NAME="IDX207"></A>
<DT><CODE>vi-editing-mode (M-C-j)</CODE>
-<DD><A NAME="IDX199"></A>
+<DD><A NAME="IDX208"></A>
When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
editing mode.
<P>
@@ -2834,7 +2919,7 @@ to permit their use in free software.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>February, 11 2014</I>
+This document was generated by <I>chet</I> on <I>September, 7 2016</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -2996,7 +3081,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>February, 11 2014</I>
+by <I>chet</I> on <I>September, 7 2016</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 1aefd34..0b649ba 100644
--- a/doc/rluserman.info
+++ b/doc/rluserman.info
@@ -1,12 +1,12 @@
-This is rluserman.info, produced by makeinfo version 4.13 from
-/usr/homes/chet/src/bash/readline-src/doc/rluserman.texi.
+This is rluserman.info, produced by makeinfo version 6.1 from
+rluserman.texi.
This manual describes the end user interface of the GNU Readline Library
-(version 6.3, 6 January 2014), a library which aids in the consistency
-of user interface across discrete programs which provide a command line
+(version 7.0, 16 July 2016), a library which aids in the consistency of
+user interface across discrete programs which provide a command line
interface.
- Copyright (C) 1988-2014 Free Software Foundation, Inc.
+ Copyright (C) 1988-2016 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -15,7 +15,6 @@ interface.
no Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License".
-
INFO-DIR-SECTION Libraries
START-INFO-DIR-ENTRY
* RLuserman: (rluserman). The GNU readline library User's Manual.
@@ -30,7 +29,7 @@ GNU Readline Library
This document describes the end user interface of the GNU Readline
Library, a utility which aids in the consistency of user interface
across discrete programs which provide a command line interface. The
-Readline home page is `http://www.gnu.org/software/readline/'.
+Readline home page is <http://www.gnu.org/software/readline/>.
* Menu:
@@ -65,10 +64,10 @@ File: rluserman.info, Node: Introduction and Notation, Next: Readline Interact
The following paragraphs describe the notation used to represent
keystrokes.
- The text `C-k' is read as `Control-K' and describes the character
+ The text 'C-k' is read as 'Control-K' and describes the character
produced when the <k> key is pressed while the Control key is depressed.
- The text `M-k' is read as `Meta-K' and describes the character
+ The text 'M-k' is read as 'Meta-K' and describes the character
produced when the Meta key (if you have one) is depressed, and the <k>
key is pressed. The Meta key is labeled <ALT> on many keyboards. On
keyboards with two keys labeled <ALT> (usually to either side of the
@@ -82,15 +81,15 @@ Meta key, the identical keystroke can be generated by typing <ESC>
_first_, and then typing <k>. Either process is known as "metafying"
the <k> key.
- The text `M-C-k' is read as `Meta-Control-k' and describes the
-character produced by "metafying" `C-k'.
+ The text 'M-C-k' is read as 'Meta-Control-k' and describes the
+character produced by "metafying" 'C-k'.
- In addition, several keys have their own names. Specifically,
-<DEL>, <ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves
-when seen in this text, or in an init file (*note Readline Init File::).
-If your keyboard lacks a <LFD> key, typing <C-j> will produce the
-desired character. The <RET> key may be labeled <Return> or <Enter> on
-some keyboards.
+ In addition, several keys have their own names. Specifically, <DEL>,
+<ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves when seen
+in this text, or in an init file (*note Readline Init File::). If your
+keyboard lacks a <LFD> key, typing <C-j> will produce the desired
+character. The <RET> key may be labeled <Return> or <Enter> on some
+keyboards.

File: rluserman.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing
@@ -128,41 +127,35 @@ character appears where the cursor was, and then the cursor moves one
space to the right. If you mistype a character, you can use your erase
character to back up and delete the mistyped character.
- Sometimes you may mistype a character, and not notice the error
-until you have typed several other characters. In that case, you can
-type `C-b' to move the cursor to the left, and then correct your
-mistake. Afterwards, you can move the cursor to the right with `C-f'.
+ Sometimes you may mistype a character, and not notice the error until
+you have typed several other characters. In that case, you can type
+'C-b' to move the cursor to the left, and then correct your mistake.
+Afterwards, you can move the cursor to the right with 'C-f'.
When you add text in the middle of a line, you will notice that
-characters to the right of the cursor are `pushed over' to make room
-for the text that you have inserted. Likewise, when you delete text
-behind the cursor, characters to the right of the cursor are `pulled
-back' to fill in the blank space created by the removal of the text. A
-list of the bare essentials for editing the text of an input line
-follows.
-
-`C-b'
- Move back one character.
+characters to the right of the cursor are 'pushed over' to make room for
+the text that you have inserted. Likewise, when you delete text behind
+the cursor, characters to the right of the cursor are 'pulled back' to
+fill in the blank space created by the removal of the text. A list of
+the bare essentials for editing the text of an input line follows.
-`C-f'
+'C-b'
+ Move back one character.
+'C-f'
Move forward one character.
-
<DEL> or <Backspace>
Delete the character to the left of the cursor.
-
-`C-d'
+'C-d'
Delete the character underneath the cursor.
-
Printing characters
Insert the character into the line at the cursor.
-
-`C-_' or `C-x C-u'
+'C-_' or 'C-x C-u'
Undo the last editing command. You can undo all the way back to an
empty line.
(Depending on your configuration, the <Backspace> key be set to delete
the character to the left of the cursor and the <DEL> key set to delete
-the character underneath the cursor, like `C-d', rather than the
+the character underneath the cursor, like 'C-d', rather than the
character to the left of the cursor.)

@@ -172,29 +165,25 @@ File: rluserman.info, Node: Readline Movement Commands, Next: Readline Killing
--------------------------------
The above table describes the most basic keystrokes that you need in
-order to do editing of the input line. For your convenience, many
-other commands have been added in addition to `C-b', `C-f', `C-d', and
-<DEL>. Here are some commands for moving more rapidly about the line.
+order to do editing of the input line. For your convenience, many other
+commands have been added in addition to 'C-b', 'C-f', 'C-d', and <DEL>.
+Here are some commands for moving more rapidly about the line.
-`C-a'
+'C-a'
Move to the start of the line.
-
-`C-e'
+'C-e'
Move to the end of the line.
-
-`M-f'
+'M-f'
Move forward a word, where a word is composed of letters and
digits.
-
-`M-b'
+'M-b'
Move backward a word.
-
-`C-l'
+'C-l'
Clear the screen, reprinting the current line at the top.
- Notice how `C-f' moves forward a character, while `M-f' moves
-forward a word. It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
+ Notice how 'C-f' moves forward a character, while 'M-f' moves forward
+a word. It is a loose convention that control keystrokes operate on
+characters while meta keystrokes operate on words.

File: rluserman.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction
@@ -203,51 +192,49 @@ File: rluserman.info, Node: Readline Killing Commands, Next: Readline Argument
-------------------------------
"Killing" text means to delete the text from the line, but to save it
-away for later use, usually by "yanking" (re-inserting) it back into
-the line. (`Cut' and `paste' are more recent jargon for `kill' and
-`yank'.)
+away for later use, usually by "yanking" (re-inserting) it back into the
+line. ('Cut' and 'paste' are more recent jargon for 'kill' and 'yank'.)
- If the description for a command says that it `kills' text, then you
+ If the description for a command says that it 'kills' text, then you
can be sure that you can get the text back in a different (or the same)
place later.
- When you use a kill command, the text is saved in a "kill-ring".
-Any number of consecutive kills save all of the killed text together, so
+ When you use a kill command, the text is saved in a "kill-ring". Any
+number of consecutive kills save all of the killed text together, so
that when you yank it back, you get it all. The kill ring is not line
specific; the text that you killed on a previously typed line is
-available to be yanked back later, when you are typing another line.
+available to be yanked back later, when you are typing another line.
Here is the list of commands for killing text.
-`C-k'
+'C-k'
Kill the text from the current cursor position to the end of the
line.
-`M-d'
+'M-d'
Kill from the cursor to 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 `M-f'.
+ as those used by 'M-f'.
-`M-<DEL>'
+'M-<DEL>'
Kill from the cursor the start of the current word, or, if between
words, to the start of the previous word. Word boundaries are the
- same as those used by `M-b'.
-
-`C-w'
- Kill from the cursor to the previous whitespace. This is
- different than `M-<DEL>' because the word boundaries differ.
+ same as those used by 'M-b'.
+'C-w'
+ Kill from the cursor to the previous whitespace. This is different
+ than 'M-<DEL>' because the word boundaries differ.
Here is how to "yank" the text back into the line. Yanking means to
copy the most-recently-killed text from the kill buffer.
-`C-y'
+'C-y'
Yank the most recently killed text back into the buffer at the
cursor.
-`M-y'
+'M-y'
Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is `C-y' or `M-y'.
+ if the prior command is 'C-y' or 'M-y'.

File: rluserman.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction
@@ -260,15 +247,15 @@ argument acts as a repeat count, other times it is the sign of the
argument that is significant. If you pass a negative argument to a
command which normally acts in a forward direction, that command will
act in a backward direction. For example, to kill text back to the
-start of the line, you might type `M-- C-k'.
+start of the line, you might type 'M-- C-k'.
The general way to pass numeric arguments to a command is to type
-meta digits before the command. If the first `digit' typed is a minus
-sign (`-'), then the sign of the argument will be negative. Once you
+meta digits before the command. If the first 'digit' typed is a minus
+sign ('-'), then the sign of the argument will be negative. Once you
have typed one meta digit to get the argument started, you can type the
-remainder of the digits, and then the command. For example, to give
-the `C-d' command an argument of 10, you could type `M-1 0 C-d', which
-will delete the next ten characters on the input line.
+remainder of the digits, and then the command. For example, to give the
+'C-d' command an argument of 10, you could type 'M-1 0 C-d', which will
+delete the next ten characters on the input line.

File: rluserman.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction
@@ -276,36 +263,36 @@ File: rluserman.info, Node: Searching, Prev: Readline Arguments, Up: Readline
1.2.5 Searching for Commands in the History
-------------------------------------------
-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,
Readline 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
-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
+typed 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 <ESC> 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 current line.
-
- To find other matching entries in the history list, type `C-r' or
-`C-s' as appropriate. This will search backward or forward in the
-history for the next entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate the
-search and execute that command. For instance, a <RET> will terminate
-the search and accept the line, thereby executing the command from the
+'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
+current line.
+
+ To find other matching entries in the history list, type 'C-r' or
+'C-s' as appropriate. This will search backward or forward in the
+history for the next entry matching the search string typed so far. Any
+other key sequence bound to a Readline command will terminate the search
+and execute that command. For instance, a <RET> 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.
- Readline remembers the last incremental search string. If two
-`C-r's are typed without any intervening characters defining a new
-search string, any remembered search string is used.
+ Readline remembers the last incremental search string. If two 'C-r's
+are typed without any intervening characters defining a new search
+string, any remembered search string is used.
Non-incremental searches read the entire search string before
starting to search for matching history lines. The search string may be
@@ -317,19 +304,19 @@ File: rluserman.info, Node: Readline Init File, Next: Bindable Readline Comman
1.3 Readline Init File
======================
-Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings. Any user can customize programs that use Readline by
+Although the Readline library comes with a set of Emacs-like keybindings
+installed by default, it is possible to use a different set of
+keybindings. Any user can customize programs that use Readline by
putting commands in an "inputrc" file, conventionally in his home
directory. The name of this file is taken from the value of the
-environment variable `INPUTRC'. If that variable is unset, the default
-is `~/.inputrc'. If that file does not exist or cannot be read, the
-ultimate default is `/etc/inputrc'.
+environment variable 'INPUTRC'. If that variable is unset, the default
+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 are set.
- In addition, the `C-x C-r' command re-reads this init file, thus
+ In addition, the 'C-x C-r' command re-reads this init file, thus
incorporating any changes that you might have made to it.
* Menu:
@@ -346,21 +333,21 @@ File: rluserman.info, Node: Readline Init File Syntax, Next: Conditional Init
1.3.1 Readline Init File Syntax
-------------------------------
-There are only a few basic constructs allowed in the Readline init
-file. Blank lines are ignored. Lines beginning with a `#' are
-comments. Lines beginning with a `$' indicate conditional constructs
-(*note Conditional Init Constructs::). Other lines denote variable
-settings and key bindings.
+There are only a few basic constructs allowed in the Readline init file.
+Blank lines are ignored. Lines beginning with a '#' are comments.
+Lines beginning with a '$' indicate conditional constructs (*note
+Conditional Init Constructs::). Other lines denote variable settings
+and key bindings.
Variable Settings
You can modify the run-time behavior of Readline by altering the
- values of variables in Readline using the `set' command within the
+ values of variables in Readline using the 'set' command within the
init file. The syntax is simple:
set VARIABLE VALUE
- Here, for example, is how to change from the default Emacs-like
- key binding to use `vi' line editing commands:
+ Here, for example, is how to change from the default Emacs-like key
+ binding to use 'vi' line editing commands:
set editing-mode vi
@@ -368,258 +355,315 @@ Variable Settings
without regard to case. Unrecognized variable names are ignored.
Boolean variables (those that can be set to on or off) are set to
- on if the value is null or empty, ON (case-insensitive), or 1.
- Any other value results in the variable being set to off.
+ on if the value is null or empty, ON (case-insensitive), or 1. Any
+ other value results in the variable being set to off.
A great deal of run-time behavior is changeable with the following
variables.
- `bell-style'
- Controls what happens when Readline wants to ring the
- terminal bell. If set to `none', Readline never rings the
- bell. If set to `visible', Readline uses a visible bell if
- one is available. If set to `audible' (the default),
- Readline attempts to ring the terminal's bell.
-
- `bind-tty-special-chars'
- If set to `on', Readline attempts to bind the control
- characters treated specially by the kernel's terminal driver
- to their Readline equivalents.
-
- `colored-stats'
- If set to `on', Readline displays possible completions using
+ 'bell-style'
+ Controls what happens when Readline wants to ring the terminal
+ bell. If set to 'none', Readline never rings the bell. If
+ set to 'visible', Readline uses a visible bell if one is
+ available. If set to 'audible' (the default), Readline
+ attempts to ring the terminal's bell.
+
+ 'bind-tty-special-chars'
+ If set to 'on' (the default), Readline attempts to bind the
+ control characters treated specially by the kernel's terminal
+ driver to their Readline equivalents.
+
+ 'blink-matching-paren'
+ If set to 'on', Readline attempts to briefly move the cursor
+ to an opening parenthesis when a closing parenthesis is
+ inserted. The default is 'off'.
+
+ 'colored-completion-prefix'
+ If set to 'on', when listing completions, Readline displays
+ the common prefix of the set of possible completions using a
+ different color. The color definitions are taken from the
+ value of the 'LS_COLORS' environment variable. The default is
+ 'off'.
+
+ 'colored-stats'
+ If set to 'on', Readline displays possible completions using
different colors to indicate their file type. The color
- definitions are taken from the value of the `LS_COLORS'
- environment variable. The default is `off'.
+ definitions are taken from the value of the 'LS_COLORS'
+ environment variable. The default is 'off'.
- `comment-begin'
+ 'comment-begin'
The string to insert at the beginning of the line when the
- `insert-comment' command is executed. The default value is
- `"#"'.
+ 'insert-comment' command is executed. The default value is
+ '"#"'.
- `completion-display-width'
+ 'completion-display-width'
The number of screen columns used to display possible matches
when performing completion. The value is ignored if it is
less than 0 or greater than the terminal screen width. A
value of 0 will cause matches to be displayed one per line.
The default value is -1.
- `completion-ignore-case'
- If set to `on', Readline performs filename matching and
+ 'completion-ignore-case'
+ If set to 'on', Readline performs filename matching and
completion in a case-insensitive fashion. The default value
- is `off'.
+ is 'off'.
- `completion-map-case'
- If set to `on', and COMPLETION-IGNORE-CASE is enabled,
- Readline treats hyphens (`-') and underscores (`_') as
+ 'completion-map-case'
+ If set to 'on', and COMPLETION-IGNORE-CASE is enabled,
+ Readline treats hyphens ('-') and underscores ('_') as
equivalent when performing case-insensitive filename matching
and completion.
- `completion-prefix-display-length'
+ 'completion-prefix-display-length'
The length in characters of the common prefix of a list of
possible completions that is displayed without modification.
When set to a value greater than zero, common prefixes longer
than this value are replaced with an ellipsis when displaying
possible completions.
- `completion-query-items'
+ '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. 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'.
+ 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
+ 'convert-meta'
+ If set to 'on', Readline will convert characters with the
eighth bit set to an ASCII key sequence by stripping the
eighth bit and prefixing an <ESC> character, converting them
- to a meta-prefixed key sequence. The default value is `on'.
+ to a meta-prefixed key sequence. The default value is 'on',
+ but will be set to 'off' if the locale is one that contains
+ eight-bit characters.
- `disable-completion'
- If set to `On', Readline will inhibit word completion.
- Completion characters will be inserted into the line as if
- they had been mapped to `self-insert'. The default is `off'.
+ 'disable-completion'
+ If set to 'On', Readline will inhibit word completion.
+ Completion characters will be inserted into the line as if
+ they had been mapped to 'self-insert'. The default is 'off'.
- `editing-mode'
- The `editing-mode' variable controls which default set of key
- bindings is used. By default, Readline starts up in Emacs
- editing mode, where the keystrokes are most similar to Emacs.
- This variable can be set to either `emacs' or `vi'.
-
- `echo-control-characters'
- When set to `on', on operating systems that indicate they
+ 'echo-control-characters'
+ When set to 'on', on operating systems that indicate they
support it, readline echoes a character corresponding to a
- signal generated from the keyboard. The default is `on'.
+ signal generated from the keyboard. The default is 'on'.
- `enable-keypad'
- When set to `on', Readline will try to enable the application
+ 'editing-mode'
+ The 'editing-mode' variable controls which default set of key
+ bindings is used. By default, Readline starts up in Emacs
+ editing mode, where the keystrokes are most similar to Emacs.
+ This variable can be set to either 'emacs' or 'vi'.
+
+ 'emacs-mode-string'
+ This string is displayed immediately before the last line of
+ the primary prompt when emacs editing mode is active. 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 control sequence into the mode string. The
+ default is '@'.
+
+ 'enable-bracketed-paste'
+ 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 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'.
+
+ 'enable-keypad'
+ When set to 'on', Readline will try to enable the application
keypad when it is called. Some systems need this to enable
- the arrow keys. The default is `off'.
+ the arrow keys. The default is 'off'.
- `enable-meta-key'
- 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. The default is `on'.
+ 'enable-meta-key'
+ 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. The default is 'on'.
- `expand-tilde'
- If set to `on', tilde expansion is performed when Readline
- attempts word completion. The default is `off'.
+ 'expand-tilde'
+ If set to 'on', tilde expansion is performed when Readline
+ attempts word completion. The default is 'off'.
- `history-preserve-point'
- If set to `on', the history code attempts to place the point
+ 'history-preserve-point'
+ If set to 'on', the history code attempts to place the point
(the current cursor position) at the same location on each
- history line retrieved with `previous-history' or
- `next-history'. The default is `off'.
-
- `history-size'
- Set the maximum number of history entries saved in the
- history list. If set to zero, any existing history entries
- are deleted and no new entries are saved. If set to a value
- less than zero, the number of history entries is not limited.
- By default, the number of history entries is not limited.
-
- `horizontal-scroll-mode'
- This variable can be set to either `on' or `off'. Setting it
- to `on' means that the text of the lines being edited will
+ history line retrieved with 'previous-history' or
+ 'next-history'. The default is 'off'.
+
+ 'history-size'
+ Set the maximum number of history entries saved in the history
+ list. If set to zero, any existing history entries are
+ deleted and no new entries are saved. If set to a value less
+ than zero, the number of history entries is not limited. By
+ default, the number of history entries is not limited. If an
+ attempt is made to set HISTORY-SIZE to a non-numeric value,
+ the maximum number of history entries will be set to 500.
+
+ 'horizontal-scroll-mode'
+ This variable can be set to either 'on' or 'off'. Setting it
+ 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. By default, this variable is set to 'off'.
- `input-meta'
- If set to `on', Readline will enable eight-bit input (it will
+ 'input-meta'
+ If set to 'on', Readline will enable eight-bit input (it will
not clear the eighth bit in the characters it reads),
regardless of what the terminal claims it can support. The
- default value is `off'. The name `meta-flag' is a synonym
- for this variable.
+ default value is 'off', but Readline will set it to 'on' if
+ the locale contains eight-bit characters. The name
+ 'meta-flag' is a synonym for this variable.
- `isearch-terminators'
+ 'isearch-terminators'
The string of characters that should terminate an incremental
search without subsequently executing the character as a
command (*note Searching::). If this variable has not been
- given a value, the characters <ESC> and `C-J' will terminate
+ given a value, the characters <ESC> and 'C-J' will terminate
an incremental search.
- `keymap'
+ 'keymap'
Sets Readline's idea of the current keymap for key binding
- commands. Acceptable `keymap' names are `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 the `editing-mode'
- variable also affects the default keymap.
-
- `keyseq-timeout'
- 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. Readline uses this
- value to determine whether or not input is available on the
- current input source (`rl_instream' by default). The value
- is specified in milliseconds, so a value of 1000 means that
+ commands. Acceptable 'keymap' names are 'emacs',
+ 'emacs-standard', 'emacs-meta', 'emacs-ctlx', 'vi', 'vi-move',
+ 'vi-command', and 'vi-insert'. 'vi' is equivalent to
+ 'vi-command' ('vi-move' is also a synonym); 'emacs' is
+ equivalent to 'emacs-standard'. The default value is 'emacs'.
+ The value of the 'editing-mode' variable also affects the
+ default keymap.
+
+ 'keyseq-timeout'
+ 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. Readline uses this value
+ to determine whether or not input is available on the current
+ input source ('rl_instream' by default). 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. The
- default value is `500'.
+ pressed to decide which key sequence to complete. The default
+ value is '500'.
- `mark-directories'
- If set to `on', completed directory names have a slash
- appended. The default is `on'.
+ 'mark-directories'
+ If set to 'on', completed directory names have a slash
+ appended. The default is 'on'.
- `mark-modified-lines'
- This variable, when set to `on', causes Readline to display an
- asterisk (`*') at the start of history lines which have been
- modified. This variable is `off' by default.
+ 'mark-modified-lines'
+ This variable, when set to 'on', causes Readline to display an
+ asterisk ('*') at the start of history lines which have been
+ modified. This variable is 'off' by default.
- `mark-symlinked-directories'
- If set to `on', completed names which are symbolic links to
+ 'mark-symlinked-directories'
+ If set to 'on', completed names which are symbolic links to
directories have a slash appended (subject to the value of
- `mark-directories'). The default is `off'.
+ 'mark-directories'). The default is 'off'.
- `match-hidden-files'
- 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. This variable is `on' by default.
+ 'match-hidden-files'
+ 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. This variable is 'on' by default.
- `menu-complete-display-prefix'
- If set to `on', menu completion displays the common prefix of
+ 'menu-complete-display-prefix'
+ 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. The default is `off'.
+ cycling through the list. The default is 'off'.
- `output-meta'
- If set to `on', Readline will display characters with the
+ 'output-meta'
+ 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'.
+ sequence. The default is 'off', but Readline will set it to
+ 'on' if the locale contains eight-bit characters.
- `page-completions'
- If set to `on', Readline uses an internal `more'-like pager
- to display a screenful of possible completions at a time.
- This variable is `on' by default.
+ 'page-completions'
+ If set to 'on', Readline uses an internal 'more'-like pager to
+ display a screenful of possible completions at a time. This
+ variable is 'on' by default.
- `print-completions-horizontally'
- If set to `on', Readline will display completions with matches
+ 'print-completions-horizontally'
+ If set to 'on', Readline will display completions with matches
sorted horizontally in alphabetical order, rather than down
- the screen. The default is `off'.
+ the screen. The default is 'off'.
- `revert-all-at-newline'
- If set to `on', Readline will undo all changes to history
- lines before returning when `accept-line' is executed. By
+ 'revert-all-at-newline'
+ If set to 'on', Readline will undo all changes to history
+ lines before returning when 'accept-line' is executed. By
default, history lines may be modified and retain individual
- undo lists across calls to `readline'. The default is `off'.
+ undo lists across calls to 'readline'. The default is 'off'.
- `show-all-if-ambiguous'
+ 'show-all-if-ambiguous'
This alters the default behavior of the completion functions.
- If set to `on', words which have more than one possible
+ If set to 'on', words which have more than one possible
completion cause the matches to be listed immediately instead
- of ringing the bell. The default value is `off'.
+ of ringing the bell. The default value is 'off'.
- `show-all-if-unmodified'
+ 'show-all-if-unmodified'
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
+ 'on', words which have more than one possible completion
without any possible partial completion (the possible
completions don't share a common prefix) cause the matches to
be listed immediately instead of ringing the bell. The
- default value is `off'.
-
- `show-mode-in-prompt'
- If set to `on', add a character to the beginning of the prompt
- indicating the editing mode: emacs (`@'), vi command (`:'),
- or vi insertion (`+'). The default value is `off'.
-
- `skip-completed-text'
- 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. For instance, if this is enabled,
- attempting completion when the cursor is after the `e' in
- `Makefile' will result in `Makefile' rather than
- `Makefilefile', assuming there is a single possible
- completion. The default value is `off'.
-
- `visible-stats'
- If set to `on', a character denoting a file's type is
- appended to the filename when listing possible completions.
- The default is `off'.
-
+ default value is 'off'.
+
+ 'show-mode-in-prompt'
+ If set to 'on', add a character to the beginning of the prompt
+ indicating the editing mode: emacs, vi command, or vi
+ insertion. The mode strings are user-settable. The default
+ value is 'off'.
+
+ 'skip-completed-text'
+ 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. For instance, if this is enabled, attempting
+ completion when the cursor is after the 'e' in 'Makefile' will
+ result in 'Makefile' rather than 'Makefilefile', assuming
+ there is a single possible completion. The default value is
+ 'off'.
+
+ 'vi-cmd-mode-string'
+ 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 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 control sequence into the mode
+ string. The default is '(cmd)'.
+
+ 'vi-ins-mode-string'
+ 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 control sequence into the mode
+ string. The default is '(ins)'.
+
+ 'visible-stats'
+ If set to 'on', a character denoting a file's type is appended
+ to the filename when listing possible completions. The
+ default is 'off'.
Key Bindings
- The syntax for controlling key bindings in the init file is
- simple. First you need to find the name of the command that you
- want to change. The following sections contain tables of the
- command name, the default keybinding, if any, and a short
- description of what the command does.
+ The syntax for controlling key bindings in the init file is simple.
+ First you need to find the name of the command that you want to
+ change. The following sections contain tables of the command name,
+ the default keybinding, if any, and a short description of what the
+ command does.
Once you know the name of the command, simply place on a line in
the init file the name of the key you wish to bind the command to,
@@ -628,27 +672,27 @@ Key Bindings
part of the key name. The name of the key can be expressed in
different ways, depending on what you find most comfortable.
- In addition to command names, readline allows keys to be bound to
- a string that is inserted when the key is pressed (a MACRO).
+ In addition to command names, readline allows keys to be bound to a
+ string that is inserted when the key is pressed (a MACRO).
- KEYNAME: FUNCTION-NAME or MACRO
+ KEYNAME: FUNCTION-NAME or MACRO
KEYNAME is the name of a key spelled out in English. For
example:
Control-u: universal-argument
Meta-Rubout: backward-kill-word
Control-o: "> output"
- In the above example, `C-u' is bound to the function
- `universal-argument', `M-DEL' is bound to the function
- `backward-kill-word', and `C-o' is bound to run the macro
+ In the above example, 'C-u' is bound to the function
+ 'universal-argument', 'M-DEL' is bound to the function
+ 'backward-kill-word', and 'C-o' is bound to run the macro
expressed on the right hand side (that is, to insert the text
- `> output' into the line).
+ '> output' into the line).
A number of symbolic character names are recognized while
processing this key binding syntax: DEL, ESC, ESCAPE, LFD,
NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB.
- "KEYSEQ": FUNCTION-NAME or MACRO
+ "KEYSEQ": FUNCTION-NAME or MACRO
KEYSEQ differs from KEYNAME above in that strings denoting an
entire key sequence can be specified, by placing the key
sequence in double quotes. Some GNU Emacs style key escapes
@@ -659,66 +703,51 @@ Key Bindings
"\C-x\C-r": re-read-init-file
"\e[11~": "Function Key 1"
- In the above example, `C-u' is again bound to the function
- `universal-argument' (just as it was in the first example),
- `C-x C-r' is bound to the function `re-read-init-file', and
- `<ESC> <[> <1> <1> <~>' is bound to insert the text `Function
- Key 1'.
-
+ In the above example, 'C-u' is again bound to the function
+ 'universal-argument' (just as it was in the first example),
+ ''C-x' 'C-r'' is bound to the function 're-read-init-file',
+ and '<ESC> <[> <1> <1> <~>' is bound to insert the text
+ 'Function Key 1'.
The following GNU Emacs style escape sequences are available when
specifying key sequences:
- `\C-'
+ '\C-'
control prefix
-
- `\M-'
+ '\M-'
meta prefix
-
- `\e'
+ '\e'
an escape character
-
- `\\'
+ '\\'
backslash
-
- `\"'
+ '\"'
<">, a double quotation mark
-
- `\''
+ '\''
<'>, a single quote or apostrophe
In addition to the GNU Emacs style escape sequences, a second set
of backslash escapes is available:
- `\a'
+ '\a'
alert (bell)
-
- `\b'
+ '\b'
backspace
-
- `\d'
+ '\d'
delete
-
- `\f'
+ '\f'
form feed
-
- `\n'
+ '\n'
newline
-
- `\r'
+ '\r'
carriage return
-
- `\t'
+ '\t'
horizontal tab
-
- `\v'
+ '\v'
vertical tab
-
- `\NNN'
+ '\NNN'
the eight-bit character whose value is the octal value NNN
(one to three digits)
-
- `\xHH'
+ '\xHH'
the eight-bit character whose value is the hexadecimal value
HH (one or two hex digits)
@@ -726,12 +755,11 @@ Key Bindings
used to indicate a macro definition. Unquoted text is assumed to
be a function name. In the macro body, the backslash escapes
described above are expanded. Backslash will quote any other
- character in the macro text, including `"' and `''. For example,
- the following binding will make `C-x \' insert a single `\' into
+ character in the macro text, including '"' and '''. For example,
+ the following binding will make ''C-x' \' insert a single '\' into
the line:
"\C-x\\": "\\"
-

File: rluserman.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File
@@ -739,33 +767,32 @@ File: rluserman.info, Node: Conditional Init Constructs, Next: Sample Init Fil
---------------------------------
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
- editing mode, the terminal being used, or the application using
- Readline. The text of the test extends to the end of the line; no
- characters 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.
-
- `term'
- The `term=' form may be used to include terminal-specific key
+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 editing
+ mode, the terminal being used, or the application using Readline.
+ The text of the test extends to the end of the line; no characters
+ 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.
+
+ '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 both 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.
+ '=' is tested against both 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.
- `application'
+ 'application'
The APPLICATION construct is used to include
application-specific settings. Each program using the
Readline library sets the APPLICATION NAME, and you can test
@@ -778,18 +805,18 @@ are four parser directives used.
"\C-xq": "\eb\"\ef\""
$endif
-`$endif'
- This command, as seen in the previous example, terminates an `$if'
+'$endif'
+ This command, as seen in the previous example, terminates an '$if'
command.
-`$else'
- Commands in this branch of the `$if' directive are executed if the
+'$else'
+ Commands in this branch of the '$if' directive are executed if the
test fails.
-`$include'
+'$include'
This directive takes a single filename as an argument and reads
commands and bindings from that file. For example, the following
- directive reads from `/etc/inputrc':
+ directive reads from '/etc/inputrc':
$include /etc/inputrc

@@ -801,7 +828,6 @@ File: rluserman.info, Node: Sample Init File, Prev: Conditional Init Construct
Here is an example of an INPUTRC file. This illustrates key binding,
variable assignment, and conditional syntax.
-
# This file controls the behaviour of line input editing for
# programs that use the GNU Readline library. Existing
# programs include FTP, Bash, and GDB.
@@ -919,14 +945,14 @@ File: rluserman.info, Node: Bindable Readline Commands, Next: Readline vi Mode
* Keyboard Macros:: Saving and re-executing typed characters
* Miscellaneous Commands:: Other miscellaneous commands.
- This section describes Readline commands that may be bound to key
+This section describes Readline commands that may be bound to key
sequences. Command names without an accompanying key sequence are
unbound by default.
In the following descriptions, "point" refers to the current cursor
-position, and "mark" refers to a cursor position saved by the
-`set-mark' command. The text between the point and mark is referred to
-as the "region".
+position, and "mark" refers to a cursor position saved by the 'set-mark'
+command. The text between the point and mark is referred to as the
+"region".

File: rluserman.info, Node: Commands For Moving, Next: Commands For History, Up: Bindable Readline Commands
@@ -934,125 +960,123 @@ File: rluserman.info, Node: Commands For Moving, Next: Commands For History,
1.4.1 Commands For Moving
-------------------------
-`beginning-of-line (C-a)'
+'beginning-of-line (C-a)'
Move to the start of the current line.
-`end-of-line (C-e)'
+'end-of-line (C-e)'
Move to the end of the line.
-`forward-char (C-f)'
+'forward-char (C-f)'
Move forward a character.
-`backward-char (C-b)'
+'backward-char (C-b)'
Move back a character.
-`forward-word (M-f)'
+'forward-word (M-f)'
Move forward to the end of the next word. Words are composed of
letters and digits.
-`backward-word (M-b)'
+'backward-word (M-b)'
Move back to the start of the current or previous word. Words are
composed of letters and digits.
-`clear-screen (C-l)'
+'clear-screen (C-l)'
Clear the screen and redraw the current line, leaving the current
line at the top of the screen.
-`redraw-current-line ()'
+'redraw-current-line ()'
Refresh the current line. By default, this is unbound.
-

File: rluserman.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands
1.4.2 Commands For Manipulating The History
-------------------------------------------
-`accept-line (Newline or Return)'
+'accept-line (Newline or 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 this line is a modified history line,
- the history line is restored to its original state.
+ with 'add_history()'. If this line is a modified history line, the
+ history line is restored to its original state.
-`previous-history (C-p)'
- Move `back' through the history list, fetching the previous
+'previous-history (C-p)'
+ Move 'back' through the history list, fetching the previous
command.
-`next-history (C-n)'
- Move `forward' through the history list, fetching the next command.
+'next-history (C-n)'
+ Move 'forward' through the history list, fetching the next command.
-`beginning-of-history (M-<)'
+'beginning-of-history (M-<)'
Move to the first line in the history.
-`end-of-history (M->)'
+'end-of-history (M->)'
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'
+'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.
-`forward-search-history (C-s)'
- Search forward starting at the current line and moving `down'
- through the 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.
-`non-incremental-reverse-search-history (M-p)'
- 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.
+'non-incremental-reverse-search-history (M-p)'
+ 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.
-`non-incremental-forward-search-history (M-n)'
- Search forward starting at the current line and moving `down'
- through the the history as necessary using a non-incremental search
- for a string supplied by the user.
+'non-incremental-forward-search-history (M-n)'
+ 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.
-`history-search-forward ()'
+'history-search-forward ()'
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. By default, this command is unbound.
-`history-search-backward ()'
+'history-search-backward ()'
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. This is a
non-incremental search. By default, this command is unbound.
-`history-substr-search-forward ()'
+'history-substr-search-forward ()'
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. By default, this command is unbound.
-`history-substr-search-backward ()'
+'history-substr-search-backward ()'
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. This is a
non-incremental search. By default, this command is unbound.
-`yank-nth-arg (M-C-y)'
+'yank-nth-arg (M-C-y)'
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 `!N'
+ argument N is computed, the argument is extracted as if the '!N'
history expansion had been specified.
-`yank-last-arg (M-. or M-_)'
+'yank-last-arg (M-. or M-_)'
Insert 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 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 (back or
- forward). The history expansion facilities are used to extract
- the last argument, as if the `!$' history expansion had been
- specified.
-
+ 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 (back or forward). The
+ history expansion facilities are used to extract the last argument,
+ as if the '!$' history expansion had been specified.

File: rluserman.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
@@ -1060,139 +1084,147 @@ File: rluserman.info, Node: Commands For Text, Next: Commands For Killing, Pr
1.4.3 Commands For Changing Text
--------------------------------
-`end-of-file (usually C-d)'
+'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 characters on
+ 'stty'. 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.
-`delete-char (C-d)'
+'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
+ same character as the tty EOF character, as 'C-d' commonly is, see
above for the effects.
-`backward-delete-char (Rubout)'
+'backward-delete-char (Rubout)'
Delete the character behind the cursor. A numeric argument means
to kill the characters instead of deleting them.
-`forward-backward-delete-char ()'
+'forward-backward-delete-char ()'
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.
-`quoted-insert (C-q or C-v)'
+'quoted-insert (C-q or C-v)'
Add the next character typed to the line verbatim. This is how to
- insert key sequences like `C-q', for example.
+ insert key sequences like 'C-q', for example.
-`tab-insert (M-<TAB>)'
+'tab-insert (M-<TAB>)'
Insert a tab character.
-`self-insert (a, b, A, 1, !, ...)'
+'self-insert (a, b, A, 1, !, ...)'
Insert yourself.
-`transpose-chars (C-t)'
+'bracketed-paste-begin ()'
+ This function is intended to be bound to the "bracketed paste"
+ escape sequence sent by some terminals, and such a binding is
+ assigned by default. It allows Readline to insert the pasted text
+ as a single unit without treating each character as if it had been
+ read from the keyboard. The characters are inserted as if each one
+ was bound to 'self-insert') instead of executing any editing
+ commands.
+
+'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
point is at the end of the line, then this transposes the last two
characters of the line. Negative arguments have no effect.
-`transpose-words (M-t)'
+'transpose-words (M-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.
-`upcase-word (M-u)'
+'upcase-word (M-u)'
Uppercase the current (or following) word. With a negative
argument, uppercase the previous word, but do not move the cursor.
-`downcase-word (M-l)'
+'downcase-word (M-l)'
Lowercase the current (or following) word. With a negative
argument, lowercase the previous word, but do not move the cursor.
-`capitalize-word (M-c)'
+'capitalize-word (M-c)'
Capitalize the current (or following) word. With a negative
argument, capitalize the previous word, but do not move the cursor.
-`overwrite-mode ()'
+'overwrite-mode ()'
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
- `emacs' mode; `vi' mode does overwrite differently. Each call to
- `readline()' starts in insert mode.
+ 'emacs' mode; 'vi' mode does overwrite differently. Each call to
+ 'readline()' starts in insert mode.
- In overwrite mode, characters bound to `self-insert' replace the
+ In overwrite mode, characters bound to 'self-insert' replace the
text at point rather than pushing the text to the right.
- Characters bound to `backward-delete-char' replace the character
+ Characters bound to 'backward-delete-char' replace the character
before point with a space.
By default, this command is unbound.
-

File: rluserman.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands
1.4.4 Killing And Yanking
-------------------------
-`kill-line (C-k)'
+'kill-line (C-k)'
Kill the text from point to the end of the line.
-`backward-kill-line (C-x Rubout)'
- Kill backward to the beginning of the line.
+'backward-kill-line (C-x Rubout)'
+ Kill backward from the cursor to the beginning of the current line.
-`unix-line-discard (C-u)'
+'unix-line-discard (C-u)'
Kill backward from the cursor to the beginning of the current line.
-`kill-whole-line ()'
+'kill-whole-line ()'
Kill all characters on the current line, no matter where point is.
By default, this is unbound.
-`kill-word (M-d)'
+'kill-word (M-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 `forward-word'.
+ as 'forward-word'.
-`backward-kill-word (M-<DEL>)'
+'backward-kill-word (M-<DEL>)'
Kill the word behind point. Word boundaries are the same as
- `backward-word'.
+ 'backward-word'.
-`unix-word-rubout (C-w)'
+'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.
-`unix-filename-rubout ()'
+'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 the
kill-ring.
-`delete-horizontal-space ()'
+'delete-horizontal-space ()'
Delete all spaces and tabs around point. By default, this is
unbound.
-`kill-region ()'
+'kill-region ()'
Kill the text in the current region. By default, this command is
unbound.
-`copy-region-as-kill ()'
+'copy-region-as-kill ()'
Copy the text in the region to the kill buffer, so it can be yanked
right away. By default, this command is unbound.
-`copy-backward-word ()'
- Copy the word before point to the kill buffer. The word
- boundaries are the same as `backward-word'. By default, this
- command is unbound.
+'copy-backward-word ()'
+ Copy the word before point to the kill buffer. The word boundaries
+ are the same as 'backward-word'. By default, this command is
+ unbound.
-`copy-forward-word ()'
+'copy-forward-word ()'
Copy the word following point to the kill buffer. The word
- boundaries are the same as `forward-word'. By default, this
+ boundaries are the same as 'forward-word'. By default, this
command is unbound.
-`yank (C-y)'
+'yank (C-y)'
Yank the top of the kill ring into the buffer at point.
-`yank-pop (M-y)'
+'yank-pop (M-y)'
Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is `yank' or `yank-pop'.
+ if the prior command is 'yank' or 'yank-pop'.

File: rluserman.info, Node: Numeric Arguments, Next: Commands For Completion, Prev: Commands For Killing, Up: Bindable Readline Commands
@@ -1200,22 +1232,22 @@ File: rluserman.info, Node: Numeric Arguments, Next: Commands For Completion,
1.4.5 Specifying Numeric Arguments
----------------------------------
-`digit-argument (M-0, M-1, ... M--)'
+'digit-argument (M-0, M-1, ... M--)'
Add this digit to the argument already accumulating, or start a new
- argument. `M--' starts a negative argument.
+ argument. 'M--' starts a negative argument.
-`universal-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
- followed 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 argument
- count four, a second time makes the argument count sixteen, and so
- on. By default, this is not bound to a key.
+ sign, those digits define the argument. If the command is followed
+ 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 nor 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 argument count
+ four, a second time makes the argument count sixteen, and so on.
+ By default, this is not bound to a key.

File: rluserman.info, Node: Commands For Completion, Next: Keyboard Macros, Prev: Numeric Arguments, Up: Bindable Readline Commands
@@ -1223,185 +1255,181 @@ File: rluserman.info, Node: Commands For Completion, Next: Keyboard Macros, P
1.4.6 Letting Readline Type For You
-----------------------------------
-`complete (<TAB>)'
- Attempt to perform completion on the text before point. The
- actual completion performed is application-specific. The default
- is filename completion.
+'complete (<TAB>)'
+ Attempt to perform completion on the text before point. The actual
+ completion performed is application-specific. The default is
+ filename completion.
-`possible-completions (M-?)'
+'possible-completions (M-?)'
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
- that order.
+ 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-completions (M-*)'
Insert all completions of the text before point that would have
- been generated by `possible-completions'.
+ 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
+'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 list
of completions, the bell is rung (subject to the setting of
- `bell-style') and the original text is restored. An argument of N
+ '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.
-`menu-complete-backward ()'
- Identical to `menu-complete', but moves backward through the list
- of possible completions, as if `menu-complete' had been given a
+'menu-complete-backward ()'
+ Identical to 'menu-complete', but moves backward through the list
+ of possible completions, as if 'menu-complete' had been given a
negative argument.
-`delete-char-or-list ()'
+'delete-char-or-list ()'
Deletes the character under the cursor if not at the beginning or
- end of the line (like `delete-char'). If at the end of the line,
- behaves identically to `possible-completions'. This command is
+ end of the line (like 'delete-char'). If at the end of the line,
+ behaves identically to 'possible-completions'. This command is
unbound by default.
-

File: rluserman.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands
1.4.7 Keyboard Macros
---------------------
-`start-kbd-macro (C-x ()'
+'start-kbd-macro (C-x ()'
Begin saving the characters typed into the current keyboard macro.
-`end-kbd-macro (C-x ))'
+'end-kbd-macro (C-x ))'
Stop saving the characters typed into the current keyboard macro
and save the definition.
-`call-last-kbd-macro (C-x e)'
+'call-last-kbd-macro (C-x e)'
Re-execute the last keyboard macro defined, by making the
characters in the macro appear as if typed at the keyboard.
-`print-last-kbd-macro ()'
+'print-last-kbd-macro ()'
Print the last keboard macro defined in a format suitable for the
INPUTRC file.
-

File: rluserman.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands
1.4.8 Some Miscellaneous Commands
---------------------------------
-`re-read-init-file (C-x C-r)'
+'re-read-init-file (C-x C-r)'
Read in the contents of the INPUTRC file, and incorporate any
bindings or variable assignments found there.
-`abort (C-g)'
+'abort (C-g)'
Abort the current editing command and ring the terminal's bell
- (subject to the setting of `bell-style').
+ (subject to the setting of 'bell-style').
-`do-uppercase-version (M-a, M-b, M-X, ...)'
+'do-uppercase-version (M-a, M-b, M-X, ...)'
If the metafied character X is lowercase, run the command that is
bound to the corresponding uppercase character.
-`prefix-meta (<ESC>)'
+'prefix-meta (<ESC>)'
Metafy the next character typed. This is for keyboards without a
- meta key. Typing `<ESC> f' is equivalent to typing `M-f'.
+ meta key. Typing '<ESC> f' is equivalent to typing 'M-f'.
-`undo (C-_ or C-x C-u)'
+'undo (C-_ or C-x C-u)'
Incremental undo, separately remembered for each line.
-`revert-line (M-r)'
+'revert-line (M-r)'
Undo all changes made to this line. This is like executing the
- `undo' command enough times to get back to the beginning.
+ 'undo' command enough times to get back to the beginning.
-`tilde-expand (M-~)'
+'tilde-expand (M-~)'
Perform tilde expansion on the current word.
-`set-mark (C-@)'
+'set-mark (C-@)'
Set the mark to the point. If a numeric argument is supplied, the
mark is set to that position.
-`exchange-point-and-mark (C-x C-x)'
+'exchange-point-and-mark (C-x C-x)'
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.
-`character-search (C-])'
+'character-search (C-])'
A character is read and point is moved to the next occurrence of
that character. A negative count searches for previous
occurrences.
-`character-search-backward (M-C-])'
+'character-search-backward (M-C-])'
A character is read and point is moved to the previous occurrence
of that character. A negative count searches for subsequent
occurrences.
-`skip-csi-sequence ()'
+'skip-csi-sequence ()'
Read enough characters to consume a multi-key sequence such as
those defined for keys like Home and End. Such sequences begin
with a Control Sequence Indicator (CSI), usually ESC-[. If this
- sequence is bound to "\e[", keys producing such sequences will
- have no effect unless explicitly bound to a readline command,
- instead of inserting stray characters into the editing buffer.
- This is unbound by default, but usually bound to ESC-[.
+ sequence is bound to "\e[", keys producing such sequences will have
+ no effect unless explicitly bound to a readline command, instead of
+ inserting stray characters into the editing buffer. This is
+ unbound by default, but usually bound to ESC-[.
-`insert-comment (M-#)'
- Without a numeric argument, the value of the `comment-begin'
+'insert-comment (M-#)'
+ Without a numeric argument, the value of the 'comment-begin'
variable is inserted at the beginning of the current line. If a
- numeric argument is supplied, this command acts as a toggle: if
- the characters at the beginning of the line do not match the value
- of `comment-begin', the value is inserted, otherwise the
- characters in `comment-begin' are deleted from the beginning of
- the line. In either case, the line is accepted as if a newline
- had been typed.
-
-`dump-functions ()'
+ numeric argument is supplied, this command acts as a toggle: if the
+ characters at the beginning of the line do not match the value of
+ 'comment-begin', the value is inserted, otherwise the characters in
+ 'comment-begin' are deleted from the beginning of the line. In
+ either case, the line is accepted as if a newline had been typed.
+
+'dump-functions ()'
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 INPUTRC
file. This command is unbound by default.
-`dump-variables ()'
+'dump-variables ()'
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
INPUTRC file. This command is unbound by default.
-`dump-macros ()'
+'dump-macros ()'
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
- INPUTRC file. This command is unbound by default.
+ 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 INPUTRC
+ file. This command is unbound by default.
-`emacs-editing-mode (C-e)'
- When in `vi' command mode, this causes a switch to `emacs' editing
+'emacs-editing-mode (C-e)'
+ When in 'vi' command mode, this causes a switch to 'emacs' editing
mode.
-`vi-editing-mode (M-C-j)'
- When in `emacs' editing mode, this causes a switch to `vi' editing
+'vi-editing-mode (M-C-j)'
+ When in 'emacs' editing mode, this causes a switch to 'vi' editing
mode.
-

File: rluserman.info, Node: Readline vi Mode, Prev: Bindable Readline Commands, Up: Command Line Editing
1.5 Readline vi Mode
====================
-While the Readline library does not have a full set of `vi' editing
+While the Readline library does not have a full set of 'vi' editing
functions, it does contain enough to allow simple editing of the line.
-The Readline `vi' mode behaves as specified in the POSIX standard.
+The Readline 'vi' mode behaves as specified in the POSIX standard.
- In order to switch interactively between `emacs' and `vi' editing
-modes, use the command `M-C-j' (bound to emacs-editing-mode when in
-`vi' mode and to vi-editing-mode in `emacs' mode). The Readline
-default is `emacs' mode.
+ In order to switch interactively between 'emacs' and 'vi' editing
+modes, use the command 'M-C-j' (bound to emacs-editing-mode when in 'vi'
+mode and to vi-editing-mode in 'emacs' mode). The Readline default is
+'emacs' mode.
- When you enter a line in `vi' mode, you are already placed in
-`insertion' mode, as if you had typed an `i'. Pressing <ESC> switches
-you into `command' mode, where you can edit the text of the line with
-the standard `vi' movement keys, move to previous history lines with
-`k' and subsequent lines with `j', and so forth.
+ When you enter a line in 'vi' mode, you are already placed in
+'insertion' mode, as if you had typed an 'i'. Pressing <ESC> switches
+you into 'command' mode, where you can edit the text of the line with
+the standard 'vi' movement keys, move to previous history lines with 'k'
+and subsequent lines with 'j', and so forth.

File: rluserman.info, Node: GNU Free Documentation License, Prev: Command Line Editing, Up: Top
@@ -1412,7 +1440,7 @@ Appendix A GNU Free Documentation License
Version 1.3, 3 November 2008
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
- `http://fsf.org/'
+ <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -1437,21 +1465,21 @@ Appendix A GNU Free Documentation License
free program should come with manuals providing the same freedoms
that the software does. But this License is not limited to
software manuals; it can be used for any textual work, regardless
- of subject matter or whether it is published as a printed book.
- We recommend this License principally for works whose purpose is
+ of subject matter or whether it is published as a printed book. We
+ recommend this License principally for works whose purpose is
instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work, in any medium,
- that contains a notice placed by the copyright holder saying it
- can be distributed under the terms of this License. Such a notice
+ that contains a notice placed by the copyright holder saying it can
+ be distributed under the terms of this License. Such a notice
grants a world-wide, royalty-free license, unlimited in duration,
to use that work under the conditions stated herein. The
"Document", below, refers to any such manual or work. Any member
- of the public is a licensee, and is addressed as "you". You
- accept the license if you copy, modify or distribute the work in a
- way requiring permission under copyright law.
+ of the public is a licensee, and is addressed as "you". You accept
+ the license if you copy, modify or distribute the work in a way
+ requiring permission under copyright law.
A "Modified Version" of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
@@ -1469,12 +1497,12 @@ Appendix A GNU Free Documentation License
regarding them.
The "Invariant Sections" are certain Secondary Sections whose
- titles are designated, as being those of Invariant Sections, in
- the notice that says that the Document is released under this
- License. If a section does not fit the above definition of
- Secondary then it is not allowed to be designated as Invariant.
- The Document may contain zero Invariant Sections. If the Document
- does not identify any Invariant Sections then there are none.
+ titles are designated, as being those of Invariant Sections, in the
+ notice that says that the Document is released under this License.
+ If a section does not fit the above definition of Secondary then it
+ is not allowed to be designated as Invariant. The Document may
+ contain zero Invariant Sections. If the Document does not identify
+ any Invariant Sections then there are none.
The "Cover Texts" are certain short passages of text that are
listed, as Front-Cover Texts or Back-Cover Texts, in the notice
@@ -1485,27 +1513,27 @@ Appendix A GNU Free Documentation License
A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, that is suitable for revising the document
- straightforwardly with generic text editors or (for images
- composed of pixels) generic paint programs or (for drawings) some
- widely available drawing editor, and that is suitable for input to
- text formatters or for automatic translation to a variety of
- formats suitable for input to text formatters. A copy made in an
- otherwise Transparent file format whose markup, or absence of
- markup, has been arranged to thwart or discourage subsequent
- modification by readers is not Transparent. An image format is
- not Transparent if used for any substantial amount of text. A
- copy that is not "Transparent" is called "Opaque".
+ straightforwardly with generic text editors or (for images composed
+ of pixels) generic paint programs or (for drawings) some widely
+ available drawing editor, and that is suitable for input to text
+ formatters or for automatic translation to a variety of formats
+ suitable for input to text formatters. A copy made in an otherwise
+ Transparent file format whose markup, or absence of markup, has
+ been arranged to thwart or discourage subsequent modification by
+ readers is not Transparent. An image format is not Transparent if
+ used for any substantial amount of text. A copy that is not
+ "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain
ASCII without markup, Texinfo input format, LaTeX input format,
- SGML or XML using a publicly available DTD, and
- standard-conforming simple HTML, PostScript or PDF designed for
- human modification. Examples of transparent image formats include
- PNG, XCF and JPG. Opaque formats include proprietary formats that
- can be read and edited only by proprietary word processors, SGML or
- XML for which the DTD and/or processing tools are not generally
- available, and the machine-generated HTML, PostScript or PDF
- produced by some word processors for output purposes only.
+ SGML or XML using a publicly available DTD, and standard-conforming
+ simple HTML, PostScript or PDF designed for human modification.
+ Examples of transparent image formats include PNG, XCF and JPG.
+ Opaque formats include proprietary formats that can be read and
+ edited only by proprietary word processors, SGML or XML for which
+ the DTD and/or processing tools are not generally available, and
+ the machine-generated HTML, PostScript or PDF produced by some word
+ processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the
@@ -1543,8 +1571,8 @@ Appendix A GNU Free Documentation License
may not use technical measures to obstruct or control the reading
or further copying of the copies you make or distribute. However,
you may accept compensation in exchange for copies. If you
- distribute a large enough number of copies you must also follow
- the conditions in section 3.
+ distribute a large enough number of copies you must also follow the
+ conditions in section 3.
You may also lend copies, under the same conditions stated above,
and you may publicly display copies.
@@ -1558,12 +1586,11 @@ Appendix A GNU Free Documentation License
these Cover Texts: Front-Cover Texts on the front cover, and
Back-Cover Texts on the back cover. Both covers must also clearly
and legibly identify you as the publisher of these copies. The
- front cover must present the full title with all words of the
- title equally prominent and visible. You may add other material
- on the covers in addition. Copying with changes limited to the
- covers, as long as they preserve the title of the Document and
- satisfy these conditions, can be treated as verbatim copying in
- other respects.
+ front cover must present the full title with all words of the title
+ equally prominent and visible. You may add other material on the
+ covers in addition. Copying with changes limited to the covers, as
+ long as they preserve the title of the Document and satisfy these
+ conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
@@ -1571,40 +1598,39 @@ Appendix A GNU Free Documentation License
adjacent pages.
If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a
- machine-readable Transparent copy along with each Opaque copy, or
- state in or with each Opaque copy a computer-network location from
- which the general network-using public has access to download
- using public-standard network protocols a complete Transparent
- copy of the Document, free of added material. If you use the
- latter option, you must take reasonably prudent steps, when you
- begin distribution of Opaque copies in quantity, to ensure that
- this Transparent copy will remain thus accessible at the stated
- location until at least one year after the last time you
- distribute an Opaque copy (directly or through your agents or
- retailers) of that edition to the public.
+ numbering more than 100, you must either include a machine-readable
+ Transparent copy along with each Opaque copy, or state in or with
+ each Opaque copy a computer-network location from which the general
+ network-using public has access to download using public-standard
+ network protocols a complete Transparent copy of the Document, free
+ of added material. If you use the latter option, you must take
+ reasonably prudent steps, when you begin distribution of Opaque
+ copies in quantity, to ensure that this Transparent copy will
+ remain thus accessible at the stated location until at least one
+ year after the last time you distribute an Opaque copy (directly or
+ through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of
- the Document well before redistributing any large number of
- copies, to give them a chance to provide you with an updated
- version of the Document.
+ the Document well before redistributing any large number of copies,
+ to give them a chance to provide you with an updated version of the
+ Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document
under the conditions of sections 2 and 3 above, provided that you
- release the Modified Version under precisely this License, with
- the Modified Version filling the role of the Document, thus
- licensing distribution and modification of the Modified Version to
- whoever possesses a copy of it. In addition, you must do these
- things in the Modified Version:
+ release the Modified Version under precisely this License, with the
+ Modified Version filling the role of the Document, thus licensing
+ distribution and modification of the Modified Version to whoever
+ possesses a copy of it. In addition, you must do these things in
+ the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title
- distinct from that of the Document, and from those of
- previous versions (which should, if there were any, be listed
- in the History section of the Document). You may use the
- same title as a previous version if the original publisher of
- that version gives permission.
+ distinct from that of the Document, and from those of previous
+ versions (which should, if there were any, be listed in the
+ History section of the Document). You may use the same title
+ as a previous version if the original publisher of that
+ version gives permission.
B. List on the Title Page, as authors, one or more persons or
entities responsible for authorship of the modifications in
@@ -1634,31 +1660,30 @@ Appendix A GNU Free Documentation License
I. Preserve the section Entitled "History", Preserve its Title,
and add to it an item stating at least the title, year, new
- authors, and publisher of the Modified Version as given on
- the Title Page. If there is no section Entitled "History" in
- the Document, create one stating the title, year, authors,
- and publisher of the Document as given on its Title Page,
- then add an item describing the Modified Version as stated in
- the previous sentence.
+ authors, and publisher of the Modified Version as given on the
+ Title Page. If there is no section Entitled "History" in the
+ Document, create one stating the title, year, authors, and
+ publisher of the Document as given on its Title Page, then add
+ an item describing the Modified Version as stated in the
+ previous sentence.
J. Preserve the network location, if any, given in the Document
for public access to a Transparent copy of the Document, and
likewise the network locations given in the Document for
- previous versions it was based on. These may be placed in
- the "History" section. You may omit a network location for a
- work that was published at least four years before the
- Document itself, or if the original publisher of the version
- it refers to gives permission.
+ previous versions it was based on. These may be placed in the
+ "History" section. You may omit a network location for a work
+ that was published at least four years before the Document
+ itself, or if the original publisher of the version it refers
+ to gives permission.
K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the
- section all the substance and tone of each of the contributor
+ Preserve the Title of the section, and preserve in the section
+ all the substance and tone of each of the contributor
acknowledgements and/or dedications given therein.
- L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section
- titles.
+ L. Preserve all the Invariant Sections of the Document, unaltered
+ in their text and in their titles. Section numbers or the
+ equivalent are not considered part of the section titles.
M. Delete any section Entitled "Endorsements". Such a section
may not be included in the Modified Version.
@@ -1671,11 +1696,11 @@ Appendix A GNU Free Documentation License
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option
- designate some or all of these sections as invariant. To do this,
- add their titles to the list of Invariant Sections in the Modified
- Version's license notice. These titles must be distinct from any
- other section titles.
+ material copied from the Document, you may at your option designate
+ some or all of these sections as invariant. To do this, add their
+ titles to the list of Invariant Sections in the Modified Version's
+ license notice. These titles must be distinct from any other
+ section titles.
You may add a section Entitled "Endorsements", provided it contains
nothing but endorsements of your Modified Version by various
@@ -1684,15 +1709,15 @@ Appendix A GNU Free Documentation License
definition of a standard.
You may add a passage of up to five words as a Front-Cover Text,
- and a passage of up to 25 words as a Back-Cover Text, to the end
- of the list of Cover Texts in the Modified Version. Only one
- passage of Front-Cover Text and one of Back-Cover Text may be
- added by (or through arrangements made by) any one entity. If the
- Document already includes a cover text for the same cover,
- previously added by you or by arrangement made by the same entity
- you are acting on behalf of, you may not add another; but you may
- replace the old one, on explicit permission from the previous
- publisher that added the old one.
+ and a passage of up to 25 words as a Back-Cover Text, to the end of
+ the list of Cover Texts in the Modified Version. Only one passage
+ of Front-Cover Text and one of Back-Cover Text may be added by (or
+ through arrangements made by) any one entity. If the Document
+ already includes a cover text for the same cover, previously added
+ by you or by arrangement made by the same entity you are acting on
+ behalf of, you may not add another; but you may replace the old
+ one, on explicit permission from the previous publisher that added
+ the old one.
The author(s) and publisher(s) of the Document do not by this
License give permission to use their names for publicity for or to
@@ -1702,8 +1727,8 @@ Appendix A GNU Free Documentation License
You may combine the Document with other documents released under
this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination
- all of the Invariant Sections of all of the original documents,
+ modified versions, provided that you include in the combination all
+ of the Invariant Sections of all of the original documents,
unmodified, and list them all as Invariant Sections of your
combined work in its license notice, and that you preserve all
their Warranty Disclaimers.
@@ -1730,20 +1755,20 @@ Appendix A GNU Free Documentation License
documents released under this License, and replace the individual
copies of this License in the various documents with a single copy
that is included in the collection, provided that you follow the
- rules of this License for verbatim copying of each of the
- documents in all other respects.
+ rules of this License for verbatim copying of each of the documents
+ in all other respects.
You may extract a single document from such a collection, and
distribute it individually under this License, provided you insert
- a copy of this License into the extracted document, and follow
- this License in all other respects regarding verbatim copying of
- that document.
+ a copy of this License into the extracted document, and follow this
+ License in all other respects regarding verbatim copying of that
+ document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume of
- a storage or distribution medium, is called an "aggregate" if the
+ separate and independent documents or works, in or on a volume of a
+ storage or distribution medium, is called an "aggregate" if the
copyright resulting from the compilation is not used to limit the
legal rights of the compilation's users beyond what the individual
works permit. When the Document is included in an aggregate, this
@@ -1788,8 +1813,8 @@ Appendix A GNU Free Documentation License
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
- provisionally, unless and until the copyright holder explicitly
- and finally terminates your license, and (b) permanently, if the
+ provisionally, unless and until the copyright holder explicitly and
+ finally terminates your license, and (b) permanently, if the
copyright holder fails to notify you of the violation by some
reasonable means prior to 60 days after the cessation.
@@ -1801,33 +1826,33 @@ Appendix A GNU Free Documentation License
after your receipt of the notice.
Termination of your rights under this section does not terminate
- the licenses of parties who have received copies or rights from
- you under this License. If your rights have been terminated and
- not permanently reinstated, receipt of a copy of some or all of
- the same material does not give you any rights to use it.
+ the licenses of parties who have received copies or rights from you
+ under this License. If your rights have been terminated and not
+ permanently reinstated, receipt of a copy of some or all of the
+ same material does not give you any rights to use it.
- 10. FUTURE REVISIONS OF THIS LICENSE
+ 10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of
the GNU Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
- `http://www.gnu.org/copyleft/'.
+ <http://www.gnu.org/copyleft/>.
Each version of the License is given a distinguishing version
number. If the Document specifies that a particular numbered
version of this License "or any later version" applies to it, you
have the option of following the terms and conditions either of
that specified version or of any later version that has been
- published (not as a draft) by the Free Software Foundation. If
- the Document does not specify a version number of this License,
- you may choose any version ever published (not as a draft) by the
- Free Software Foundation. If the Document specifies that a proxy
- can decide which future versions of this License can be used, that
+ published (not as a draft) by the Free Software Foundation. If the
+ Document does not specify a version number of this License, you may
+ choose any version ever published (not as a draft) by the Free
+ Software Foundation. If the Document specifies that a proxy can
+ decide which future versions of this License can be used, that
proxy's public statement of acceptance of a version permanently
authorizes you to choose that version for the Document.
- 11. RELICENSING
+ 11. RELICENSING
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
World Wide Web server that publishes copyrightable works and also
@@ -1857,7 +1882,6 @@ Appendix A GNU Free Documentation License
site under CC-BY-SA on the same site at any time before August 1,
2009, provided the MMC is eligible for relicensing.
-
ADDENDUM: How to use this License for your documents
====================================================
@@ -1874,7 +1898,7 @@ notices just after the title page:
Free Documentation License''.
If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
+Texts, replace the "with...Texts." line with this:
with the Invariant Sections being LIST THEIR TITLES, with
the Front-Cover Texts being LIST, and with the Back-Cover Texts
@@ -1885,36 +1909,36 @@ combination of the three, merge those two alternatives to suit the
situation.
If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
+recommend releasing these examples in parallel under your choice of free
+software license, such as the GNU General Public License, to permit
+their use in free software.

Tag Table:
-Node: Top950
-Node: Command Line Editing1472
-Node: Introduction and Notation2126
-Node: Readline Interaction3750
-Node: Readline Bare Essentials4943
-Node: Readline Movement Commands6734
-Node: Readline Killing Commands7701
-Node: Readline Arguments9623
-Node: Searching10669
-Node: Readline Init File12822
-Node: Readline Init File Syntax13977
-Node: Conditional Init Constructs30683
-Node: Sample Init File33218
-Node: Bindable Readline Commands36338
-Node: Commands For Moving37397
-Node: Commands For History38260
-Node: Commands For Text42416
-Node: Commands For Killing45400
-Node: Numeric Arguments47544
-Node: Commands For Completion48685
-Node: Keyboard Macros50656
-Node: Miscellaneous Commands51346
-Node: Readline vi Mode55204
-Node: GNU Free Documentation License56118
+Node: Top904
+Node: Command Line Editing1426
+Node: Introduction and Notation2080
+Node: Readline Interaction3705
+Node: Readline Bare Essentials4898
+Node: Readline Movement Commands6683
+Node: Readline Killing Commands7645
+Node: Readline Arguments9565
+Node: Searching10611
+Node: Readline Init File12765
+Node: Readline Init File Syntax13920
+Node: Conditional Init Constructs33828
+Node: Sample Init File36355
+Node: Bindable Readline Commands39474
+Node: Commands For Moving40530
+Node: Commands For History41392
+Node: Commands For Text45652
+Node: Commands For Killing49096
+Node: Numeric Arguments51264
+Node: Commands For Completion52405
+Node: Keyboard Macros54375
+Node: Miscellaneous Commands55064
+Node: Readline vi Mode58916
+Node: GNU Free Documentation License59830

End Tag Table
diff --git a/doc/rluserman.pdf b/doc/rluserman.pdf
index 48f73ff..0df0c8f 100644
--- a/doc/rluserman.pdf
+++ b/doc/rluserman.pdf
Binary files differ
diff --git a/doc/rluserman.ps b/doc/rluserman.ps
index 4ce4517..1290809 100644
--- a/doc/rluserman.ps
+++ b/doc/rluserman.ps
@@ -1,8 +1,8 @@
%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.991 Copyright 2011 Radical Eye Software
+%%Creator: dvips(k) 5.996 Copyright 2016 Radical Eye Software
%%Title: rluserman.dvi
-%%CreationDate: Tue Feb 11 16:57:26 2014
-%%Pages: 32
+%%CreationDate: Wed Sep 7 17:16:25 2016
+%%Pages: 34
%%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 2014.02.11:1657
+%DVIPSSource: TeX output 2016.09.07:1716
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -98,7 +98,6 @@ FontDirectory/CMSLTT10 known{/CMSLTT10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMSLTT10 def
/FontBBox {-20 -233 617 696 }readonly def
-/UniqueID 5000800 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -538,7 +537,6 @@ FontDirectory/CMTT9 known{/CMTT9 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMTT9 def
/FontBBox {-6 -233 542 698 }readonly def
-/UniqueID 5000831 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -1028,7 +1026,6 @@ FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMR10 def
/FontBBox {-40 -250 1009 750 }readonly def
-/UniqueID 5000793 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -1874,7 +1871,6 @@ FontDirectory/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMBX12 def
/FontBBox {-53 -251 1139 750 }readonly def
-/UniqueID 5000769 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -2465,7 +2461,6 @@ FontDirectory/CMSL10 known{/CMSL10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMSL10 def
/FontBBox {-62 -250 1123 750 }readonly def
-/UniqueID 5000798 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -2521,6 +2516,7 @@ dup 117 /u put
dup 119 /w put
dup 120 /x put
dup 121 /y put
+dup 122 /z put
readonly def
currentdict end
currentfile eexec
@@ -2708,294 +2704,298 @@ B240D1888CB89FBB748FD10B214773D466A44AA2AF44371CA8B9A4450DA76EDC
0167B4015A270B9983B89EFFA023A3DFFDE181B90C51D70557B0844362B0652A
6345C6EC83DFEFE099455232455943718297254186940D6305C96EE2B9E3E7C9
A622D25E0471AC31A8ED3AF8897BD19E322CFC3BD3860D8A0634081D9AF53A9D
-84F4ED39D8127CBCAF9AD48E9CBD10A67A2CD0CF93D61A5D75A6CE175F267274
-518107BE0ED6EEC098B1DE979EEDCAE669A52158C3CD36EE89D80ADC4F907F1F
-37B37B4F60A8EAB65D657DFEDD87CBA6F4A23318443ED93027964BC327B5D1AE
-2719395124A77EBB2410A97BAAF0B812498AE2C9B18C7002F7615017B2672079
-1E990697B148E31DA869A76DAE831C1EDB349280DC2160C833DB3BA5C5ACA1CF
-CAB1DF362D0026E6AF6D29FC09D862DCDB1BA4B69E0914A7991019208F6736F2
-0ED0AD5EB87DB341A65594255B7B73B9868EBBA57E019B49D6493CED5BE58691
-277AE58E62CA726946CDE196ABD2050D0F7617AF39781684E43FB203E7BDD2E4
-149F8DDCFC9BCDF09448C47FDF587388578AB9802528425BA2BC5F4AAAABE816
-6F0E1839C0D53B5A71BFBB591ADB521BD4619A927C7C2439B577568F0D82B68E
-6C1E341EECEC3EF7EC2DD576911172EB9AA85E4C66E37308CD8960E8D89AADF0
-E5260E443B822A47B5069F752748F8CD0AA360AAD6E65F1488818636096CB526
-9021C22375246E150218C84D032D6214AC83F4183DCA78C67FFD7FB64691FE35
-0243DD0762127C3EAC0F9993418B73756D14BBF8991171DD5E558749242C4951
-9D9BE86C662A5644BA7DD201BFD97E1C8328469226CDB427FC74ED8B7191FB8C
-A297F9F21F89669FCAE16C425C6B97A3C002C7B1D8ACBDD276A6A49126F674EF
-9A66195A8C4078851F1B2A94ADC04CF74FDD53F695FD9A67EF434CE57110373F
-B22B1B2CC2A0BF17F9FB12DD143A32FF6F4F6287636FE1215AC6020D563EECB8
-9129A0AFC39BF075EC71E49D71B2F47109088C973E0B8917DC453CC9D61FC8B2
-861CB6D8A3C680CF7C6220F5C8532D80769EA928E4DC747018D7F94285B2965E
-76EC3EEF7FD75E6D8DD03DDB4E09880CA3BDBDA99E70BE806805D0DFD22FF020
-E7F192F968FF0C36DF271463CABCA0A9B5EDA91B4B06C1A73D186B1B594369E9
-7E015363219BE2DA0AE8E3E08115899D367A5EDD5AE097E79D9645BC849096F7
-FE0868AD5FEDAB9A81C00DB528E699A2FB2CB329FC68E740984B0C3F1D228A95
-9AB66F292326D60127722373BB4A9FA9356E092D462A4EE944AFD1CF700F7870
-8CB2A5532772E04039427165FAE1DDA583F9C852BC199A62297B04ACB45A0980
-C91935E27A67D66630F85923428359B2979EE364DFFF05A5CBAD417C4A1DE05B
-64E3A7D83E7423630B006001EBDF78C4725A9379DA084194C5BEAE8CEBC14619
-57D71D7AD1980899523337EDA1BA949A447B9EBC0537BED02DC638BE8C266C6A
-50C7E306A8F31F94F7C53DE72EBE9CB6BFAE296F15743A97187ADD3E3B1643D0
-484D85DE8C9B8C841B5F5F11E9D52FAAE7ACCB3A4B107D0828F4DA6A2C223DF3
-2FDA8F781AD806FDC412D2D2627C961A3483704A9FF0C2681B0BB17FCFD0B2A0
-BE4DC3D3C4B13E8239C369C586E7F7EABA699FF81E3D9B8F8E26F5B01BF4785C
-FCA7954B37FC7C6834EFAC3FA714F11E8E32511F945E117220ECF50F04DA38FA
-434F945FB07067D5215061D0456415C3A5B61D079F506919AAF44B84A2264538
-F37E3B1DA9E8EE35BE937B19354B94AB63E4D37B9AAEFD6036D83FB7ECC36E34
-3F02DC31372231452FFFCD772269CCB783DB8E06B5C5A094CD9422AE9AA4A6B2
-7E69CC663FEB5247FE9AEE2A56F86D8AB28A3157DFAE1F927A19FA11D4C09FA5
-515B4C75A9C71F3DD607D292912F2291AB2A49263F1328F0784B8E65A4F8A8C1
-D5037989CBA8717BF0DE8567F2813DF72673041379A4C5BD74623B19E6AB7E3B
-A41EB7AD905120A5332E0F6ADA1E252E5C85EC79FF31EFC18D668CC80BB5C1E6
-4CD2973CF6BE85E151C0E48E84EE1A0BE7B5DBB6D9C9B63B9923C351A5CEFF69
-9A52B4797D345560CF865040444913A2E5F8F26F7A6C75F7DC3D72A4A873523A
-FD0F8FFC705D895B3E7BA879011C3B09A9EE88556861F8BE9834E82D5AB844E8
-9701AF0B46B19B594ACD6F5ADFEB997BF4F16621221901B7E1E672867AC9ED16
-C00BB166E84B9A81B3E7F330D34FCAAF1EFE1DFE3E40709AE2CDC28E3FE52ECB
-8899EDE8ACCF05EB29834F8E2C28F87598568BE250241516F8E92D3CD33B9C80
-31F355E315D6B5D86C9D8B535E9F2E2092DFFF39687CE11F32B9D7BB1AE71A13
-C47A2176094AF078F49D1E9CC798B759E5E4E0B96051977A747B38F786D7D512
-4929193826469DCFA0EBD9990773780F26A0E5392BBA495D5E71E68378D41184
-ACC705CDD839B67BC5D3F5EE8EE3293CF4D0B09BE8E985AC2BB19EDFC1328A5E
-3C19D2E33176989ED86098641F1B0D5D01BABC235A09AE8F8111E288CAAD3683
-2BB25487385C4C29E9FB829291296056C4DC7DCA779FC799F06682961A968749
-5DD1A86FA69E04C6BE9ABB3B6FB0FE49DBA05FF2C0107F72E761B066E1681F90
-FD82D0BF8C2F6175B5E75B7ECDE48AB32DC5BC6FD4E335A151D5548CB2834A2F
-E33A9E00328A4120360D91021E025281AC62478A5BA411EDB8CCF015758CAAF9
-0FC69B5DAD6FB9737480476844C7F8B624016552413E76057A9CD3D2591C56CF
-A70DD3209A0BE5302E03CB96E218B9659004D22E7DD05E3637C5830E63381A15
-DA29461514AEED7BD1383725052B5B062DAE3A480D8A5A448EEFB93924130C68
-AFCDE429B1E8A10623F3E67C66545C9AF2C31FEC84AE964033B0EB9ACBC60E04
-B7F228A685F0B466B06934AC0599895426D26E384CFA7F4F32305857F4C36247
-CC592FCA44AA1D091207D57C7B0A00B5608FC7082820035FDFA9BEB0BD0FD03B
-548BC380C5AC95F6B6204CD64441711B1CC8A187C7BAB09E45BC0DFF84E02288
-F2B799A30A0004A9F54125213131B4A2BB7A1AC8C6EA788998917029443A3771
-209CCA27B4B2A328201828E03390AE656222CE2476398CE9A8B38079A124065C
-BFCB8A1D5C5DD43ED28857B6C6345B8D9B81AB948BA6E0F236EFBC386215F4AD
-DBEA92303ABEC5D9551A848C09C97C46778F03F831B1C60721CD0FFF0B2D1C28
-890B5338A19926A5654D7C5D661A998E6EACDEC8B9248D650767E9802877EB31
-8D4E9D7BC290A43DB053F2452AE78AC296138719B432F99573315C190BFAB12D
-E3FFEFE91E20643C2FD6057CD61F65AE2611B62539CA73DFD601EB411C53CCB8
-7FBA0B4D77E46249B445341FC9CE4ECDC079EBD1671A0D2BC018172F46F046F6
-9137EED70FEE7A29D49152E2964F7FD8A24AE8D52D40C26A61D90C5195AEC4A9
-DA381536466509781766F21B2D52EE19877C9A9E54479128A97C60CAEF2C432B
-722282F589CCB5E480BF6A480342E3C095980BBDD863A135DF4827EFE3A17A3D
-2877614C580A0A41AF0F3A67E1E6099C6DA1A42C16877AB084155AA3A2E03318
-F596DCA94225621F1C1E73BDB948A06B17FFB8F698F6777029E2FFCCD81B518E
-69E106041AA0BDDFE910437E6F310573E2D42BE6DD1E62EC1760DDC1E2AA4E3A
-8347B13206F20F7FAD14D12B349A9E9C30503271596A48B7F974C83CBAF4486C
-8945F703387D97016D0F40E3A6624B74A96634607A7DD53214A8DD89FB51A763
-93422516DB7C4C2E944CAA0A5ABB1ACEC9AAF1C8CC732AD293A63D03FA2D09FE
-FECE20CE80D64B76A6CB8FC203C4168C18EBD163162B7D16F15B5617BA4CA837
-253A6183E37940429472BE6A252F3D24A4C0699DDA810A54BF4EF2AF1F05ED10
-ABA4DF51BF0EFB5747D1AA747B84934E1BAD5775B50403046241C706AF831C23
-86A20C96C5720D9941415C038FBC668D2EA0527060DB5E12BFA9E0BCC4499BEF
-78DAE8D352358111B7D26EEB52E86FFC8E0456BA2F6B33C43CD1E7709D087991
-F13B71F527D4804568118B3DB326396278C1F53C0484EDB6D5CA9A38C227F6AA
-BD0FDDA8073EE53ACD4E7EAA9BDE72236B0E58DE510AE4AEAC2313B54FC6E199
-5CC699FA12C8CC1F126608B82E228482344A2D6323F643BB3B53E53238883F00
-0358F81203C5661B24A5569BF6E498EB8FA10018CC4A5CA56CE38C681DF5FD7A
-957C416EE99BD7DDED32B0A0282A7C7AB54367A1D362495C78AE9723C1E66CC6
-777002EE0E290143EF572AD53F477617ADD4EE69D849DF67630044570624C18A
-D0FC24EBD36EF26F0C90167BE5425BEBFCFD0709BB1A1B92CD7B21190E78AA73
-DD79BC55E77BE76B83E304EC7843609381D66A24588B2DA34F26F082E8AD12C1
-8FC611DC96A30F33A9D2825CE04C46CDE63CB084A04C6ECF052871A644DFF238
-6F73702470B7B252EB91EE2FC9DC8F521E3CBC492398EF00F7958EC9273FD9C6
-E0AFD3A8A6A44231F14D5E6C2D7D573F0E8C4A4DAD1D32CC0E35B857F1A12A7F
-F5D2E57F05C53D6F36638581249F33B5383C21031B3FC3C975F95326C60084C6
-01DA86BB781A9DB96D583A16D146AACFFAE34F5C0A97E5EE842153E5BF21CF8D
-E54E134DB7942A1724C1D0BF15EC0570DAE8D96595394A15B93E4111B8EEC96F
-9BA1022DA26B26AAB58E8216185806A302CCF86997363831A69FA2AF27DEBA00
-C8E35F6AFFAC00BD24FEFCC672EA6B042BAC6B1B6EE09F2F2650527AF8C30E62
-1020A29C764B561C74A6CC483D8968102962DC2ABC515487BAE7D3E46CC74415
-D7C24C3605C710E9859456EE0F9932BD5DCDBB7B60D21F0179C61CA5807B0BD7
-994943C1436CF2C8F0DF2C07A5ACF3C8CCBEDEEAC3E2467061A29752BDAE7F58
-7C6B0BF363E8F71CF825878A789DEF0EA91A8DC251D5DC912166F4370DF6E9CD
-E15A81BDBE2334563C17945BD691B1162E2F0DC7A0C14216E2CFEB34D4D74D94
-6B88493A16E5CBF842F6F1E5367C19E0EEB59BB4EB57B7A366FEB7B1DBB23E87
-F670885CA539D6F89910094CBED95EE2928BB2D4323688AD97E4CDB31CEEBB12
-99171E652AB5DA554CAA8B00AEFB68012C31F3A7FCE54793095721CE7A0147C0
-FD1FB417A2E22708292BF2EC9D019F18E79A22EFF4523AD070B108559E5FFAC6
-D01480F85B25A482E2464A2457946654DB1580B28DC0301E7E816EF8698EE258
-9E9643C98B6D127E8FC8007F65CCCC7E6352A31C65D47288A9D52315B13AC7DD
-FEDA7CFB858BC79B9159DD926DED61EB7DAD964C6A2919B29563D7B1E650F2BE
-1AA01284E9E541FA9F5A0B4845DDCCD38A78E4AE70A53974DF507E57A15A9C99
-83CF1EBC170A91F85945FEBEDF2642001DB6E41EE6B3AE4A1A353A62FC70562E
-4E6E293FF671A25279930E1DB7897860271FFB50AEDF729CA23538B241E76302
-1953355EF7901ECAB00C2A087EAF92E23BCDF88E0EBAA8D1FDE1049F878F705F
-938B86B0415E7A3A52F8A98C747CB5BED198E7883535140788E7718E9448F490
-5DD5D5F850AA909B26B742985E29F416A994DF15D85F46F3B1F6DB6142CB08CA
-8068FBEF6C3E1BC787FB1F6F2BD7115732034F1D53AE8926A184114CDEF3554B
-B86F882F9207ED34F28D0736CAF1C042A539F2C9DC401BA31AEBAE3514331635
-C9B610E1893CE5AA5BC47722D4516B921D47B379BC009088A47C9A7EC7587B38
-4D11C7BF489298DC0D3860FC965E42A1757BD66336E737C6C102C0D9FA38483B
-3DD4C5C46D9A898A38FB26C656264BAF0A4E2950604C0B99085EB379BAFB5CA6
-8D261183220C536135CE78D6B38ED0CDF0EBA9DAC6672F1787C2F00A79E694D9
-B2E395090338DE0B4293C38A8EF7BA0B1DE255222D9427F5C3FBC0FDD47797CD
-156458D1A096E244FFFEB0616387ACB1DFDDBD9645E03DCA774E3D400C2104F1
-CAF3BC68E0C5F62BDA81A9ABB76EDE006FC163B5FBD7692B9C0282F7290246F7
-E9E8C45D53942061DD9F193C05075088389E1C67AD220D48C98C351209AD3196
-B05FF25D2954DC9FC4BB31C8DD738D930C509B7F508E9FF533041A847F34FA2B
-01FCDDF8FCFE3E5CF23C7AB317EA64CF410336B52BFE256BA60FF45C44FFB46A
-93CEE3E86F52943BF2960E4F52CBB94407F8B3E0A2107963730497EBE8FE5B0D
-82C2A821F2BBA66BC87696FD42107B0C0325C843183586BD218C83AA5C430FF8
-D128FE72E306E97E14E8C55D1892F42F4827D140D7A9C384AA9856AB0B45AD18
-93B5ADBE8FF79E6253484DFB86E612F11AD630C51081094B9AFFB0206A7F19FE
-4D87FC9C35A82581140E78390495DDA00850F39701D9EE2364E845669C834CE1
-4D4D137CA4C0F253CCDC5398F794F42C44C085EC8C8BC48C0C791E64D09EFD33
-BDD35753513A61989A690DC6E0A19B83B0FD74F7AFE9BF26B0A51293BBA7C7C0
-9989E41C3277C36DE6BD65DA2BF7990C9599BAD5459C2AF8350EF2EB25A41FE9
-5F486DDFD2041EDD44B5DCE518F40021F501027F030ECA4BF2F94F4B4BE4547A
-FB3C43474BB34C5F717D6CEC6A03523AD585418943B99DC0AA3021D4C37A227B
-C0469D210FBB5D6F68367BF0BCB18480881182863DA0BF46BB13C3B2C4559323
-F52C684A25BE57998E5A4C17EBF390D8CCCAD89274E51D621C2E0B050F1BA34F
-561749074CDD7F0476A9FCA21C71490FD367749A3411A5EA69F1415B2F694AC7
-BAD49471B35C349D71601FB5A718B27E8D60B951B48482F07B4967BAE49CC1B3
-3482B03ACCADD4878928D154E13D04E97B7638ADB35910DD2F8C03268C54C501
-9C6F5E435304D5D2AD6BF1066424BFC3EE5F1622F3CB008BEE546DCA7F127246
-1317FA4988C8BB56B0A653CBCA90E1E673338B8AC72283B9C05CD3745A7BF6C6
-7F3C924D5A9CE8FED15562298BD84E40D71C1F3E1698B5EF6371E0E73BF67D14
-4CBCC7401545FC2D8F3665A2DFAF96CA84AF0E2C873D00CF9C3B25C736BCFE9E
-DC0691D30078B22F862B6570F4F05312DFA07DCEF662A5F07A335050696FB528
-223A8CE16D37B9FBC01409650E70010C887DBF8659971FE8AE80BCF7EE8DE253
-9E152307BA29CBDAEEBF41B6FD7179AADD8E3A6E1F280E4A4D706965FE0E17E2
-3877BDC89E1D9390880FD8AC68B84389848B3D9EB1E5F4C890777E548988C697
-16AEDC4DE63869782A3A7719FB3DC875C1F1ABC6AC83201A53FD65B887F286AF
-245A7A3ABDAA76062A22E14B6B6F47FB0A56D45DCE7F02031CF9F6C2EC77621F
-444FA6598A43F75C39CE8E9B1C980DF3F8E5A7DA2F71AC5177E9FF55D5B80633
-9131318664FE513722357D5916F3A71E7784D8538998FAF4591A561926C73FEA
-73D3DAC4F3436A16F1555D753993C4CE9CDFD5766AFEDCD71A2682274F838005
-E1714D23510FF5021804A65D4250F45FEC02C5C77BB96CDA86BA8EA56BC6099D
-7D78115787A7D23F0D56CB6E37FC20BD2DAAD00544065DB6A197B6DDD7694935
-F55BD6D1BF653FAB2102F84EBE3DE4BF408C673896236B14C3019AF3378C31F0
-6EC4AC9ECE82BEBC325B3BD4CE9DE1FED067E7965C7EC6CC59D2535980658F34
-663E319CC48F9449E119C501092C69923CAA551283C97A9610E408F779CF89E8
-521A5B4F737764310D2D706D1E33B047DE7F9EF3249BD867AD4EBAD6D141BFE3
-3C3FC0BA5AC8213E01BC138B5801922F130B947C5055D2F3546C1264FA921956
-2767BA09C4EB296EF96E78A4764FEC6E9D87A93681872452EDAD3AFB61F90688
-54CC4030ECEDE68844E0D8C9D08F1FC2463F538CD9F59B7D1DAA6A5BED3AC138
-FECFC60FA711A080905E1440F9819E6BDFE96DC7A27F5BCCB22AA35F5CF45C29
-B84C97AD2B49490BB98CE34C1F9ACF861669F7ED2FC1C2137CFBD52882B8E660
-81DBDCDB4D17BECA1F14862EE61D3AE3F772B13F0383F2EFCE3B51C10CA20FDD
-3948FA5EC227CE64D4A13383ADEF0FD33FF33CC4DC07C5816BED85900433D0BA
-CB69F2DC68B0F832848D06E8FC48AF9B06A59D0BF9F5D07C3F73A5B0E3A6D4DF
-77A74E5E74AAE5EDA6FD8D5481CBFEAA2DD3C6570193C88B951B8BD7A989C8ED
-DE73A95D65BC97AB55A5D4250C924F6F7A7B94084C24F72F841AA46FE7C3F5C5
-A0D8A504399DFF335EEF06AE1C578588A622ED5EA23C179527B69D3CC9B6EC3E
-3AB568281F1ECB624893A8D42392FADCB06FAB2A8676E805CF08C9D8CC74312B
-53A1108A7BA2527DCA5080D9B2A4403A9F33F389F634EF2A4D50F9A39AEE4FAB
-6E77555EE4241B578BC01B8AD5ECDE9C3FEFF4F46FB16358270A3C55D63B4022
-1320C4EDA034AB6F79F125CD10BF0A57D25005F8445270C5F32FD15A00014373
-B5342B79922DF741724E8D187C5281B57A64E93AE027AA1E6A6E30FEDD89408A
-57019C2DF2789033534F7CB270C7A382E3D9EE4E5996604468E450F9E97C50B9
-B2E02EB6EFFC1851413804F972E2AA795213298A23CD044B69D3AAA6C416A49E
-4933D241493C212FE7314C149225B6EE11D7B4458168D4DA260B4F0E043FDAB3
-CED87E3C10620BCBE7CF2E7466B1BD9F6E620FBFB631DFB4FEEF7636A17AE5E8
-0DC5BC254BAC588F0F83FC132C9E5F876F26705097B4AD1D05A4F52929D1434E
-E123A49753CA9196D1C08322B54DFE3202C7A1C320ADC10A3C140CBD9B5A9DB1
-FB270BF61F5DB27A8AE2D43E271ADD0AFA7BFA1CDE4FFA2E63E61DDC905A064D
-79CF980FBEC055C345C62487B6107ABC365B2860C01AC82420D190A66237D262
-A8DDD039461C88391A27FDCB26C04EB8D6861CA2223BBAF4883A27A7F72D03E2
-4624D15B090344E6E5627D613B05465C632051701FC29CC4B4E50B33847773DA
-8E66DCAB76D3DDE136C3694E42EEB74FF64A65E314EA6149BD3426A13ED87418
-663F7B44A8D1B0BBCC331D5225BF2E59E5DC5E4A4E2667266AE1185C4466EE03
-B64B154E4FD72E1A70A95C03F619E5E847EA810FED21A0CF7FB15009695EA943
-BD3118E50E9CDE7A8E69102F7A4FF2AE3BF3E0ADB0514549A09EF7E53CEC8B9F
-5CFED55323713C580F91A2A5E16114979BF44C4B508C60B175A78DAB998A637C
-A61D43286A02213B73067F2EA38F822F7420C6BAFA5CB3DF83CB7ED5E23AB4F5
-57ED10B7B46E53676AC7146403360B81C020FFD274948F323DB81483808B0A1C
-D48B111C340E14A15EAC6C4DA4AEE1D046E2E6FBF879C195266E7A90FE0ABBEE
-085F31CE8D1BCC06CC8D6F5398501B736BEC24C4642467F6AD53F817B737982B
-CC25798BA05AB460B49064EF106A15DAF3B2ED51717FD3EC49C5D79513FD5F14
-D71A6842F269DC7365757F92682B03D6973214E0BB1D67408FFCF8B27AEAFB28
-263563EAEF546624CB9059E9D960D6FE59E51128FDB6BF2370125D1ECE8D54C2
-55F308A4AAF1A4B4990641483D57E10061C93B8B53C7E178B4F9A270901229C3
-50CEF638CF8361D6FDB5ABD23CD05C101DF31A39DB88172DD7478198D55E8532
-FE3C7937EEF35EE76DBE1996AC52E11D0EE3DA532DCFA4A5DD6B5B0BB8CB1A9C
-605FAA474FCAD651A760311C125BEE60780C26D9753368D3D9F8164B64662081
-84E596C83637ED5E725365F007E6AC708E2FEE2810FECB5DDE0772130F6B1BD3
-9BF5819D36917EDFA4E8DFE9CE6A8FC67BB20291F5E04CB4CB8511F278326D68
-574644D573D0D157FC70614F0E1FF1713F2894D7D683848F01C98AA570C4CD83
-AA41E43F9DD9751234599CA7946A2B15B769348D2C5F5729DCF5CD6E5943E9B7
-605D327DB48842F0FE5F10F2367AF50D52A65CD81336DD9E64961A550FCFBBD8
-01DB2DDF5420C060C887B0D6BC1C3964AA08D283A2B28969D5DB67EF25143522
-9441EE91A787C0370AF1C787FE033735E54656C24C8699E6DFA65592E78C8A9E
-8400FB03F34730B46AD31517884FEC16123869EA135C1F3BE5B087782E8EA356
-785926D5CD3DC14552372D1C8348A0F4DB60789647311A16C7CD803111B990EC
-FF4389AAE753C4EBB688A9B47AD5A34CC2EFD0754A7F22127C67398903DCC82D
-91663A2EEDC68C1F935664765A7E22A6A89443C05FC41CA2E4650256B3FAB63A
-24D02AFE2CAC1A99D63EC38D0AC684EE48225C49B79184D88AC2E54F829319B3
-323F302FDBF47F431061395F1669CC593C7BC8B24ACBFF6DDF9F0148151B12B4
-809D8586F4C2B37BD871B3C83370C310919D8ED713DA9847580A84390CDFA0F7
-3B51BA7E43D5FFB974C9B09C2C5876A13015678C5F0BEA3B39B717D807604F15
-DBB52E1FEADF5884C136CC5C311751FBD6B09026B94D7894A9FFEADDDF097E2F
-D0073026F57457D6BAAD83AF5AF808AB76A300A755C6B672A6537510968BB08D
-4D10FE6E5AB246378DB361276DD60CA40F076F3A843D7999F92D544DA683001F
-8DFE0D622242353E64B944230DD26046D752C2CAF15D3A74858C65E21136F0B5
-0B7D088EA8EBCBF80B61FF104D8785E8C1A087C12320896EBC0C67E8B9712A44
-2B176F03EF12652AC35E975BB17FF9BE61C2AFFAB4E20BC0A9DD1D188BFDDB50
-7B19507C237E75DC3B984F1E901A03FAE2B39BCD2EB8670B1B0395BECD0F4CB9
-57C60FB6628DAC59D8BFDEE0CB13D42BB07D6048B26F66FE23F4EB21C50F71F7
-E43DF2D75A3A4CF66140C80BC5E90F29A865FD4FEFB1F83CA1C3086EC977492B
-4D989B20469185C1BE7B0E0171D80707208D64CB9C849847E5F66B1AC998F387
-CC6290DFF14214056EEF9D1D01CE27F9F3E3DF9C076C751C88EB75345F01714B
-72416BDDC769AAC00AA63F581821C655943F21FEA1E0AF3BC738DC1734D86AAE
-CFF12F5795F9CA55EDB98BFFEA96566A7FB3ED2A012B4E6501CDCB96FC6B3A21
-B90237B17DE670136C411D329BCEFA6AF3E121C4A6B132D6096F4C9EF3F91B07
-1867D351D78E610B7CFFC6F66B0AD78D909667B07397CD6CFB7AC8B1D1E5B60E
-DAA2079DB71D295ED74443B7D0F0771B7BC2DB068E80219633E871354067BCB6
-D4ED193ABDC40E27B3B824A70DA042C6F835910B880A18D879B003C06F62E9E8
-CABB22B768E9401A389D98ECE5B2D4079D106D36E8CF8CB9A6C2300A8642F478
-C2C6A74DABC1AEAABAF8C0F48368FA8A1B2F16EE1CA02DDF0ADBFFF8DD35079A
-FEA6620856E15785D15E48F6F69DD50B61CD25EA7B7254D520EFCBFDBF313E84
-8BE5B09CD20F2387C61D89A2A7E60AD544C7C59E1B772B9D35B3DAAB3BCB7EDF
-12D82FADE756AAE4288966134524F68702E0AAD2A61F08677EB96C95D2A35D7E
-F06DFF454FB5A11E1027E7170DF4E251F155EE76EC403B50CA3920B4539F5A31
-BE3915DD802C1789FD665C1D5A0C5161B0D1476AA168360E35E5005A69C721F0
-226DF8F0B79B1B0B2C048A30A06A0B85BEC10F536821FB91CE1590D774A64232
-95D12D3FC681819619A206203D333D968C6299F06FA4E1380B9AF3DA2D284B75
-BF7565D70568ADD0A0301A469D59E5DF6045C056DD3C08BEE977C43702D7EC40
-2AF6E0A2D91DDCA9B7D92556523E9DC08E80BEDA5BD02841F15FA75973A34E17
-3D623FB195E781871F0828EF8AC184779B5E36A52D018B7CBF4A47F5DD8C0D82
-456A684800A8A6B1E323AB2ED161D2AA81F06348016062EF7A3D7C463EDB23EE
-C191191EEB0706C4EE51CB9AA3036B5037839AADC2A4DEAC772BC5D3191B22F6
-9F3184AA395FF6E1242264FB781DF81005465660A14B20DCD62C5DA8AB18AE74
-68EB116FA0B1E2004B95FAAF4FFCBC89CA1938EDEA1E8226C82BAAA987B1F08D
-DA63799218141E265D5D607CF07E8D147384F6A802C4A458776466C597BD7566
-20AC0E6CEF3FC646DEA2C080C31285C4DB729A25482C036844612B3FDAD18F82
-679F6CBCBE648F07D65F0087FAB090E6A0BDE29907BBFE861DBD3C99E7F82F0A
-EDC8BE776EFB3318E3C565478D98531E5603215625B5575D9188EAEE95AF90CF
-D9ED5822739415DBFAAB82CFFAB04807DB80DAB5C965D71F408915D908EC204C
-B24485B32E2200DD39A71DB6BC3E1F123F3ECD677157FD957692F14FD2C43363
-817C8370907AD6667CCBD9D2F4764D33F7CD1FCCBDEE4560F27179B78472B5BC
-A50282DF88B0CB7BFC80E1F8F8F49085933D670EE8B1B451EAEBE4F0DF5744A5
-E9A8A4038E3D438262F1E7A60EDBC3DCDEE3DD0D2C8D1A36D68C5E1868F9C976
-A217D7849025ED43E219AC16C8F8D23A1D6AC83B1630CC357AE219BE6465B7C7
-81B93A80195AC14673691AAD119111BA51F1EF28F737D807E2CB59BD1D1E0192
-1F28C8EDC198A8DA3119ED57E1F2B7A6F967F2C7BDE230A96D95E040BC58E37F
-4DA3C3444FBB1D6D4D37AD7B1D0B16448E900AD19CF0D41A3B476FD0C16D8093
-5E716D11C46DAD7654BCC3B41760D997BC6FDC0C617B462717892C0221AE8531
-98E2DB2676D925AE29A432B867B2F5F036D568FF241498326422F7B06D153D49
-0178219AE56D8DDB2215D822B788B445B9DC1A7F09768BEEB28E91B052F17B29
-3DE2F1349762766B65584064E2BA0E4336A493A9413CD4E0C1CF342CF6A53D23
-663E4CD6A42DE20B12CF0127382F5A7E668801E2C7CAB3437D75597696158BD6
-BB56D9847F37A9B0012E0CC7D8B7186BBAAC86F195566F47C3351243139F95E9
-C0C5DF236D3472254C85A89A05C09F17EF888E319E0F05C01840149A7C8567F7
-8D916203E835E9FE94D99F74992B042F5E3C10C8A7913106DC4572D46EA15DFF
-A0FA5E8CD87DE13957648B801F7A88A22344D54F8C433F801DBF7B15BA188297
-5C774C499DD1B28E08472B699FE8FFD2F04BEA197B7D00D1A477376F080F92BA
-B722FA4CEF906D122A696C0434571DA152FA241C4C95B5990583FF7E9C0A3FFF
-A1B466AB96F189AB100B209159306A8F7373E3D101C057EA3047129176C11420
-865B1B5B80EE64DBD1F223E80760339907C74639ABFB8719AEF71A192E3B666B
-0249A9AB24A25E9290CF115268DDF13A7E1FA35185F3AC717C1984D0AF26630B
-3A0BE89300012880916CBD34922CB8871C5D1E11C20FCD6EEB1198288F2DC794
-3B9EBD1BE4BDDBC9CFDCFEE715A60A94EA71F69A888A859738FF175E3048054D
-E2AFAB12130E892256246D509EC2F0831F722DA32633ACE9F40190C0817D326D
-B46B8D91ED0DDEF1D245B257BC06E5CF75ABCC23448008C77D2065AD6D09F5DA
-A4C1A314C4C877774EE039FB439CBE8F7421B3D7C2B85E2B4B7208058FA24CD2
-5ACB49DED05D20B6F4E6DC283379E93D1CFA152F2A4FB5
+84F4ED39D8127CBCAF9AD48E9CBD10A67A2CD0CF93D61A5CA71D73ADBC8C6C3D
+D9E388D86A4BAC64F0C72D81B5302EF6EA042B155D45427E2A28B75CD98478F8
+36F926EC6BCD9641D2BB87BFC81AF6BEB934EA33028F1646E09AFBB80F49A382
+501E00C22F2FCC5DBEAE35F9210F3FA32BE3B16589B20A16C2E1CEC96613109F
+94F168C15C2F926C52162F50ABC9568CF2039792768461F6B5C9E87963E5A121
+F114D952CE508922D73520F1EC5B79AB4DD5C9F0F640069E650F9C0948FB240A
+B4FC01D353718C6FDA13E72505E89E3CB502C07987E9F8DE0CFD71C58010C076
+A5C92D28309E7FBC721658C721A15648A8500E035C03AA523C29B78392725A8F
+AAAF709E72C509210DB0737C7E4D08DC11618B3FD9D6DF89A1C3D902F0BC2764
+5549A49E9EBF0B31DA04E1DE6E2BD42F71B392E9A80F80407BB08213CF81DFAB
+9498D3F780548FEEE87F3A0493BE20D464E926A1827FA5EA99632EF0999B76A7
+32976C66FCA857FAEC97BB2573611F5B14455C432CB0EC061C76A65F52B819C2
+63DE11E4A0325F0AE07795688D96E18144BB94C568D0FDA013A018D2014DE062
+E8E0B7971B16EDC8397C06604287BF746143F33EB31D0DCF16D659CC02EC227D
+C175F343A99FD844371159A32794B7827533980D2D187D4257B9474F6506C41D
+6D835027661A7D3790F8C59FC2782DCDD735CB7ABB302F9C01F3FE2DD3ED41CA
+789FCC866ADEB5C67DA985D95673ADE94AC9764B2AD6EF47FD8D0A24A7511E9E
+00BA3BD9CC08700727E6C4B2FFDDBBB9D9649E1F3A258C06C5423CBDBA8B5F7E
+23691878C0298108BBC7E61B020ABB184C9D917EE339AC9DDA97611505EB9FE1
+DDA9333CB5685B9D4C292B4119B093FDDB3C1F32C00CC9949A3ECF95ED5417C9
+182AAA3158DE3BDF900B4700D6431E9A349737FB4234275151C14BB582C3488D
+803FBC397FA9D68114924786A8E4A0118281DA9919EB8BAA92B7BEDD432E37A3
+8312BDB187E55DA5C4B405DDDE855ADF7B406EFADCE82109FBAA2A39788EFD37
+64C8E7977C4C06D20628DE93183A0F62B88ECC3248AAC9A9EEE5E70217394308
+039C8A27591E2209E8C134E5D95BBD45440B92DBD5A4B905AF2922663BC14478
+6F7799DA30A6A0E944A54A6C148E0644097E10312504FE53D0C3CE16FC0EAA58
+4169280BF125B55FE858254DBD66C1FC8B15CB18526DFDF7BE18D91031239421
+9DFCB27BCEEA63A7E29506B1C1B3E8A432E70912B4FE6E4CF2D6031830C2A536
+6F87B16B4139B9D8E591DC489F49EA0673A6DB11991383F737AB8ACA9C2C433E
+6A855C1B0F134CFB8FD560670C896D2294219BF50D1690D8727BA48A63D599FE
+EE225D9220BA891B1DA4BE86C0F55361AF8E56CCFEC6024A8F18119A2A21F688
+A61FEFE80CF5107E1F84B1E3EC425C7E3CD57033086556777C6C103CB01D772A
+BAB3CBCA65859E76399BCB9F5969DF80E4FEE4F804A7E8B631FE7439CFED28BE
+3DBF3902EF41BF139623011012DF0B1909FE53FAA4CD9E8CD0E5582F5590073D
+BA2FBE6D848692B05EC3A5B43FFD7EB6AEA3FFCB5BE6664D4936258DBD84607A
+6C15A0BE197575B5CBC7C4ACB5EE8FDF125B01336E2516EB148111C863FAA96D
+43398B332FA3299DFAF393A5CDD5D566052A1F6FB1842065FDE28F1C6756E3AD
+FE087DF02E38732963FD78A75A307D33CC1A1C4E227B1C626EF538C30211F2E7
+2DA21239D7EB2B133298B19864B59E7ECA955E1FAB6F019E48802857BF73C179
+1FC71444FACBEF208D3545D6E5D538F5538D6A3B472C4F08824BFCD397595C45
+3BC9ADDE8DCFFE524AE8508659F514FB5FC7D77BC569424065880FD8C401D63A
+81F9232763B7453882CEF6CF90EA2A981B60BA420C0BE853C7B32107F46DC7A6
+B5DC2F23AEC929DFC0B383994E440F139CE756F4F61736863B616D392A168005
+6E935DACE037159F2A1C23100AECDF1E6A86231429A1A3642C654116477ABF49
+218559EE3C3393BD4457271427D791E9A8DED9AFBE9605E5613271ADE5A8235C
+47E9145F1B4B8184AE50F0979F110128C5BDA54A46CB32707B1DA7DFA0B74F31
+F3CE304DDF3ED459FF2601BEBF37D3B12011CE3203688663F39D3D0A022E755F
+7C6BA39C2EA012634F6392D1C68EBA82159143E5B92E4BDE0A9B277EA8FAB0AC
+BB099FF370DAAC82A0923BA2FEBFE2B8CFFE433FE70B5F6129FEC95A6870B8ED
+0F7A4225684E69538BF0D7CE8026517D05DEFE93877F73EC803BA467411DDC37
+ECC4622B3E0E15A168E0278D76950FE9C284CB566D8F9C22C80BFD665A9CF5BA
+7B9805679DFD50234F78CE49D7E8ED29D09D8A4D881AC1C5A4FB17DB4C32B06F
+D147A2003BC92295019390D74A7620FFAAA8CD4702A6418774B440F7736A4B74
+7DBEDE25B1D552D6DF0C278DC2AD4AE4BFF8CE835EB9F13C846DCE264D40BF5D
+EACEC137284DCB24BF6A4C4CEF98D5ED1822B7A693231CDCFE2EFB95F40801C6
+F2B4195E723544026E94ECD6B3C99F8B0975200FDC6F81841A3E14F546336E24
+3EC1AAE6C3E22A1515E429F6688B467820566463E3108FBB0F5806D8211F1D27
+FBFF7659316BD1148185C77A9363999D06D93CCFD86E7C5EC830913A1B316611
+B24678A78E7352C48C374BA974F60378F312EEB055AE523232D85EB43334CB19
+9EB5F69EA6FD7C7720DF0D56410E00EB238BC1DD9AED3747AACCAC094D7918C9
+0038F6E0B9EFC8A034E74FBDFBC112AF25DC3F0C2D5B885B80BC141EA4CC5B14
+ADD3956407BB74641659F3FF632CC67AF8816489C8D9F79C3924F621B4658D52
+1D298131DE98303DB87629DF82CA16A4428AC05BBA58D2AF843BE0203EF2984B
+9BDDCA03A54FC05F5C8BCCBAB5F5DAE63436F3AEFE2B09018E2E89FB043D5214
+431BCEC6F1C4E5476CA69B7A3FE7EA256624CB5ADBFF4A3D6FE386F872F54107
+9C17ADA22072B6AB3BCBDA76CE3FC3ABE9DC54C26B1C8DC50B26F5137C6331B7
+9548AB2C3616FFE6153DD86C36F8FAC8FF5C37F8EEBFD23E763B790C77BDA2A3
+AA2CE83EF647AB2EE373894C427843E4543E89959C8BD9DBEB27EEF19BF06859
+FFC94842AC3646106254351C2BFDA5411C97C1CA15F4943DAA6E76A182659028
+8397891FF6CB1CC566A20B9F9F5065D65A421B4D19C4A95B06A4CF9732DA78C3
+E6560B839C001970E891A85C84BA091F2553DD0CDDA866DA8A22C4D85EC5343A
+79F54B36FE2E697793420347FC81C079982D584674C0B53DF9B16AF4926A1463
+39495876642A862EE192AE0BDAC9B432E5CB88DA54DA8F2FDD73723DB183F6B2
+86F546E7C5D0318ABE81BD715FFD71DF611D5C38DC15CCC4A2AA93CE0B45665E
+C0CA6FEBBF51710392CB6C88A4648ABD5C71841F49294A32867A6B095F1DC048
+D9510610165C11E85471193C15C8906CE53F1AF0C6F4FC38FAD80C1CC0478F85
+94605E690DD8107ADE5285914D1391EBEF151B611FF691A6ADAA30BF0B96F204
+A84EE3A78AB9B6D0CDEEC78883CB62254D97D137C50E41D4647CCF9C94EC1BE9
+5B42A097EC252AF0213F30B5BFC8AB8AE7853A4F9651A912DBF286EAD5CC63D5
+8A14ADEDBA49E667E39C4BA9BFE4B50739B7AE378F59E770CD037C4017FADB71
+C207E70DC78A7B11A9EA70EDFC8A1F925E8D2979627FA3676BFAF441B3CF34FE
+4C62665C1D8BCD81E38BC6EBD06DD226324C074E84A2A60D47491D3B4E55B434
+71C72A2F021A81EFCB9D03C987A47AAAB5E15A7562BCDC63109E3FDAF1D909DE
+D9AF044A7E66B06C504A75BCFF16DF21E3C332CD82A5BE3B40A2F2AC9917D2CE
+BE6C6CA371855E59FAE01D5EF2B2685F9A02409AD54128F0042A50BD3D4EFEC1
+31372A2D75A40EA84FEB1ADD040075B2B697A96ECC051C73B21CC0EB83B33CB8
+7047E0C98245F46A9EE03F2A0B42C93D031307848ADA04AFF6591FBEAB5F9E84
+DAC2C8D2DD74CC284DD3EB0BB7C4E5F23922D159055ADB2655C63BF637175148
+C31BDC54A013F15A02085A9DA121C129AD041BBC7C671DABE6E10BF03130A373
+34BE05218E494856A3FB0D96BA175BF620DE541A95205A5039F9966FD32DD0FE
+169BA181B3A06F4BBEEE9AA7B233F70DDADF04EB41B93CF58DBF050E08ABAB47
+EE21D8204EE354C521ACDEE383614D564D9BB8EE2177E36831D57AA26F9A6E0B
+906092DD3AB73631346C0D0065178C1C34515AD1DCCA5A6C76094EB9ED2516E5
+46DEA262C32DFF65B8E2180D75A143B2F55A114C40D8A59DFC11A965D4CA70C6
+A064F7790967B718552CCB01765D2BB4DC510E90D10B6654D3E8E9B00847748E
+27F08F533E7A1ECAAE36882872F259125A2B46ED6E01905EA05D859C827C439F
+75143A8525F7C2A7A397B2E23E6638E4BD9DA5275682B1369BCD420D02A67BC9
+08050F5E06DBDD1E327C090067BFEBE134132AB1E9154C0275F219610FAF1260
+2F46B763F033BD9FA3AFD1A6BFE15140279730F725D2775EB46184EDD08AD2CF
+29623B5D295E24B33259438422698575CA2B2A6C5BF708B3338F341309CF4A62
+5D9F4B20BA741F9A9E0FDD13C93B59FB01FC6DCA0011FF63DA94EF606CCCB3C1
+4325C65A896548D3409CADC9307880E104E29B3F4B37231F10FCEC6990080B25
+E132C6728236CCC3E5FE8F3321AA7AFB57D2C4B71EF95D1D4018A9884EAC7157
+D826D5D7FE2839C972B57A452681682E788EFA4A1FD076F29194C7709B67A94F
+E9F2059C0029AF5CE1AC6159A6B555D00E3C554ADDE130C4A65778B2D01A03B0
+DC9458400AFEB75FEF9E180CDCE4B32A357E9CDBBF5BC6A1D086ED771601D6EB
+C71F80DFFD2324B1754787B58B493D9F4964CE424BF3F9917AB031560E3719FC
+19DEB610DF00DE8CED6DA01287AC961A024A4435AD16FE58CC5EFBAB0BE6279D
+816F646808F0B95D943442366E9C1B658382CB11FF898275F2201CAA1F0AECB2
+617D9C58B394851EE9226559D22C1B8B5585B5DAA8AE153FF04BEE43ED74EB56
+1A45F53B6C74D64FA0EA9236C00176889AC0E813B53FFA1C1FB091CCB789A9C7
+31838C4D9B98BF4623525A6E3ADD71E90AF0B536FD16907446C7D7B38BCAFB3B
+88C288DEC4466A0ADF73C04F8876134E5B5DA19762386214F88F1C8FD4B84617
+86575A10AD69A1DC1214AEAA0E55EC57632C41F6365D561211F5E2F0095C70F8
+42707CF23A1A5E90C9B99E03A6BCA7BBA0C9B204F2365A4570EB224749FC6E04
+D9DF87731573AB7D97B04DD51951247700326C54B81B64CCDE48B1E4805418C5
+990F3DFA35E5BEA7529BE2473FD026E15332938B2AB4F1EF69C1F2A70D861A27
+00CB9618CAA6D9A1FCB5861F58D1447EB9A7374E76BB98C9FAF11693A4D4E37B
+6AADA4BEF82485DA916A8D7D07557E3DCF9BD6A19169C7679B26A291225B8AA0
+4D9DACF88D1CA65F83275B91B679B63B5EAB051C927BF29F8E9FA0AE5B56429A
+CDD1CE35E7D5460EF05BE6447D14CA0A1C4863C5417A7E9C110EB07C3D194035
+0A09EC8E504E2B75B26DDB484DB9534C295C9007DDADB53BB6250551C34C4F58
+416B4E9F773B324EE6E1CDA1048F1342B6CF625EBF75D538EDF9D4C6D960DE99
+806024D4ECBE45A69003CC24211F007AD2B713D87EB926D99058F1B8A2E53835
+87BF135686AF641AB0BC1122C8C81E14687579C43FD8012E92529492175EE7EE
+34C4E0B792C751DE462B789F96FC6A013CF9D3AC63655CD2DECE38BB75B3E547
+F1D42820FBDC04FEE1EB362464695F58CB7C6334221FB660B46CD0F98222AD05
+CDCB50BBF41C0159F11747C7EF37F6ACFEEE7F24C5CE0B12D1B6AB35B1AF0310
+D41FB521926868E44D345D578D83B805AEF7BF209BC34A7F83CA5E109A146D4C
+012D25B8DDE2AD426A2A9907AA2C63F06357A3B8B37B2323067793825093CC45
+7A595BB54452B11B8ECE761708C8FBB73DAD3A0D75167F91CCEB009947EF868A
+C4807F7A3E735A4841D1841EA31FDA3B82301CD1126C33CBD1AC45F710C36EF8
+83AA4BFE530DA078F648804176E74FC948AE369E36A809847FE1A61C1D16BEC0
+ADA4CB7149AC5E3B3D8F5B1559ECBDF839CC9BFCDF1FD5542C8B9B381DD99BAC
+119ED65807DCFBD91B867B7C5E5096CDCEE2FF2CB195D70D521347B8A8116F41
+E5B98924F5CA2465633D482142C2E83552F38097D2519B56DA5F666A6C9E27D3
+195115D9F98BB0174BB91D4FE8183A1C95EEF2CA921585D15EFE268F87AC8431
+419F7D17580AC8D4D8371D70D397D8181B6368A5E1BF79FCE976107CBED4A610
+95563CEA9BA22D7C894443A5896FB4D31A87B9F2EA644AA6EB63907F48E8B6F5
+56C8D8DF5EA4E6AE2A6167DC4FA496FB24ECD9CACDF076B2467307DDAFA220D7
+226215F7E5B73F323A2A2B51336E92076011B084023C1B54ADCB2E126C46FE39
+F1AF5CCE1D85D668A955BFBF8953B6D3F3028A9BDAAF48FB203E0EC7798A04B7
+0CD6070D106873A3F86735A5B3AF8236CFF53C22CE451DF3F6C5D12CB99848C1
+60EF8551EFF8D71767B78180EA959234F20C1CDA398EEF9EA71DDCF4685E08F8
+FA7B4DDB72B6B1D07B77A0FCADB177AAE2D2D8760A8586F9CBD96739F338EA9B
+5ABB8C5E5CF035C7F6B7A839649913A0B41C43C3CB4A224DF41E181105B2B009
+72087CE176852E7F64A50C5BFE76ED67DE4ECDF164D2A9C80E0D2727283C29B7
+E9D09CE886EFF897940031BDD677D5C7CD437523F1873DD7B056D3A32CF731C7
+57604F91C71ED4F372B7770E1C64ACD097F82C7FE1D4519D2820622E1B8A8A1B
+BB55E0C2D344FD1E5FD466D2F71555EE704C2E2A4BF9EA55DD1384EA172B648F
+4909C291760E2524643EC90ACB5F39569B5E24F31A4AC3C59EA80217C2714DF2
+CB44104C78C87CAFB2A68C8A932B6A167ACB2C306C756A237ABECC98F045A64A
+3819E33D5CF306C79305D3FB32478A5427FF5697D64E627F1A8642D9EF3B0A7C
+5B924916DD79D8DFC4793A33E635184E99635D993A4E7BC77634EA1268C3C46B
+BA74E26F4A85134C75CF6C7FB5EC30A3E71A8AD0278E0DF9B0D05394DA240E20
+880D5B8D888D972CBF13CB5F6DCF4645741B0F7154657AEAAED76E2E9E2C3FF0
+0CDD1958B8B7A7E4E9A7598B66BA569B15417213805251663DA07FAA62C59B33
+71F200C55E2D451EC251460E91086C1DDE4D9E47DBDF449974F42D1D0E92ACAC
+EF5DE2CC7365C7F59DD0B2F20D38F80C6FBDE47E1F3C98A0C25DDB03BA643DC9
+3B72E52324034C0046E703713AC9525F7F2A44CF33862328BD7083353EEBD56D
+658A83900E5393EA8154F916DC15E43DA15AB7D9AF5B46DE78862D475C790578
+E80981B931AE8ECADDAD817B02B439DDA2FAD039B7566FE9A1870AAAE1A8F9DA
+0974971C236ADCE18BD79E419D5861F521B5CF47C2A52AF54399096ED71DF71E
+2B35BD42980551BA7DD5188ADF2402C69B5495A65A0E769794A996BBFA687209
+978EBF888CF88D30C4BA8CB9E87A612285F75F5486EB9E44AC2CC861B6FD4496
+5392CB19213E7368947552002DA2FB501865EC1D4BBDAAEC1621372A3660D97E
+E9008373A972ED3B963BD5E6C37E84B445551D88BEB48174405A1714AE47CE58
+AF424E63D0BA721665AD96A58A39CF36D779AB7B2184126E54199BA8ABEE5230
+B51BD62B286E5AC061DA76689B572781EA72713F72ADE8733688ACC5CB453440
+DC8C28F0E74CA97CEB88B520256D89DBC91F149136835BC4F019FFD60AB292E7
+82AAFD0F87EF36F6E1BC72FD0A50196428923B9CF72A712C87E93265365655A8
+A830112F6EB412699CAACF5EBED5BDA0930DB4F1116EE3D0DFD1F8EDD67BF633
+FFF3C5CCB4109CC8E796C6BE653D34E43CE19D4F2C0D1D29FA2623840F93B819
+7A90C668BA96EE19F1C905A022284E64D270E10D372752ED6F42CE56172E83C8
+F5C171E5EEE3AAB7893239BF125CD76969E5BD708CD2AC00B0FD20B684C574FF
+DB4DF2BAE71180CBEE7365507A0970EC7F7E6F483316CD1A120E5BD344173F2D
+78C7F53BDBA2BE1E5ABCFFA9F8E96D3AE4E6B85D2D7E32CAFB0786AE4EAC77E8
+7C65C16C6E3DA64CF39288965123E53B040ED24EE45F62585D241457471CC607
+90E04F49CC846B6DAD3BD6C56F6BB62F702DE3B92761065CFF0984D94025A021
+8C5E0493594473A82439D0A9A4DBC9CCBD9FE492C6843A0E4187FA649084F06A
+C4F360225EE43CD621EC0332FA046ABE76743BB2B76C78D5A18752DD1367E95A
+01C61D5F2DC81B93860E2AE67F958B845BD5A09E06471618B3D76A7344DB5340
+344659983A87333A5F31E13768C5B3B3537CEB2EA557D0DD56DD71A34D182984
+D9C6FC7710832FE04EE7D22358A0111933BA8955E0AFFE938994CCF6D3CA8C58
+BEC29AB25142EE5FAEDF98014633598B35AF6548F7525C97AA3BC800F9580981
+9CF173CEBD3DC80D2FC49F1F1E5B2EC5B8659647F4DFA2D3342E0E6F12C219BC
+DA4550E58AC70E12C08D0544D25CD618C4F254ADD2291B2D84F311800788C3E3
+AE541D222EF6B375525E0DD224845A0297EAF99ABBD80EE40B7FE1C6D9781CB9
+994B356640E6152C3AE819F5E6912C1ABEF73E9251BC7E4C9E3C6960859F2A9C
+5FF301B97A715CFE7A441EACAD7B89EA64AD532D1783D2D7883DC8B22C5B331B
+A9657BCE7045E43F11298F2B2891A09E15031740D1776CCB2109133CF83070CE
+EA54B97C4D609B47FFF0F20046C4AB71A2588B99A27802D0A5B2F44CC9E8DE08
+1355C405C2FC8E1245D9E55D02C10414321B1757DE0914AC924828A7E3CEA0D4
+1741E9A60BDEE828CEFF9AA91E79D4A1355249578E9F3F472881823262292CDC
+0A02059F0BD178D1BD9A5967388D54F605C045B7472109F3BB6C732E191487DE
+20E7DB95DA669788102357DD3BC004AB8E71970A33413DE6C6689B4A8C16E7A5
+0D0014CEB0B5DF6AB32F1B5174221C777329535DAEE9D8C1C4E31137704AC157
+8C76EEA3FE634F8262A8B4F87E5485F6DD9AAA7C1B2BEBD9A30D2F0605436322
+C10ACF037DDFF785E9319F91B78A845BE510A7066847F6E8B4E8592698827B2F
+B15C50ED71AD2ED486AD68C388342F50E628DE8E9385B2E3CE8BD2644F951248
+597263173C83EA45758A64EBAC15AFB13616D4CBB1683C330B1AA5343683EA2A
+7352F21E648D73548DDFC68780266FF85F967894819CD33DE1968AB5468E7055
+E2E3FADB699C3E158C2B3E2A81186C35CAFF79B19B1D7F8985E7254B69407797
+F452451A38803A7F5339D39F89FE7098031B4DED5B55B2049C58223D3101C419
+DC8AAF5420640E1D588D876B4DBA192267D882FE1B90D183F05AF6C920141393
+366814BF1F15B4D8B42741DAEB26D06B34D18657DEDB450756C0E9E07B82423F
+0499E01B6A66E87EB4C5599775EF22DA15854F2C62F944758A438E145D4B21F8
+C2A6D3B77A58A1DB1FAD71C69F5CFC5B5AE6649E0DF1070C1222E689E7175890
+D417E9CC41A64E91DAEB542F58A45C3613FA23EF766DF95707CA1D8E213E344E
+9D7C72BB70B8AB4DD2F858EE63EC2511F936A5ED103138F9839A3BAFD49C099B
+D284F8796636033AA4B1FA24A7AD9926A85EE16702C33B7E92084F95CECF2552
+F399AD837C7D96FF932BDF988A20B94579736A518CF87C27E2EF2118E7A1A46A
+CC50B001D9C21E7B670570A8CBB74FDD867FC4E6B082A60FBB8240B2E61107A4
+AD6AA8351F647ABD73937498AD366684AFB5EF84F4469F6D8DC03E7AD8123D8D
+754F914AB68B859DA2985F27140F1F33CD3F026AF93730F0BDE8D2F63EB76F6E
+5C44FE4A1F66E46418F49628A4657771A349B4054206AF41266E92C2D9D92F58
+CC8AECA0CD0A69E2FDDCB4E5D0F9F9BB726352038EE6BA1ED40AA5757639CF36
+608AD8D72B3BEF5FF08F533DF679202853FC1DCDD99EB84608153B02A22ACC0E
+8F9B0C54B89D48236A813AFDD4A8AFB074F9A87409B764435602057811A56956
+44AA307E1539632F91CAA64DA77525E7291019CFB0A8A3F697B5A94868FF0C25
+9AC8528408EAB5500FADE5FEBAC49CB16D50D9CA16726FF4B9228741E5E51B43
+9B78EE224C09DBCA64E2059FA2B9F8DA7971B1A576B336D1F7024E9C3AB9209D
+3D99E46C6915C5CA0BCDE15C224923C300BCFA44854E15AE10AAFAF6F67B0C56
+6D12852E70A087E1FB1477455060D01CAD9181C51F72B17A34273E67146C6F41
+CAE3C2952D6AA312CD9E5FDD63E0CED803F99188932F478D12D7114076DB0ED8
+9BAE4588E788D2CC9A8836EE6514888DB2727CACD93ECB1580EA61FB778C562C
+B27763BBBEA8BAB40635C3E7E5BB788EDC5088A8A86C935417E993A468C70EC1
+1ACF5BC3396025572AD97ED758B04C71E769C52CECF31034F94CC088382AFFD1
+CD158230E71000717231DBDDE0896F94C5ABE7F1BF0EE6046CC83F79B811DA96
+29FC33BA65ECA3EB763A850439C7B97D648D400F09C21A6C3DD01E616E94BA03
+06CFE7FB7E83CDEAAB85E5ED98CC623334580F2B28FDF4257D3BFB008AD81D58
+6570382A2B25112279BA39EBEFB4A6334E529D76D68F93583EC352E6CEDCAB76
+CF18602C7FCD02B82747C47F18DC85B867AADE10C5B88FF4CB319C981DB89FAB
+FB4911C8D5F249F58B28B63A80460E3217A67585BFA4660156C2CEDFBA07B445
+E739AD58D0BCC5E0C1CA1E9271622E6497FC7F517E560A6ECD4FEA69BF8D3B43
+A099FECA870CBB8904E8CACC5D5C1B95981DC73C09D058183DF154ECEAD47E19
+92A355967C631948ED38C1E47172782CCB52AB4CB78F6A94FBCFC0AC5247F272
+7239FC6A41655715BD870D7E55B4CE58513CC17BC2EAF4F237BB6AAC15ED6818
+245C112A4C29F487CD6AA69212F7C45D77CF3DF902D0A4F2213BFDF2AE5B8ABD
+243F1EA4F5D0C2C4197729D74E71416098D8924FAE68F7F14E32CE0DDDB6A47D
+E665F6FBFD5EE5FEC326C5E20C32C65A99E61AF5C3190E8912D3D6E21A2739DA
+E2219CBA41C20721265E258440C7A3883A59F583722031FE4983F237F3FCD8F4
+F48B7B3F9713D493BEE9DB2C53DA12C79451E0F8221FF6E1B0A277D6DDD9E100
+0C444B6051B845AD321C179DC62944F9BEF9C6E5E5510749DB5762A4D00E908E
+01127E880CCB7B438887E9F98A8A66CE96244CA87AC11895D0DB9A92552D9273
+C056AB06F93D7574D30EB03988B4B040933D919D99D517DF808E775481FC6B00
+5DED9F8B9F17165CEB8FF7F2A7BF58E60943205B046B69C070428BE8874F4975
+6E8B36AFC9FF2D790FD978C71B496B2CB0E71D471B16C6D0D4DB22C517DE6A09
+0FA78BF29FB208D84C1964E3CA6420800253249179318570BD38725F3109E65A
+006C6C5C99BFAC1DE70B4AFABA79257C6496F591B0DDB23A40D45EE0F05E8123
+F2397E5CA900272A4250CB50A2D2ACAFCBC57ABB24DA551FFC9CD87D24D65961
+BD75ECE1D29DF16D4B0A676BCFAEEA38BBA059F73C2EA04789E8E2871DC343F1
+10E8140BC4C0632AE737237189DE6C7FF27CB1DB5C49F9D2EB255B610EE00127
+FFADDBEF2616FE47A098A713205784F0FD6D083CBA7F9288D90374A1B9582A20
+13E7069FEF28B208DE72B21E4C3180CA858B2644577CA492D931C95A48E1EB09
+4BAA1F5FF22AA00B8C60940A1A7B10FF68DE6924F384086BA9E606BE261603E0
+F6C9FD17EB30A41BA32AE5869C56E8C66A0F13DCEE95869913C6A81A209DBF6D
+9D6DEA469E8C247EAC48E0F2FEF2E1010E6F1A24939B9F6CA41DFA79BD6829CC
+4A6E0402249738660D3E38B8D96146AC0218DA0C99949432FB5C4985790514B2
+1DBB52BB7AB2A2EA3B33837D1633D71D17C67320714DC98AAC7784074DC78508
+53AB088214763B4F35EE87D7520C93E3736DD177A36EC40E3F9BBFBC8C117390
+182990D7C252AF33EE8039549B519707FDA4440D254C44A5CF19FA19E4D0C4D3
+7A8B2EC19FD27A4643E3A88F5826D82014EA58AEDDA621815EF27BBFD771D6AD
+D5C014C0555637D37899D15D1257BD0E75C84291C4A96C0BED70FF29D24BF675
+4EC766E78CFD0E576BB5113B1B6CCB859B3BE6A98AD80AC2FBB4D7F7BFD1BEEB
+2FD01E50695D54111AF85CF5120FB0802387415E1B8EA85AA74FB443B5DC9D38
+F5D8D602D545E78766CB621D51B434A7A06E8F1B6EDEC8D0456F0883868F9A3F
+4B2FCE7D71DEE094777406F2FC4E7652C7265380F08629EBB9E2FD2CE7EF0493
+8943C1CC164652B21DBA5FAF09FAC7B91F3F7988A662D5FD3F11DCF5B768D98D
+80C673EC1D4CF10ED0B696546B04B6D5BB28828BC51FBDADB085099BB3AD8241
+7E4936BE686C34F521FD973566703731C3264E068CA15BEEC4E4707B5125E045
+87C3C9EC8DBEF8EA7122D6BF05632C07208922D07C05AC0F6CDA6B42A71C555A
+0349D2ED7C500C393EE38710FDEEE0F786ECB00A6A33FA7FCE4613A4F18C691F
+3743ED9E3633375FF58551B91ADD5DC185998547B78F34816E7F333F90E18231
+27B055E454DD37D7B064B0A996244BAD4676BBCBBA2727396E044FEF13046D64
+E297C7DA27FEC2B0A7DFEC067168F6117C46903296EE144862F58C53C4BFEA69
+49C3F31322DEA89944314AA41EFF120DC542D71969277400F911718DB0B93D7F
+3E4AB21386913ADCE58C2B1CB5633E89244E52743F7B44A2F9A0DFE0899C2D3F
+6F7A47889D82118AE8D151CDBCFC6D6C57E5145740DDC5F8077E4A8637AFB1C6
+D7F295A0DD49B9D7E525E5E5E39C915ABB0B778D8EF1E1BF0C90570A260EE0EC
+CDD7122C832CBA4C0AC959FBF9FE98E4A11EEDE727E6D9C43BFB90D0AFF1ECCA
+0A6BCA5825259081906845ED1528BA18A34DA0E983FEA8B08D300AC564931992
+D1783BCF1296D835D913008C08DAD381831DF05DF42ED7DD1E14F1F3B06B147F
+1BA1E6A4E866183AF593EBB1BDA8AFE81A67D76B27492D9BF2E64690533F0B72
+B1B3AD206F81F5A795616F5F512EA329FDE80AA930F23C8E0C7E6B58623A1919
+8814037A8EE703F49874F4A384FB2A3D01E03DCB9BCE150A391BE36FB15CC00C
+A691F862D14D65846520E242D119836D421E3999EF87658D88CC19AA50486E47
+B68AFA052AE380E0B495D5BF3197E483B182A232403FEA80C8491CE99E09C6C0
+0CBBAA0E5F50535B56C70B218A078AD48E8C6B11F3B32D218439F3CF7E2671AD
+33D321CF8F8F6BAF362B1DE0BDD85557AC85E8BD7B4C6934E9ACCEFE81A5C420
+8B5A7A98723A5138A44E6BFCF1386B3DDB12F2F1E0359BF9F5348EB134313225
+2E6C17B2
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -3027,7 +3027,6 @@ FontDirectory/CMTI10 known{/CMTI10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMTI10 def
/FontBBox {-35 -250 1124 750 }readonly def
-/UniqueID 5000828 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -3337,7 +3336,6 @@ FontDirectory/CMCSC10 known{/CMCSC10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMCSC10 def
/FontBBox {14 -250 1077 750 }readonly def
-/UniqueID 5087402 def
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
@@ -3660,7 +3658,6 @@ FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMMI10 def
/FontBBox {-32 -250 1048 750 }readonly def
-/UniqueID 5087385 def
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
@@ -3896,7 +3893,6 @@ FontDirectory/CMMI12 known{/CMMI12 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMMI12 def
/FontBBox {-31 -250 1026 750 }readonly def
-/UniqueID 5087386 def
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
@@ -4132,7 +4128,6 @@ FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMSY10 def
/FontBBox {-29 -960 1116 775 }readonly def
-/UniqueID 5096651 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -4370,7 +4365,6 @@ FontDirectory/CMTT10 known{/CMTT10 findfont dup/UniqueID known{dup
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
/FontName /CMTT10 def
/FontBBox {-4 -233 537 696 }readonly def
-/UniqueID 5000832 def
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
@@ -4393,13 +4387,13 @@ dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
-dup 43 /plus put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
+dup 50 /two put
dup 53 /five put
dup 55 /seven put
dup 56 /eight put
@@ -4761,295 +4755,296 @@ E694DD95CCD0BC2504F3D9087210CE220862D34139D33EB505D90D39E7DEE3D9
949C98D8EB9035A0ECECD035CDC6E7B8A007BFD3EB3D8DFCD130158E473E636A
3D00F8A2183766C422991EA3FB1A6F5DC967EF9C8736FB190191154216B7AC75
F5E269CC1AB5FD8B1B8F1632E9496BF02CECAA66532357A0DB3AE03D98351FF7
-0A2AC142089A891607B075019E60BBC5CDB1AB6E31DFECD6500C7D2BF2FC30DC
-F01AB50F30D846DE8324B6906A7B803B4B68E8D223CFE37DF3B7AF8134CC4F47
-7A7480F7D15CF7C3325A323FE82020CC0612109A3CC42B711A2424CE5BE9D9A3
-8580D6E18003D481215067B85309D01CF552CEE8A4CE229F1DF34AA051CD265C
-844AEA21EA62B9D32B100F3E3D0356C7D6AB6BE4CC0DE6B38D60E53DE4B6DC74
-FF8F6B829082ACC5F05107AA165879BC7B65A6AC4FD1469B1DBA07B8179A8715
-B0A8876D79FC5BD11F18A5694141E1E1B253334550C08C45922AE297F392377E
-D572BC910D908FB5C9A82B081A615DA1A945373C5708913DF1350EC8CD823FB2
-CFF9459187061FA975B9DE40B505BBA694E969B8FB91D5D70F7780CFC82E6EE2
-6FC3728BF89897655750871CA945D71EC75327BEDECACFC93D54A83B5AFE42DF
-8D4C73D376210A519E5D6809C8DCA265EFD1B78A4F79C2D5DE44DA2F941CB57B
-710A1DF1383E15E19F75A6EA4E8160D3443AB76B043FFA545EDE8EAE35F9210F
-04954B40EB0E8266080E03ADD276015A8266B3ABF13CE2DDD71C256E4A9FDEC8
-CB6266083EE0FEECD91DB9871D482C74D78329E64F6A5DC107C0D5EB12F1FD94
-A39B06987319791CEFAAFCE7FD20DCFB93040394103B6484BBF3EC67BEA74B35
-4C0769F378A159CF556F099B2CB8812562182E131DB04E222FA8EFF0356F4053
-A620904FB48262680E469F55C63DA2AA370AC91947714A4C395EB7AE43F1429D
-E65A7DF7D025289B9697360FD086AF88289EEEDA7037BACD1195FAD825935648
-8026D3EA9A8482B40266A67066A5883C45E0A59D86E6B5E85EC5E9AAFA5AFECD
-2A17591593AAC5E8194110F5C5105E6DBA0ACB7BC4A2D699D5C1A06B6995CD1E
-80E988FFB362671B46BDD7015EF0A7448235B7735157147B765F5DDB701B597A
-875F3521A1C8086B51866A7619F336ED12351862DD20FDE12FAF404E7BE5C680
-DE0F61E7B727C4D74E1F2746456EB22A7BC3F87F3BC1CD528B80D9EE933F8774
-34B5340FAA4B5AB5DBAE5CF08E93FA62070DF7E62E25CEBC9E71978280C67530
-45741E8029ABC5986BA0FFD9C93F6E292EEC0FCA3BCFF7BBB72A4E359CE8ADCC
-8DB71DB3DFC28F40040BA616190B7CB188DEA75CFCC51A29C0FA1370A2073C37
-967546F898FA085A321699921AFA3C62EB4AECD5E1A38F798C7D2A298859A4DC
-6254850B9DFDFBE4B3FACB7EF18D3665B519CDB7E237338C270A101519F5CF54
-AFBCEC5FB113A76F513512EB30F9FF153DE81E6054E339E8B6882AE01DF6A152
-BC35124ABC160369DD987E35A8FF34BED266BA5F47F457F7597C89B880956C65
-4F2D85887702B5D844D95DAA978BC08F87039AA1C41FC2971BFD4A2E99618909
-B14E3D8FAEA37D137898FC9E61132515E70E88333B66DCE1B50D7E73B29419F7
-31DCB71CFACDCA26125EC8C31F5DA690E001122B94186395717CB3B6C205CC68
-D73B036E086DB2150CEC23229BFACA0785AA219F4D0D01DB2C2C5508C7E004D1
-DB633B1D96270004E5C61CCA0AF777054BD11CD3D2585BA67F788193052E3656
-A6A0AF2BCB038543035A4136139CFCB07FEC241417AA42EFB8D8709FBB42E5B1
-943CE84B1B236F2616E294978B7998DC56BFAE5849E49325AECB45F2E433CF98
-79B1CDC7560D57DFD4EA193F7ED84F78C8A17FEBF46CBD2BCA1AB0740BF90733
-1D2372D1B5C98385229072D5977275D827199BA3A1B4EF26D68C306A75C72A26
-03EA819822023917473295767AA2CFEDE5E047943ED3E32879A84DCC81E275BC
-94ECEB7B99B5C34C05A9FDF7D5808376163975DB899F48E8A8CF84740D67BA73
-8993AAA68F6071992F0380CA8B863A24977BAF2D7088538E17489A2DF9F9A32C
-565ED05120BB512E5D9128B121FB499064A45A2E0A28D80AD3B4551608D0BA1E
-4AC96A2C30BBC76DFF9FD079311CA301EE8BF7F102D65DE54761D48A0897776D
-82A8B3FB58A4519FAF442DD383E874D0AF2E6847624E01848846901A907295CC
-BDB23983E9FF6A9F07D1B465A551B952F2937A7907719CA93A5A656AC9458C15
-F76588BA96987E6FC21269D171AA2515C26F5C55037EFE995669A6B83D729DF9
-AA281A0531A677099EFE0C9232665F5E35D8BD361D524FF1197608D9F989E9D8
-E3D8E8C7E1480CE21039CA03E0F9052C86240F4C90AB6DD6D171AAC77ED7292D
-8F879A1B79E9D1552AB3E19DA983D1D5A950572612E4E6FDE9E69C71980463E3
-C722C595B2A86827FC4C909590B584CBD7D3E24CDE36207E1AAFFE33B7860B61
-CEE9FCA44D8524929D01E5AB1943E5750B1DD99E9AEB25C52853002EAE192A11
-5F27FE0A63FB2FA3E73A0D9730F779027FA425EE4F235A48648EA4E0F5D19628
-1F356E43716DF1A220B571D2A90AEC085DD46E2A5DF1AF183CF3E92E6461B270
-D8DEEA934E4EEB8A64CB2C20D8F2EA26EE35348FCE5D39BC04067BA121BDC7BB
-48191B0BBD4A202329F20B96C6679501E078B368328C1100C3082BE82353C0D6
-306B1DCD86266BEF5A71D66781FC901B2527CA8DA8F76263C2C622FF2CC6ED9A
-1EBAACEE27AA9D25D259B5891F92369E9379CEECA6BD66E2FA21A9BCF44DDE4A
-AE60DB1F2D197B01B7879DB5C9269011DE3B16C87FE72BA7DAB6D80304862FDD
-FDEB38D10ACB5A9D7B25F38E9954D25BFB12A2B8418168DF7636FF117FB35D21
-C1F55FB01FC6110A9FD772EB2B8E1C2C35BD8563EA1649417136F66FFB4842CE
-4D21A92A7B64A5FE1A318CE6318116ADF9D192C20CC096A492130ECBCF4FABC7
-50C1E68562D86572A90D9E057F70E8B709998897D91C7EEBF937FA2AE51FC70F
-A05103BDF452897DCDFE1EDA5557C660840F432E24C14C7449FE02AC59174207
-1F6223B96572D7AEE53DD4E360296622292CF73FEF83499155DF434D48B5C5A7
-A4FD10323821591C2712E1C7058C22C9F80540023D18819409F08B2F01DE39BE
-36C5AFB090097100D50B38254D60DAB4AD09809403283C234D2433BD523074F9
-989D577E3C4BEABB44BEFBB16D501C8EDF23BC29C90C4C66EAD79DA27446F808
-BA1FA9A0711D04EE3667923F05A70FA3D6C514581271D03250347E7C64A82DF0
-47BFF057939397176F69447F3224620468948FD17D8E01ADFC71C5F898C40809
-639725A04D51FD74E2CE327E7BBE8413269A4845ECA1B2ECEDEF15EFF612F89F
-AB02ED248DA47A6CFB73291ECDE8EB8F21B09934621109B5FB12A0004A664776
-F0A7D13F8FA4AE3549FBA43E3D116ACD78EF378DA5AD57AA1ECF3865D6896A36
-E6B323FD31D98395035F2B21BD1263CE8963DB0E66581716C489BEAC1EEC747A
-38D54FF19BDD64FB6D29C60BA9FED7274F4338B9FD9497A7A5C990800BB19F85
-C43BA6F4DD2934935F5AF4D0D467F5AE425DB20FA8C62661FEBF77CB8B1039F0
-9DB57000EDB0ACCFCED5E10C27CE898F93F4789C7300A8431736B32B8B327BEE
-5CFB1DC3305C8C5FAB9F301FE6900069D4802D7B20AEBF979C3FAFB222838B42
-0789CED59803CEA24CB8E40B432A72BDDFBED38C1F5AF6B53E120BED34DB66E8
-6CEB33AD20F76CA376DDB0CFCB41DEE81C8E5DDAAEED06216C71E988D3BDD49D
-5A3A7A1C5A70E0EA117766451F27437C79193DAC7547FCA3234F8311768F3829
-85767D0A573CCC48325704A30F55B21548209D89438187316067A1F6BF1CE0AC
-85E725133837507C3BF78290140C2D51EA3444E6ACE981BE4D9B3923810E1417
-E9668B180E5F843D71976F9F5ECEDEDD9C0D2DCDD416CC167C3F48165EC004B6
-CE1113D64B375A59B41BA38FA35AFB458D467ADFED5E72F41A386540A3B68C99
-F29836F918332BF171BE5DDD0C9EBF34A14DB5E4DAAB65F7EA0D2EA8E82B7AC8
-01411A2E6F1F7620F2BE468EE935F5BFA9598A101EA265260A394B6948DB87B0
-6CBD5DA5FF81E7034A0B0332C4F7A1A9332A26AF80978F0545C3CF847324A38E
-B9938E305C484BE9DBA023039DB4A5D1AFB139B3B7493A492B8A8511EB2A762E
-95734FDF9B759B29A3224534034775C03C1100D8EBF3CE1B55748FEBC613E11E
-5D418E4C9F1ABBC812450C808EABC5CEE95B59086CDF27A81583EB5E999831F2
-1E6909788D689599D14A0D075785E50BA7174A30BFA0E4370A4EB59C3CE9BE46
-A238ABFBB5E951A82881292CDD4362F2D1959C306EC4A4BE51FD2D4604C08E4B
-E4CA91C5B1E8FE430EBE9D981CD0066E8294201589C4989E5262A6867EEC3153
-405A49080CD60053FCE99A84958209C94A0B36776BE153C72216C9AD3CFE3ECD
-4B0409369DB51A7636D48243B526027043ADC287EE39662564D609A179A9F203
-10C9E244E9150D3003F919A36807EE190D488F9D1B6B0FF9B2347F642697C669
-DCEDFCD72AE48A6828A6875B5F629482BEBCECC17774EEA93BD31F6F11C6F5DE
-EE483B14BAE3D73F933C3629A894BD5080BBA757B24E3E9092B65764B2A8B614
-8DBBBE9AF190EDBCF631C733A5FF8DB69B1C7EE0B2B7BF76BB921A85B40A07DA
-65F1250C1D2F5F4873CD80AA44A68BA601F416F91701A3410AE272E7087B04ED
-7A7A6159AF6067593BA6C8C2DB390FA2BF1C1BF264674B9D3248E0B6DB496E27
-6E5CA50B01D847967C31AB3309731E77A3062F8872578CF37B8D0596B708384F
-FA3EA8D9EE4A73F696D9BAF8351E46D2E9C413EF5937C7297EE9E20E68F86C00
-C35FF23DA9E343E1B86F324D4A95B1412ABA88EBC765EABAB90264973989A3AE
-787268BF358DABBB74F04385ED7F430D88BD45A958763473C203893CB0F46774
-01504F6ED812AFF4E35844791413A2380D1BBBCB6932BAC282643C7A18BF414E
-5013111E69889FFD8BB711AF2172FBB317DCBB1C1FF12E5BFED589627F976891
-9F53E7915C9B9FABA2B8D2D442B3EAF14BB73ACD5674EF76F03700437603C802
-354E32C5B2CD02FC470533EE8CB6EBB5A83CFA3F1565C3F6341134EDAF4C7F8F
-2D8FB57630AA264665D154CEBEFE4FAAF88AF6BA659EA31A4CA4FD688B2A51E5
-D24E96A55373328287CF954F8727BD760E57EE2E8BDBACC29E5CAB8DA1B58A5E
-FD8416398145A5F0E50DF18C110B518BEF42E6954C3CCB1E18BBDE1E2B6FDC4E
-D7339D7326B8EC9A1D979367B1A9CDFFCD34029404A018A1E42BE7347DC05D93
-15BDF40ECE8318EB9D25DA7216C4CA8994D091A0DE6E5F189B05E4AE951C6526
-AC9113A0A25EAB299108C3A2487187FB78DA98338CA7B9A3F74AE32D61C73533
-2C4E1233495DA9C0D3471C14E2AB780128DE8CC99D14E2C4000403766DCA344E
-E09A4D796BE9085E4DC06838BA17481E0ED70B5DD973C64B7311E47420E3F750
-DA46A3E7FF1B2300F2E78AE703B83C14213EBEA42AD7DCE3F0523883383D6E04
-5C2E597138AFB94098EE8621B2E5EE5315C3163A5EAD6278B65B88C497D2A2ED
-71660428739FB1E9A3E2DC11FD250E6EF346AA43309480AD7F3777EE5AC41042
-1C395F67D61726B397120C859923FCFD36BD4A86C589AC3A9E125C8CCFBEF7C9
-A49C3319D069844B2F2BAF76E916805C5EA06B90B3382701200A0CB279BB4693
-57922CBE713140AAA954CA7AAAB76AEC2E33A9A0048C9EDC101A8CBDC342CA04
-449DF8AA026885F767D45CDEA73F405AE7ECD1E118CBDE17B7F9F109F36E410C
-E4486A1C7FE40C214B4AD7A715A003FA496686BAA306AA3F97BD49B512DE1EFB
-3D5A9A8DD33FB117121B04D8DF25F8634499B54510D394310A5117666DACC963
-2DD41B688F2CFC87750A45BE221979075AAD06FDCFF45044FC09DFE41F3DED63
-42D2F296D337C1DFF439FED0659652CA4500815C7172686E0B4D1C410E9C451E
-1DDD94BE8BD441D09C6D8E898A0DD102135C854816E66C6E79FE476744CCE245
-8CABDD95A91D03EFF4FB5CBA2D8D0D97313E5EB3B923730E72C6E1B04E976DE3
-F76B5DB805E9B9FACB88A7F175A33A517C2C2183DD53F4D15F2192ADB4E524EA
-DB1CBB45CBB0A40A36D1D685B16735C90EE914BEC1CBFC2683532F1D3B44E0B2
-F98725D89F233AC99AB45891D383C3D7276C8239494EADAF676900F089E37101
-7D3F958A07A74CC7455B55C0310CE104700F674AC222B9E5E4351D4F0510E2E2
-720AB917341BF9FF91D095F22EEB64AABE29367300AD0EC3F7BC12A385824380
-AAF5D2A4DD4026324E41D8299DE8A5A905A621DACB611ED1CC9E855039EBA0C9
-CCE46F79F36F97D3E15667B12611AADCB2CE1BACD56248E3CAA720DE09045AEB
-5F70674EADD8442734E302C0CDAD357F02A0813DA689E031C3B04CC545D3128E
-FEAB24F2A30813BFF909511E0F8A221633943E4AEEE93D62D653AC0290B8B6EA
-C086BD0C97F800C3522C59E39AFFEF43EA20C8E833E842B85804B94C8DDAF027
-727337A4AAC37B089F196142317C4215C533A6E5D42CAB2CD22FB9C4719D03DA
-599B6DD3F11C6C94EDC46EFF4E5D0531D63BD97EEEFA8ADE254E23002D4D034D
-64DE4FBAE45CC5CDE42BE8E8F17E585B3C0D5C65D4BA1AA413171A02F4115D2D
-7FDA0098104AEEE3FC1EA2C2AADDEA317AF0D73C74147DA6115B6D91ECD8E66F
-8107525A506B277AFCE3023040BF2D69585927081BC5306B4829FE4BFF531793
-9336A51846CD02E346BFB7334D2DE477C13087E110FF8B168E8EB510CB6DC834
-7630BFFFB5557F43071144661DADF55FCA0C106164D208FBA2FD762FBD606E6A
-7835A82103FA89231484FA9C9E4AE0F426D3EB2D3E519E79E39FA70871E3D329
-ACBD432BE3D4BB05813C5F7350AE1712FEAF9937B76AC683D52F702A6D2B578E
-B1CDA48A37F09083C2B38C0AD334DA683ED3CA881B626B0611B68BC5F42F4BD2
-FA1213AA8B75FA3002DE7E87D6C091891D6494838F533970BD62AEED67CF2C7F
-39466438C53CF548D7D86563500E7D8D0C0CEE994A2C1A992E31F6A8D32F1D96
-F4F69E28C3F7A4B92A9F7E5467EE2B115AF8F3E8539203926A84F09DB1AA1E5F
-ACE1A907CB2C6C89B65BE9DACA624CD10442B189FE49331E87B1714C1F8BCF57
-7C1656D7EBA4D8CD8568CD948FE85A7ED797796256818A2963D37AACD082E405
-7BE8562CE78A54FA6C08755DFA26DDCC4669DE91AFDD1073542EF1FB04813BB9
-42334FD59AC8167F05B1B963F4DDDDBF7CF177C7B1E181E28348AB12E083AE0A
-7DF434EBE4960070AF2655C63B1F9114D3EA51B7BFF6F70F756406002FA2421F
-56BD35B9F0F399CA89102FC688FE8690ECE6FE9078920726F5325740F9F15591
-B27312E42881D173ACD0E6752574F135F7DE5CE5CD376E6E1EBC98468DDA9FBF
-65A0A0F24E1157BDCB90A0F00F5DF9FE167B83D7460558BDB3E6B51A9EA1AEDE
-83E7C462522236BFD2EB75E0A1743B59C5CD781130C3450908BB9309C790B81A
-726A5DFFA753589C05AE88E5B0AAB069FDB597ED006DF7499DD73689205A7B06
-0D00CD4285C9254C4671F6746BD385AB76E376D2C8F9CA89523E0FCCAC1AFE2F
-D21D3541474D46EE3756FE9846C6D27BEFF024487A0B68895E14BDD5EC5838C3
-B18276B88DE43E949FD14C65AED312B831B120FFB0D11816CD1B11F285496F47
-C4F06AB615C651F3B0CEC80D098A58D3D6903A243F1B64E2C1DE434676948F2E
-F120F94DFEC20C1E028CB0DEA2F9B856F73BA9F92E7907BF360D288262CD8D21
-0DF5C898EFD5115C486ED15F346BECF6AA2BA4E59DC3F860F5DB383E235E0AD3
-8A656A2311770ED4B902642BD30E97BD60DB26102E2895ACD22F67AD22C6F0E7
-912DD49F6FAEDFA568702D57D86BC176907D08B53280D1BD1093FE696EFFC553
-D8E20CB6C5871A3BF7F93125CFC5084250C3EFA20150F9AFAEDDC014EAF973DA
-1C934EF9A0E2146448F922FC2FEFC8D893C90547E076767ED9428B0D96DEC3E6
-82B678E9F5B7F7FC77D419705DF05CF6F17E8F3636E0E51CB00CFACE3DDB1173
-1BFC5B5D81EEF8C28D59DE074A7A63F45EE061106B837B3933F36C44BFAB49FB
-A61C1C6F5EC9CEDC870D226DD47D576D51446E61E0A9A9E1CAA5E94B08560766
-DC3248AB4B788D13F495C6A7EE9DF3ED79EA1EF6B1BA6E3B3F00CCDF619F06EF
-502C07F28171F5F93E65144504AE40EF7451662297926F87F1859DB516931484
-BD3D7DB2BE1F192678681FB18F22B6544E9B51928848F4E635FD79F309FCA94C
-C4FB2E04AE984EE0AA48C54F4A79F7180D2B158F31ADAC46B6827509DA86ECF6
-5872099655FA5A7C9DFA06C4FCD33CC12384D0EE1F646FA74D14DDEF8F2321AE
-966D7EFED0DF0FADDC8762BB671761CB643D32393CB2E201537C5D87D9E44BB3
-AE88232BB580669A5EB79669FBF2B116F9845CB9AFA54A8C852F572FDE1176E4
-56F650BB69AA195F6315D0EAF88ED671B5B26EAF84F4A59A573D0F649948253E
-C51D3B4CB623B63D0A4B513DA7188BC08865DFBD7C78BB0DA0A5FC8D7910D07B
-07A4737B05E41FE3FF9CFE5BD35A9CA84E2107A0C47FABAC9DBE051F0C9CDB8F
-2C98B80C7A945743B0A87CC75C7E211D33F68FBA841D97D5D25433B14211FDEF
-005D470B1E5C29A8B3110C0ECAE381BC8CFE5C52D59454871B0411166EFDB76D
-09C3C6F54A0FED793E0B19DB23A48B99A5583A172987685243EEBD56E31C5E77
-1623F16CE8F1D822221276B5210AECC885E83167E1E66446A2681A88BB40EF6E
-82073899AD81700F9230ED476E90B38AB6815083C254E657ABD8761ECD173870
-98417DA59075CE7788E3B279D89DC565746F120208E593CEA999E6F40370231A
-644738834021ABB4DD630B523FD969A5D79D8034D70C5625C14B8B70F26447EA
-7EADEB97E2294414560FE2359B8C0F3E8E2BE47E0D79AB32837AD9155F2E4A1A
-27129BD9CC0E2F6E72EE7E43BDBC49F44388434096CE46A8367850BB70059308
-CDDB676CA17E963F6073B19AAEE7E12C76D6165564DEDFEB517102655293A942
-DD67998256EEC2D21A844181ECC8DFD7A9FF26C64854B1AF3F304D09E264B18A
-8F26004866D01BCB4A823FDC800C45740A543A036EE4785ED09CDE35F7C6E579
-9FD4C16E2089FA7C22C7C7A5296B165689D2C26B4D64DCEC325FB1ED3BDF3F90
-9B90E84072EE1F2AFA0D61E7043C22749CC71E561BFB0D20E7135EEF7B2DE8FC
-2C2AEE15F8A17E739E489F9001A063F452B899EA26734F78ACA3964077BBD523
-538660F290A2656966B6BB9036E3E63674847E35E02E54E8ABF1CA3C31807CCB
-16A349CFF5DC7CB54934F12890E3CA0B9D76B692E7714035F3A64A6A877DE24F
-A42D526B7D32C480D44215610EB46E17C295C70D6D105EC0240D36E0B3C29DBE
-76269CD8A66DE579C88353547EDCAD1FFF1F95D76E0923A24FC3A9F9C2A7D910
-B8FB62163DE7A02B3A919C06FC23F1AEA27E338BEE68D0297E8281EC47320D01
-CD201378228D6860C71EAEE0900BF462B701E57909F02824D1424C444B9D6F50
-0229794506BCC56B503293BC69B3C6F28CA4C816A8F2AA2992253A408A822D1A
-952079FD015DD41F3C93D9F0FF6EEEDF50C1629A76B0D03BA0037845ED1DC89E
-53335C804C71AB80D025E49F4313E797ECB16C7F39B963476A5C57256F083CE7
-FA22C560B68DC95691724A56632484BE7F0DCC403E915EC2B115EEAF3F8B7F1D
-D1460DA180355E3BD2DF1D459A179317B5781D0C86D9245B62B159F1EF46D3A2
-94AE78E79A69302C17520FED89AC397304BE804CC2D620523FE203B4935E0A08
-F843C562D352CBE1202538E0BC63CD3CDECD197989CE794BAE7E0FD9EB5A8333
-827FDA2233058977663741CED6E55E4E5A5AE4F4E6CB57F07E1D4579D18C178A
-49428C7CECAFA604C8C64F6A00FC9D6CC34AEF674672329279FA7F3DE0BF959E
-8B8B4E9EEC0F406A91C51E62C583FA54F391F5177FE1E29F6A81FD3E98B4D80C
-9F1289FF4B55FB319FDED440F59F421F062E6554ADCD00600C4DCCCA97F32890
-49CA92115DD0C894F37FBDE59FBC8510F2D6901CECB70268982D49A47C7B037B
-F55446CA03BD401B4826BFCE26D55C80337D3F2B10DE20AE6B7563D61778992E
-CEEFC6515DD496AC6209BFD515FAF56B42D331C0981F4FDA4A033B407008A4C5
-034E4BAB5F833148164F563A9FE8D8F7B6E9D6CCF780FA857149E2E610497C37
-5997969165907BBA244FF5679BFC346A2DEA84F66C046D613192C06D35A5A372
-9C281B8696DFEAFA164E0F2C86FCC43783AB3CF735F013488F40CB1EBCED4DB5
-1B892E6FEB72A60CB79A529528E20DCE7AD6C983B1E0AD8482581C10C5923466
-485B25BD384555BE05AA2A1C9A449A651357564CE0D8293CACA18C8B520DB97D
-EDC0BC13AE0A5C709B4523CD32CE0B6C3A43A684384E98CD042AA39CE119983C
-08B789000E3D887B76048AFFE58FC01E50359EDA5D579B4A99BE63E027FAA499
-FD3637CD7EE3DB8FAC7A7B49EAF466A258786257FA59E9DAB9DECBEAC369D7BE
-C0D40B594D973B17885248C445426905AB12B617FD88E09E80AD8E3A6EDD5AD7
-4F184B6929B879463ADA22B7E42DB8801B842D433575B03DDD0FAF179EE4683B
-D1080F2C9A08FA1DCEC4862D18ABB3204E84754B44E7CAD9831A67235DE21FFC
-6AB91313F29574062015729C03204D895014DD676BD2BF94292F3C1A79841C08
-92D804BDE4740AC1388896E0C83F3BB8E93DE19E9E2088140B3EFF9AB00799AA
-BEF0D6208DC9435106F4E160E2C172A39670EE21C887B82AE4E0B5E8F3C556C2
-C01353F5BD0D6E7D1B675C5C15841895863217F32476B02EC0E8909FE1D5E443
-78DD61A1DB513FFF4997F22F3A9B03F0A645A152F00DE39BAFFE9F338CA87E8D
-0ADB94F94532A807C65B095001A83E03780C61F8C6D175F9405987E7431636E1
-9BC9CEA79500EB0AFD5292A50C34B7ED0C6FEE3E395A9EC246CA7851E979F086
-EAE04235C25605B4ED0286C746FC0099CCC04961C0B7D8A1ADD5A50E48EAC5EF
-0E1000C77ED1BFAA3210AB496B2B9C1AD5A197B2EB435F2FD01DD5FD39111CD1
-D496210BB93C418A64B3476D7FD53900AC2F689CB16BEF3D60A93A171B216403
-1D611A41408881AA571B936726E7D703A0D8F2D0BE3E32882EB78150A9BA761A
-6C7F1212FD52512C56C42865D910423EFF3EEDE621466A59E0104BF420847F6B
-B927BB31090FFCDEEC85E729B99D78BF42906A2986129A933C2493BB216EF00F
-60EF04214F0B5118DA3A2738B9A55FE06DB2AE5A2F535D095CD138545B7A0A4F
-A1F80FA197317253879321A5E78D3C6BCF487B6B242F1C6F1FBBDDE5D9BCB191
-9DDBC945E0A5AB2F752AC425F421A92B26E87C6945ED317B36173EFBCDF0B67C
-89345B03640A2E59CECFB8F351948121BCA6D196FDE5601C7D545EEF9A0B8B91
-590F8712FBB88A87EBA115C565D6B3B9EFD53545F079B60D9E833F41DA40D176
-5328B8891A5CB1AB952FC77A93BB871EF8A17C79045BEDD65A9B7893FBAE62B2
-90EEC774E889C7A02496FBA6C1FD8E42A35E37DF49A2B914CCF4726C985A306F
-D8C83FCC6BB9EA66A193E350458C52592C2B16AA812628DD8FB16A4AC9897BD9
-CF1BFBFAC5BDEFA1E856FB2B130794F44C039C01DBECB2086F2B6B367603EEDC
-2025844C5F492CE76052B2B6D69F805BEB62C5539DDB1CD5D861CE15E1200B25
-ED83F8D7CB26C3401BC30CBD2AE8CF0221FAE4B1884FC4CBC1F0ED39ABB25593
-957FE70694E6AF2FD8748AA4396DF453B587C6A31522A6F52F1E9DC1953EA4E0
-A2D0689DE808E32BD30D1D7DDEE920D1F5B859B8381F7AC8C543DE6C0A477F6C
-7D27AA483A9ECF4EB9BB2A455C664538B9D7B6D7EB3BCBC7825BE1C0B3541572
-429E73EE263BBAD84659F47EA900CE69F8F5174AAA951A8B710B86F7D1648CC4
-D16587DC76196A5391062DC4EDEA970590722EF6C40E1BDB1282A7B6BF4FEBD0
-313257B86A5573E362D0BF6480703F27613B787B0A939737252B558E22FB3F07
-E3D41D0DE9FE12B2FB8E38F9968C3A542579CA6C36943A162164EA3B27748D75
-354223F4AA01E2FED87A70C8C2A099B1EB1601AD93A025B58658CCC3C5E1E104
-CB33771CC91BFCBDE5F90BEC75BBAABBF5FAB63FD631086FE97CD3654A5415D5
-13B9EF1C38B243EB96B27146EEA7CDC8E17C74676F43BCA3D0FA31A576581C2C
-1F232E73DF1544DA33AB3D45654D54C890025CC17E33989E875FAABE340CE6FF
-F5F5C5844D37F5B38BE18F29ECC4E390AD9BD270F9B6368FB038D9A9D9168BB0
-0BC3D6156AD8D4099EE878A762B7D725093DBA56C9D6B88152BEADFD7D0AB6E1
-D14B487A609D37BB815280A5F5EBD105E6AD2773D00CF996BC39C4965E08791E
-CDF69FB205A8EE0CEAD9145DAFA7A2B028395D938AFDFFEF2EE37FCA8A948216
-B85AC1B885D4AA9A6AC8203CAAA7716573D061407DD2B1DDF1CD6026EFDBC1D3
-61B5C61371A248DBE267CDAAD1F0CF3E66BA16CC47A41CB5C49DDBEE015CA0B1
-7B2D0201374A35EB3EE70EAEEE44078DC8CE4F516DDEF10A61F500DFFC8C02C1
-337E2DA9EDD7F3FF4937D0999572E6BFFF9FA3F2FDB01308DE7D6FB8D0A67E00
-F4284882F2043063C03DE5CA05F97A36260FEB8C4BE95DE9F2DF7D2CA572DB0D
-478BCA15D32BD8A95109DB5F92B318AB831168A4150A437679076D7CFE5EACCC
-14E866A65FEB2EBCBE51E792F5A644BDC6AB9F1F576077F718D29BB7DE82B829
-B0DCE337CA18225E470E412E1FDB18CE8BEF93F26AEFC1C6073E0A1173CD5E83
-89A72C279856E4FD31837BA43B603A28D71D427BBCA52207220EC3E14234E7E7
-F3F1172B3998887BBF98C4E3D3B1B01A33387340CDDAD0CBB223B58BE51B027F
-9795CA7142F703264069FCE544AAD50B2F2E8EB5A1B7330B31409A873FE3A1EB
-8C22C80BB164AD35EB68A1B20DB47DC61B0AA72694B10904C9FF8B890B096EA1
-7DFA7B09D784BF68D70DBFBE84568B4A62FAB8BA46748420CA6CE88FAB584A40
-D0A153513AE867F772284B966D4BC5FB7128184F55BEF9AAE0D61402AF14E1FA
-F59D22F240C60AAD06BE5E1C77D29A072AC5C0AE669053AB5B1C5A2A45A624D9
-0AF27A204DB9269F9D1FBDAD38C66EEFFA2D1F2C773754A8C47A5665F0D8D020
-05E6AEF66E79A14E5850D79DD6A0E46F1115D8E2842698BC
+0A2AC142089A891607B075019E60BBC5CDB1AB6E31DFECD6500C6E40074023DB
+11474C87E51DC00983F99863097050A7E428E3BA47F9E40C9EF1B5F0590217A0
+A9DB1CAD41A5D420F20BC2AFF0A25BBEA832C3128628C241DF5FE78884C6ADDC
+E617893C14876F6330D6951DD113F3C4F8678EB201A60F4D9C07A3E29D763741
+10751577429E325609A544F60D83D0FD5D44990D5ED78A02BDB2467C8815F792
+804C8C32AF13EA9476679DDC9504C39846228B064450180C894451A8D43597EA
+50C94125A083C5A0F2E38E993B049C75AE05949B5B09DCCE5EED7C91601BD79A
+EA08883D8AA2D08C9D5E296AFD13383B457231E8797E5F8C73D0D56A1F7E1ACD
+3A1C48486E9CC4DF715366FAFC79A197595F18B60FC89EB02C9B8136131137AB
+222A517CD5F5797D6A65BE553168878325162072BA5D719F3510639FDBCBB448
+5DFA0B1774CFA961558A0A72D139AF0D5B42EF7897F697CB5942DB7B2FCCDB9D
+71472A56B663D2E55A7263E24137165D2F917DCABF63814C818CDE0B03B6E961
+9F220CA7EC58283B36F3B7AC37F415FDD00C248DECE7E9B57B07D0DC7A106C69
+55BD5F726687151CE743BA4703F19721E773F3BF02E67130F273D35DCF38642F
+919D3D0CC9434EBE1126FFED9D7D3DF75B2BBE10CD30D8B8C0903CD1FE3ABBB8
+BC90B87AC4478CD688616E797B2DBEE120183ED696226DA703C0CA001BE9D46B
+B306E7F7F63BED6FC610B8A89B00A5A95701FCC80D83C50874EE764B7C487097
+DBBB0146746FFE1CBFCF7D7195F08231FB46755C1DF964C7CCD803E7E69722F6
+9D5B3CC4890090A74AB2121E464354F724AB7D39E8DC2234DDA3674EF0695148
+63176CEB812F168A0A7498C96AF70A1A7FE2769A3E725883D789ACC8C71D0278
+CF3538E7AF786E5F241B9F91FB0604DD3EB2E444F548F5248F65DF7D175A0343
+DEB9AFE845F8975DA301F1A4C4CFEE3234AED965B423E4D203C9CA88AA967195
+B23B4CD359F7F4AD551BC2564E677FBBAB954D0C3EE386139F7F5A4B1DCF7FC7
+7230BCF476051638B337BCC8F5A9145AF38D4987A65FD5A7E8301F4B8D06F9E5
+B26EBA34CDB951F14C7B0BE1CFAB8098F64D529F70B452492A1B29E03AA1D0FA
+B54AA53EDD3EE3F74E230CABB2B94FEBE4913EF0A30E0C4F27A7E29FFE700BBE
+D43233DA1A0E4A32B0EEBC1B2F9FB7F6885992E21BD1BE5D912F282B0FCF1EFE
+62013C4B5C1CE5B8AE189B28747FD30961A3FB1C58C700C9119E592B7F52E24A
+F9AB44BA92AB05E2CA9CA2C443CC9E7E0165D8345BD37D961D945027E01DDEB1
+1DBB608A3A7995A9E99ADC90970D7F4EC02EDCB7D32AB877BF4797F38CE514F2
+C7F43965C3135FCBB4D8A986E119C562E6973942ADE968B09A36DBC5391321AE
+97265D39A7B7EE00ACD0661D426EA4E5E8114D65587170C73D3559258A172128
+5CA211EC04137A6227810826C10E676E9595F9880C0DAE45050EBA9FD950A591
+16A39911D102EC836D067418E3FE7B361BA40987B660717E4CCF43CBCF5D3668
+6AFE35386A12B9992F9EF7CE7A326A8C02EB51E90837A75A0B781DA6516F96AF
+F7BCC0503C01FF3C7DD5B574307D454E664CE49E37E01EDB9BAE51D41BAC615F
+08590D7A5CCD633E8EB051D8A4C066F0D63CBE9D2A0A38CF97401B541668661C
+7ABECADEE4BCBDEA822919196BF14DCFF9CD143FE5ECEE374907F17ABE47AD79
+B88BD1B6D6A8DDD56A95A2DAD1B2D3C45D19389F9CAAC36CB03641BB8CAB7C93
+69F7418CE2956990036E3A8BB0E48FADB3B56D08EBB536E3A2D176159DEBF462
+295F700F66A6917DD457589CCE6B33F498859C33E35F2D46336776BB31686529
+B303BA134073508E67ED9FCC2023873B21EE627CD2DFB6F4EBCCA944C3AD2B92
+4F9411C31ABE2FBC265D09AC7315F74D393AF906055A304AD1636A5CD22D2684
+83BE15E9A035804414CC68914F260510A30219E72F1C4D63363FE03C220A44BE
+90009E869C2DA6D639759EC8436096B593A917B3B604271F75C6941DC839EFA3
+0B9A58F85E67EBBD0895EF6BEA57CD716017EC0BCF009D27434156CD86F0B768
+175571C451520F4AA26BD45AF025C230BB98A9350407BE5C1F1C71F83517E580
+7F3A2542F4D6DFB5BA77D93116800A66D29B916F2FC78042068D44A8D6620DCE
+97A64BF9A7A488CBF302A6F0173EF1350FBBD46E307FA637AF4600D643372835
+04F98F008F3DBDF3D584D936FC268B799340D8647F0262B3C9DCE41687A8CC27
+0D6B2DD19FCB4E3AE162CC44390DF0D2A6A3BFD0DD5156B5ED3C031A371A24D4
+4DA4CB9B961C5447242055FA6CF13F67C155E6F36215628736704094836F03CF
+1D2823E43F30B68B4C0A95EDE5356C2654F9782FF4CAB180ED7B362914F4882A
+F765062AE02E2AB49E3FA86FBCC730849CE306949294893D2CF06DE88A7776E7
+ED162FAA07057BC0C1F5FC70326B2884A5E4685505E19DA512EE2C90EF91D7C0
+13F41B468ABDD40FA91430DE8289D65ACECF7BB7A4162949AEF4BCFB5B329542
+31F35AECE5E5641E9217BFCF742B8B908D54431CD98DFF97989F901C114984FA
+0B2726174AB60C6415A71CC1373AEE18D5A29C34C66E8822C2C298E912F2E217
+44B52FBD94B98CC6BD235322BCB219185B4273195271FD3DD5625D9483069494
+526694DD7B5632E9FBE1E6C71D50781FC5E4C578579CBF97288A9E92D84B6C5D
+055EBE77F09EF26329C9D687E89F7307650AF8E45713B65CB92C6C356EC62F33
+DCA398238DED9E66283D790346C019900C3EC090F97A9153F5E1BA5460B5E4C7
+52C9C90BE107B5341621E6D3BB7EB0F2AC3D11595F8F6DEAD3B9310B9F706A3E
+A3CD958623CC42ABE4E8BA63E102D56838503B608D5DFD3DF3BEC35C7157576F
+AF584C90AEB1012890559BAE9C90E3935CC1EA4E913FFEA421ECD35AA6F6C089
+82078877FD89A115C98F61E0999ED37FE634B710854AFE360201E858FC4F10B4
+9F3887390A579E01928F8C5AD522DA87167E6F1D2153A48397D23A9803F08478
+AD3ABCAAB2ADA02F36C06FA7B262AD0BD026E6500FA6600D71BEE0A365DDBA7D
+71A812EBBB71766909A02AE6DE30A9EC76F56E17D811B2EF177CF3537F1A4CCD
+5D39BA029F063080AC2ABF0D9EE11BD2593E3D637DC34D4E815BD6664FEA4969
+8F5E128D85484125F78AB2E16BB78E605A389377EC9E1876E5028830360F668C
+C77F377D1854ADA97454DBF45CBD2F10DBC4E9C6B29AA8A875B2012441653008
+F5EB97CA0AB351859499FD9F5ABA5464D1BF21CD3D3C1277F8B9796D98BF4CDA
+C045E7E674DC7B472D05ACF65FDE581C93A0B213C8EB8163957F28627EF14A72
+6049530168A4E11D2B7F4FD9391130007C67C4792CA94A72B8ABA43CB4B708CF
+DD0C96BE177380FDEE3E46DD584FA820C67463CD4031CE04652993FF3DBA19D1
+D0A520FD0E52DD5BE265CBADED20CE377F90F876998006F67AEDD30E3E8CAB3D
+4B2518556A99AA4FFABBB1E6ACCBEEDBAE2BC1DBE9D8292AEDB8E3F103DBF748
+D9E0C6C3F0A4A203DE481A462379216B3CCA465A41D0B9B5090206D797D3A3EA
+6E750E5C13F6DDFFF42CA7F046DB5699AA2209A038519F515B4886AFF04FF03C
+1DB46BCE65DBA0C4352D85F88E4AF74FC376B8476F610846100AC2A5C1CDB880
+A959EB2E020529E3C8456CDF94C36581409E8E1789B2B45AFB8FB541D431A748
+35443C33F1E4191B71A3996F53B98722DBF5E30717629EA737E4EB1F7F3A0F7A
+C0879729840AE4C830E3A2CC3ADD62C1145BF535D121E3875F12228B90561B82
+EB2CDB4F8BBF201769BBFDAAED00E9CFE295023034AADC12C217B0100CE8055A
+8D2DB665537FEBACD5BCD69D50F72DC60BE0DDC9AAF703C8041A3353DBB0244C
+A8488514C101E4D662D394A84C5B9048F2EEFF7931A3BDEA5DA02F3C4D564F1E
+73DDC5FE2CD57134C1DB9468A2DC585717F65E68CA931CC16F0F7887D2BF2375
+FD28B4C0D900692E944BF5710273E30138F4775422955D09B22B738142A37FCD
+83ACFD05B6AE9D17C673B24855F74FE10844B5ED73C25221623FCCDFED42D395
+DD426D6EAF323A54510021065F91B6248E1D8B0F466E3BE65C203FA87F98A297
+E5A95829A4E0A910FEAACD69F6FA81A9AB404778AE7C3BA4DAECDE05C1F86749
+66BB8107BA7F1AB76CA04C8C00262F0735ECB6D815C7B2AD937BB50275E1617F
+01F89AC79015E809211847CACEDAD713FED01470469311C9F6AA26EDA3021D7B
+A1C9E4E0F3D073B66BD9C3FBCB6B97FB5C48991C14F8459AAFFAEF73F83F4074
+96D705FABBFF885B801AEF577C84BADF4AC26B30A94B8C54B1229E666BD2FF2C
+A17D7743EAB5AD6E1C2A38BD2A7FED4300A81D982633440A01C55331895BC45B
+4B9DC7C0F43FBE75C02BE6ED47836EB92D7B6332D9867DBEB2F015C5A0F3F522
+20E262070FD52EE2BB71BEE7B0113B1FC80054ABBF13A376849751AE61ADF535
+4B95D1BD84934DDCA41015CD6BB80C324AE8B2772B073C437714B2CE80E11F2B
+76DB0DB35372C642AE7BC605B52C844F088CC468FCB9CFB13C6A4DA589049160
+2E1174520BD195FFEF8EB36EE6CF7C7138ACD19BA70CD00E7C6A18E0E0BF7C81
+295CE640135318682A1A4285C68B52DF7F950CE1BD26F6A5A51BF6C6766D2E66
+423B44BA965BBF34AD26D5A0F284B9D9E275AC18D80112EE8AEDBF5E2A6A58C2
+937E25BD76655873F1863056E3AE2325CE6F463D89A6178E3FF77351470579EA
+3BC3F74D30EE32192FBF71756BACC7E5BC8CA579247276A109093DA0F830A790
+9A3671B00269E0D361D7D08A09920B895D1F89346FF161A125E5892DBCC7F52A
+2848001F31BAB732EB4E00C976320F04088D0204434C9230B3D2D276A3481389
+49CC6E3FA168E4157858C7C6B50A8773F7F7625104C19AD63F2DA9503DA5ADB8
+8F8808FA9BC76E2FAA41B2A3BE135390C866A8B822C6E0AF049D82498FE60CEE
+529477538C36578BAA7C843BC8FC8659A1F685EF19BA5D5DC53167092562EA73
+BA7FE5D104E616DFDFA9331F7D6C9109FE513CD31940D87D0382E7157CF171E4
+A9236D5250DE6BCF0F246C5680A8D92791CA155AE942C1D8A77A9DCD88CF49B3
+663E993B0B1389DF2DE4420F29C0EC1FBED031486AE43137C68D3CB178B44D4B
+B181F63B11D2A21DE4A1E748C530CD046643BA951A81B3C0A5D78F53DE84D930
+033793C346BF6F1534037CC10E4468D0E359D6EC741C09E4A6EA4D8CEC41F846
+81CB64FAC81C877FC43DB4D00BE2D0EB06A80BAF795333376EB46FB942D38E90
+F3EE4A987EF66419E7989984ED8B36E9D936FDAF433D1A26DBFD21E69D37117B
+12426FE996620C50B0CE91BE8814410442FFB26273FC1F2C1FF4C9CFD3CDB6B8
+789B5DAD9E9E95474160F8F293F2D70ED25850C6EB5890D6BCED0B92B197C3A3
+431F2098DAB97889705FF519F48284CE07ADE6E6B2935BEE3BE6143EFF691949
+17BABBCA7B31E6F671DE31E5EF9B63C4C655460FFE6EE62852945BB1138052CA
+35CF43563ECA3587FD9F8290DFC9AB53D599428841AE1C67B22CFDA355FE092C
+252048396D0CABA7154EE336D1F021F4C0CC7C3EF47C33407D8F64741642DCDF
+C9B4C3B90A8AA883A327B95164F17A73F8BFF93F9C9BC8CA3075AF420D4A68A4
+CCA219B3D3BC5AA25486046277CEE16F512132FAE2D02CFDDCAA396083AF0B89
+591C79C211F90E5AB011E52B36827C7D3DFFDAAE45E196F3A37C0254B076E857
+5ACBF02204E8B1E01FA474C2CE29F8FF4B58E4A9DBADA84ADEC02749830CCCC4
+2ECB73AEACD6481FF0039067C298760A48C561AA968666F012037DA102DC4B7E
+450DB77AB426236601E8B53FC2D483FE9C47C8C645539B41D84C837E1875BBBD
+963D87D00BCD894434C466F39F7CF2F1CD1DF157A8F096FEE3B05E250290C74D
+8683F09F2CC02DC1B61149332E829494EB03469353948AC5AD5D84F04B4A6BFC
+C48A9455D3DBEC6F970E72A4F1BAE25D729B32280A43D16E0D780DA82518F0CD
+D7FC7FDBF93310A5C1B9CA867B436CB37DC30328966F8E6D85CC3BEE3ACAAFBB
+7AD796D617A6B480DCB507A605FD1347A693FF85C5DE7E864694EAB70D92FE56
+2E5BD7D673F3CD0D83F64192AA679CC947AD12FFC7026C7082AED8441A1A4008
+1761C4F442D8366B9505301526445E821C9713B00D6462E0D1236A363B9A143D
+5755999AA3254174F5401F03592133E2924D4994A97A620AE2A307BEDB04D9DA
+92D617AA7E1DC41B9F486196F85B0F9D4C26F4D67D74A3F8BE6A5E05F302E15C
+0D74CF24E14C4BB5625501A6863B1EE19032C3A28B07899B21E0A8DF706EA672
+D9DD51A2F5027A99E2B58E626FBF060BF25200B484060450ACF9C64318A86F69
+990ADC813C1EAAA76830206527AB4240EF28F04D538E98E31AD943D8B155ECCD
+98C39C82D7E43481202EF89CD4F871D3C997BA62B8DDF0CD885A6576CF1FC080
+412A9B9BF9FFCBB8DE22D63F6DDB9841ED350AA719EDA87A18DF0E776660023F
+FEAD68C95A159E5CE4731AA7FEF11A62FEF73CF850142CA18B29FD4981B2B461
+AEE5B1ECB409E9CEAB2F2A83940E79FA805E71646A48C120FF056D978F9D931F
+D5CA93F27B4855E6ED4D7121A56B90D9463EC6F9B76F4A262313A08E76BEA626
+3D33C83EA3262C03B5ED7B4C10F687E88F3FFE3B5F3BAF16F25003A21432826E
+D1C17D67172C5BD9B1D5E3DCAC4C14E0BE2D194F2D42DE37659C704C518E749A
+77E1AD2B11CAA8514791C9AD8DB8FBA16905349A0C8A176620C23342F68E8E27
+3880EBDBCA5F32FAEE3680092934BC7243500E2DE3A22DD325246F39ABA0F354
+36289AB53D71B147C85088703C683C1D96F47EA244E8513814769A7B30D52CF8
+49C9DCE11E912F7BFF5CFD25BAC588E476C76B5064D528381C6882CB3BA73A8E
+C1E605B14304D5BD1A755DEFE9C4D6D5100C1B810C622DF4990C4CFF82187FCA
+8CE5A717B266D35EEA7C2719E3AA0829704B3FDC4B0DCFA34E1EEBFB9B8BCAFD
+7036015D1D26573C8DD513B8E617746F89E6C890D11721AA61419CC3A3D256B6
+47E79645560AE6FBC56725850C60D68ABF8FF3514AAFE242CE44EF87F851E991
+C525AE6E8CCD5D2FD7E091972E688B826CCE918852E4FBF9DCA5AC377F7F0195
+8CCFA0A096C20318C5BA8628F1B3C553C1E0E083F24E22ADE00B2DB1C8439E8E
+F2138E45D8D6775B2910E50B91A04CB493A0E6E3F1A971ECC92E71F3E8F14DB8
+32CD332FB4C9D0C89CF1F1CCD77536DE9FA04DC3354910E3494B91659DACA558
+EC0F8CCFB7E0603570FD5CEE33FB603405D211B6C734BD2DC3378370B93087DD
+3EBD7184464B513DE3164CB0C10F5BF386D1308FB4AF8C26308C93ECAEA20C12
+D9716C8B29FC3367B36C77BA6F0B40B6220D70AA4C699FEBA3D9DA0655ECB2E8
+74CE90B53D74EDDECC270BD267886768DF920E850FBB196080512A0AE489D11C
+27D0DDC0DE1456EBE8376163C48ED8899E5C2BEF686464ED53277C764A1D8D80
+EC7812F2BA5B7E65349582CF436ABFF6249B4141EC6F21CD7CD4C1A23C8D017C
+DB296BF885E5B09B8EB36F9799E0355CAD64B60611D64001B91FF15FFCCEC35F
+4C4A4FF37124D8497F0508E52BA7C490F2481C833A8072A120ED280BC79336EE
+B03F07034E8EC04890779D7D222FDA4C4A282705B8A3E66BD5D96FABDCCFBD8C
+4F0B6AB3CB420978C2DECAB2D3CD19334396397432D8577CAB85D875E3ABEA8A
+51A1D8643619BAA52B7DD571939A2C327955DFC03F61527EC239E696E7C0B78E
+73A6D83EBF19244882785A3F582161D4492EE515C99623E0E0E3FCF6E38B4721
+7EB379E4491CE7343B593A8A266B83BE2A2277D5CC84335A776E658FF85D39C7
+9612211B3BC71E2B8D85474B18957807E746DA079887E28DECB9B3CE7E94669E
+EC25FF3035BBE99A7E2314FF4A8C4CEB5ECDDA4999B9B2500B46028A9B370B91
+61F6EE06F9E4C02EEA683FEE392659CDF283E39B61BFE99DCE8F30F5EC630067
+42D44AC6F7647AC4424E0C4964D8CA25CA6152364AD67638F2B7397413809F1E
+24F916933FA452A8683A953462BAC73128F890B07E9454FB4059D69B5851D744
+AB67E7C0A61414200E9813D685BC535D2B621F8C75F56014014D610FFC4C56FA
+06A81021A818D6D368EEDD862C9BB334F050F5502BC63CE2006DD12273746CB0
+4335C8E25C462E4DEF12DE2C80A2F25E81A04AE22205C8F61EE20636C2E1BA41
+00CE04BC0FE7A2128ED163112F69BDC089FBCD33545A412E24F1B885A315C1E2
+361FEBAC883956CFC4F9D2CA2998A8C882A678AE2F282C8E03AEDB9EB7D4F471
+55A5F118459A68150BCB2BD96FEA71221EAD5BE0B2CF5C80895F8CC2954A670B
+32BEFAA720634E28A6EC26B3F87C74AB7EE8812DA0D25444CA546A29CE234F7D
+09BE4F16D64B517D6DE603CCDDEEA0CBF3AA4E01EBC780B3481F8666B11B1C75
+C9EE8989EF359CAE9A3B90A20B946F6FB3E178A459BF425984666B617D9BE899
+1DFD5E21DDD66D2C064ED0FF7DE1307C3F0A720E0A97EE937B2ACD5518CFD8D1
+CB354D53E09E7F5576F456E0D48A5B17487FBF7418509B2E3B64C9B55282C9AF
+034233818D88FCC291FE5CDF13DC78D85AAE8892407AEE591B1E9AC0F54513FC
+BC04173FE429E9A56139B59EF1E68966418316B704C87F1E6A65B71776E90790
+6FA2275B1E008FAA1C24F1A81C96AE91620C54F48083A32C22DC34A4F3DB63AC
+39A3A61843C9D5F585AF29A534C5D81A4CDA1C29EDFCF2C85937206EB4CB1ADB
+B9616941A8E3F09E5CA686AC3C48D822A9D427C4A40ACC498E53A98704334CD6
+0570E591AF9C82168F3640BB70E1ACE1ED7DB6394603DC325CBD657A6333482F
+B53F47CE8207A268408B4C514C7BD1816C7E3B39262506597110CBF5B2C39863
+4272EFF639940302C2576A440B8D6D5D42DE3DE12F9A72DDB062805155DF7831
+18E426B79F4DAC9CD8A7A770CA7AD3CF6E980F1E3B970C9924E037F238A1D136
+EAB6923A8777D40C107AE9C94F6DF96C7906DC4D3F316517461AA237A4524E29
+044C718C69A97B882C85825DE80D2EF200A80C4ABED634374F207D96F86CD82E
+BE667AC443760263ABF558A985DB39268FBA2E269F8C2FD530EDBAE11F8B675F
+04002CC02F06FA8F0DD337CA95BBE3900CEC3FC4A779CC786E75519021848414
+C627B78999A01E4F1DD583A59F5C214B0237CCAFC61AC72FF1EEBA89290919B1
+5A45EF986EA5BBADFD24A349ED6A045519F74A5E562088FCD777DF45C6FB3453
+E4D353C5743FFE7081E04325E7EDA574DD56F297527EF7DABEB9F743EAB4F519
+600668E4454EA430D311BA1FA97D1C14DD3404B460C0F409C3E39CF779AB4F1D
+17B67BC88081D452039777E5D8D47D77D324EA364FEBE33D7B1A08828CD8FB05
+3DE0ED55F3E530AF1633E458852B735929381835DC00DFEE3D300F52896E5079
+7297820CD077E2F0E0ED088584EB67E64C99A62CC8AE9A9B3F5253E81A4BC631
+BF7332968C6C2CEE6ED5A3F1D2E1DB8D362A7B09BEB329B43716CFD997BA30D1
+074821847E87737B51490856228FFF070B7FC27DF6C18CECD5FC2FD568723BC2
+E9620AA94742606023A015F445B9B3BC89B5AF91962C4E659B2CAE981E4637D9
+5B5D074474973DBEDB804148DAEB0CFF939C282918A219726227BFEF91EFE98E
+F274D8A8A0E32EF7301BAE01A83E7FDBEEF87D87BCCEA23BA55F4DCE15F0E05F
+0EC406A4CD62E867A7CA57DD3D019BA08780F859EE584313D9240A8C3ED2BAE6
+9D5AB6B07424651AF5ADE40A7673DC5B3FDA0CD476DB9BE966E696F914D22014
+F46330ABB20E75EB0DB3A5A727CE54E08B44842F2787CF6BBCB7AB230EB5436E
+08B1D0D9F60572CACEA793A91F90C836F83E022F3C8D648839C630CDA27E74AD
+8A91F120882446E4AF11C73D525EDE5C005649A880FDE689467CB09A642EA5B8
+3C0DC11578DAD76E7017B88CFB546A081762C963DA2480430071D8A123DCD6D8
+A350B33C66E11B08E6B62CAB222D160E6C48776913331628DE5F0710F87B1C22
+C77F2D888F5C01BFF9879441A81CB7992A2BC042013008BE382206D45DB802BF
+BABFCA10AACD0E4FED2E035179BA5134073C1010226DEAF9DEDC976F0C524625
+4C4ED71C9F114B381AF4371A8E95352B648CA9F681978A49093A6C40E338CF75
+49F7998CFDC29670BAAE16189D6635A80B6793AB9186B66B8814BEF45B359F41
+EB3F7AA1E75D8D91373EB23CAC6E9A2C69F153AE238C6DCB7A4A4326099572D1
+AAE06D49343427770F37ED208FE983DFFDD3C7E32E0E9281578E115ABAA0EDE2
+0291B95A050B24D486D5F2CDB12F615AAE8C56C6D07DD22FF592BFCAE7A01E67
+333F90B0F07751621B32913A2DB059CC00F537425EA4EEDB491E595EF709B414
+7634D80E767BAF9FEBC1FC41D0FB3F5D162F66311F416A93BA6301ABB5AC7173
+7CBBA52D93D5031D1B7F2BB8595FA1C84E440D99BBA7E8EAC149DFF18C7049DA
+2788E3F847DC10DD9439C584D0446309206AC1C1D2A172BE0A6C5D8C5C0DC137
+CF56300F4156F86A1F4D502A0001BCFE8E82AA4212FF2864B1E081B3504C9ED3
+A508FFDB26EBEA894C33CE7B4FEC09F475F585B2E61599B4FCF4EFCC08B48CDF
+D2BEC7557520C0DC7A69A74CBC4C765025ACB960C010986BC5E2A96F5DEE58F7
+D05BB869712E6E66AEBFDCF2F90530B4262FE620D9F8D66B352A529488C005BA
+C3144B6A47053E9975DCBA568BB914F6FEB4E1804D2D99C56FACE488C8ECBF90
+BED15297E72E45A12C2D7D2A9D072B11EF324C6B5115076928B694E39E50C386
+F11C687EFADDB68C57AA29E3064CC387ACD573B2F29D27746F169902D3957EE1
+A02EC362C66754EFDA5A4644559536D3FC592F158C77B50708E74507A8AE6324
+3023BB7C93882B2675D612ACA1198C3B2813BA6E04AF30C98F3C0CDD9C63DEC1
+D0E9AC3764C872EE8D7D525F8AF36BDAA0B0CC112D2B46FF2EE95EA351321B94
+93BB28CD9BB63AC0841EB3070A33A016E1D6C87A55057118D14F7F53E18EAB1C
+09D22FBC1FA42CC6C7975E4FB0268944EE843E4A90D7F0AA228F0BE55B42EBD3
+EC32E11924F5D9742BE8E7A803FB25CD75DE330AC140601ACED8B1452BF8B2B4
+C55AFEF142AF8CCB3F394E5859EA994E3ABFF4C77871DC8668E47C858C35770B
+D9BC3BE31CD67C6B5E607F6DFFDC7EE338711C98C2A30AC2B612089CDE630E04
+A73B07518B9EA8A3AA324B6AEF0E5D7612DBE06BF7DE4A55796DAB2C81CFE23D
+0132797108BBB0193CE77D91DA6B48E951338E1E0DE6054FBD1A4FCAD95479DD
+2DFBFE923FB7A3B06B7085793C165A20D79BF09BE800B2ED7FBF43436EE7676C
+FD2EE1495E13D572912BE7C2379C8D1E7DA4A6A2EF9FE33AA14A75377A356DEC
+6AF1106AA3D780D1A99DD2E0CC66CCEBB8CA3CC418DE0A267E8E5D34EE925E2F
+827461088DB60E0D56BBD217D9E0C3D2B591CC60468A3F7A5A6D49FD8F64DD46
+BAC6215C2E56E67A10F69219E1C8A09DED4A745CD53E5748A7C2B57FCEFDE598
+A026E280A1E5767ECBD3A3ECC41D52232674BE60A3A8BB6FF9EE627AA4B2CC24
+9474949DAEA29AB9586836860AE1FFB4AADC75B0760015C86FE32F49F26FF44C
+C03D4BD3CDE93C57329410FA84900B19338CAC1C55B507A6B130EEFFB01A5E44
+0E3E133C17A0AA4ADF837C5D6CE284D053DCBB3C03F59C5C9BB80C0C4BEA25B6
+5FD00C833BDAEC0A4607285DEFBBC7D3A6A100E8D6453115233D76CA2C132D31
+A3A3FEA39606F68F0AC10CFD4F5701C4B2A7B6848C77A903BDA77904D038A1C5
+6014E31F975CF627D67B0D3F3AAEE72D32EA80709CF712A6EB46E508177AFA03
+F275DA9768CD589CB298322B0BF50B578E9E4B58989DDE12CBAAAEB7E36655C2
+842F5C7FC004B8B8516D8CD35543F3D2182DACC5EE8750A0CAB151C6EED04063
+71B111101991BABA8B86E9F6F718B9ED1E69D91EEB503C6AE45B661C8CA8B1CB
+20A9C01764DC4CC575C636B84755614BBFC242A5865469F87FF4F97A43B5A651
+B2DAF746AA69FA6B9CFC9FF4A2590DA2D23BEF1EA97DE3FF48A0A23369B90395
+0DFD36B3C7A992CDC1E49F42DE7C37CDEEC35A7AF8CADC2CA0BBB01895613E03
+9C157B1683F1421F74B08184D56DEFCA72132550C6C1061B36769DBD39EC22CF
+238641C90BB9510D564C0AB202205358CE42CDA4723E5506BF5A274236A6E9E4
+DD21C0FC9FE57974FCABC6C808856B5F837AF759863BEF5BB381E2A729C6C4DE
+2F53DD2DC92BAEAD141FD5FFE341E0FD5AEE566E2E1C6A44E94071DA0C3D4F57
+07B02D120D95B21086CC12F33FC4D0C7C8B6147928A00339324024F787193073
+13DD96DBC559F2339FB51C6123A3C51C70B7676B39255F589A80747491320833
+0FD6685904C70A865AABFCBB7F5E351BEF3B535D00403E1B5C4C64E8DE7061DC
+A1D9D4AE825BFEE090412772E057A13FCD3A897FDE348FD50E50C620C89461B8
+BE07B057B796B16E06CD314943153935D91152BC6E331DA67D73524ED7548385
+0F087BB2F0023532B945ECC61B6E3075FCDAA3ABBF945B64AADA7213C590A9B5
+11D068C9183BC0D2238DB3844BB4C7596E00BF6A67B6BDA2F85D5D603B80035B
+5DF1EC6C3570609A972B752550C89C34B8E14BD1E0A030303D9015EBC9114F57
+2899C129E72055B92DF22636EC479B03277E3E60DCAD36EB35CC3898C056C72D
+B58CCC6FCE3B2FFDCF560E130B196BC278224FD4901DD2F2F753494FFF4AAD61
+002715D828FCC2B6BA8794D843C1144231E818579B305AB9022AD279E0514068
+F4330A1C2C2C3FBDD150098C5B7DED6374D6B45CDBB7C88C78343959CC260B39
+986001C07720E3B745CAAFF84F858CF3AC4440B592D5A83BD96FB5980286CCB3
+6EDA47D11381FEE3F3CAEFB2D6E35F2B896DA68E8567D9327FB956733DA2896D
+1A63B1FB168529BE23A7D04607085DA1596BA1858B1A07F3F37A233D2E81D599
+82D885596BD3D041DBB2F3972CF605C0FD781C1360B368B49C4E41D2BF45FC3B
+15460C0D9AFB5BDBC87FEE463493E471DB54CFC064DBAF00EB126DEE19C58319
+71E77AFADB3B1256673E0B9226177A6161133FB030F063FA67C6
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -5072,37 +5067,38 @@ TeXDict begin 40258431 52099146 1000 600 600 (rluserman.dvi)
rf /Fd 134[65 65 1[65 68 48 48 50 1[68 61 68 102 34 65
1[34 68 61 37 56 68 55 68 60 7[93 4[85 68 92 3[96 116
74 96 1[46 96 1[77 81 1[89 87 93 8[61 61 61 61 61 61
-61 61 2[34 46[{}46 109.091 /CMBX12 rf /Fe 134[48 48 66
-1[51 35 36 36 48 51 45 51 76 25 48 1[25 51 45 28 40 1[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 45[{}41 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 3[48
-48 48 48 48 48 48 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
+61 61 2[34 46[{}46 109.091 /CMBX12 rf /Fe 133[40 48 48
+66 1[51 35 36 36 48 51 45 51 76 25 48 1[25 51 45 28 40
+1[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 45[{}42 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
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
@@ -5118,21 +5114,21 @@ 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(6.3,)i(for)e Fn(Readline)e(Library)h Fo(V)-8 b(ersion)31
-b(6.3.)3218 1623 y(Jan)m(uary)f(2014)150 4935 y Fm(Chet)45
+b(7.0,)i(for)e Fn(Readline)e(Library)h Fo(V)-8 b(ersion)31
+b(7.0.)3367 1623 y(July)f(2016)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)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(6.3,)150 4523 y(6)e(Jan)m(uary)f(2014\),)42
-b(a)c(library)f(whic)m(h)h(aids)f(in)h(the)g(consistency)g(of)g(user)f
-(in)m(terface)i(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
+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(7.0,)h(16)150 4523 y(July)25
+b(2016\),)j(a)e(library)f(whic)m(h)f(aids)i(in)f(the)g(consistency)h
+(of)f(user)g(in)m(terface)i(across)e(discrete)h(programs)150
+4633 y(whic)m(h)k(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{2014)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+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
@@ -5147,93 +5143,91 @@ b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390
b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end
%%Page: -1 3
TeXDict begin -1 2 bop 3725 -116 a Fo(i)150 299 y Fk(T)-13
-b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y Fm(1)135 b(Command)45
-b(Line)g(Editing)35 b Fj(:)20 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)79
-b Fm(1)275 778 y Fo(1.1)92 b(In)m(tro)s(duction)30 b(to)h(Line)f
-(Editing)9 b 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(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)39 b Fo(1)275 888 y(1.2)92 b(Readline)31
-b(In)m(teraction)11 b Fi(:)16 b(:)g(:)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(:)f(:)41
-b Fo(1)399 997 y(1.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)9
-b Fi(:)17 b(:)e(:)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(:)40 b Fo(1)399 1107 y(1.2.2)93 b(Readline)31 b(Mo)m(v)m(emen)m(t)i
-(Commands)10 b Fi(:)k(:)i(:)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(:)40
-b Fo(2)399 1216 y(1.2.3)93 b(Readline)31 b(Killing)g(Commands)21
-b Fi(:)15 b(:)g(:)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(:)52
-b Fo(2)399 1326 y(1.2.4)93 b(Readline)31 b(Argumen)m(ts)14
-b Fi(:)h(:)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(:)44 b Fo(3)399 1435 y(1.2.5)93 b(Searc)m(hing)31
-b(for)f(Commands)f(in)h(the)h(History)11 b Fi(:)16 b(:)g(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)42
-b Fo(3)275 1545 y(1.3)92 b(Readline)31 b(Init)f(File)c
-Fi(:)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(:)g(:)h(:)f(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)55 b
-Fo(4)399 1655 y(1.3.1)93 b(Readline)31 b(Init)f(File)i(Syn)m(tax)17
-b Fi(:)f(:)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(:)47
-b Fo(4)399 1764 y(1.3.2)93 b(Conditional)31 b(Init)f(Constructs)e
-Fi(:)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(:)58
-b Fo(11)399 1874 y(1.3.3)93 b(Sample)30 b(Init)g(File)14
-b Fi(:)j(:)e(:)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(:)44 b Fo(11)275 1983 y(1.4)92
-b(Bindable)30 b(Readline)h(Commands)14 b Fi(:)g(:)i(:)f(:)g(:)h(:)f(:)h
+b(able)53 b(of)h(Con)l(ten)l(ts)150 649 y Fm(1)135 b(Command)45
+b(Line)g(Editing)26 b Fj(:)20 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)39
+b Fm(1)275 786 y Fo(1.1)92 b(In)m(tro)s(duction)30 b(to)h(Line)f
+(Editing)17 b Fi(:)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(:)31 b Fo(1)275 896 y(1.2)92 b(Readline)31
+b(In)m(teraction)19 b Fi(:)e(:)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(:)h(:)f(:)g(:)h(:)f(:)h(:)32
+b Fo(1)399 1005 y(1.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)18
+b Fi(:)e(:)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
+(:)31 b Fo(1)399 1115 y(1.2.2)93 b(Readline)31 b(Mo)m(v)m(emen)m(t)i
+(Commands)18 b Fi(:)d(:)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(:)32
+b Fo(2)399 1225 y(1.2.3)93 b(Readline)31 b(Killing)g(Commands)10
+b Fi(:)k(:)h(:)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(:)23
+b Fo(2)399 1334 y(1.2.4)93 b(Readline)31 b(Argumen)m(ts)22
+b Fi(:)15 b(:)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(:)h(:)f(:)g(:)h(:)43 b Fo(14)399 2093 y(1.4.1)93
-b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)10 b Fi(:)17
-b(:)e(:)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(:)40
-b Fo(14)399 2203 y(1.4.2)93 b(Commands)29 b(F)-8 b(or)31
-b(Manipulating)g(The)f(History)20 b Fi(:)c(:)f(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)49 b Fo(14)399 2312 y(1.4.3)93
-b(Commands)29 b(F)-8 b(or)31 b(Changing)f(T)-8 b(ext)25
-b 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(:)h(:)53 b Fo(16)399
-2422 y(1.4.4)93 b(Killing)31 b(And)e(Y)-8 b(anking)26
-b 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(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)55 b Fo(17)399 2531 y(1.4.5)93 b(Sp)s(ecifying)30
-b(Numeric)g(Argumen)m(ts)19 b Fi(:)d(:)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(:)49
-b Fo(18)399 2641 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)14 b Fi(:)i(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)44
-b Fo(18)399 2751 y(1.4.7)93 b(Keyb)s(oard)29 b(Macros)23
-b Fi(:)17 b(:)e(:)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(:)53 b Fo(19)399 2860 y(1.4.8)93
-b(Some)30 b(Miscellaneous)j(Commands)26 b Fi(:)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(:)58 b Fo(19)275 2970 y(1.5)92 b(Readline)31 b(vi)f(Mo)s(de)22
-b Fi(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+h(:)f(:)h(:)f(:)g(:)36 b Fo(3)399 1444 y(1.2.5)93 b(Searc)m(hing)31
+b(for)f(Commands)f(in)h(the)h(History)20 b Fi(:)c(:)f(:)g(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)33
+b Fo(3)275 1553 y(1.3)92 b(Readline)31 b(Init)f(File)13
+b Fi(:)k(:)e(:)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(:)h(:)f(:)h(:)f(:)27
+b Fo(4)399 1663 y(1.3.1)93 b(Readline)31 b(Init)f(File)i(Syn)m(tax)26
+b Fi(:)15 b(:)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(:)h(:)f(:)52 b Fo(21)150
-3212 y Fm(App)t(endix)44 b(A)160 b(GNU)45 b(F)-11 b(ree)45
-b(Do)t(cumen)l(tation)h(License)446 3345 y Fj(:)20 b(:)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(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)h(:)f(:)h(:)f(:)72 b Fm(22)p eop end
+39 b Fo(4)399 1773 y(1.3.2)93 b(Conditional)31 b(Init)f(Constructs)16
+b Fi(:)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(:)29
+b Fo(12)399 1882 y(1.3.3)93 b(Sample)30 b(Init)g(File)22
+b Fi(:)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(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)35 b Fo(12)275 1992 y(1.4)92
+b(Bindable)30 b(Readline)h(Commands)22 b Fi(:)15 b(:)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(:)35 b Fo(16)399 2101
+y(1.4.1)93 b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)18
+b Fi(:)f(:)f(:)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
+(:)31 b Fo(16)399 2211 y(1.4.2)93 b(Commands)29 b(F)-8
+b(or)31 b(Manipulating)g(The)f(History)f Fi(:)15 b(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)41 b Fo(16)399
+2320 y(1.4.3)93 b(Commands)29 b(F)-8 b(or)31 b(Changing)f(T)-8
+b(ext)12 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(:)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
+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
+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
+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(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
%%Page: 1 4
-TeXDict begin 1 3 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(1)150 299 y Fk(1)80
-b(Command)54 b(Line)f(Editing)150 532 y Fo(This)30 b(c)m(hapter)h
+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
(describ)s(es)e(the)i(basic)g(features)f(of)h(the)f Fh(gnu)g
-Fo(command)h(line)f(editing)h(in)m(terface.)150 764 y
+Fo(command)h(line)f(editing)h(in)m(terface.)150 766 y
Fm(1.1)68 b(In)l(tro)t(duction)45 b(to)g(Line)h(Editing)150
-923 y Fo(The)30 b(follo)m(wing)i(paragraphs)d(describ)s(e)h(the)h
+925 y Fo(The)30 b(follo)m(wing)i(paragraphs)d(describ)s(e)h(the)h
(notation)g(used)f(to)h(represen)m(t)f(k)m(eystrok)m(es.)275
1058 y(The)35 b(text)i Fg(C-k)f Fo(is)g(read)g(as)h(`Con)m(trol-K')g
(and)f(describ)s(es)f(the)h(c)m(haracter)i(pro)s(duced)d(when)g(the)h
-Fn(k)150 1167 y Fo(k)m(ey)31 b(is)g(pressed)e(while)h(the)h(Con)m(trol)
+Fn(k)150 1168 y Fo(k)m(ey)31 b(is)g(pressed)e(while)h(the)h(Con)m(trol)
g(k)m(ey)g(is)g(depressed.)275 1301 y(The)g(text)i Fg(M-k)e
Fo(is)h(read)f(as)i(`Meta-K')g(and)f(describ)s(es)f(the)h(c)m(haracter)
h(pro)s(duced)e(when)f(the)i(Meta)150 1411 y(k)m(ey)i(\(if)f(y)m(ou)h
@@ -5248,58 +5242,58 @@ b(.)42 b(The)29 b Fn(ALT)g Fo(k)m(ey)i(on)150 1740 y(the)c(righ)m(t)h
(ma)m(y)g(also)g(b)s(e)f(con\014gured)f(to)i(w)m(ork)f(as)h(a)f(Meta)i
(k)m(ey)f(or)f(ma)m(y)h(b)s(e)e(con\014gured)h(as)g(some)h(other)150
1849 y(mo)s(di\014er,)i(suc)m(h)g(as)g(a)h(Comp)s(ose)f(k)m(ey)h(for)f
-(t)m(yping)h(accen)m(ted)h(c)m(haracters.)275 1984 y(If)23
+(t)m(yping)h(accen)m(ted)h(c)m(haracters.)275 1983 y(If)23
b(y)m(ou)i(do)f(not)h(ha)m(v)m(e)h(a)f(Meta)g(or)g Fn(ALT)e
Fo(k)m(ey)-8 b(,)27 b(or)e(another)f(k)m(ey)i(w)m(orking)e(as)h(a)g
-(Meta)h(k)m(ey)-8 b(,)27 b(the)d(iden)m(tical)150 2093
+(Meta)h(k)m(ey)-8 b(,)27 b(the)d(iden)m(tical)150 2092
y(k)m(eystrok)m(e)30 b(can)f(b)s(e)f(generated)h(b)m(y)g(t)m(yping)g
Fn(ESC)e Ff(\014rst)p Fo(,)j(and)e(then)g(t)m(yping)h
Fn(k)p Fo(.)40 b(Either)28 b(pro)s(cess)g(is)g(kno)m(wn)150
-2203 y(as)j Fe(metafying)39 b Fo(the)30 b Fn(k)g Fo(k)m(ey)-8
-b(.)275 2337 y(The)39 b(text)j Fg(M-C-k)d Fo(is)h(read)g(as)h
+2202 y(as)j Fe(metafying)39 b Fo(the)30 b Fn(k)g Fo(k)m(ey)-8
+b(.)275 2335 y(The)39 b(text)j Fg(M-C-k)d Fo(is)h(read)g(as)h
(`Meta-Con)m(trol-k')j(and)39 b(describ)s(es)h(the)g(c)m(haracter)i
-(pro)s(duced)d(b)m(y)150 2447 y Fe(metafying)g Fg(C-k)p
-Fo(.)275 2581 y(In)c(addition,)j(sev)m(eral)f(k)m(eys)g(ha)m(v)m(e)g
+(pro)s(duced)d(b)m(y)150 2445 y Fe(metafying)g Fg(C-k)p
+Fo(.)275 2578 y(In)c(addition,)j(sev)m(eral)f(k)m(eys)g(ha)m(v)m(e)g
(their)f(o)m(wn)g(names.)58 b(Sp)s(eci\014cally)-8 b(,)38
b Fn(DEL)p Fo(,)f Fn(ESC)p Fo(,)g Fn(LFD)p Fo(,)g Fn(SPC)p
-Fo(,)g Fn(RET)p Fo(,)150 2690 y(and)d Fn(TAB)f Fo(all)j(stand)e(for)g
+Fo(,)g Fn(RET)p Fo(,)150 2688 y(and)d Fn(TAB)f Fo(all)j(stand)e(for)g
(themselv)m(es)i(when)d(seen)i(in)f(this)g(text,)j(or)d(in)h(an)f(init)
-h(\014le)f(\(see)i(Section)f(1.3)150 2800 y([Readline)c(Init)e(File],)j
+h(\014le)f(\(see)i(Section)f(1.3)150 2797 y([Readline)c(Init)e(File],)j
(page)e(4\).)41 b(If)29 b(y)m(our)h(k)m(eyb)s(oard)f(lac)m(ks)i(a)f
Fn(LFD)f Fo(k)m(ey)-8 b(,)31 b(t)m(yping)g Fn(C-j)d Fo(will)i(pro)s
-(duce)f(the)150 2910 y(desired)h(c)m(haracter.)42 b(The)30
+(duce)f(the)150 2907 y(desired)h(c)m(haracter.)42 b(The)30
b Fn(RET)g Fo(k)m(ey)h(ma)m(y)g(b)s(e)e(lab)s(eled)i
Fn(Return)e Fo(or)h Fn(Enter)f Fo(on)h(some)h(k)m(eyb)s(oards.)150
-3142 y Fm(1.2)68 b(Readline)47 b(In)l(teraction)150 3301
+3145 y Fm(1.2)68 b(Readline)47 b(In)l(teraction)150 3305
y Fo(Often)32 b(during)g(an)g(in)m(teractiv)m(e)j(session)e(y)m(ou)g(t)
m(yp)s(e)g(in)f(a)h(long)g(line)g(of)f(text,)j(only)d(to)i(notice)g
-(that)f(the)150 3411 y(\014rst)f(w)m(ord)g(on)g(the)g(line)h(is)g
+(that)f(the)150 3414 y(\014rst)f(w)m(ord)g(on)g(the)g(line)h(is)g
(missp)s(elled.)46 b(The)32 b(Readline)h(library)f(giv)m(es)h(y)m(ou)g
-(a)g(set)g(of)f(commands)g(for)150 3520 y(manipulating)e(the)g(text)h
+(a)g(set)g(of)f(commands)g(for)150 3524 y(manipulating)e(the)g(text)h
(as)f(y)m(ou)g(t)m(yp)s(e)g(it)g(in,)g(allo)m(wing)h(y)m(ou)f(to)h
(just)e(\014x)g(y)m(our)h(t)m(yp)s(o,)g(and)g(not)g(forcing)150
-3630 y(y)m(ou)e(to)h(ret)m(yp)s(e)g(the)f(ma)5 b(jorit)m(y)29
+3634 y(y)m(ou)e(to)h(ret)m(yp)s(e)g(the)f(ma)5 b(jorit)m(y)29
b(of)f(the)h(line.)40 b(Using)28 b(these)h(editing)g(commands,)f(y)m
-(ou)h(mo)m(v)m(e)g(the)g(cursor)150 3739 y(to)35 b(the)f(place)i(that)e
+(ou)h(mo)m(v)m(e)g(the)g(cursor)150 3743 y(to)35 b(the)f(place)i(that)e
(needs)g(correction,)j(and)d(delete)h(or)f(insert)h(the)f(text)h(of)g
-(the)f(corrections.)54 b(Then,)150 3849 y(when)24 b(y)m(ou)h(are)g
+(the)f(corrections.)54 b(Then,)150 3853 y(when)24 b(y)m(ou)h(are)g
(satis\014ed)g(with)g(the)g(line,)i(y)m(ou)e(simply)f(press)g
Fn(RET)p Fo(.)39 b(Y)-8 b(ou)25 b(do)g(not)g(ha)m(v)m(e)h(to)g(b)s(e)e
-(at)h(the)h(end)150 3959 y(of)33 b(the)h(line)g(to)g(press)e
+(at)h(the)h(end)150 3962 y(of)33 b(the)h(line)g(to)g(press)e
Fn(RET)p Fo(;)i(the)g(en)m(tire)g(line)f(is)h(accepted)g(regardless)g
-(of)f(the)h(lo)s(cation)h(of)e(the)h(cursor)150 4068
-y(within)c(the)g(line.)150 4267 y Fd(1.2.1)63 b(Readline)40
-b(Bare)h(Essen)m(tials)150 4414 y Fo(In)31 b(order)h(to)h(en)m(ter)g(c)
+(of)f(the)h(lo)s(cation)h(of)e(the)h(cursor)150 4072
+y(within)c(the)g(line.)150 4269 y Fd(1.2.1)63 b(Readline)40
+b(Bare)h(Essen)m(tials)150 4416 y Fo(In)31 b(order)h(to)h(en)m(ter)g(c)
m(haracters)g(in)m(to)g(the)g(line,)g(simply)e(t)m(yp)s(e)i(them.)46
b(The)31 b(t)m(yp)s(ed)h(c)m(haracter)i(app)s(ears)150
-4523 y(where)e(the)h(cursor)e(w)m(as,)j(and)e(then)g(the)h(cursor)e(mo)
+4525 y(where)e(the)h(cursor)e(w)m(as,)j(and)e(then)g(the)h(cursor)e(mo)
m(v)m(es)j(one)f(space)g(to)g(the)g(righ)m(t.)47 b(If)32
-b(y)m(ou)h(mist)m(yp)s(e)g(a)150 4633 y(c)m(haracter,)f(y)m(ou)f(can)g
+b(y)m(ou)h(mist)m(yp)s(e)g(a)150 4635 y(c)m(haracter,)f(y)m(ou)f(can)g
(use)f(y)m(our)g(erase)h(c)m(haracter)h(to)f(bac)m(k)g(up)f(and)f
-(delete)j(the)f(mist)m(yp)s(ed)e(c)m(haracter.)275 4767
+(delete)j(the)f(mist)m(yp)s(ed)e(c)m(haracter.)275 4768
y(Sometimes)i(y)m(ou)g(ma)m(y)h(mist)m(yp)s(e)e(a)i(c)m(haracter,)g
(and)e(not)i(notice)g(the)f(error)f(un)m(til)h(y)m(ou)g(ha)m(v)m(e)h(t)
-m(yp)s(ed)150 4877 y(sev)m(eral)e(other)f(c)m(haracters.)42
+m(yp)s(ed)150 4878 y(sev)m(eral)e(other)f(c)m(haracters.)42
b(In)28 b(that)i(case,)g(y)m(ou)f(can)g(t)m(yp)s(e)h
Fg(C-b)d Fo(to)j(mo)m(v)m(e)g(the)f(cursor)g(to)g(the)g(left,)i(and)150
4987 y(then)f(correct)i(y)m(our)e(mistak)m(e.)42 b(Afterw)m(ards,)31
@@ -5318,696 +5312,771 @@ b(Command)29 b(Line)i(Editing)2153 b(2)150 299 y(bac)m(k')24
b(to)f(\014ll)g(in)f(the)h(blank)f(space)i(created)f(b)m(y)g(the)g
(remo)m(v)-5 b(al)24 b(of)f(the)g(text.)39 b(A)23 b(list)g(of)g(the)g
(bare)f(essen)m(tials)150 408 y(for)30 b(editing)h(the)g(text)g(of)g
-(an)f(input)f(line)i(follo)m(ws.)150 562 y Fg(C-b)336
+(an)f(input)f(line)i(follo)m(ws.)150 571 y Fg(C-b)336
b Fo(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m(haracter.)150
-715 y Fg(C-f)336 b Fo(Mo)m(v)m(e)32 b(forw)m(ard)e(one)h(c)m(haracter.)
-150 869 y Fn(DEL)e Fo(or)i Fn(Backspace)630 978 y Fo(Delete)i(the)d(c)m
-(haracter)i(to)f(the)g(left)g(of)f(the)h(cursor.)150
-1132 y Fg(C-d)336 b Fo(Delete)33 b(the)d(c)m(haracter)i(underneath)d
-(the)i(cursor.)150 1285 y(Prin)m(ting)g(c)m(haracters)630
-1394 y(Insert)f(the)g(c)m(haracter)i(in)m(to)g(the)e(line)h(at)g(the)g
-(cursor.)150 1548 y Fg(C-_)e Fo(or)i Fg(C-x)e(C-u)630
-1657 y Fo(Undo)k(the)h(last)g(editing)g(command.)50 b(Y)-8
+732 y Fg(C-f)336 b Fo(Mo)m(v)m(e)32 b(forw)m(ard)e(one)h(c)m(haracter.)
+150 893 y Fn(DEL)e Fo(or)i Fn(Backspace)630 1003 y Fo(Delete)i(the)d(c)
+m(haracter)i(to)f(the)g(left)g(of)f(the)h(cursor.)150
+1164 y Fg(C-d)336 b Fo(Delete)33 b(the)d(c)m(haracter)i(underneath)d
+(the)i(cursor.)150 1325 y(Prin)m(ting)g(c)m(haracters)630
+1435 y(Insert)f(the)g(c)m(haracter)i(in)m(to)g(the)e(line)h(at)g(the)g
+(cursor.)150 1596 y Fg(C-_)e Fo(or)i Fg(C-x)e(C-u)630
+1706 y Fo(Undo)k(the)h(last)g(editing)g(command.)50 b(Y)-8
b(ou)34 b(can)f(undo)g(all)h(the)f(w)m(a)m(y)i(bac)m(k)f(to)g(an)g
-(empt)m(y)630 1767 y(line.)150 1920 y(\(Dep)s(ending)29
+(empt)m(y)630 1815 y(line.)150 1977 y(\(Dep)s(ending)29
b(on)h(y)m(our)f(con\014guration,)i(the)e Fn(Backspace)e
Fo(k)m(ey)k(b)s(e)d(set)j(to)f(delete)h(the)e(c)m(haracter)i(to)g(the)
-150 2030 y(left)37 b(of)f(the)h(cursor)e(and)h(the)g
+150 2087 y(left)37 b(of)f(the)h(cursor)e(and)h(the)g
Fn(DEL)g Fo(k)m(ey)h(set)f(to)h(delete)h(the)e(c)m(haracter)i
-(underneath)d(the)h(cursor,)i(lik)m(e)150 2140 y Fg(C-d)p
+(underneath)d(the)h(cursor,)i(lik)m(e)150 2196 y Fg(C-d)p
Fo(,)30 b(rather)g(than)g(the)h(c)m(haracter)h(to)f(the)f(left)h(of)g
-(the)f(cursor.\))150 2333 y Fd(1.2.2)63 b(Readline)40
-b(Mo)m(v)m(emen)m(t)h(Commands)150 2480 y Fo(The)27 b(ab)s(o)m(v)m(e)i
+(the)f(cursor.\))150 2398 y Fd(1.2.2)63 b(Readline)40
+b(Mo)m(v)m(emen)m(t)h(Commands)150 2545 y Fo(The)27 b(ab)s(o)m(v)m(e)i
(table)g(describ)s(es)e(the)g(most)i(basic)f(k)m(eystrok)m(es)h(that)f
(y)m(ou)g(need)g(in)f(order)g(to)i(do)e(editing)i(of)150
-2589 y(the)k(input)f(line.)49 b(F)-8 b(or)34 b(y)m(our)f(con)m(v)m
+2654 y(the)k(input)f(line.)49 b(F)-8 b(or)34 b(y)m(our)f(con)m(v)m
(enience,)j(man)m(y)d(other)g(commands)f(ha)m(v)m(e)j(b)s(een)d(added)g
-(in)h(addition)150 2699 y(to)j Fg(C-b)p Fo(,)f Fg(C-f)p
+(in)h(addition)150 2764 y(to)j Fg(C-b)p Fo(,)f Fg(C-f)p
Fo(,)g Fg(C-d)p Fo(,)h(and)e Fn(DEL)p Fo(.)54 b(Here)35
b(are)g(some)h(commands)e(for)h(mo)m(ving)h(more)f(rapidly)f(ab)s(out)h
-(the)150 2808 y(line.)150 2962 y Fg(C-a)336 b Fo(Mo)m(v)m(e)32
-b(to)g(the)e(start)h(of)g(the)f(line.)150 3115 y Fg(C-e)336
+(the)150 2873 y(line.)150 3035 y Fg(C-a)336 b Fo(Mo)m(v)m(e)32
+b(to)g(the)e(start)h(of)g(the)f(line.)150 3197 y Fg(C-e)336
b Fo(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
-3269 y Fg(M-f)336 b Fo(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m(ord,)f
+3358 y Fg(M-f)336 b Fo(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m(ord,)f
(where)g(a)h(w)m(ord)f(is)g(comp)s(osed)g(of)h(letters)h(and)d(digits.)
-150 3422 y Fg(M-b)336 b Fo(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a)g(w)m
-(ord.)150 3575 y Fg(C-l)336 b Fo(Clear)31 b(the)f(screen,)h(reprin)m
+150 3519 y Fg(M-b)336 b Fo(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a)g(w)m
+(ord.)150 3680 y Fg(C-l)336 b Fo(Clear)31 b(the)f(screen,)h(reprin)m
(ting)f(the)h(curren)m(t)f(line)h(at)g(the)f(top.)275
-3729 y(Notice)c(ho)m(w)f Fg(C-f)e Fo(mo)m(v)m(es)j(forw)m(ard)e(a)h(c)m
+3843 y(Notice)c(ho)m(w)f Fg(C-f)e Fo(mo)m(v)m(es)j(forw)m(ard)e(a)h(c)m
(haracter,)j(while)d Fg(M-f)e Fo(mo)m(v)m(es)j(forw)m(ard)e(a)h(w)m
-(ord.)39 b(It)24 b(is)h(a)g(lo)s(ose)150 3838 y(con)m(v)m(en)m(tion)32
+(ord.)39 b(It)24 b(is)h(a)g(lo)s(ose)150 3952 y(con)m(v)m(en)m(tion)32
b(that)f(con)m(trol)g(k)m(eystrok)m(es)h(op)s(erate)e(on)g(c)m
(haracters)h(while)f(meta)h(k)m(eystrok)m(es)h(op)s(erate)e(on)150
-3948 y(w)m(ords.)150 4141 y Fd(1.2.3)63 b(Readline)40
-b(Killing)i(Commands)150 4288 y Fe(Killing)35 b Fo(text)28
+4062 y(w)m(ords.)150 4263 y Fd(1.2.3)63 b(Readline)40
+b(Killing)i(Commands)150 4410 y Fe(Killing)35 b Fo(text)28
b(means)e(to)h(delete)h(the)f(text)g(from)g(the)f(line,)i(but)e(to)h
(sa)m(v)m(e)h(it)g(a)m(w)m(a)m(y)g(for)e(later)i(use,)f(usually)150
-4398 y(b)m(y)g Fe(y)m(anking)35 b Fo(\(re-inserting\))28
+4519 y(b)m(y)g Fe(y)m(anking)35 b Fo(\(re-inserting\))28
b(it)g(bac)m(k)f(in)m(to)h(the)f(line.)40 b(\(`Cut')27
b(and)g(`paste')h(are)f(more)g(recen)m(t)h(jargon)f(for)150
-4507 y(`kill')32 b(and)d(`y)m(ank'.\))275 4639 y(If)g(the)i
+4629 y(`kill')32 b(and)d(`y)m(ank'.\))275 4765 y(If)g(the)i
(description)f(for)g(a)h(command)f(sa)m(ys)g(that)h(it)g(`kills')g
(text,)h(then)e(y)m(ou)g(can)h(b)s(e)e(sure)h(that)h(y)m(ou)150
-4748 y(can)g(get)g(the)g(text)g(bac)m(k)g(in)f(a)h(di\013eren)m(t)g
-(\(or)g(the)f(same\))h(place)h(later.)275 4880 y(When)23
+4875 y(can)g(get)g(the)g(text)g(bac)m(k)g(in)f(a)h(di\013eren)m(t)g
+(\(or)g(the)f(same\))h(place)h(later.)275 5011 y(When)23
b(y)m(ou)g(use)g(a)h(kill)g(command,)g(the)g(text)g(is)f(sa)m(v)m(ed)i
(in)e(a)g Fe(kill-ring)p Fo(.)39 b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h
-(consecutiv)m(e)150 4989 y(kills)31 b(sa)m(v)m(e)i(all)f(of)f(the)g
+(consecutiv)m(e)150 5121 y(kills)31 b(sa)m(v)m(e)i(all)f(of)f(the)g
(killed)h(text)g(together,)g(so)g(that)f(when)f(y)m(ou)h(y)m(ank)h(it)f
-(bac)m(k,)h(y)m(ou)g(get)g(it)f(all.)43 b(The)150 5099
+(bac)m(k,)h(y)m(ou)g(get)g(it)f(all.)43 b(The)150 5230
y(kill)33 b(ring)f(is)g(not)h(line)g(sp)s(eci\014c;)g(the)g(text)g
(that)g(y)m(ou)g(killed)f(on)h(a)f(previously)g(t)m(yp)s(ed)h(line)f
-(is)h(a)m(v)-5 b(ailable)150 5208 y(to)31 b(b)s(e)f(y)m(ank)m(ed)h(bac)
-m(k)g(later,)h(when)d(y)m(ou)i(are)g(t)m(yping)f(another)h(line.)275
-5340 y(Here)f(is)h(the)f(list)h(of)g(commands)f(for)g(killing)h(text.)p
+(is)h(a)m(v)-5 b(ailable)150 5340 y(to)31 b(b)s(e)f(y)m(ank)m(ed)h(bac)
+m(k)g(later,)h(when)d(y)m(ou)i(are)g(t)m(yping)f(another)h(line.)p
eop end
%%Page: 3 6
TeXDict begin 3 5 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(3)150 299 y Fg(C-k)336
-b Fo(Kill)31 b(the)f(text)i(from)e(the)g(curren)m(t)g(cursor)g(p)s
-(osition)h(to)g(the)f(end)g(of)g(the)h(line.)150 461
-y Fg(M-d)336 b Fo(Kill)27 b(from)f(the)g(cursor)g(to)h(the)f(end)g(of)h
-(the)f(curren)m(t)g(w)m(ord,)h(or,)h(if)e(b)s(et)m(w)m(een)h(w)m(ords,)
-g(to)g(the)630 570 y(end)j(of)g(the)h(next)f(w)m(ord.)41
+b(Command)29 b(Line)i(Editing)2153 b(3)275 299 y(Here)30
+b(is)h(the)f(list)h(of)g(commands)f(for)g(killing)h(text.)150
+456 y Fg(C-k)336 b Fo(Kill)31 b(the)f(text)i(from)e(the)g(curren)m(t)g
+(cursor)g(p)s(osition)h(to)g(the)f(end)g(of)g(the)h(line.)150
+614 y Fg(M-d)336 b Fo(Kill)27 b(from)f(the)g(cursor)g(to)h(the)f(end)g
+(of)h(the)f(curren)m(t)g(w)m(ord,)h(or,)h(if)e(b)s(et)m(w)m(een)h(w)m
+(ords,)g(to)g(the)630 723 y(end)j(of)g(the)h(next)f(w)m(ord.)41
b(W)-8 b(ord)30 b(b)s(oundaries)f(are)i(the)g(same)f(as)h(those)g(used)
-f(b)m(y)g Fg(M-f)p Fo(.)150 732 y Fg(M-DEL)240 b Fo(Kill)31
+f(b)m(y)g Fg(M-f)p Fo(.)150 881 y Fg(M-DEL)240 b Fo(Kill)31
b(from)f(the)h(cursor)f(the)g(start)h(of)g(the)g(curren)m(t)f(w)m(ord,)
h(or,)f(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)i(the)630
-842 y(start)39 b(of)f(the)h(previous)f(w)m(ord.)64 b(W)-8
+991 y(start)39 b(of)f(the)h(previous)f(w)m(ord.)64 b(W)-8
b(ord)39 b(b)s(oundaries)e(are)i(the)f(same)h(as)g(those)f(used)g(b)m
-(y)630 951 y Fg(M-b)p Fo(.)150 1113 y Fg(C-w)336 b Fo(Kill)35
+(y)630 1100 y Fg(M-b)p Fo(.)150 1258 y Fg(C-w)336 b Fo(Kill)35
b(from)g(the)g(cursor)f(to)i(the)f(previous)g(whitespace.)55
b(This)34 b(is)h(di\013eren)m(t)h(than)e Fg(M-DEL)630
-1223 y Fo(b)s(ecause)c(the)h(w)m(ord)f(b)s(oundaries)f(di\013er.)275
-1386 y(Here)42 b(is)f(ho)m(w)h(to)g Fe(y)m(ank)47 b Fo(the)42
+1367 y Fo(b)s(ecause)c(the)h(w)m(ord)f(b)s(oundaries)f(di\013er.)275
+1525 y(Here)42 b(is)f(ho)m(w)h(to)g Fe(y)m(ank)47 b Fo(the)42
b(text)g(bac)m(k)h(in)m(to)f(the)g(line.)74 b(Y)-8 b(anking)43
-b(means)e(to)h(cop)m(y)h(the)e(most-)150 1496 y(recen)m(tly-killed)33
-b(text)e(from)f(the)g(kill)i(bu\013er.)150 1659 y Fg(C-y)336
+b(means)e(to)h(cop)m(y)h(the)e(most-)150 1634 y(recen)m(tly-killed)33
+b(text)e(from)f(the)g(kill)i(bu\013er.)150 1792 y Fg(C-y)336
b Fo(Y)-8 b(ank)31 b(the)f(most)h(recen)m(tly)h(killed)f(text)g(bac)m
(k)g(in)m(to)h(the)e(bu\013er)g(at)h(the)f(cursor.)150
-1821 y Fg(M-y)336 b Fo(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h
+1949 y Fg(M-y)336 b 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 1930 y(command)30 b(is)h Fg(C-y)e Fo(or)h
-Fg(M-y)p Fo(.)150 2132 y Fd(1.2.4)63 b(Readline)40 b(Argumen)m(ts)150
-2279 y Fo(Y)-8 b(ou)40 b(can)f(pass)g(n)m(umeric)f(argumen)m(ts)i(to)f
+(the)g(prior)630 2059 y(command)30 b(is)h Fg(C-y)e Fo(or)h
+Fg(M-y)p Fo(.)150 2256 y Fd(1.2.4)63 b(Readline)40 b(Argumen)m(ts)150
+2403 y Fo(Y)-8 b(ou)40 b(can)f(pass)g(n)m(umeric)f(argumen)m(ts)i(to)f
(Readline)h(commands.)67 b(Sometimes)39 b(the)g(argumen)m(t)h(acts)150
-2389 y(as)g(a)h(rep)s(eat)f(coun)m(t,)j(other)e(times)f(it)h(is)f(the)g
+2513 y(as)g(a)h(rep)s(eat)f(coun)m(t,)j(other)e(times)f(it)h(is)f(the)g
Ff(sign)47 b Fo(of)41 b(the)f(argumen)m(t)g(that)h(is)f(signi\014can)m
-(t.)71 b(If)40 b(y)m(ou)150 2498 y(pass)33 b(a)h(negativ)m(e)i(argumen)
+(t.)71 b(If)40 b(y)m(ou)150 2622 y(pass)33 b(a)h(negativ)m(e)i(argumen)
m(t)e(to)g(a)g(command)f(whic)m(h)g(normally)h(acts)g(in)f(a)h(forw)m
-(ard)f(direction,)i(that)150 2608 y(command)g(will)h(act)g(in)f(a)h
+(ard)f(direction,)i(that)150 2732 y(command)g(will)h(act)g(in)f(a)h
(bac)m(kw)m(ard)f(direction.)57 b(F)-8 b(or)36 b(example,)h(to)f(kill)g
-(text)g(bac)m(k)g(to)g(the)g(start)g(of)150 2717 y(the)31
+(text)g(bac)m(k)g(to)g(the)g(start)g(of)150 2842 y(the)31
b(line,)g(y)m(ou)f(migh)m(t)h(t)m(yp)s(e)g(`)p Fn(M--)f(C-k)p
-Fo('.)275 2854 y(The)d(general)i(w)m(a)m(y)h(to)e(pass)g(n)m(umeric)g
+Fo('.)275 2975 y(The)d(general)i(w)m(a)m(y)h(to)e(pass)g(n)m(umeric)g
(argumen)m(ts)h(to)g(a)f(command)g(is)g(to)h(t)m(yp)s(e)f(meta)i
-(digits)e(b)s(efore)150 2964 y(the)j(command.)42 b(If)30
+(digits)e(b)s(efore)150 3085 y(the)j(command.)42 b(If)30
b(the)h(\014rst)f(`digit')i(t)m(yp)s(ed)f(is)g(a)g(min)m(us)f(sign)h
(\(`)p Fn(-)p Fo('\),)h(then)f(the)g(sign)f(of)h(the)g(argumen)m(t)150
-3073 y(will)39 b(b)s(e)e(negativ)m(e.)66 b(Once)38 b(y)m(ou)h(ha)m(v)m
+3194 y(will)39 b(b)s(e)e(negativ)m(e.)66 b(Once)38 b(y)m(ou)h(ha)m(v)m
(e)g(t)m(yp)s(ed)f(one)h(meta)g(digit)g(to)f(get)i(the)e(argumen)m(t)h
-(started,)i(y)m(ou)150 3183 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)f
+(started,)i(y)m(ou)150 3304 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)f
(of)h(the)g(digits,)h(and)f(then)f(the)h(command.)40
b(F)-8 b(or)30 b(example,)g(to)f(giv)m(e)i(the)e Fg(C-d)150
-3293 y Fo(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)f
+3414 y Fo(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)f
(t)m(yp)s(e)h(`)p Fn(M-1)29 b(0)h(C-d)p Fo(',)39 b(whic)m(h)e(will)h
-(delete)h(the)e(next)h(ten)150 3402 y(c)m(haracters)32
-b(on)e(the)h(input)e(line.)150 3604 y Fd(1.2.5)63 b(Searc)m(hing)40
-b(for)i(Commands)g(in)f(the)g(History)150 3751 y Fo(Readline)22
+(delete)h(the)e(next)h(ten)150 3523 y(c)m(haracters)32
+b(on)e(the)h(input)e(line.)150 3720 y Fd(1.2.5)63 b(Searc)m(hing)40
+b(for)i(Commands)g(in)f(the)g(History)150 3867 y Fo(Readline)22
b(pro)m(vides)f(commands)g(for)g(searc)m(hing)h(through)f(the)g
(command)h(history)f(for)g(lines)g(con)m(taining)150
-3861 y(a)31 b(sp)s(eci\014ed)e(string.)41 b(There)30
+3977 y(a)31 b(sp)s(eci\014ed)e(string.)41 b(There)30
b(are)h(t)m(w)m(o)g(searc)m(h)g(mo)s(des:)41 b Fe(incremen)m(tal)35
-b Fo(and)30 b Fe(non-incremen)m(tal)p Fo(.)275 3998 y(Incremen)m(tal)c
+b Fo(and)30 b Fe(non-incremen)m(tal)p Fo(.)275 4111 y(Incremen)m(tal)c
(searc)m(hes)h(b)s(egin)e(b)s(efore)g(the)h(user)f(has)h(\014nished)e
(t)m(yping)i(the)g(searc)m(h)g(string.)39 b(As)26 b(eac)m(h)150
-4107 y(c)m(haracter)37 b(of)e(the)h(searc)m(h)g(string)f(is)h(t)m(yp)s
+4220 y(c)m(haracter)37 b(of)e(the)h(searc)m(h)g(string)f(is)h(t)m(yp)s
(ed,)g(Readline)g(displa)m(ys)g(the)f(next)h(en)m(try)g(from)e(the)i
-(history)150 4217 y(matc)m(hing)25 b(the)f(string)g(t)m(yp)s(ed)g(so)g
+(history)150 4330 y(matc)m(hing)25 b(the)f(string)g(t)m(yp)s(ed)g(so)g
(far.)39 b(An)23 b(incremen)m(tal)j(searc)m(h)e(requires)g(only)g(as)g
-(man)m(y)g(c)m(haracters)i(as)150 4326 y(needed)i(to)i(\014nd)d(the)i
+(man)m(y)g(c)m(haracters)i(as)150 4439 y(needed)i(to)i(\014nd)d(the)i
(desired)f(history)h(en)m(try)-8 b(.)41 b(T)-8 b(o)29
b(searc)m(h)h(bac)m(kw)m(ard)f(in)f(the)h(history)g(for)f(a)i
-(particular)150 4436 y(string,)g(t)m(yp)s(e)f Fg(C-r)p
+(particular)150 4549 y(string,)g(t)m(yp)s(e)f Fg(C-r)p
Fo(.)40 b(T)m(yping)29 b Fg(C-s)g Fo(searc)m(hes)h(forw)m(ard)f
(through)g(the)g(history)-8 b(.)41 b(The)29 b(c)m(haracters)i(presen)m
-(t)150 4545 y(in)38 b(the)g(v)-5 b(alue)38 b(of)g(the)g
+(t)150 4658 y(in)38 b(the)g(v)-5 b(alue)38 b(of)g(the)g
Fn(isearch-terminators)33 b Fo(v)-5 b(ariable)39 b(are)f(used)f(to)i
-(terminate)g(an)f(incremen)m(tal)150 4655 y(searc)m(h.)71
+(terminate)g(an)f(incremen)m(tal)150 4768 y(searc)m(h.)71
b(If)40 b(that)h(v)-5 b(ariable)41 b(has)f(not)h(b)s(een)e(assigned)i
(a)f(v)-5 b(alue,)44 b(the)c Fn(ESC)g Fo(and)f Fg(C-J)h
-Fo(c)m(haracters)i(will)150 4765 y(terminate)h(an)g(incremen)m(tal)g
+Fo(c)m(haracters)i(will)150 4878 y(terminate)h(an)g(incremen)m(tal)g
(searc)m(h.)78 b Fg(C-g)41 b Fo(will)i(ab)s(ort)f(an)g(incremen)m(tal)i
-(searc)m(h)f(and)f(restore)h(the)150 4874 y(original)30
+(searc)m(h)f(and)f(restore)h(the)150 4987 y(original)30
b(line.)41 b(When)28 b(the)h(searc)m(h)h(is)f(terminated,)h(the)f
(history)g(en)m(try)g(con)m(taining)h(the)f(searc)m(h)h(string)150
-4984 y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 5121
+5097 y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 5230
y(T)-8 b(o)31 b(\014nd)e(other)j(matc)m(hing)g(en)m(tries)g(in)e(the)h
(history)g(list,)h(t)m(yp)s(e)g Fg(C-r)e Fo(or)h Fg(C-s)f
-Fo(as)h(appropriate.)43 b(This)150 5230 y(will)26 b(searc)m(h)h(bac)m
+Fo(as)h(appropriate.)43 b(This)150 5340 y(will)26 b(searc)m(h)h(bac)m
(kw)m(ard)g(or)f(forw)m(ard)g(in)f(the)i(history)f(for)g(the)g(next)g
-(en)m(try)h(matc)m(hing)g(the)f(searc)m(h)h(string)150
-5340 y(t)m(yp)s(ed)37 b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i
-(sequence)f(b)s(ound)e(to)i(a)g(Readline)h(command)e(will)h(terminate)h
-(the)p eop end
+(en)m(try)h(matc)m(hing)g(the)f(searc)m(h)h(string)p
+eop end
%%Page: 4 7
TeXDict begin 4 6 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(4)150 299 y(searc)m(h)26
-b(and)f(execute)i(that)f(command.)39 b(F)-8 b(or)26 b(instance,)h(a)f
-Fn(RET)f Fo(will)g(terminate)i(the)f(searc)m(h)g(and)e(accept)150
-408 y(the)30 b(line,)g(thereb)m(y)f(executing)i(the)e(command)g(from)g
-(the)h(history)f(list.)41 b(A)29 b(mo)m(v)m(emen)m(t)j(command)d(will)
-150 518 y(terminate)i(the)g(searc)m(h,)g(mak)m(e)h(the)e(last)h(line)g
-(found)e(the)i(curren)m(t)f(line,)h(and)f(b)s(egin)g(editing.)275
-647 y(Readline)35 b(remem)m(b)s(ers)f(the)h(last)h(incremen)m(tal)g
-(searc)m(h)f(string.)54 b(If)34 b(t)m(w)m(o)j Fg(C-r)p
-Fo(s)c(are)i(t)m(yp)s(ed)g(without)150 757 y(an)m(y)i(in)m(terv)m
-(ening)g(c)m(haracters)h(de\014ning)e(a)h(new)f(searc)m(h)h(string,)h
-(an)m(y)f(remem)m(b)s(ered)e(searc)m(h)i(string)g(is)150
-866 y(used.)275 995 y(Non-incremen)m(tal)48 b(searc)m(hes)g(read)e(the)
-h(en)m(tire)h(searc)m(h)f(string)g(b)s(efore)f(starting)h(to)h(searc)m
-(h)f(for)150 1105 y(matc)m(hing)d(history)e(lines.)78
-b(The)42 b(searc)m(h)h(string)g(ma)m(y)g(b)s(e)f(t)m(yp)s(ed)g(b)m(y)g
-(the)h(user)f(or)h(b)s(e)f(part)g(of)h(the)150 1214 y(con)m(ten)m(ts)32
-b(of)f(the)f(curren)m(t)g(line.)150 1436 y Fm(1.3)68
-b(Readline)47 b(Init)e(File)150 1595 y Fo(Although)f(the)g(Readline)g
-(library)f(comes)i(with)e(a)h(set)h(of)f(Emacs-lik)m(e)h(k)m
-(eybindings)f(installed)g(b)m(y)150 1705 y(default,)26
-b(it)g(is)e(p)s(ossible)h(to)g(use)f(a)i(di\013eren)m(t)f(set)g(of)g(k)
-m(eybindings.)38 b(An)m(y)25 b(user)f(can)h(customize)h(programs)150
-1814 y(that)45 b(use)f(Readline)h(b)m(y)f(putting)g(commands)g(in)g(an)
-g Fe(inputrc)49 b Fo(\014le,)g(con)m(v)m(en)m(tionally)e(in)d(his)g
-(home)150 1924 y(directory)-8 b(.)39 b(The)23 b(name)h(of)f(this)h
-(\014le)f(is)g(tak)m(en)i(from)e(the)g(v)-5 b(alue)24
-b(of)g(the)f(en)m(vironmen)m(t)h(v)-5 b(ariable)25 b
-Fn(INPUTRC)p Fo(.)150 2033 y(If)30 b(that)g(v)-5 b(ariable)31
-b(is)f(unset,)g(the)h(default)f(is)g Fn(~/.inputrc)p
+b(Command)29 b(Line)i(Editing)2153 b(4)150 299 y(t)m(yp)s(ed)37
+b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i(sequence)f(b)s(ound)e(to)
+i(a)g(Readline)h(command)e(will)h(terminate)h(the)150
+408 y(searc)m(h)26 b(and)f(execute)i(that)f(command.)39
+b(F)-8 b(or)26 b(instance,)h(a)f Fn(RET)f Fo(will)g(terminate)i(the)f
+(searc)m(h)g(and)e(accept)150 518 y(the)30 b(line,)g(thereb)m(y)f
+(executing)i(the)e(command)g(from)g(the)h(history)f(list.)41
+b(A)29 b(mo)m(v)m(emen)m(t)j(command)d(will)150 628 y(terminate)i(the)g
+(searc)m(h,)g(mak)m(e)h(the)e(last)h(line)g(found)e(the)i(curren)m(t)f
+(line,)h(and)f(b)s(egin)g(editing.)275 777 y(Readline)35
+b(remem)m(b)s(ers)f(the)h(last)h(incremen)m(tal)g(searc)m(h)f(string.)
+54 b(If)34 b(t)m(w)m(o)j Fg(C-r)p Fo(s)c(are)i(t)m(yp)s(ed)g(without)
+150 886 y(an)m(y)i(in)m(terv)m(ening)g(c)m(haracters)h(de\014ning)e(a)h
+(new)f(searc)m(h)h(string,)h(an)m(y)f(remem)m(b)s(ered)e(searc)m(h)i
+(string)g(is)150 996 y(used.)275 1145 y(Non-incremen)m(tal)48
+b(searc)m(hes)g(read)e(the)h(en)m(tire)h(searc)m(h)f(string)g(b)s
+(efore)f(starting)h(to)h(searc)m(h)f(for)150 1255 y(matc)m(hing)d
+(history)e(lines.)78 b(The)42 b(searc)m(h)h(string)g(ma)m(y)g(b)s(e)f
+(t)m(yp)s(ed)g(b)m(y)g(the)h(user)f(or)h(b)s(e)f(part)g(of)h(the)150
+1364 y(con)m(ten)m(ts)32 b(of)f(the)f(curren)m(t)g(line.)150
+1627 y Fm(1.3)68 b(Readline)47 b(Init)e(File)150 1786
+y Fo(Although)f(the)g(Readline)g(library)f(comes)i(with)e(a)h(set)h(of)
+f(Emacs-lik)m(e)h(k)m(eybindings)f(installed)g(b)m(y)150
+1896 y(default,)26 b(it)g(is)e(p)s(ossible)h(to)g(use)f(a)i(di\013eren)
+m(t)f(set)g(of)g(k)m(eybindings.)38 b(An)m(y)25 b(user)f(can)h
+(customize)h(programs)150 2005 y(that)45 b(use)f(Readline)h(b)m(y)f
+(putting)g(commands)g(in)g(an)g Fe(inputrc)49 b Fo(\014le,)g(con)m(v)m
+(en)m(tionally)e(in)d(his)g(home)150 2115 y(directory)-8
+b(.)39 b(The)23 b(name)h(of)f(this)h(\014le)f(is)g(tak)m(en)i(from)e
+(the)g(v)-5 b(alue)24 b(of)g(the)f(en)m(vironmen)m(t)h(v)-5
+b(ariable)25 b Fn(INPUTRC)p Fo(.)150 2224 y(If)30 b(that)g(v)-5
+b(ariable)31 b(is)f(unset,)g(the)h(default)f(is)g Fn(~/.inputrc)p
Fo(.)38 b(If)30 b(that)g(\014le)h(do)s(es)e(not)i(exist)g(or)f(cannot)h
-(b)s(e)150 2143 y(read,)g(the)f(ultimate)i(default)e(is)h
-Fn(/etc/inputrc)p Fo(.)275 2272 y(When)e(a)h(program)f(whic)m(h)h(uses)
+(b)s(e)150 2334 y(read,)g(the)f(ultimate)i(default)e(is)h
+Fn(/etc/inputrc)p Fo(.)275 2483 y(When)e(a)h(program)f(whic)m(h)h(uses)
f(the)h(Readline)g(library)f(starts)h(up,)f(the)h(init)g(\014le)f(is)h
-(read,)g(and)f(the)150 2381 y(k)m(ey)i(bindings)e(are)i(set.)275
-2510 y(In)26 b(addition,)i(the)f Fn(C-x)i(C-r)d Fo(command)h(re-reads)g
+(read,)g(and)f(the)150 2593 y(k)m(ey)i(bindings)e(are)i(set.)275
+2742 y(In)26 b(addition,)i(the)f Fn(C-x)i(C-r)d Fo(command)h(re-reads)g
(this)f(init)h(\014le,)h(th)m(us)f(incorp)s(orating)g(an)m(y)g(c)m
-(hanges)150 2620 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g
-(it.)150 2808 y Fd(1.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)150
-2955 y Fo(There)f(are)i(only)f(a)g(few)g(basic)g(constructs)h(allo)m(w)
+(hanges)150 2851 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g
+(it.)150 3065 y Fd(1.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)150
+3212 y Fo(There)f(are)i(only)f(a)g(few)g(basic)g(constructs)h(allo)m(w)
m(ed)h(in)d(the)h(Readline)h(init)f(\014le.)73 b(Blank)41
-b(lines)h(are)150 3065 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
+b(lines)h(are)150 3322 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
(a)g(`)p Fn(#)p Fo(')g(are)h(commen)m(ts.)73 b(Lines)41
b(b)s(eginning)f(with)g(a)i(`)p Fn($)p Fo(')f(indicate)150
-3174 y(conditional)i(constructs)e(\(see)i(Section)f(1.3.2)h
-([Conditional)f(Init)f(Constructs],)j(page)f(11\).)74
-b(Other)150 3284 y(lines)31 b(denote)g(v)-5 b(ariable)31
-b(settings)g(and)f(k)m(ey)h(bindings.)150 3432 y(V)-8
-b(ariable)32 b(Settings)630 3542 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
+3431 y(conditional)i(constructs)e(\(see)i(Section)f(1.3.2)h
+([Conditional)f(Init)f(Constructs],)j(page)f(12\).)74
+b(Other)150 3541 y(lines)31 b(denote)g(v)-5 b(ariable)31
+b(settings)g(and)f(k)m(ey)h(bindings.)150 3722 y(V)-8
+b(ariable)32 b(Settings)630 3832 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
(the)i(run-time)f(b)s(eha)m(vior)g(of)h(Readline)g(b)m(y)f(altering)h
-(the)g(v)-5 b(alues)41 b(of)630 3651 y(v)-5 b(ariables)34
+(the)g(v)-5 b(alues)41 b(of)630 3941 y(v)-5 b(ariables)34
b(in)f(Readline)i(using)e(the)g Fn(set)g Fo(command)g(within)g(the)h
-(init)g(\014le.)50 b(The)33 b(syn)m(tax)630 3761 y(is)d(simple:)870
-3890 y Fn(set)47 b Fg(variable)e(value)630 4019 y Fo(Here,)29
+(init)g(\014le.)50 b(The)33 b(syn)m(tax)630 4051 y(is)d(simple:)870
+4193 y Fn(set)47 b Fg(variable)e(value)630 4335 y Fo(Here,)29
b(for)e(example,)h(is)g(ho)m(w)f(to)h(c)m(hange)g(from)f(the)g(default)
-h(Emacs-lik)m(e)h(k)m(ey)f(binding)e(to)630 4128 y(use)k
-Fn(vi)g Fo(line)h(editing)g(commands:)870 4257 y Fn(set)47
-b(editing-mode)d(vi)630 4386 y Fo(V)-8 b(ariable)36 b(names)f(and)g(v)
+h(Emacs-lik)m(e)h(k)m(ey)f(binding)e(to)630 4444 y(use)k
+Fn(vi)g Fo(line)h(editing)g(commands:)870 4586 y Fn(set)47
+b(editing-mode)d(vi)630 4728 y Fo(V)-8 b(ariable)36 b(names)f(and)g(v)
-5 b(alues,)36 b(where)f(appropriate,)h(are)g(recognized)g(without)f
-(regard)630 4496 y(to)c(case.)42 b(Unrecognized)31 b(v)-5
-b(ariable)31 b(names)g(are)f(ignored.)630 4624 y(Bo)s(olean)c(v)-5
+(regard)630 4837 y(to)c(case.)42 b(Unrecognized)31 b(v)-5
+b(ariable)31 b(names)g(are)f(ignored.)630 4979 y(Bo)s(olean)c(v)-5
b(ariables)26 b(\(those)g(that)g(can)f(b)s(e)f(set)i(to)g(on)f(or)g
(o\013)7 b(\))25 b(are)h(set)f(to)h(on)f(if)g(the)g(v)-5
-b(alue)26 b(is)630 4734 y(n)m(ull)e(or)g(empt)m(y)-8
+b(alue)26 b(is)630 5089 y(n)m(ull)e(or)g(empt)m(y)-8
b(,)27 b Fe(on)d Fo(\(case-insensitiv)m(e\),)29 b(or)24
b(1.)39 b(An)m(y)25 b(other)f(v)-5 b(alue)25 b(results)f(in)g(the)g(v)
--5 b(ariable)630 4844 y(b)s(eing)30 b(set)h(to)g(o\013.)630
-4973 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g(is)g(c)m
-(hangeable)j(with)d(the)g(follo)m(wing)i(v)-5 b(ariables.)630
-5121 y Fn(bell-style)1110 5230 y Fo(Con)m(trols)44 b(what)g(happ)s(ens)
-e(when)h(Readline)i(w)m(an)m(ts)f(to)h(ring)e(the)h(termi-)1110
-5340 y(nal)37 b(b)s(ell.)61 b(If)37 b(set)h(to)g(`)p
-Fn(none)p Fo(',)g(Readline)g(nev)m(er)g(rings)e(the)i(b)s(ell.)61
-b(If)36 b(set)i(to)p eop end
+-5 b(ariable)630 5198 y(b)s(eing)30 b(set)h(to)g(o\013.)630
+5340 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g(is)g(c)m
+(hangeable)j(with)d(the)g(follo)m(wing)i(v)-5 b(ariables.)p
+eop end
%%Page: 5 8
TeXDict begin 5 7 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(5)1110 299 y(`)p
+b(Command)29 b(Line)i(Editing)2153 b(5)630 299 y Fn(bell-style)1110
+408 y Fo(Con)m(trols)44 b(what)g(happ)s(ens)e(when)h(Readline)i(w)m(an)
+m(ts)f(to)h(ring)e(the)h(termi-)1110 518 y(nal)37 b(b)s(ell.)61
+b(If)37 b(set)h(to)g(`)p Fn(none)p Fo(',)g(Readline)g(nev)m(er)g(rings)
+e(the)i(b)s(ell.)61 b(If)36 b(set)i(to)1110 628 y(`)p
Fn(visible)p Fo(',)32 b(Readline)i(uses)f(a)g(visible)g(b)s(ell)g(if)g
(one)g(is)g(a)m(v)-5 b(ailable.)51 b(If)33 b(set)g(to)1110
-408 y(`)p Fn(audible)p Fo(')j(\(the)i(default\),)i(Readline)e(attempts)
-g(to)h(ring)e(the)g(terminal's)1110 518 y(b)s(ell.)630
-676 y Fn(bind-tty-special-chars)1110 786 y Fo(If)45 b(set)h(to)f(`)p
-Fn(on)p Fo(',)50 b(Readline)45 b(attempts)i(to)f(bind)d(the)j(con)m
-(trol)g(c)m(haracters)1110 896 y(treated)36 b(sp)s(ecially)h(b)m(y)e
-(the)h(k)m(ernel's)g(terminal)g(driv)m(er)f(to)h(their)f(Readline)1110
-1005 y(equiv)-5 b(alen)m(ts.)630 1163 y Fn(colored-stats)1110
-1273 y Fo(If)26 b(set)h(to)g(`)p Fn(on)p Fo(',)h(Readline)f(displa)m
-(ys)g(p)s(ossible)f(completions)h(using)f(di\013eren)m(t)1110
-1383 y(colors)40 b(to)g(indicate)g(their)f(\014le)h(t)m(yp)s(e.)67
+737 y(`)p Fn(audible)p Fo(')j(\(the)i(default\),)i(Readline)e(attempts)
+g(to)h(ring)e(the)g(terminal's)1110 847 y(b)s(ell.)630
+993 y Fn(bind-tty-special-chars)1110 1103 y Fo(If)e(set)g(to)h(`)p
+Fn(on)p Fo(')f(\(the)g(default\),)i(Readline)f(attempts)g(to)g(bind)d
+(the)i(con)m(trol)1110 1212 y(c)m(haracters)30 b(treated)g(sp)s
+(ecially)g(b)m(y)f(the)g(k)m(ernel's)h(terminal)f(driv)m(er)g(to)h
+(their)1110 1322 y(Readline)h(equiv)-5 b(alen)m(ts.)630
+1468 y Fn(blink-matching-paren)1110 1577 y Fo(If)36 b(set)g(to)h(`)p
+Fn(on)p Fo(',)h(Readline)f(attempts)g(to)g(brie\015y)e(mo)m(v)m(e)j
+(the)f(cursor)e(to)i(an)1110 1687 y(op)s(ening)k(paren)m(thesis)h(when)
+f(a)h(closing)h(paren)m(thesis)e(is)h(inserted.)74 b(The)1110
+1797 y(default)31 b(is)f(`)p Fn(off)p Fo('.)630 1943
+y Fn(colored-completion-prefi)o(x)1110 2052 y Fo(If)f(set)h(to)g(`)p
+Fn(on)p Fo(',)g(when)e(listing)i(completions,)h(Readline)f(displa)m(ys)
+g(the)f(com-)1110 2162 y(mon)c(pre\014x)f(of)i(the)f(set)h(of)g(p)s
+(ossible)f(completions)h(using)f(a)h(di\013eren)m(t)g(color.)1110
+2271 y(The)39 b(color)i(de\014nitions)f(are)g(tak)m(en)h(from)f(the)g
+(v)-5 b(alue)40 b(of)g(the)g Fn(LS_COLORS)1110 2381 y
+Fo(en)m(vironmen)m(t)31 b(v)-5 b(ariable.)41 b(The)30
+b(default)h(is)f(`)p Fn(off)p Fo('.)630 2527 y Fn(colored-stats)1110
+2637 y Fo(If)c(set)h(to)g(`)p Fn(on)p Fo(',)h(Readline)f(displa)m(ys)g
+(p)s(ossible)f(completions)h(using)f(di\013eren)m(t)1110
+2746 y(colors)40 b(to)g(indicate)g(their)f(\014le)h(t)m(yp)s(e.)67
b(The)38 b(color)j(de\014nitions)d(are)i(tak)m(en)1110
-1492 y(from)24 b(the)h(v)-5 b(alue)25 b(of)g(the)g Fn(LS_COLORS)d
+2856 y(from)24 b(the)h(v)-5 b(alue)25 b(of)g(the)g Fn(LS_COLORS)d
Fo(en)m(vironmen)m(t)j(v)-5 b(ariable.)40 b(The)24 b(default)1110
-1602 y(is)30 b(`)p Fn(off)p Fo('.)630 1760 y Fn(comment-begin)1110
-1870 y Fo(The)62 b(string)g(to)h(insert)f(at)h(the)g(b)s(eginning)e(of)
-h(the)h(line)f(when)g(the)1110 1979 y Fn(insert-comment)26
+2966 y(is)30 b(`)p Fn(off)p Fo('.)630 3112 y Fn(comment-begin)1110
+3221 y Fo(The)62 b(string)g(to)h(insert)f(at)h(the)g(b)s(eginning)e(of)
+h(the)h(line)f(when)g(the)1110 3331 y Fn(insert-comment)26
b Fo(command)31 b(is)f(executed.)42 b(The)30 b(default)g(v)-5
-b(alue)31 b(is)f Fn("#")p Fo(.)630 2138 y Fn(completion-display-width)
-1110 2247 y Fo(The)41 b(n)m(um)m(b)s(er)f(of)i(screen)g(columns)f(used)
-g(to)h(displa)m(y)g(p)s(ossible)f(matc)m(hes)1110 2357
+b(alue)31 b(is)f Fn("#")p Fo(.)630 3477 y Fn(completion-display-width)
+1110 3587 y Fo(The)41 b(n)m(um)m(b)s(er)f(of)i(screen)g(columns)f(used)
+g(to)h(displa)m(y)g(p)s(ossible)f(matc)m(hes)1110 3696
y(when)28 b(p)s(erforming)g(completion.)41 b(The)29 b(v)-5
b(alue)29 b(is)g(ignored)g(if)g(it)h(is)f(less)g(than)1110
-2466 y(0)e(or)f(greater)h(than)f(the)g(terminal)h(screen)f(width.)39
+3806 y(0)e(or)f(greater)h(than)f(the)g(terminal)h(screen)f(width.)39
b(A)26 b(v)-5 b(alue)27 b(of)f(0)h(will)f(cause)1110
-2576 y(matc)m(hes)32 b(to)f(b)s(e)e(displa)m(y)m(ed)i(one)g(p)s(er)e
+3915 y(matc)m(hes)32 b(to)f(b)s(e)e(displa)m(y)m(ed)i(one)g(p)s(er)e
(line.)41 b(The)30 b(default)h(v)-5 b(alue)31 b(is)f(-1.)630
-2734 y Fn(completion-ignore-case)1110 2844 y Fo(If)d(set)h(to)g(`)p
+4061 y Fn(completion-ignore-case)1110 4171 y Fo(If)d(set)h(to)g(`)p
Fn(on)p Fo(',)g(Readline)g(p)s(erforms)e(\014lename)h(matc)m(hing)i
-(and)e(completion)1110 2953 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)
+(and)e(completion)1110 4281 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)
40 b(The)30 b(default)h(v)-5 b(alue)30 b(is)h(`)p Fn(off)p
-Fo('.)630 3112 y Fn(completion-map-case)1110 3221 y Fo(If)22
+Fo('.)630 4427 y Fn(completion-map-case)1110 4536 y Fo(If)22
b(set)g(to)h(`)p Fn(on)p Fo(',)h(and)e Fe(completion-ignore-case)31
-b Fo(is)22 b(enabled,)i(Readline)f(treats)1110 3331 y(h)m(yphens)29
+b Fo(is)22 b(enabled,)i(Readline)f(treats)1110 4646 y(h)m(yphens)29
b(\(`)p Fn(-)p Fo('\))j(and)e(underscores)g(\(`)p Fn(_)p
Fo('\))i(as)f(equiv)-5 b(alen)m(t)32 b(when)e(p)s(erforming)1110
-3440 y(case-insensitiv)m(e)j(\014lename)d(matc)m(hing)i(and)e
-(completion.)630 3599 y Fn(completion-prefix-displa)o(y-le)o(ngth)1110
-3708 y Fo(The)h(length)g(in)g(c)m(haracters)i(of)f(the)f(common)h
-(pre\014x)e(of)h(a)h(list)g(of)f(p)s(ossible)1110 3818
+4756 y(case-insensitiv)m(e)j(\014lename)d(matc)m(hing)i(and)e
+(completion.)630 4902 y Fn(completion-prefix-displa)o(y-le)o(ngth)1110
+5011 y Fo(The)h(length)g(in)g(c)m(haracters)i(of)f(the)f(common)h
+(pre\014x)e(of)h(a)h(list)g(of)f(p)s(ossible)1110 5121
y(completions)g(that)f(is)g(displa)m(y)m(ed)g(without)g(mo)s
-(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110 3927
+(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110 5230
y(v)-5 b(alue)26 b(greater)h(than)e(zero,)j(common)e(pre\014xes)e
-(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 4037
+(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 5340
y(replaced)k(with)f(an)g(ellipsis)h(when)e(displa)m(ying)i(p)s(ossible)
-f(completions.)630 4195 y Fn(completion-query-items)1110
-4305 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 4415 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 4524 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 4634 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
-4743 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 4853 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
-4963 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
-Fn(100)p Fo(.)630 5121 y Fn(convert-meta)1110 5230 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
-5340 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)p
-eop end
+f(completions.)p eop end
%%Page: 6 9
TeXDict begin 6 8 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(6)1110 299 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 408 y(The)30
-b(default)g(v)-5 b(alue)31 b(is)g(`)p Fn(on)p Fo('.)630
-555 y Fn(disable-completion)1110 664 y Fo(If)36 b(set)h(to)h(`)p
+b(Command)29 b(Line)i(Editing)2153 b(6)630 299 y Fn
+(completion-query-items)1110 408 y Fo(The)26 b(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
+518 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
+628 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 737 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 847 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 956 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 1066 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g
+(is)g Fn(100)p Fo(.)630 1285 y Fn(convert-meta)1110 1395
+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
+1504 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
+1614 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 1724
+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 1833 y(that)j(con)m(tains)h(eigh)m(t-bit)g(c)m(haracters.)630
+2052 y Fn(disable-completion)1110 2162 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 774 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h
+b(Completion)1110 2271 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h
(in)m(to)h(the)g(line)f(as)g(if)g(they)h(had)e(b)s(een)g(mapp)s(ed)1110
-883 y(to)31 b Fn(self-insert)p Fo(.)38 b(The)30 b(default)g(is)h(`)p
-Fn(off)p Fo('.)630 1029 y Fn(editing-mode)1110 1139 y
-Fo(The)d Fn(editing-mode)e Fo(v)-5 b(ariable)29 b(con)m(trols)h(whic)m
-(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 1249 y(ings)25
-b(is)g(used.)38 b(By)26 b(default,)g(Readline)g(starts)f(up)f(in)h
-(Emacs)g(editing)h(mo)s(de,)1110 1358 y(where)j(the)g(k)m(eystrok)m(es)
-i(are)e(most)h(similar)f(to)h(Emacs.)40 b(This)29 b(v)-5
-b(ariable)30 b(can)1110 1468 y(b)s(e)g(set)h(to)g(either)g(`)p
-Fn(emacs)p Fo(')e(or)h(`)p Fn(vi)p Fo('.)630 1614 y Fn
-(echo-control-characters)1110 1724 y Fo(When)g(set)h(to)g(`)p
-Fn(on)p Fo(',)f(on)g(op)s(erating)h(systems)f(that)h(indicate)g(they)g
-(supp)s(ort)1110 1833 y(it,)i(readline)e(ec)m(ho)s(es)i(a)f(c)m
-(haracter)h(corresp)s(onding)d(to)j(a)f(signal)g(generated)1110
-1943 y(from)e(the)g(k)m(eyb)s(oard.)41 b(The)30 b(default)g(is)h(`)p
-Fn(on)p Fo('.)630 2089 y Fn(enable-keypad)1110 2198 y
-Fo(When)23 b(set)h(to)g(`)p Fn(on)p Fo(',)h(Readline)f(will)g(try)f(to)
-h(enable)g(the)f(application)i(k)m(eypad)1110 2308 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 2418 y(The)j(default)g(is)h(`)p
-Fn(off)p Fo('.)630 2564 y Fn(enable-meta-key)1110 2673
-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 2783
-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 2892 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 3002 y(default)31 b(is)f(`)p Fn(on)p Fo('.)630
-3148 y Fn(expand-tilde)1110 3258 y Fo(If)d(set)h(to)h(`)p
+2381 y(to)31 b Fn(self-insert)p Fo(.)38 b(The)30 b(default)g(is)h(`)p
+Fn(off)p Fo('.)630 2600 y Fn(echo-control-characters)1110
+2710 y Fo(When)f(set)h(to)g(`)p Fn(on)p Fo(',)f(on)g(op)s(erating)h
+(systems)f(that)h(indicate)g(they)g(supp)s(ort)1110 2819
+y(it,)i(readline)e(ec)m(ho)s(es)i(a)f(c)m(haracter)h(corresp)s(onding)d
+(to)j(a)f(signal)g(generated)1110 2929 y(from)e(the)g(k)m(eyb)s(oard.)
+41 b(The)30 b(default)g(is)h(`)p Fn(on)p Fo('.)630 3148
+y Fn(editing-mode)1110 3258 y Fo(The)d Fn(editing-mode)e
+Fo(v)-5 b(ariable)29 b(con)m(trols)h(whic)m(h)e(default)h(set)h(of)e(k)
+m(ey)i(bind-)1110 3367 y(ings)25 b(is)g(used.)38 b(By)26
+b(default,)g(Readline)g(starts)f(up)f(in)h(Emacs)g(editing)h(mo)s(de,)
+1110 3477 y(where)j(the)g(k)m(eystrok)m(es)i(are)e(most)h(similar)f(to)
+h(Emacs.)40 b(This)29 b(v)-5 b(ariable)30 b(can)1110
+3587 y(b)s(e)g(set)h(to)g(either)g(`)p Fn(emacs)p Fo(')e(or)h(`)p
+Fn(vi)p Fo('.)630 3806 y Fn(emacs-mode-string)1110 3915
+y Fo(This)f(string)h(is)f(displa)m(y)m(ed)i(immediately)g(b)s(efore)e
+(the)h(last)g(line)h(of)e(the)h(pri-)1110 4025 y(mary)43
+b(prompt)g(when)f(emacs)i(editing)g(mo)s(de)f(is)g(activ)m(e.)82
+b(The)43 b(v)-5 b(alue)44 b(is)1110 4134 y(expanded)28
+b(lik)m(e)i(a)f(k)m(ey)g(binding,)f(so)h(the)g(standard)f(set)h(of)g
+(meta-)g(and)f(con-)1110 4244 y(trol)36 b(pre\014xes)e(and)h(bac)m
+(kslash)h(escap)s(e)g(sequences)g(is)f(a)m(v)-5 b(ailable.)58
+b(Use)36 b(the)1110 4354 y(`)p Fn(\\1)p Fo(')i(and)f(`)p
+Fn(\\2)p Fo(')h(escap)s(es)g(to)h(b)s(egin)e(and)h(end)f(sequences)h
+(of)g(non-prin)m(ting)1110 4463 y(c)m(haracters,)27 b(whic)m(h)c(can)h
+(b)s(e)f(used)f(to)j(em)m(b)s(ed)e(a)h(terminal)g(con)m(trol)h
+(sequence)1110 4573 y(in)m(to)31 b(the)g(mo)s(de)f(string.)41
+b(The)29 b(default)i(is)f(`)p Fn(@)p Fo('.)630 4792 y
+Fn(enable-bracketed-paste)1110 4902 y Fo(When)24 b(set)h(to)h(`)p
+Fn(On)p Fo(',)g(Readline)f(will)g(con\014gure)f(the)h(terminal)g(in)f
+(a)h(w)m(a)m(y)g(that)1110 5011 y(will)k(enable)f(it)h(to)g(insert)g
+(eac)m(h)g(paste)g(in)m(to)g(the)g(editing)g(bu\013er)e(as)i(a)f
+(single)1110 5121 y(string)33 b(of)f(c)m(haracters,)j(instead)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
+%%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
+408 y Fo(When)23 b(set)h(to)g(`)p Fn(on)p Fo(',)h(Readline)f(will)g
+(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
+(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)
+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
Fn(on)p Fo(',)f(tilde)g(expansion)g(is)f(p)s(erformed)f(when)h
-(Readline)h(attempts)1110 3367 y(w)m(ord)i(completion.)42
-b(The)30 b(default)g(is)h(`)p Fn(off)p Fo('.)630 3513
-y Fn(history-preserve-point)1110 3623 y Fo(If)41 b(set)h(to)h(`)p
+(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
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 3733 y(curren)m(t)35 b(cursor)g(p)s
+(p)s(oin)m(t)f(\(the)1110 2021 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 3842 y(retriev)m(ed)h(with)f Fn(previous-history)c
+(line)1110 2131 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
-3952 y(is)30 b(`)p Fn(off)p Fo('.)630 4098 y Fn(history-size)1110
-4208 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 4317
+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
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 4427 y(new)e(en)m(tries)i
+(en)m(tries)g(are)g(deleted)h(and)e(no)1110 2741 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
-4536 y(of)f(history)f(en)m(tries)h(is)g(not)g(limited.)42
+2851 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
-4646 y(en)m(tries)g(is)g(not)f(limited.)630 4792 y Fn
-(horizontal-scroll-mode)1110 4902 y Fo(This)35 b(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 5011 y(means)26 b(that)h(the)f(text)h
+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
+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
+(`)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
(of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m
-(tally)1110 5121 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 5230
+(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 5340 y(v)-5
-b(ariable)31 b(is)g(set)f(to)i(`)p Fn(off)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(input-meta)1110
-408 y Fo(If)31 b(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
-518 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 628 y(terminal)g(claims)h
-(it)g(can)f(supp)s(ort.)68 b(The)39 b(default)h(v)-5
-b(alue)40 b(is)g(`)p Fn(off)p Fo('.)69 b(The)1110 737
-y(name)30 b Fn(meta-flag)e Fo(is)j(a)f(synon)m(ym)g(for)g(this)h(v)-5
-b(ariable.)630 894 y Fn(isearch-terminators)1110 1003
-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 1113 y(searc)m(h)25 b(without)g(subsequen)m
-(tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g(command)1110
-1223 y(\(see)45 b(Section)h(1.2.5)g([Searc)m(hing],)j(page)d(3\).)84
-b(If)44 b(this)g(v)-5 b(ariable)45 b(has)g(not)1110 1332
-y(b)s(een)35 b(giv)m(en)h(a)g(v)-5 b(alue,)37 b(the)f(c)m(haracters)h
-Fn(ESC)d Fo(and)h Fg(C-J)g Fo(will)h(terminate)g(an)1110
-1442 y(incremen)m(tal)c(searc)m(h.)630 1598 y Fn(keymap)192
+(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
+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
+(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
+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
+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
+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
+5011 y(searc)m(h)25 b(without)g(subsequen)m(tly)g(executing)h(the)f(c)m
+(haracter)h(as)f(a)g(command)1110 5121 y(\(see)45 b(Section)h(1.2.5)g
+([Searc)m(hing],)j(page)d(3\).)84 b(If)44 b(this)g(v)-5
+b(ariable)45 b(has)g(not)1110 5230 y(b)s(een)35 b(giv)m(en)h(a)g(v)-5
+b(alue,)37 b(the)f(c)m(haracters)h Fn(ESC)d Fo(and)h
+Fg(C-J)g Fo(will)h(terminate)g(an)1110 5340 y(incremen)m(tal)c(searc)m
+(h.)p eop end
+%%Page: 8 11
+TeXDict begin 8 10 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2153 b(8)630 299 y Fn(keymap)192
b Fo(Sets)39 b(Readline's)g(idea)h(of)f(the)g(curren)m(t)f(k)m(eymap)h
-(for)g(k)m(ey)g(binding)f(com-)1110 1708 y(mands.)81
-b(Acceptable)47 b Fn(keymap)42 b Fo(names)i(are)h Fn(emacs)p
-Fo(,)i Fn(emacs-standard)p Fo(,)1110 1817 y Fn(emacs-meta)p
-Fo(,)99 b Fn(emacs-ctlx)p Fo(,)f Fn(vi)p Fo(,)j Fn(vi-move)p
-Fo(,)f Fn(vi-command)p Fo(,)f(and)1110 1927 y Fn(vi-insert)p
-Fo(.)64 b Fn(vi)38 b Fo(is)h(equiv)-5 b(alen)m(t)41 b(to)e
-Fn(vi-command)p Fo(;)i Fn(emacs)c Fo(is)i(equiv)-5 b(alen)m(t)1110
-2037 y(to)33 b Fn(emacs-standard)p Fo(.)41 b(The)31 b(default)h(v)-5
-b(alue)32 b(is)g Fn(emacs)p Fo(.)44 b(The)31 b(v)-5 b(alue)33
-b(of)f(the)1110 2146 y Fn(editing-mode)27 b Fo(v)-5 b(ariable)31
-b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 2303
-y Fn(keyseq-timeout)1110 2412 y Fo(Sp)s(eci\014es)25
+(for)g(k)m(ey)g(binding)f(com-)1110 408 y(mands.)81 b(Acceptable)47
+b Fn(keymap)42 b Fo(names)i(are)h Fn(emacs)p Fo(,)i Fn(emacs-standard)p
+Fo(,)1110 518 y Fn(emacs-meta)p Fo(,)99 b Fn(emacs-ctlx)p
+Fo(,)f Fn(vi)p Fo(,)j Fn(vi-move)p Fo(,)f Fn(vi-command)p
+Fo(,)f(and)1110 628 y Fn(vi-insert)p Fo(.)81 b Fn(vi)44
+b Fo(is)h(equiv)-5 b(alen)m(t)46 b(to)g Fn(vi-command)c
+Fo(\()p Fn(vi-move)h Fo(is)i(also)h(a)1110 737 y(synon)m(ym\);)g
+Fn(emacs)39 b Fo(is)i(equiv)-5 b(alen)m(t)42 b(to)g Fn(emacs-standard)p
+Fo(.)68 b(The)40 b(default)1110 847 y(v)-5 b(alue)52
+b(is)f Fn(emacs)p Fo(.)103 b(The)51 b(v)-5 b(alue)52
+b(of)f(the)h Fn(editing-mode)c Fo(v)-5 b(ariable)52 b(also)1110
+956 y(a\013ects)32 b(the)e(default)h(k)m(eymap.)630 1113
+y Fn(keyseq-timeout)1110 1223 y Fo(Sp)s(eci\014es)25
b(the)g(duration)g(Readline)h(will)g(w)m(ait)g(for)g(a)f(c)m(haracter)i
-(when)e(read-)1110 2522 y(ing)30 b(an)g(am)m(biguous)g(k)m(ey)h
+(when)e(read-)1110 1332 y(ing)30 b(an)g(am)m(biguous)g(k)m(ey)h
(sequence)f(\(one)g(that)h(can)f(form)g(a)g(complete)h(k)m(ey)1110
-2632 y(sequence)j(using)e(the)i(input)e(read)h(so)g(far,)h(or)g(can)f
-(tak)m(e)i(additional)f(input)1110 2741 y(to)g(complete)g(a)f(longer)h
+1442 y(sequence)j(using)e(the)i(input)e(read)h(so)g(far,)h(or)g(can)f
+(tak)m(e)i(additional)f(input)1110 1551 y(to)g(complete)g(a)f(longer)h
(k)m(ey)f(sequence\).)49 b(If)33 b(no)f(input)g(is)h(receiv)m(ed)h
-(within)1110 2851 y(the)43 b(timeout,)48 b(Readline)43
+(within)1110 1661 y(the)43 b(timeout,)48 b(Readline)43
b(will)g(use)g(the)g(shorter)g(but)f(complete)j(k)m(ey)e(se-)1110
-2960 y(quence.)c(Readline)26 b(uses)f(this)h(v)-5 b(alue)26
-b(to)g(determine)g(whether)f(or)g(not)h(input)1110 3070
+1771 y(quence.)c(Readline)26 b(uses)f(this)h(v)-5 b(alue)26
+b(to)g(determine)g(whether)f(or)g(not)h(input)1110 1880
y(is)31 b(a)m(v)-5 b(ailable)33 b(on)d(the)h(curren)m(t)f(input)g
(source)h(\()p Fn(rl_instream)d Fo(b)m(y)i(default\).)1110
-3180 y(The)25 b(v)-5 b(alue)26 b(is)f(sp)s(eci\014ed)f(in)h
+1990 y(The)25 b(v)-5 b(alue)26 b(is)f(sp)s(eci\014ed)f(in)h
(milliseconds,)j(so)d(a)h(v)-5 b(alue)26 b(of)f(1000)i(means)e(that)
-1110 3289 y(Readline)e(will)g(w)m(ait)g(one)g(second)f(for)g
+1110 2099 y(Readline)e(will)g(w)m(ait)g(one)g(second)f(for)g
(additional)i(input.)37 b(If)22 b(this)g(v)-5 b(ariable)23
-b(is)1110 3399 y(set)28 b(to)h(a)f(v)-5 b(alue)29 b(less)f(than)g(or)f
+b(is)1110 2209 y(set)28 b(to)h(a)f(v)-5 b(alue)29 b(less)f(than)g(or)f
(equal)i(to)f(zero,)i(or)e(to)g(a)h(non-n)m(umeric)e(v)-5
-b(alue,)1110 3508 y(Readline)30 b(will)f(w)m(ait)i(un)m(til)e(another)h
+b(alue,)1110 2318 y(Readline)30 b(will)f(w)m(ait)i(un)m(til)e(another)h
(k)m(ey)g(is)f(pressed)g(to)h(decide)f(whic)m(h)g(k)m(ey)1110
-3618 y(sequence)i(to)g(complete.)42 b(The)30 b(default)g(v)-5
-b(alue)31 b(is)g Fn(500)p Fo(.)630 3774 y Fn(mark-directories)1110
-3884 y Fo(If)38 b(set)g(to)h(`)p Fn(on)p Fo(',)i(completed)e(directory)
+2428 y(sequence)i(to)g(complete.)42 b(The)30 b(default)g(v)-5
+b(alue)31 b(is)g Fn(500)p Fo(.)630 2585 y Fn(mark-directories)1110
+2694 y Fo(If)38 b(set)g(to)h(`)p Fn(on)p Fo(',)i(completed)e(directory)
f(names)g(ha)m(v)m(e)i(a)e(slash)g(app)s(ended.)1110
-3994 y(The)30 b(default)g(is)h(`)p Fn(on)p Fo('.)630
-4150 y Fn(mark-modified-lines)1110 4260 y Fo(This)k(v)-5
+2804 y(The)30 b(default)g(is)h(`)p Fn(on)p Fo('.)630
+2960 y Fn(mark-modified-lines)1110 3070 y Fo(This)k(v)-5
b(ariable,)38 b(when)d(set)h(to)h(`)p Fn(on)p Fo(',)g(causes)g
-(Readline)f(to)h(displa)m(y)f(an)f(as-)1110 4369 y(terisk)f(\(`)p
+(Readline)f(to)h(displa)m(y)f(an)f(as-)1110 3180 y(terisk)f(\(`)p
Fn(*)p Fo('\))h(at)f(the)g(start)g(of)g(history)g(lines)g(whic)m(h)f
-(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110 4479 y(This)d(v)-5
+(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110 3289 y(This)d(v)-5
b(ariable)31 b(is)f(`)p Fn(off)p Fo(')g(b)m(y)g(default.)630
-4635 y Fn(mark-symlinked-directori)o(es)1110 4745 y Fo(If)59
+3446 y Fn(mark-symlinked-directori)o(es)1110 3555 y Fo(If)59
b(set)h(to)g(`)p Fn(on)p Fo(',)67 b(completed)60 b(names)f(whic)m(h)g
-(are)h(sym)m(b)s(olic)g(links)f(to)1110 4855 y(directories)71
+(are)h(sym)m(b)s(olic)g(links)f(to)1110 3665 y(directories)71
b(ha)m(v)m(e)f(a)g(slash)f(app)s(ended)f(\(sub)5 b(ject)70
-b(to)g(the)g(v)-5 b(alue)70 b(of)1110 4964 y Fn(mark-directories)p
+b(to)g(the)g(v)-5 b(alue)70 b(of)1110 3774 y Fn(mark-directories)p
Fo(\).)37 b(The)30 b(default)g(is)g(`)p Fn(off)p Fo('.)630
-5121 y Fn(match-hidden-files)1110 5230 y Fo(This)21 b(v)-5
+3931 y Fn(match-hidden-files)1110 4041 y Fo(This)21 b(v)-5
b(ariable,)25 b(when)d(set)g(to)h(`)p Fn(on)p Fo(',)h(causes)f
-(Readline)g(to)g(matc)m(h)g(\014les)f(whose)1110 5340
+(Readline)g(to)g(matc)m(h)g(\014les)f(whose)1110 4150
y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fn(.)p Fo(')g(\(hidden)f
-(\014les\))i(when)e(p)s(erforming)g(\014lename)p eop
-end
-%%Page: 8 11
-TeXDict begin 8 10 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(8)1110 299 y(completion.)75
-b(If)41 b(set)g(to)h(`)p Fn(off)p Fo(',)i(the)e(leading)g(`)p
-Fn(.)p Fo(')f(m)m(ust)g(b)s(e)g(supplied)f(b)m(y)1110
-408 y(the)34 b(user)g(in)g(the)g(\014lename)g(to)h(b)s(e)f(completed.)
+(\014les\))i(when)e(p)s(erforming)g(\014lename)1110 4260
+y(completion.)75 b(If)41 b(set)g(to)h(`)p Fn(off)p Fo(',)i(the)e
+(leading)g(`)p Fn(.)p Fo(')f(m)m(ust)g(b)s(e)g(supplied)f(b)m(y)1110
+4369 y(the)34 b(user)g(in)g(the)g(\014lename)g(to)h(b)s(e)f(completed.)
53 b(This)33 b(v)-5 b(ariable)35 b(is)f(`)p Fn(on)p Fo(')g(b)m(y)1110
-518 y(default.)630 664 y Fn(menu-complete-display-pr)o(efix)1110
-774 y Fo(If)f(set)h(to)g(`)p Fn(on)p Fo(',)h(men)m(u)e(completion)i
+4479 y(default.)630 4635 y Fn(menu-complete-display-pr)o(efix)1110
+4745 y Fo(If)f(set)h(to)g(`)p Fn(on)p Fo(',)h(men)m(u)e(completion)i
(displa)m(ys)e(the)h(common)g(pre\014x)e(of)i(the)1110
-883 y(list)k(of)g(p)s(ossible)f(completions)i(\(whic)m(h)e(ma)m(y)h(b)s
-(e)f(empt)m(y\))i(b)s(efore)e(cycling)1110 993 y(through)30
+4855 y(list)k(of)g(p)s(ossible)f(completions)i(\(whic)m(h)e(ma)m(y)h(b)
+s(e)f(empt)m(y\))i(b)s(efore)e(cycling)1110 4964 y(through)30
b(the)g(list.)42 b(The)29 b(default)i(is)f(`)p Fn(off)p
-Fo('.)630 1139 y Fn(output-meta)1110 1249 y Fo(If)35
+Fo('.)630 5121 y Fn(output-meta)1110 5230 y Fo(If)35
b(set)h(to)g(`)p Fn(on)p Fo(',)h(Readline)f(will)g(displa)m(y)f(c)m
-(haracters)i(with)e(the)h(eigh)m(th)g(bit)1110 1358 y(set)h(directly)g
+(haracters)i(with)e(the)h(eigh)m(th)g(bit)1110 5340 y(set)h(directly)g
(rather)f(than)g(as)h(a)g(meta-pre\014xed)f(escap)s(e)h(sequence.)59
-b(The)1110 1468 y(default)31 b(is)f(`)p Fn(off)p Fo('.)630
-1614 y Fn(page-completions)1110 1724 y Fo(If)j(set)i(to)f(`)p
-Fn(on)p Fo(',)h(Readline)g(uses)e(an)h(in)m(ternal)h
-Fn(more)p Fo(-lik)m(e)f(pager)g(to)h(displa)m(y)1110
-1833 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
+b(The)p eop end
+%%Page: 9 12
+TeXDict begin 9 11 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2153 b(9)1110 299 y(default)26
+b(is)f(`)p Fn(off)p Fo(',)i(but)e(Readline)h(will)g(set)g(it)g(to)h(`)p
+Fn(on)p Fo(')e(if)h(the)f(lo)s(cale)j(con)m(tains)1110
+408 y(eigh)m(t-bit)k(c)m(haracters.)630 596 y Fn(page-completions)1110
+706 y Fo(If)h(set)i(to)f(`)p Fn(on)p Fo(',)h(Readline)g(uses)e(an)h(in)
+m(ternal)h Fn(more)p Fo(-lik)m(e)f(pager)g(to)h(displa)m(y)1110
+816 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
47 b(This)31 b(v)-5 b(ariable)34 b(is)e(`)p Fn(on)p Fo(')1110
-1943 y(b)m(y)e(default.)630 2089 y Fn(print-completions-horizo)o(ntal)o
-(ly)1110 2198 y Fo(If)23 b(set)i(to)g(`)p Fn(on)p Fo(',)g(Readline)g
+925 y(b)m(y)e(default.)630 1113 y Fn(print-completions-horizo)o(ntal)o
+(ly)1110 1223 y Fo(If)23 b(set)i(to)g(`)p Fn(on)p Fo(',)g(Readline)g
(will)f(displa)m(y)g(completions)h(with)f(matc)m(hes)h(sorted)1110
-2308 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
-(than)g(do)m(wn)g(the)h(screen.)1110 2418 y(The)30 b(default)g(is)h(`)p
-Fn(off)p Fo('.)630 2564 y Fn(revert-all-at-newline)1110
-2673 y Fo(If)e(set)h(to)g(`)p Fn(on)p Fo(',)g(Readline)g(will)g(undo)f
+1332 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
+(than)g(do)m(wn)g(the)h(screen.)1110 1442 y(The)30 b(default)g(is)h(`)p
+Fn(off)p Fo('.)630 1630 y Fn(revert-all-at-newline)1110
+1739 y Fo(If)e(set)h(to)g(`)p Fn(on)p Fo(',)g(Readline)g(will)g(undo)f
(all)h(c)m(hanges)h(to)f(history)g(lines)f(b)s(efore)1110
-2783 y(returning)f(when)f Fn(accept-line)f Fo(is)j(executed.)41
-b(By)29 b(default,)g(history)g(lines)1110 2892 y(ma)m(y)42
+1849 y(returning)f(when)f Fn(accept-line)f Fo(is)j(executed.)41
+b(By)29 b(default,)g(history)g(lines)1110 1958 y(ma)m(y)42
b(b)s(e)g(mo)s(di\014ed)e(and)h(retain)i(individual)e(undo)g(lists)h
-(across)g(calls)h(to)1110 3002 y Fn(readline)p Fo(.)38
-b(The)30 b(default)h(is)f(`)p Fn(off)p Fo('.)630 3148
-y Fn(show-all-if-ambiguous)1110 3258 y Fo(This)f(alters)i(the)f
+(across)g(calls)h(to)1110 2068 y Fn(readline)p Fo(.)38
+b(The)30 b(default)h(is)f(`)p Fn(off)p Fo('.)630 2256
+y Fn(show-all-if-ambiguous)1110 2365 y Fo(This)f(alters)i(the)f
(default)g(b)s(eha)m(vior)g(of)g(the)h(completion)g(functions.)40
-b(If)29 b(set)1110 3367 y(to)f(`)p Fn(on)p Fo(',)g(w)m(ords)f(whic)m(h)
+b(If)29 b(set)1110 2475 y(to)f(`)p Fn(on)p Fo(',)g(w)m(ords)f(whic)m(h)
g(ha)m(v)m(e)i(more)f(than)f(one)h(p)s(ossible)f(completion)h(cause)
-1110 3477 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i
-(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 3587 y(The)30
+1110 2585 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i
+(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 2694 y(The)30
b(default)g(v)-5 b(alue)31 b(is)g(`)p Fn(off)p Fo('.)630
-3733 y Fn(show-all-if-unmodified)1110 3842 y Fo(This)38
+2882 y Fn(show-all-if-unmodified)1110 2992 y Fo(This)38
b(alters)h(the)g(default)g(b)s(eha)m(vior)g(of)f(the)h(completion)h
-(functions)e(in)h(a)1110 3952 y(fashion)25 b(similar)h(to)g
+(functions)e(in)h(a)1110 3101 y(fashion)25 b(similar)h(to)g
Fe(sho)m(w-all-if-am)m(biguous)p Fo(.)41 b(If)25 b(set)h(to)h(`)p
-Fn(on)p Fo(',)f(w)m(ords)f(whic)m(h)1110 4061 y(ha)m(v)m(e)32
+Fn(on)p Fo(',)f(w)m(ords)f(whic)m(h)1110 3211 y(ha)m(v)m(e)32
b(more)f(than)f(one)i(p)s(ossible)e(completion)i(without)f(an)m(y)g(p)s
-(ossible)f(par-)1110 4171 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
-f(completions)h(don't)f(share)g(a)h(common)1110 4281
+(ossible)f(par-)1110 3320 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
+f(completions)h(don't)f(share)g(a)h(common)1110 3430
y(pre\014x\))30 b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)g
-(immediately)i(instead)e(of)h(ring-)1110 4390 y(ing)g(the)f(b)s(ell.)41
+(immediately)i(instead)e(of)h(ring-)1110 3540 y(ing)g(the)f(b)s(ell.)41
b(The)30 b(default)g(v)-5 b(alue)31 b(is)f(`)p Fn(off)p
-Fo('.)630 4536 y Fn(show-mode-in-prompt)1110 4646 y Fo(If)35
-b(set)i(to)f(`)p Fn(on)p Fo(',)h(add)e(a)h(c)m(haracter)i(to)e(the)g(b)
-s(eginning)f(of)h(the)g(prompt)f(in-)1110 4756 y(dicating)43
-b(the)f(editing)h(mo)s(de:)63 b(emacs)43 b(\(`)p Fn(@)p
-Fo('\),)i(vi)d(command)g(\(`)p Fn(:)p Fo('\),)k(or)c(vi)1110
-4865 y(insertion)30 b(\(`)p Fn(+)p Fo('\).)42 b(The)30
-b(default)h(v)-5 b(alue)30 b(is)h(`)p Fn(off)p Fo('.)630
-5011 y Fn(skip-completed-text)1110 5121 y Fo(If)h(set)i(to)f(`)p
-Fn(on)p Fo(',)h(this)f(alters)g(the)g(default)g(completion)h(b)s(eha)m
-(vior)f(when)f(in-)1110 5230 y(serting)d(a)h(single)g(matc)m(h)f(in)m
-(to)h(the)g(line.)40 b(It's)30 b(only)f(activ)m(e)i(when)d(p)s(erform-)
-1110 5340 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f(w)m
-(ord.)53 b(If)35 b(enabled,)g(readline)g(do)s(es)p eop
-end
-%%Page: 9 12
-TeXDict begin 9 11 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2153 b(9)1110 299 y(not)41
-b(insert)f(c)m(haracters)i(from)e(the)h(completion)h(that)f(matc)m(h)g
-(c)m(haracters)1110 408 y(after)c(p)s(oin)m(t)g(in)g(the)g(w)m(ord)f(b)
-s(eing)g(completed,)k(so)d(p)s(ortions)f(of)h(the)g(w)m(ord)1110
-518 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g(duplicated.)45
-b(F)-8 b(or)32 b(instance,)h(if)f(this)f(is)h(en-)1110
-628 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g
-(after)h(the)g(`)p Fn(e)p Fo(')f(in)1110 737 y(`)p Fn(Makefile)p
+Fo('.)630 3727 y Fn(show-mode-in-prompt)1110 3837 y Fo(If)g(set)g(to)h
+(`)p Fn(on)p Fo(',)f(add)f(a)i(c)m(haracter)g(to)g(the)f(b)s(eginning)g
+(of)g(the)g(prompt)f(indi-)1110 3947 y(cating)j(the)g(editing)f(mo)s
+(de:)42 b(emacs,)33 b(vi)e(command,)g(or)g(vi)g(insertion.)43
+b(The)1110 4056 y(mo)s(de)30 b(strings)g(are)h(user-settable.)42
+b(The)30 b(default)g(v)-5 b(alue)31 b(is)g(`)p Fn(off)p
+Fo('.)630 4244 y Fn(skip-completed-text)1110 4354 y Fo(If)h(set)i(to)f
+(`)p Fn(on)p Fo(',)h(this)f(alters)g(the)g(default)g(completion)h(b)s
+(eha)m(vior)f(when)f(in-)1110 4463 y(serting)d(a)h(single)g(matc)m(h)f
+(in)m(to)h(the)g(line.)40 b(It's)30 b(only)f(activ)m(e)i(when)d(p)s
+(erform-)1110 4573 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f
+(w)m(ord.)53 b(If)35 b(enabled,)g(readline)g(do)s(es)1110
+4682 y(not)41 b(insert)f(c)m(haracters)i(from)e(the)h(completion)h
+(that)f(matc)m(h)g(c)m(haracters)1110 4792 y(after)c(p)s(oin)m(t)g(in)g
+(the)g(w)m(ord)f(b)s(eing)g(completed,)k(so)d(p)s(ortions)f(of)h(the)g
+(w)m(ord)1110 4902 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g
+(duplicated.)45 b(F)-8 b(or)32 b(instance,)h(if)f(this)f(is)h(en-)1110
+5011 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g
+(after)h(the)g(`)p Fn(e)p Fo(')f(in)1110 5121 y(`)p Fn(Makefile)p
Fo(')c(will)i(result)f(in)g(`)p Fn(Makefile)p Fo(')f(rather)h(than)h(`)
-p Fn(Makefilefile)p Fo(',)1110 847 y(assuming)d(there)g(is)h(a)f
+p Fn(Makefilefile)p Fo(',)1110 5230 y(assuming)d(there)g(is)h(a)f
(single)h(p)s(ossible)f(completion.)56 b(The)35 b(default)g(v)-5
-b(alue)1110 956 y(is)30 b(`)p Fn(off)p Fo('.)630 1113
-y Fn(visible-stats)1110 1223 y Fo(If)h(set)i(to)f(`)p
+b(alue)1110 5340 y(is)30 b(`)p Fn(off)p Fo('.)p eop end
+%%Page: 10 13
+TeXDict begin 10 12 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(10)630 299 y Fn
+(vi-cmd-mode-string)1110 408 y Fo(This)29 b(string)h(is)f(displa)m(y)m
+(ed)i(immediately)g(b)s(efore)e(the)h(last)g(line)h(of)e(the)h(pri-)
+1110 518 y(mary)21 b(prompt)g(when)f(vi)i(editing)g(mo)s(de)f(is)g
+(activ)m(e)j(and)d(in)g(command)g(mo)s(de.)1110 628 y(The)38
+b(v)-5 b(alue)39 b(is)f(expanded)f(lik)m(e)j(a)f(k)m(ey)g(binding,)g
+(so)g(the)f(standard)g(set)h(of)1110 737 y(meta-)30 b(and)e(con)m(trol)
+i(pre\014xes)e(and)g(bac)m(kslash)h(escap)s(e)g(sequences)g(is)g(a)m(v)
+-5 b(ail-)1110 847 y(able.)50 b(Use)33 b(the)h(`)p Fn(\\1)p
+Fo(')f(and)g(`)p Fn(\\2)p Fo(')g(escap)s(es)g(to)h(b)s(egin)f(and)g
+(end)f(sequences)i(of)1110 956 y(non-prin)m(ting)40 b(c)m(haracters,)45
+b(whic)m(h)40 b(can)g(b)s(e)g(used)g(to)h(em)m(b)s(ed)f(a)g(terminal)
+1110 1066 y(con)m(trol)32 b(sequence)f(in)m(to)g(the)f(mo)s(de)g
+(string.)41 b(The)30 b(default)h(is)f(`)p Fn(\(cmd\))p
+Fo('.)630 1209 y Fn(vi-ins-mode-string)1110 1319 y Fo(This)f(string)h
+(is)f(displa)m(y)m(ed)i(immediately)g(b)s(efore)e(the)h(last)g(line)h
+(of)e(the)h(pri-)1110 1428 y(mary)25 b(prompt)f(when)g(vi)h(editing)h
+(mo)s(de)e(is)i(activ)m(e)h(and)d(in)h(insertion)g(mo)s(de.)1110
+1538 y(The)38 b(v)-5 b(alue)39 b(is)f(expanded)f(lik)m(e)j(a)f(k)m(ey)g
+(binding,)g(so)g(the)f(standard)g(set)h(of)1110 1648
+y(meta-)30 b(and)e(con)m(trol)i(pre\014xes)e(and)g(bac)m(kslash)h
+(escap)s(e)g(sequences)g(is)g(a)m(v)-5 b(ail-)1110 1757
+y(able.)50 b(Use)33 b(the)h(`)p Fn(\\1)p Fo(')f(and)g(`)p
+Fn(\\2)p Fo(')g(escap)s(es)g(to)h(b)s(egin)f(and)g(end)f(sequences)i
+(of)1110 1867 y(non-prin)m(ting)40 b(c)m(haracters,)45
+b(whic)m(h)40 b(can)g(b)s(e)g(used)g(to)h(em)m(b)s(ed)f(a)g(terminal)
+1110 1976 y(con)m(trol)32 b(sequence)f(in)m(to)g(the)f(mo)s(de)g
+(string.)41 b(The)30 b(default)h(is)f(`)p Fn(\(ins\))p
+Fo('.)630 2120 y Fn(visible-stats)1110 2229 y Fo(If)h(set)i(to)f(`)p
Fn(on)p Fo(',)h(a)f(c)m(haracter)i(denoting)e(a)g(\014le's)g(t)m(yp)s
-(e)g(is)g(app)s(ended)e(to)j(the)1110 1332 y(\014lename)e(when)e
+(e)g(is)g(app)s(ended)e(to)j(the)1110 2339 y(\014lename)e(when)e
(listing)i(p)s(ossible)f(completions.)42 b(The)30 b(default)g(is)h(`)p
-Fn(off)p Fo('.)150 1489 y(Key)f(Bindings)630 1598 y(The)41
+Fn(off)p Fo('.)150 2482 y(Key)f(Bindings)630 2592 y(The)41
b(syn)m(tax)i(for)f(con)m(trolling)h(k)m(ey)g(bindings)e(in)h(the)g
(init)g(\014le)g(is)g(simple.)75 b(First)43 b(y)m(ou)630
-1708 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i
+2701 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i
(y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41 b(The)27 b(follo)m(wing)630
-1817 y(sections)37 b(con)m(tain)g(tables)g(of)f(the)g(command)f(name,)j
+2811 y(sections)37 b(con)m(tain)g(tables)g(of)f(the)g(command)f(name,)j
(the)e(default)g(k)m(eybinding,)h(if)f(an)m(y)-8 b(,)630
-1927 y(and)30 b(a)h(short)f(description)g(of)h(what)f(the)g(command)h
-(do)s(es.)630 2060 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g
+2921 y(and)30 b(a)h(short)f(description)g(of)h(what)f(the)g(command)h
+(do)s(es.)630 3047 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g
(the)g(command,)h(simply)f(place)h(on)e(a)i(line)f(in)g(the)g(init)630
-2170 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)f(to)h
+3157 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)f(to)h
(bind)f(the)h(command)f(to,)i(a)f(colon,)i(and)d(then)630
-2279 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
+3266 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
b(can)g(b)s(e)g(no)g(space)g(b)s(et)m(w)m(een)h(the)f(k)m(ey)h(name)g
-(and)630 2389 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
+(and)630 3376 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
(terpreted)g(as)g(part)f(of)h(the)g(k)m(ey)h(name.)72
-b(The)40 b(name)h(of)630 2498 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
+b(The)40 b(name)h(of)630 3485 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
(expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,)h(dep)s(ending)d(on)h
-(what)h(y)m(ou)g(\014nd)e(most)630 2608 y(comfortable.)630
-2741 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h
+(what)h(y)m(ou)g(\014nd)e(most)630 3595 y(comfortable.)630
+3721 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h
(k)m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f(string)630
-2851 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
-(\(a)h Fe(macro)5 b Fo(\).)630 3007 y Fe(k)m(eyname)g
+3831 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
+(\(a)h Fe(macro)5 b Fo(\).)630 3974 y Fe(k)m(eyname)g
Fo(:)42 b Fe(function-name)35 b Fo(or)c Fe(macro)1110
-3117 y(k)m(eyname)k Fo(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s
+4084 y(k)m(eyname)k Fo(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s
(elled)e(out)h(in)g(English.)39 b(F)-8 b(or)30 b(example:)1350
-3250 y Fn(Control-u:)45 b(universal-argument)1350 3360
-y(Meta-Rubout:)f(backward-kill-word)1350 3469 y(Control-o:)h(">)i
-(output")1110 3602 y Fo(In)94 b(the)g(ab)s(o)m(v)m(e)i(example,)111
+4210 y Fn(Control-u:)45 b(universal-argument)1350 4320
+y(Meta-Rubout:)f(backward-kill-word)1350 4430 y(Control-o:)h(">)i
+(output")1110 4556 y Fo(In)94 b(the)g(ab)s(o)m(v)m(e)i(example,)111
b Fg(C-u)94 b Fo(is)g(b)s(ound)f(to)i(the)f(function)1110
-3712 y Fn(universal-argument)p Fo(,)124 b Fg(M-DEL)107
-b Fo(is)i(b)s(ound)e(to)j(the)f(function)1110 3821 y
+4666 y Fn(universal-argument)p Fo(,)124 b Fg(M-DEL)107
+b Fo(is)i(b)s(ound)e(to)j(the)f(function)1110 4775 y
Fn(backward-kill-word)p Fo(,)75 b(and)69 b Fg(C-o)g Fo(is)h(b)s(ound)e
-(to)j(run)d(the)i(macro)1110 3931 y(expressed)45 b(on)h(the)g(righ)m(t)
+(to)j(run)d(the)i(macro)1110 4885 y(expressed)45 b(on)h(the)g(righ)m(t)
g(hand)e(side)i(\(that)h(is,)i(to)e(insert)e(the)h(text)h(`)p
-Fn(>)1110 4041 y(output)p Fo(')29 b(in)m(to)i(the)g(line\).)1110
-4174 y(A)62 b(n)m(um)m(b)s(er)e(of)i(sym)m(b)s(olic)h(c)m(haracter)g
-(names)f(are)g(recognized)h(while)1110 4283 y(pro)s(cessing)40
+Fn(>)1110 4994 y(output)p Fo(')29 b(in)m(to)i(the)g(line\).)1110
+5121 y(A)62 b(n)m(um)m(b)s(er)e(of)i(sym)m(b)s(olic)h(c)m(haracter)g
+(names)f(are)g(recognized)h(while)1110 5230 y(pro)s(cessing)40
b(this)f(k)m(ey)i(binding)e(syn)m(tax:)60 b Fe(DEL)p
Fo(,)42 b Fe(ESC)p Fo(,)g Fe(ESCAPE)p Fo(,)f Fe(LFD)p
-Fo(,)1110 4393 y Fe(NEWLINE)p Fo(,)31 b Fe(RET)p Fo(,)f
+Fo(,)1110 5340 y Fe(NEWLINE)p Fo(,)31 b Fe(RET)p Fo(,)f
Fe(RETURN)p Fo(,)g Fe(R)m(UBOUT)p Fo(,)h Fe(SP)-8 b(A)m(CE)p
-Fo(,)31 b Fe(SPC)p Fo(,)e(and)h Fe(T)-8 b(AB)p Fo(.)630
-4549 y Fn(")p Fe(k)m(eyseq)r Fn(")p Fo(:)41 b Fe(function-name)36
-b Fo(or)30 b Fe(macro)1110 4659 y(k)m(eyseq)k Fo(di\013ers)d(from)f
+Fo(,)31 b Fe(SPC)p Fo(,)e(and)h Fe(T)-8 b(AB)p Fo(.)p
+eop end
+%%Page: 11 14
+TeXDict begin 11 13 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(11)630 299 y Fn(")p
+Fe(k)m(eyseq)r Fn(")p Fo(:)41 b Fe(function-name)36 b
+Fo(or)30 b Fe(macro)1110 408 y(k)m(eyseq)k Fo(di\013ers)d(from)f
Fe(k)m(eyname)37 b Fo(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f
-(denoting)g(an)g(en-)1110 4769 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s
-(e)f(sp)s(eci\014ed,)h(b)m(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)
-1110 4878 y(double)29 b(quotes.)41 b(Some)29 b Fh(gnu)h
-Fo(Emacs)f(st)m(yle)i(k)m(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)
-1110 4988 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s
-(ecial)h(c)m(haracter)g(names)f(are)g(not)1110 5097 y(recognized.)1350
-5230 y Fn("\\C-u":)46 b(universal-argument)1350 5340
-y("\\C-x\\C-r":)f(re-read-init-file)p eop end
-%%Page: 10 13
-TeXDict begin 10 12 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(10)1350 299 y Fn("\\e[11~":)45
-b("Function)h(Key)g(1")1110 447 y Fo(In)64 b(the)g(ab)s(o)m(v)m(e)i
-(example,)74 b Fg(C-u)64 b Fo(is)g(again)i(b)s(ound)c(to)k(the)e
-(function)1110 556 y Fn(universal-argument)39 b Fo(\(just)k(as)h(it)g
-(w)m(as)g(in)g(the)f(\014rst)g(example\),)49 b(`)p Fg(C-x)1110
-666 y(C-r)p Fo(')30 b(is)g(b)s(ound)e(to)j(the)g(function)f
+(denoting)g(an)g(en-)1110 518 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s(e)
+f(sp)s(eci\014ed,)h(b)m(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)1110
+628 y(double)29 b(quotes.)41 b(Some)29 b Fh(gnu)h Fo(Emacs)f(st)m(yle)i
+(k)m(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)1110
+737 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s(ecial)h(c)m
+(haracter)g(names)f(are)g(not)1110 847 y(recognized.)1350
+981 y Fn("\\C-u":)46 b(universal-argument)1350 1091 y("\\C-x\\C-r":)f
+(re-read-init-file)1350 1200 y("\\e[11~":)g("Function)h(Key)g(1")1110
+1334 y Fo(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
+b Fg(C-u)64 b Fo(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110
+1444 y Fn(universal-argument)39 b Fo(\(just)k(as)h(it)g(w)m(as)g(in)g
+(the)f(\014rst)g(example\),)49 b(`)p Fg(C-x)1110 1554
+y(C-r)p Fo(')30 b(is)g(b)s(ound)e(to)j(the)g(function)f
Fn(re-read-init-file)p Fo(,)c(and)j(`)p Fn(ESC)h([)g(1)g(1)1110
-775 y(~)p Fo(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p
-Fn(Function)e(Key)g(1)p Fo('.)630 961 y(The)g(follo)m(wing)i
+1663 y(~)p Fo(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p
+Fn(Function)e(Key)g(1)p Fo('.)630 1822 y(The)g(follo)m(wing)i
Fh(gnu)f Fo(Emacs)g(st)m(yle)h(escap)s(e)f(sequences)g(are)g(a)m(v)-5
-b(ailable)32 b(when)d(sp)s(ecifying)630 1071 y(k)m(ey)i(sequences:)630
-1257 y Fg(\\C-)336 b Fo(con)m(trol)32 b(pre\014x)630
-1443 y Fg(\\M-)336 b Fo(meta)31 b(pre\014x)630 1629 y
+b(ailable)32 b(when)d(sp)s(ecifying)630 1932 y(k)m(ey)i(sequences:)630
+2091 y Fg(\\C-)336 b Fo(con)m(trol)32 b(pre\014x)630
+2250 y Fg(\\M-)336 b Fo(meta)31 b(pre\014x)630 2408 y
Fg(\\e)384 b Fo(an)30 b(escap)s(e)h(c)m(haracter)630
-1815 y Fg(\\\\)384 b Fo(bac)m(kslash)630 2001 y Fg(\\)p
+2567 y Fg(\\\\)384 b Fo(bac)m(kslash)630 2726 y Fg(\\)p
Fn(")g(")p Fo(,)30 b(a)h(double)f(quotation)i(mark)630
-2186 y Fg(\\')384 b Fn(')p Fo(,)30 b(a)h(single)g(quote)g(or)f(ap)s
-(ostrophe)630 2372 y(In)d(addition)h(to)g(the)g Fh(gnu)f
+2885 y Fg(\\')384 b Fn(')p Fo(,)30 b(a)h(single)g(quote)g(or)f(ap)s
+(ostrophe)630 3044 y(In)d(addition)h(to)g(the)g Fh(gnu)f
Fo(Emacs)h(st)m(yle)h(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g
-(bac)m(kslash)630 2482 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630
-2668 y Fn(\\a)384 b Fo(alert)31 b(\(b)s(ell\))630 2854
-y Fn(\\b)384 b Fo(bac)m(kspace)630 3040 y Fn(\\d)g Fo(delete)630
-3226 y Fn(\\f)g Fo(form)30 b(feed)630 3412 y Fn(\\n)384
-b Fo(newline)630 3597 y Fn(\\r)g Fo(carriage)32 b(return)630
-3783 y Fn(\\t)384 b Fo(horizon)m(tal)32 b(tab)630 3969
-y Fn(\\v)384 b Fo(v)m(ertical)32 b(tab)630 4155 y Fn(\\)p
+(bac)m(kslash)630 3154 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630
+3313 y Fn(\\a)384 b Fo(alert)31 b(\(b)s(ell\))630 3471
+y Fn(\\b)384 b Fo(bac)m(kspace)630 3630 y Fn(\\d)g Fo(delete)630
+3789 y Fn(\\f)g Fo(form)30 b(feed)630 3948 y Fn(\\n)384
+b Fo(newline)630 4107 y Fn(\\r)g Fo(carriage)32 b(return)630
+4266 y Fn(\\t)384 b Fo(horizon)m(tal)32 b(tab)630 4425
+y Fn(\\v)384 b Fo(v)m(ertical)32 b(tab)630 4584 y Fn(\\)p
Fg(nnn)288 b Fo(the)35 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 b(alue)35 b Fe(nnn)e
-Fo(\(one)i(to)1110 4265 y(three)c(digits\))630 4451 y
+Fo(\(one)i(to)1110 4693 y(three)c(digits\))630 4852 y
Fn(\\x)p Fg(HH)288 b Fo(the)38 b(eigh)m(t-bit)i(c)m(haracter)g(whose)e
(v)-5 b(alue)39 b(is)f(the)h(hexadecimal)g(v)-5 b(alue)39
-b Fe(HH)1110 4560 y Fo(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
-4746 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e
+b Fe(HH)1110 4962 y Fo(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
+5121 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e
(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)630
-4856 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21
+5230 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21
b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f(name.)38
-b(In)630 4965 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
+b(In)630 5340 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m(e)j
-(are)e(expanded.)37 b(Bac)m(kslash)630 5075 y(will)j(quote)h(an)m(y)f
-(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
-b(`)p Fn(")p Fo(')h(and)g(`)p Fn(')p Fo('.)69 b(F)-8
-b(or)630 5185 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
-(mak)m(e)h(`)p Fg(C-x)j Fn(\\)p Fo(')c(insert)f(a)h(single)h(`)p
-Fn(\\)p Fo(')f(in)m(to)g(the)g(line:)870 5332 y Fn("\\C-x\\\\":)45
-b("\\\\")p eop end
-%%Page: 11 14
-TeXDict begin 11 13 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(11)150 299 y Fd(1.3.2)63
-b(Conditional)41 b(Init)g(Constructs)150 446 y Fo(Readline)c(implemen)m
-(ts)g(a)h(facilit)m(y)g(similar)f(in)g(spirit)f(to)i(the)f(conditional)
-h(compilation)g(features)f(of)150 555 y(the)31 b(C)f(prepro)s(cessor)g
-(whic)m(h)g(allo)m(ws)i(k)m(ey)g(bindings)d(and)h(v)-5
-b(ariable)32 b(settings)f(to)h(b)s(e)e(p)s(erformed)f(as)i(the)150
-665 y(result)f(of)h(tests.)41 b(There)30 b(are)h(four)f(parser)f
-(directiv)m(es)j(used.)150 824 y Fn($if)336 b Fo(The)31
-b Fn($if)f Fo(construct)i(allo)m(ws)h(bindings)d(to)i(b)s(e)e(made)i
-(based)f(on)g(the)g(editing)h(mo)s(de,)g(the)630 934
-y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g(application)h(using)f
-(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)630 1044
-y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m(haracters)i
-(are)f(required)e(to)i(isolate)i(it.)630 1203 y Fn(mode)288
-b Fo(The)30 b Fn(mode=)e Fo(form)i(of)g(the)h Fn($if)e
-Fo(directiv)m(e)j(is)e(used)f(to)i(test)g(whether)e(Read-)1110
-1313 y(line)44 b(is)f(in)g Fn(emacs)f Fo(or)h Fn(vi)g
+(are)e(expanded.)37 b(Bac)m(kslash)p eop end
+%%Page: 12 15
+TeXDict begin 12 14 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(12)630 299 y(will)40
+b(quote)h(an)m(y)f(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k
+(including)39 b(`)p Fn(")p Fo(')h(and)g(`)p Fn(')p Fo('.)69
+b(F)-8 b(or)630 408 y(example,)28 b(the)e(follo)m(wing)h(binding)d
+(will)i(mak)m(e)h(`)p Fg(C-x)j Fn(\\)p Fo(')c(insert)f(a)h(single)h(`)p
+Fn(\\)p Fo(')f(in)m(to)g(the)g(line:)870 536 y Fn("\\C-x\\\\":)45
+b("\\\\")150 721 y Fd(1.3.2)63 b(Conditional)41 b(Init)g(Constructs)150
+868 y Fo(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f(in)g
+(spirit)f(to)i(the)f(conditional)h(compilation)g(features)f(of)150
+978 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g
+(bindings)d(and)h(v)-5 b(ariable)32 b(settings)f(to)h(b)s(e)e(p)s
+(erformed)f(as)i(the)150 1087 y(result)f(of)h(tests.)41
+b(There)30 b(are)h(four)f(parser)f(directiv)m(es)j(used.)150
+1233 y Fn($if)336 b Fo(The)31 b Fn($if)f Fo(construct)i(allo)m(ws)h
+(bindings)d(to)i(b)s(e)e(made)i(based)f(on)g(the)g(editing)h(mo)s(de,)g
+(the)630 1342 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g
+(application)h(using)f(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)
+630 1452 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m
+(haracters)i(are)f(required)e(to)i(isolate)i(it.)630
+1597 y Fn(mode)288 b Fo(The)30 b Fn(mode=)e Fo(form)i(of)g(the)h
+Fn($if)e Fo(directiv)m(e)j(is)e(used)f(to)i(test)g(whether)e(Read-)1110
+1707 y(line)44 b(is)f(in)g Fn(emacs)f Fo(or)h Fn(vi)g
Fo(mo)s(de.)79 b(This)42 b(ma)m(y)i(b)s(e)e(used)h(in)g(conjunction)
-1110 1422 y(with)c(the)h(`)p Fn(set)29 b(keymap)p Fo(')38
+1110 1816 y(with)c(the)h(`)p Fn(set)29 b(keymap)p Fo(')38
b(command,)k(for)d(instance,)j(to)e(set)g(bindings)e(in)1110
-1532 y(the)32 b Fn(emacs-standard)c Fo(and)j Fn(emacs-ctlx)d
-Fo(k)m(eymaps)k(only)g(if)g(Readline)g(is)1110 1641 y(starting)f(out)g
-(in)f Fn(emacs)f Fo(mo)s(de.)630 1801 y Fn(term)288 b
+1926 y(the)32 b Fn(emacs-standard)c Fo(and)j Fn(emacs-ctlx)d
+Fo(k)m(eymaps)k(only)g(if)g(Readline)g(is)1110 2036 y(starting)f(out)g
+(in)f Fn(emacs)f Fo(mo)s(de.)630 2181 y Fn(term)288 b
Fo(The)26 b Fn(term=)g Fo(form)g(ma)m(y)i(b)s(e)e(used)g(to)i(include)f
-(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110 1910 y(ings,)38
+(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110 2291 y(ings,)38
b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f(output)g(b)m(y)g
-(the)g(terminal's)1110 2020 y(function)24 b(k)m(eys.)39
+(the)g(terminal's)1110 2400 y(function)24 b(k)m(eys.)39
b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)f(side)g(of)g(the)g(`)p
-Fn(=)p Fo(')g(is)g(tested)h(against)1110 2130 y(b)s(oth)k(the)h(full)g
+Fn(=)p Fo(')g(is)g(tested)h(against)1110 2510 y(b)s(oth)k(the)h(full)g
(name)g(of)g(the)g(terminal)h(and)e(the)i(p)s(ortion)e(of)h(the)g
-(terminal)1110 2239 y(name)k(b)s(efore)f(the)g(\014rst)g(`)p
+(terminal)1110 2619 y(name)k(b)s(efore)f(the)g(\014rst)g(`)p
Fn(-)p Fo('.)50 b(This)33 b(allo)m(ws)i Fn(sun)e Fo(to)h(matc)m(h)g(b)s
-(oth)f Fn(sun)g Fo(and)1110 2349 y Fn(sun-cmd)p Fo(,)c(for)h(instance.)
-630 2508 y Fn(application)1110 2618 y Fo(The)21 b Fe(application)j
+(oth)f Fn(sun)g Fo(and)1110 2729 y Fn(sun-cmd)p Fo(,)c(for)h(instance.)
+630 2874 y Fn(application)1110 2984 y Fo(The)21 b Fe(application)j
Fo(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h
-(set-)1110 2727 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
+(set-)1110 3093 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
(Readline)g(library)g(sets)g(the)g Fe(application)1110
-2837 y(name)p Fo(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
+3203 y(name)p Fo(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
(v)-5 b(alue.)39 b(This)22 b(could)h(b)s(e)g(used)f(to)1110
-2946 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h
-(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 3056
+3313 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h
+(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 3422
y(instance,)35 b(the)e(follo)m(wing)h(command)f(adds)f(a)i(k)m(ey)f
-(sequence)h(that)f(quotes)1110 3166 y(the)e(curren)m(t)f(or)g(previous)
-g(w)m(ord)g(in)g(Bash:)1350 3300 y Fn($if)47 b(Bash)1350
-3410 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
-3519 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 3629 y($endif)150
-3788 y($endif)192 b Fo(This)29 b(command,)i(as)f(seen)h(in)f(the)g
+(sequence)h(that)f(quotes)1110 3532 y(the)e(curren)m(t)f(or)g(previous)
+g(w)m(ord)g(in)g(Bash:)1350 3659 y Fn($if)47 b(Bash)1350
+3769 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
+3878 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 3988 y($endif)150
+4133 y($endif)192 b Fo(This)29 b(command,)i(as)f(seen)h(in)f(the)g
(previous)g(example,)h(terminates)g(an)g Fn($if)e Fo(command.)150
-3948 y Fn($else)240 b Fo(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
+4279 y Fn($else)240 b Fo(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
(the)f Fn($if)g Fo(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g
-(fails.)150 4107 y Fn($include)96 b Fo(This)43 b(directiv)m(e)i(tak)m
+(fails.)150 4424 y Fn($include)96 b Fo(This)43 b(directiv)m(e)i(tak)m
(es)g(a)e(single)i(\014lename)e(as)h(an)f(argumen)m(t)h(and)f(reads)g
-(commands)630 4217 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
+(commands)630 4534 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
b(F)-8 b(or)39 b(example,)j(the)d(follo)m(wing)h(directiv)m(e)g(reads)e
-(from)630 4326 y Fn(/etc/inputrc)p Fo(:)870 4461 y Fn($include)46
-b(/etc/inputrc)150 4660 y Fd(1.3.3)63 b(Sample)41 b(Init)g(File)150
-4807 y Fo(Here)27 b(is)f(an)h(example)g(of)f(an)h Fe(inputrc)k
+(from)630 4643 y Fn(/etc/inputrc)p Fo(:)870 4771 y Fn($include)46
+b(/etc/inputrc)150 4956 y Fd(1.3.3)63 b(Sample)41 b(Init)g(File)150
+5103 y Fo(Here)27 b(is)f(an)h(example)g(of)f(an)h Fe(inputrc)k
Fo(\014le.)39 b(This)26 b(illustrates)h(k)m(ey)h(binding,)e(v)-5
-b(ariable)27 b(assignmen)m(t,)i(and)150 4917 y(conditional)j(syn)m
+b(ariable)27 b(assignmen)m(t,)i(and)150 5212 y(conditional)j(syn)m
(tax.)p eop end
-%%Page: 12 15
-TeXDict begin 12 14 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(12)390 408 y Fn(#)47
+%%Page: 13 16
+TeXDict begin 13 15 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(13)p eop end
+%%Page: 14 17
+TeXDict begin 14 16 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(14)390 408 y Fn(#)47
b(This)g(file)g(controls)e(the)i(behaviour)e(of)j(line)e(input)h
(editing)e(for)390 518 y(#)i(programs)f(that)h(use)g(the)f(GNU)h
(Readline)f(library.)93 b(Existing)390 628 y(#)47 b(programs)f(include)
@@ -6036,9 +6105,9 @@ h(function)f(name)g(is)h(ignored)p 3970 2401 42 76 v
4902 y(#)390 5011 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(ANSI)g(mode)
390 5121 y(#)390 5230 y(#"\\M-\\C-[D":)331 b(backward-char)390
5340 y(#"\\M-\\C-[C":)g(forward-char)p eop end
-%%Page: 13 16
-TeXDict begin 13 15 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(13)390 299 y Fn(#"\\M-\\C-[A":)331
+%%Page: 15 18
+TeXDict begin 15 17 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(15)390 299 y Fn(#"\\M-\\C-[A":)331
b(previous-history)390 408 y(#"\\M-\\C-[B":)g(next-history)390
628 y(C-q:)47 b(quoted-insert)390 847 y($endif)390 1066
y(#)g(An)h(old-style)d(binding.)93 b(This)47 b(happens)f(to)h(be)g(the)
@@ -6071,57 +6140,57 @@ y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h
(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
(completion-query-items)42 b(150)p eop end
-%%Page: 14 17
-TeXDict begin 14 16 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(14)390 299 y Fn(#)47
+%%Page: 16 19
+TeXDict begin 16 18 bop 150 -116 a Fo(Chapter)30 b(1:)41
+b(Command)29 b(Line)i(Editing)2107 b(16)390 299 y Fn(#)47
b(For)g(FTP)390 408 y($if)g(Ftp)390 518 y("\\C-xg":)f("get)g(\\M-?")390
628 y("\\C-xt":)g("put)g(\\M-?")390 737 y("\\M-.":)g(yank-last-arg)390
-847 y($endif)150 1077 y Fm(1.4)68 b(Bindable)45 b(Readline)i(Commands)
-150 1237 y Fo(This)25 b(section)i(describ)s(es)d(Readline)j(commands)e
+847 y($endif)150 1085 y Fm(1.4)68 b(Bindable)45 b(Readline)i(Commands)
+150 1244 y Fo(This)25 b(section)i(describ)s(es)d(Readline)j(commands)e
(that)h(ma)m(y)g(b)s(e)f(b)s(ound)f(to)i(k)m(ey)h(sequences.)39
-b(Command)150 1346 y(names)30 b(without)h(an)f(accompan)m(ying)i(k)m
+b(Command)150 1354 y(names)30 b(without)h(an)f(accompan)m(ying)i(k)m
(ey)f(sequence)g(are)g(un)m(b)s(ound)c(b)m(y)k(default.)275
-1480 y(In)25 b(the)h(follo)m(wing)i(descriptions,)f Fe(p)s(oin)m(t)h
+1487 y(In)25 b(the)h(follo)m(wing)i(descriptions,)f Fe(p)s(oin)m(t)h
Fo(refers)e(to)h(the)f(curren)m(t)g(cursor)g(p)s(osition,)h(and)f
-Fe(mark)31 b Fo(refers)150 1590 y(to)40 b(a)f(cursor)f(p)s(osition)h
+Fe(mark)31 b Fo(refers)150 1597 y(to)40 b(a)f(cursor)f(p)s(osition)h
(sa)m(v)m(ed)h(b)m(y)f(the)g Fn(set-mark)d Fo(command.)66
b(The)38 b(text)i(b)s(et)m(w)m(een)g(the)f(p)s(oin)m(t)g(and)150
-1699 y(mark)30 b(is)h(referred)e(to)i(as)g(the)f Fe(region)p
-Fo(.)150 1897 y Fd(1.4.1)63 b(Commands)42 b(F)-10 b(or)41
-b(Mo)m(ving)150 2067 y Fn(beginning-of-line)26 b(\(C-a\))630
-2177 y Fo(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f(curren)m(t)g
-(line.)150 2335 y Fn(end-of-line)d(\(C-e\))630 2444 y
+1706 y(mark)30 b(is)h(referred)e(to)i(as)g(the)f Fe(region)p
+Fo(.)150 1903 y Fd(1.4.1)63 b(Commands)42 b(F)-10 b(or)41
+b(Mo)m(ving)150 2074 y Fn(beginning-of-line)26 b(\(C-a\))630
+2183 y Fo(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f(curren)m(t)g
+(line.)150 2340 y Fn(end-of-line)d(\(C-e\))630 2450 y
Fo(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
-2602 y Fn(forward-char)c(\(C-f\))630 2711 y Fo(Mo)m(v)m(e)32
-b(forw)m(ard)e(a)h(c)m(haracter.)150 2869 y Fn(backward-char)c(\(C-b\))
-630 2978 y Fo(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150
-3136 y Fn(forward-word)d(\(M-f\))630 3246 y Fo(Mo)m(v)m(e)32
+2607 y Fn(forward-char)c(\(C-f\))630 2716 y Fo(Mo)m(v)m(e)32
+b(forw)m(ard)e(a)h(c)m(haracter.)150 2873 y Fn(backward-char)c(\(C-b\))
+630 2983 y Fo(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150
+3140 y Fn(forward-word)d(\(M-f\))630 3249 y Fo(Mo)m(v)m(e)32
b(forw)m(ard)e(to)h(the)f(end)g(of)g(the)h(next)f(w)m(ord.)41
b(W)-8 b(ords)30 b(are)h(comp)s(osed)f(of)g(letters)i(and)630
-3355 y(digits.)150 3513 y Fn(backward-word)27 b(\(M-b\))630
-3622 y Fo(Mo)m(v)m(e)36 b(bac)m(k)e(to)g(the)g(start)g(of)g(the)g
+3359 y(digits.)150 3516 y Fn(backward-word)27 b(\(M-b\))630
+3625 y Fo(Mo)m(v)m(e)36 b(bac)m(k)e(to)g(the)g(start)g(of)g(the)g
(curren)m(t)f(or)g(previous)g(w)m(ord.)50 b(W)-8 b(ords)34
-b(are)g(comp)s(osed)630 3732 y(of)d(letters)g(and)f(digits.)150
-3889 y Fn(clear-screen)d(\(C-l\))630 3999 y Fo(Clear)g(the)g(screen)f
+b(are)g(comp)s(osed)630 3735 y(of)d(letters)g(and)f(digits.)150
+3892 y Fn(clear-screen)d(\(C-l\))630 4001 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 4109 y(of)k(the)f(screen.)150
-4266 y Fn(redraw-current-line)25 b(\(\))630 4376 y Fo(Refresh)30
+(curren)m(t)g(line)g(at)g(the)g(top)630 4111 y(of)k(the)f(screen.)150
+4268 y Fn(redraw-current-line)25 b(\(\))630 4377 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 4573 y Fd(1.4.2)63 b(Commands)42 b(F)-10 b(or)41
-b(Manipulating)h(The)f(History)150 4744 y Fn(accept-line)27
+(ound.)150 4574 y Fd(1.4.2)63 b(Commands)42 b(F)-10 b(or)41
+b(Manipulating)h(The)f(History)150 4745 y Fn(accept-line)27
b(\(Newline)h(or)i(Return\))630 4854 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
-4963 y(ma)m(y)32 b(b)s(e)g(added)f(to)h(the)g(history)g(list)h(for)e
+4964 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 5073 y(line)g(is)f(a)h(mo)s(di\014ed)e(history)h
+b(If)31 b(this)630 5074 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 5230 y Fn(previous-history)26 b(\(C-p\))630
5340 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.)p eop end
-%%Page: 15 18
-TeXDict begin 15 17 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(15)150 299 y Fn(next-history)27
+%%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(next-history)27
b(\(C-n\))630 408 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
558 y Fn(beginning-of-history)25 b(\(M-<\))630 667 y
@@ -6134,26 +6203,30 @@ 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
1295 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 1445 y Fn(forward-search-history)24
-b(\(C-s\))630 1554 y Fo(Searc)m(h)30 b(forw)m(ard)f(starting)h(at)g
-(the)g(curren)m(t)f(line)h(and)f(mo)m(ving)h(`do)m(wn')f(through)g(the)
-h(the)630 1664 y(history)g(as)h(necessary)-8 b(.)41 b(This)30
+b(\(C-s\))630 1554 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 1664 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 1813 y Fn
(non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24
b(\(M-p\))630 1923 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 2032 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
-2142 y(user.)150 2291 y Fn(non-incremental-forward-)o(sear)o(ch-h)o
-(ist)o(ory)24 b(\(M-n\))630 2401 y Fo(Searc)m(h)30 b(forw)m(ard)f
-(starting)h(at)g(the)g(curren)m(t)f(line)h(and)f(mo)m(ving)h(`do)m(wn')
-f(through)g(the)h(the)630 2511 y(history)d(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 2620 y(user.)150 2770 y Fn(history-search-forward)d(\(\))630
-2879 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
-2989 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 3098 y(b)s(eginning)32 b(of)g(a)h(history)g(line.)47
+2142 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 2291 y Fn
+(non-incremental-forward-)o(sear)o(ch-h)o(ist)o(ory)24
+b(\(M-n\))630 2401 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 2511 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
+2620 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 2770 y Fn
+(history-search-forward)24 b(\(\))630 2879 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 2989 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
+3098 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 3208 y(command)d(is)h(un)m(b)s(ound.)150
3357 y Fn(history-search-backward)24 b(\(\))630 3467
@@ -6185,9 +6258,9 @@ y Fo(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g
5340 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)p eop end
-%%Page: 16 19
-TeXDict begin 16 18 bop 150 -116 a Fo(Chapter)30 b(1:)41
-b(Command)29 b(Line)i(Editing)2107 b(16)630 299 y(the)35
+%%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(the)35
b(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 408 y(0\).)69
b(A)40 b(negativ)m(e)h(argumen)m(t)f(inserts)g(the)f
@@ -6195,371 +6268,380 @@ Fe(n)p Fo(th)g(w)m(ord)g(from)g(the)h(end)f(of)h(the)f(previous)630
518 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
628 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 798 y Fn(yank-last-arg)d(\(M-.)i(or)h(M-_\))
-630 908 y Fo(Insert)k(last)i(argumen)m(t)g(to)g(the)f(previous)f
+(een)g(sp)s(eci\014ed.)150 775 y Fn(yank-last-arg)d(\(M-.)i(or)h(M-_\))
+630 885 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
-1018 y(history)e(en)m(try\).)51 b(With)34 b(a)g(n)m(umeric)g(argumen)m
+994 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 1127 y(Successiv)m(e)26 b(calls)g(to)f Fn(yank-last-arg)c
+Fo(.)630 1104 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 1237 y(the)c(last)g(w)m(ord)f(\(or)h(the)g(w)m(ord)f(sp)
+(inserting)630 1214 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 1346 y(in)36 b(turn.)58 b(An)m(y)36
+(of)f(eac)m(h)h(line)630 1323 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 1456 y(the)d(direction)g(to)h(mo)m(v)m(e)g
+(calls)h(determines)630 1433 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 1565 y(direction)23 b(through)g(the)g(history)f
+(switc)m(hes)h(the)630 1542 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 1675 y(are)28 b(used)f(to)h(extract)h(the)f(last)g
+(facilities)630 1652 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 1785 y(sp)s(eci\014ed.)150 1995 y
+h(had)f(b)s(een)630 1762 y(sp)s(eci\014ed.)150 1949 y
Fd(1.4.3)63 b(Commands)42 b(F)-10 b(or)41 b(Changing)g(T)-10
-b(ext)150 2173 y Fg(end-of-file)27 b Fn(\(usually)h(C-d\))630
-2282 y Fo(The)e(c)m(haracter)h(indicating)h(end-of-\014le)e(as)h(set,)g
+b(ext)150 2115 y Fg(end-of-file)27 b Fn(\(usually)h(C-d\))630
+2225 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 2392 y(ter)c(is)g(read)g(when)e(there)i(are)h(no)e(c)m
+(harac-)630 2334 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 2501 y(of)31 b(the)f(line,)h(Readline)g(in)m(terprets)g
+(eginning)630 2444 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 2672 y Fn(delete-char)e(\(C-d\))630 2782 y Fo(Delete)35
+Fo(.)150 2591 y Fn(delete-char)e(\(C-d\))630 2701 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 2891
+(is)g(b)s(ound)e(to)j(the)g(same)f(c)m(haracter)630 2811
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 3062 y Fn(backward-delete-char)25 b(\(Rubout\))630
-3172 y Fo(Delete)32 b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40
+(e\013ects.)150 2958 y Fn(backward-delete-char)25 b(\(Rubout\))630
+3068 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
-3281 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
-3452 y Fn(forward-backward-delete-)o(char)24 b(\(\))630
-3561 y Fo(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h
+3177 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
+3325 y Fn(forward-backward-delete-)o(char)24 b(\(\))630
+3434 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
-3671 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s
+3544 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
-3781 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
-3951 y Fn(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 4061
+3654 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
+3801 y Fn(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 3911
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
-4170 y(sequences)d(lik)m(e)g Fg(C-q)p Fo(,)f(for)g(example.)150
-4341 y Fn(tab-insert)e(\(M-TAB\))630 4451 y Fo(Insert)i(a)h(tab)f(c)m
-(haracter.)150 4621 y Fn(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o
-(\))630 4731 y Fo(Insert)g(y)m(ourself.)150 4902 y Fn(transpose-chars)c
-(\(C-t\))630 5011 y Fo(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)g
+4020 y(sequences)d(lik)m(e)g Fg(C-q)p Fo(,)f(for)g(example.)150
+4168 y Fn(tab-insert)e(\(M-TAB\))630 4278 y Fo(Insert)i(a)h(tab)f(c)m
+(haracter.)150 4425 y Fn(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o
+(\))630 4535 y Fo(Insert)g(y)m(ourself.)150 4682 y Fn
+(bracketed-paste-begin)25 b(\(\))630 4792 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
+4902 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 5011 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
+5121 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
+5230 y(as)i(if)g(eac)m(h)i(one)e(w)m(as)h(b)s(ound)d(to)i
+Fn(self-insert)p Fo(\))e(instead)i(of)h(executing)g(an)m(y)f(editing)
+630 5340 y(commands.)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(transpose-chars)26
+b(\(C-t\))630 408 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 5121 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m
+(cursor,)630 518 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 5230 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h
+g(of)h(the)630 628 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 5340 y(ha)m(v)m(e)32
-b(no)e(e\013ect.)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(transpose-words)26
-b(\(M-t\))630 408 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 518 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 628 y(last)j(t)m(w)m(o)h
-(w)m(ords)e(on)g(the)h(line.)150 792 y Fn(upcase-word)c(\(M-u\))630
-902 y Fo(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i
+b(Negativ)m(e)25 b(argumen)m(ts)630 737 y(ha)m(v)m(e)32
+b(no)e(e\013ect.)150 907 y Fn(transpose-words)c(\(M-t\))630
+1016 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 1126 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 1236 y(last)j(t)m(w)m(o)h(w)m
+(ords)e(on)g(the)h(line.)150 1405 y Fn(upcase-word)c(\(M-u\))630
+1515 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
-1012 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 1176 y Fn(downcase-word)d(\(M-l\))630
-1286 y Fo(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))i
+1624 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 1794 y Fn(downcase-word)d(\(M-l\))630
+1904 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 1396 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 1560 y Fn(capitalize-word)26
-b(\(M-c\))630 1670 y Fo(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo)m
+(ercase)630 2013 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 2183 y Fn(capitalize-word)26
+b(\(M-c\))630 2292 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 1780 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 1944 y Fn(overwrite-mode)26
-b(\(\))630 2054 y Fo(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48
+(capitalize)630 2402 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 2571 y Fn(overwrite-mode)26
+b(\(\))630 2681 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 2163 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37
+h(switc)m(hes)630 2791 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 2273 y(insert)30 b(mo)s(de.)41
+(t,)i(switc)m(hes)e(to)630 2900 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 2383
+Fn(vi)f Fo(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 3010
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
-2520 y(In)52 b(o)m(v)m(erwrite)h(mo)s(de,)58 b(c)m(haracters)c(b)s
+3149 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
-2629 y(p)s(oin)m(t)59 b(rather)f(than)h(pushing)e(the)i(text)g(to)h
+3259 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
-2739 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 2876
+3369 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 3508
y(By)g(default,)f(this)h(command)f(is)g(un)m(b)s(ound.)150
-3081 y Fd(1.4.4)63 b(Killing)42 b(And)e(Y)-10 b(anking)150
-3255 y Fn(kill-line)28 b(\(C-k\))630 3365 y Fo(Kill)j(the)f(text)i
+3718 y Fd(1.4.4)63 b(Killing)42 b(And)e(Y)-10 b(anking)150
+3895 y Fn(kill-line)28 b(\(C-k\))630 4004 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.)150
-3530 y Fn(backward-kill-line)25 b(\(C-x)30 b(Rubout\))630
-3639 y Fo(Kill)h(bac)m(kw)m(ard)g(to)g(the)f(b)s(eginning)g(of)g(the)h
-(line.)150 3804 y Fn(unix-line-discard)26 b(\(C-u\))630
-3914 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 4079
-y Fn(kill-whole-line)c(\(\))630 4188 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 4298 y(this)30
-b(is)h(un)m(b)s(ound.)150 4462 y Fn(kill-word)d(\(M-d\))630
-4572 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 4682 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 4846 y Fn(backward-kill-word)25 b(\(M-DEL\))630
-4956 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 5121 y Fn(unix-word-rubout)d(\(C-w\))630
-5230 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 5340 y(text)g(is)g(sa)m(v)m(ed)g(on)g(the)f
-(kill-ring.)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)150 299 y Fn
-(unix-filename-rubout)25 b(\(\))630 408 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 518
-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 693 y Fn(delete-horizontal-space)24
-b(\(\))630 803 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
-978 y Fn(kill-region)d(\(\))630 1088 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 1263 y Fn(copy-region-as-kill)25
-b(\(\))630 1373 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 1482 y(By)31 b(default,)f(this)h(command)
-f(is)g(un)m(b)s(ound.)150 1657 y Fn(copy-backward-word)25
-b(\(\))630 1767 y Fo(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m
+4174 y Fn(backward-kill-line)25 b(\(C-x)30 b(Rubout\))630
+4283 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 4453 y
+Fn(unix-line-discard)c(\(C-u\))630 4562 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 4732 y Fn(kill-whole-line)c(\(\))630
+4842 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 4951 y(this)30 b(is)h(un)m(b)s(ound.)150
+5121 y Fn(kill-word)d(\(M-d\))630 5230 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 5340 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(.)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-word)25 b(\(M-DEL\))630 408 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 577 y
+Fn(unix-word-rubout)d(\(C-w\))630 686 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 796 y(text)g(is)g(sa)m(v)m(ed)
+g(on)g(the)f(kill-ring.)150 964 y Fn(unix-filename-rubout)25
+b(\(\))630 1073 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 1183 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
+1351 y Fn(delete-horizontal-space)24 b(\(\))630 1461
+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 1629
+y Fn(kill-region)d(\(\))630 1738 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 1906 y Fn(copy-region-as-kill)25 b(\(\))630
+2016 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 2125 y(By)31 b(default,)f(this)h(command)f
+(is)g(un)m(b)s(ound.)150 2293 y Fn(copy-backward-word)25
+b(\(\))630 2403 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 1877 y(same)31 b(as)f Fn(backward-word)p
+f(are)i(the)630 2513 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
-2052 y Fn(copy-forward-word)26 b(\(\))630 2161 y Fo(Cop)m(y)31
+2681 y Fn(copy-forward-word)26 b(\(\))630 2790 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
-2271 y(same)f(as)f Fn(forward-word)p Fo(.)38 b(By)30
+2900 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
-2446 y Fn(yank)f(\(C-y\))630 2556 y Fo(Y)-8 b(ank)31
+3068 y Fn(yank)f(\(C-y\))630 3177 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 2731 y Fn(yank-pop)d(\(M-y\))630 2841
+(p)s(oin)m(t.)150 3346 y Fn(yank-pop)d(\(M-y\))630 3455
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
-2950 y(command)30 b(is)h Fn(yank)e Fo(or)h Fn(yank-pop)p
-Fo(.)150 3165 y Fd(1.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
-(ts)150 3345 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 3455 y Fo(Add)d(this)h(digit)g
+3565 y(command)30 b(is)h Fn(yank)e Fo(or)h Fn(yank-pop)p
+Fo(.)150 3773 y Fd(1.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
+(ts)150 3949 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 4058 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 3564 y Fg(M--)j Fo(starts)i(a)g(negativ)m(e)i
-(argumen)m(t.)150 3740 y Fn(universal-argument)25 b(\(\))630
-3849 y Fo(This)g(is)g(another)h(w)m(a)m(y)g(to)h(sp)s(ecify)e(an)g
+(new)f(argumen)m(t.)630 4168 y Fg(M--)j Fo(starts)i(a)g(negativ)m(e)i
+(argumen)m(t.)150 4336 y Fn(universal-argument)25 b(\(\))630
+4446 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 3959 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h
+(y)f(one)630 4555 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
-4068 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)g(follo)m(w)m(ed)h(b)
+4665 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
-4178 y Fo(again)j(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h
+4774 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
-4288 y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y)
+4884 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
-4397 y(or)28 b(min)m(us)f(sign,)i(the)f(argumen)m(t)g(coun)m(t)h(for)e
-(the)i(next)f(command)f(is)h(m)m(ultiplied)h(b)m(y)e(four.)630
-4507 y(The)37 b(argumen)m(t)h(coun)m(t)f(is)h(initially)h(one,)g(so)f
-(executing)g(this)f(function)g(the)h(\014rst)e(time)630
-4616 y(mak)m(es)d(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)i(second)e
-(time)i(mak)m(es)f(the)g(argumen)m(t)g(coun)m(t)h(six-)630
-4726 y(teen,)e(and)f(so)h(on.)40 b(By)31 b(default,)g(this)f(is)g(not)h
-(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 4941 y Fd(1.4.6)63
+4994 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
+5103 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
+5213 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
+5322 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(.)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 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 5121 y Fn(complete)28 b(\(TAB\))630
-5230 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
-5340 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.)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
-(possible-completions)25 b(\(M-?\))630 408 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 518
-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 628 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 737 y(or)30 b(the)h(screen)f(width,)g(in)g
-(that)h(order.)150 883 y Fn(insert-completions)25 b(\(M-*\))630
-992 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
-1102 y(b)m(y)g Fn(possible-completions)p Fo(.)150 1247
-y Fn(menu-complete)d(\(\))630 1357 y Fo(Similar)d(to)g
+b(Y)-10 b(ou)150 483 y Fn(complete)28 b(\(TAB\))630 593
+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
+702 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
+886 y Fn(possible-completions)25 b(\(M-?\))630 996 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
+1105 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 1215 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 1325 y(or)30 b(the)h(screen)f
+(width,)g(in)g(that)h(order.)150 1509 y Fn(insert-completions)25
+b(\(M-*\))630 1618 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 1728 y(b)m(y)g Fn(possible-completions)p
+Fo(.)150 1912 y Fn(menu-complete)d(\(\))630 2021 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 1466 y(from)37
+(completed)i(with)e(a)i(single)f(matc)m(h)630 2131 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 1576 y Fo(steps)i(through)g
+b(execution)g(of)f Fn(menu-complete)630 2241 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 1685 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g
+(matc)m(h)f(in)f(turn.)630 2350 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 1795 y(of)f Fn(bell-style)p
+b(ject)36 b(to)i(the)f(setting)630 2460 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 1905 y Fo(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e
+Fe(n)630 2569 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 2014 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
+(used)g(to)630 2679 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 2124 y Fn(TAB)p Fo(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m
-(y)i(default.)150 2269 y Fn(menu-complete-backward)24
-b(\(\))630 2379 y Fo(Iden)m(tical)36 b(to)g Fn(menu-complete)p
+(ound)e(to)630 2789 y Fn(TAB)p Fo(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m
+(y)i(default.)150 2973 y Fn(menu-complete-backward)24
+b(\(\))630 3082 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 2488 y(completions,)d(as)e(if)h Fn(menu-complete)26
+(p)s(ossible)630 3192 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
-2634 y Fn(delete-char-or-list)25 b(\(\))630 2743 y Fo(Deletes)41
+3376 y Fn(delete-char-or-list)25 b(\(\))630 3485 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 2853 y(line)50 b(\(lik)m(e)h
+(eginning)e(or)h(end)f(of)h(the)630 3595 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 2963
+55 b(b)s(eha)m(v)m(es)c(iden)m(tically)g(to)630 3705
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 3148 y Fd(1.4.7)63 b(Keyb)s(oard)41
-b(Macros)150 3313 y Fn(start-kbd-macro)26 b(\(C-x)j(\(\))630
-3422 y Fo(Begin)i(sa)m(ving)h(the)e(c)m(haracters)i(t)m(yp)s(ed)e(in)m
+(ound)e(b)m(y)i(default.)150 3928 y Fd(1.4.7)63 b(Keyb)s(oard)41
+b(Macros)150 4113 y Fn(start-kbd-macro)26 b(\(C-x)j(\(\))630
+4222 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
-3568 y Fn(end-kbd-macro)d(\(C-x)i(\)\))630 3677 y Fo(Stop)e(sa)m(ving)h
+4406 y Fn(end-kbd-macro)d(\(C-x)i(\)\))630 4516 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 3787
-y(de\014nition.)150 3932 y Fn(call-last-kbd-macro)c(\(C-x)k(e\))630
-4042 y Fo(Re-execute)37 b(the)e(last)h(k)m(eyb)s(oard)f(macro)h
+(eyb)s(oard)g(macro)h(and)f(sa)m(v)m(e)i(the)630 4625
+y(de\014nition.)150 4809 y Fn(call-last-kbd-macro)c(\(C-x)k(e\))630
+4919 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
-4151 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 4297 y Fn(print-last-kbd-macro)25 b(\(\))630
-4406 y Fo(Prin)m(t)30 b(the)h(last)g(k)m(eb)s(oard)f(macro)h(de\014ned)
+5029 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 5213 y Fn(print-last-kbd-macro)25 b(\(\))630
+5322 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 4591 y Fd(1.4.8)63 b(Some)41 b(Miscellaneous)i(Commands)
-150 4756 y Fn(re-read-init-file)26 b(\(C-x)j(C-r\))630
-4866 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 4975 y(assignmen)m(ts)31 b(found)e(there.)150
-5121 y Fn(abort)g(\(C-g\))630 5230 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 5340 y(setting)j(of)g Fn(bell-style)p
-Fo(\).)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
-(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p Fg(x)p
-Fn(,)g(...)o(\))630 408 y Fo(If)e(the)h(meta\014ed)g(c)m(haracter)h
+Fo(\014le.)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 Fd(1.4.8)63
+b(Some)41 b(Miscellaneous)i(Commands)150 466 y Fn(re-read-init-file)26
+b(\(C-x)j(C-r\))630 576 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 685 y(assignmen)m(ts)31
+b(found)e(there.)150 836 y Fn(abort)g(\(C-g\))630 945
+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
+1055 y(setting)j(of)g Fn(bell-style)p Fo(\).)150 1205
+y Fn(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p Fg(x)p
+Fn(,)g(...)o(\))630 1315 y Fo(If)e(the)h(meta\014ed)g(c)m(haracter)h
Fe(x)34 b Fo(is)28 b(lo)m(w)m(ercase,)i(run)d(the)g(command)h(that)g
-(is)g(b)s(ound)d(to)k(the)630 518 y(corresp)s(onding)g(upp)s(ercase)h
-(c)m(haracter.)150 667 y Fn(prefix-meta)d(\(ESC\))630
-777 y Fo(Metafy)39 b(the)e(next)h(c)m(haracter)h(t)m(yp)s(ed.)62
+(is)g(b)s(ound)d(to)k(the)630 1425 y(corresp)s(onding)g(upp)s(ercase)h
+(c)m(haracter.)150 1575 y Fn(prefix-meta)d(\(ESC\))630
+1685 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 887 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 1036
-y Fn(undo)e(\(C-_)g(or)h(C-x)g(C-u\))630 1146 y Fo(Incremen)m(tal)h
+b(.)630 1794 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 1945
+y Fn(undo)e(\(C-_)g(or)h(C-x)g(C-u\))630 2054 y Fo(Incremen)m(tal)h
(undo,)f(separately)h(remem)m(b)s(ered)f(for)g(eac)m(h)i(line.)150
-1295 y Fn(revert-line)27 b(\(M-r\))630 1405 y Fo(Undo)33
+2205 y Fn(revert-line)27 b(\(M-r\))630 2314 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
-1514 y(enough)e(times)h(to)g(get)h(bac)m(k)f(to)g(the)f(b)s(eginning.)
-150 1664 y Fn(tilde-expand)d(\(M-~\))630 1773 y Fo(P)m(erform)j(tilde)h
-(expansion)g(on)f(the)g(curren)m(t)h(w)m(ord.)150 1923
-y Fn(set-mark)d(\(C-@\))630 2032 y Fo(Set)33 b(the)g(mark)f(to)i(the)f
+2424 y(enough)e(times)h(to)g(get)h(bac)m(k)f(to)g(the)f(b)s(eginning.)
+150 2574 y Fn(tilde-expand)d(\(M-~\))630 2684 y Fo(P)m(erform)j(tilde)h
+(expansion)g(on)f(the)g(curren)m(t)h(w)m(ord.)150 2834
+y Fn(set-mark)d(\(C-@\))630 2944 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 2142 y(to)f(that)g(p)s(osition.)
-150 2291 y Fn(exchange-point-and-mark)24 b(\(C-x)29 b(C-x\))630
-2401 y Fo(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with)g(the)g(mark.)43
+(supplied,)f(the)h(mark)g(is)f(set)630 3054 y(to)f(that)g(p)s(osition.)
+150 3204 y Fn(exchange-point-and-mark)24 b(\(C-x)29 b(C-x\))630
+3314 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 2511 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 2660
-y Fn(character-search)26 b(\(C-]\))630 2770 y Fo(A)f(c)m(haracter)h(is)
+(sa)m(v)m(ed)630 3423 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 3574
+y Fn(character-search)26 b(\(C-]\))630 3683 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 2879 y(A)30
+(ccurrence)g(of)g(that)g(c)m(haracter.)630 3793 y(A)30
b(negativ)m(e)j(coun)m(t)e(searc)m(hes)g(for)f(previous)g(o)s
-(ccurrences.)150 3029 y Fn(character-search-backwar)o(d)24
-b(\(M-C-]\))630 3138 y Fo(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s
+(ccurrences.)150 3943 y Fn(character-search-backwar)o(d)24
+b(\(M-C-]\))630 4053 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 3248 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f
+g(that)630 4162 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
-3397 y Fn(skip-csi-sequence)d(\(\))630 3507 y Fo(Read)i(enough)f(c)m
+4313 y Fn(skip-csi-sequence)d(\(\))630 4422 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 3616 y(for)37 b(k)m(eys)h(lik)m(e)g(Home)g
+(as)g(those)h(de\014ned)630 4532 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 3726 y(Indicator)f(\(CSI\),)f(usually)h(ESC-[.)59
+(trol)g(Sequence)630 4642 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 3836 y(ducing)31
+Fo(e[)p Fn(")p Fo(,)g(k)m(eys)f(pro-)630 4751 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 3945 y(command,)f
+(explicitly)j(b)s(ound)c(to)i(a)h(readline)630 4861 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 4055 y(un)m(b)s(ound)d(b)m
+(editing)h(bu\013er.)44 b(This)31 b(is)630 4970 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
-4204 y Fn(insert-comment)26 b(\(M-#\))630 4314 y Fo(Without)36
+5121 y Fn(insert-comment)26 b(\(M-#\))630 5230 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 4423 y(serted)c(at)g(the)g(b)s(eginning)f(of)h(the)f
+b(is)g(in-)630 5340 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 4533 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 4643 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 4752
-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 4862
-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 5011 y Fn(dump-functions)d
-(\(\))630 5121 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
-5230 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h
+(supplied,)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)630 299 y(this)36
+b(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 408 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
+518 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
+628 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 787 y Fn(dump-functions)d
+(\(\))630 897 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
+1006 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
-5340 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fe(inputrc)k
+1116 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.)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(dump-variables)26
-b(\(\))630 408 y Fo(Prin)m(t)21 b(all)h(of)g(the)f(settable)i(v)-5
+(default.)150 1275 y Fn(dump-variables)26 b(\(\))630
+1385 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 518 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 628 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h
+(output)f(stream.)630 1494 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 1604 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 787 y Fn(dump-macros)c(\(\))630
-897 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
-1006 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e
+(b)m(y)k(default.)150 1763 y Fn(dump-macros)c(\(\))630
+1873 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
+1983 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
-1116 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
+2092 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 1225 y(default.)150 1385 y Fn(emacs-editing-mode)e(\(C-e\))
-630 1494 y Fo(When)30 b(in)g Fn(vi)g Fo(command)g(mo)s(de,)g(this)h
+d(b)m(y)630 2202 y(default.)150 2361 y Fn(emacs-editing-mode)e(\(C-e\))
+630 2471 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
-1654 y Fn(vi-editing-mode)26 b(\(M-C-j\))630 1763 y Fo(When)k(in)g
+2630 y Fn(vi-editing-mode)26 b(\(M-C-j\))630 2740 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 1996 y Fm(1.5)68 b(Readline)47
-b(vi)e(Mo)t(de)150 2155 y Fo(While)32 b(the)g(Readline)g(library)f(do)s
+Fn(vi)f Fo(editing)h(mo)s(de.)150 2980 y Fm(1.5)68 b(Readline)47
+b(vi)e(Mo)t(de)150 3140 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
-2265 y(enough)i(to)h(allo)m(w)g(simple)f(editing)h(of)f(the)g(line.)52
+3249 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 2374 y(the)e Fh(posix)e Fo(standard.)275
-2509 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 3359 y(the)e Fh(posix)e Fo(standard.)275
+3494 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 2619 y Fg(M-C-j)36 b Fo(\(b)s(ound)h(to)h
+(command)150 3603 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 2728 y Fo(mo)s(de\).)k(The)30
+(vi-editing-mo)s(de)g(in)e Fn(emacs)150 3713 y Fo(mo)s(de\).)k(The)30
b(Readline)h(default)f(is)g Fn(emacs)f Fo(mo)s(de.)275
-2863 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f(in)g Fn(vi)f
+3847 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 2972 y(had)f(t)m(yp)s(ed)g(an)g(`)p
+(de,)g(as)h(if)f(y)m(ou)150 3957 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
-3082 y(text)35 b(of)f(the)g(line)g(with)f(the)h(standard)f
+4066 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 3191 y(`)p Fn(k)p Fo(')d(and)e(subsequen)m
+(history)f(lines)h(with)150 4176 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: 22 25
-TeXDict begin 22 24 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(22)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
+%%Page: 24 27
+TeXDict begin 24 26 bop 3659 -116 a Fo(24)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
Fo(2000,)j(2001,)f(2002,)g(2007,)h(2008)f(F)-8 b(ree)31
b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 745
@@ -6638,10 +6720,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: 23 26
-TeXDict begin 23 25 bop 150 -116 a Fo(App)s(endix)29
+%%Page: 25 28
+TeXDict begin 25 27 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(23)330 299 y(under)26 b(this)i(License.)40 b(If)27
+b(25)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
@@ -6732,10 +6814,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: 24 27
-TeXDict begin 24 26 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(24)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
+b(26)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
@@ -6825,10 +6907,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: 25 28
-TeXDict begin 25 27 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(25)510 299 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g
+b(27)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
@@ -6907,10 +6989,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: 26 29
-TeXDict begin 26 28 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(26)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
+b(28)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
@@ -6995,10 +7077,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: 27 30
-TeXDict begin 27 29 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(27)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h
+b(29)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
@@ -7083,10 +7165,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: 28 31
-TeXDict begin 28 30 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(28)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)330
+b(30)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
@@ -7150,10 +7232,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: 29 32
-TeXDict begin 29 31 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(29)150 299 y Fm(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f
+b(31)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 ba6b0ad..b575438 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--2014 Free Software Foundation, Inc.
+Copyright @copyright{} 1988--2016 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 83c0842..173e8ab 100755
--- a/doc/texi2dvi
+++ b/doc/texi2dvi
@@ -1,103 +1,95 @@
#! /bin/sh
-# texi2dvi --- produce DVI (or PDF) files from Texinfo (or LaTeX) sources.
-# $Id: texi2dvi,v 1.14 2003/02/05 00:42:33 karl Exp $
+# texi2dvi --- produce DVI (or PDF) files from Texinfo (or (La)TeX) sources.
+# $Id: texi2dvi 5704 2014-07-07 17:45:16Z karl $
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001,
-# 2002, 2003 Free Software Foundation, Inc.
+# 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.
#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License,
+# or (at your option) any later version.
#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-# Original author: Noah Friedman <friedman@gnu.org>.
+# Originally written by Noah Friedman.
#
# Please send bug reports, etc. to bug-texinfo@gnu.org.
# If possible, please send a copy of the output of the script called with
# the `--debug' option when making a bug report.
-# This string is expanded by rcs automatically when this file is checked out.
-rcs_revision='$Revision: 1.14 $'
-rcs_version=`set - $rcs_revision; echo $2`
-program=`echo $0 | sed -e 's!.*/!!'`
-version="texi2dvi (GNU Texinfo 4.5) $rcs_version
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-There is NO warranty. You may redistribute this software
-under the terms of the GNU General Public License.
-For more information about these matters, see the files named COPYING."
-
-usage="Usage: $program [OPTION]... FILE...
+test -f /bin/ksh && test -z "$RUNNING_KSH" \
+ && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+ && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; }
+unset RUNNING_KSH
-Run each Texinfo or LaTeX 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 (LaTeX or Texinfo).
+# No failure shall remain unpunished.
+set -e
-Makeinfo is used to perform Texinfo macro expansion before running TeX
-when needed.
+# In case the default sed doesn't suffice.
+: ${SED=sed}
-Operation modes:
- -b, --batch no interaction
- -c, --clean remove all auxiliary files
- -D, --debug turn on shell debugging (set -x)
- -h, --help display this help and exit successfully
- -o, --output=OFILE leave output in OFILE (implies --clean);
- Only one input FILE may be specified in this case
- -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
+# 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!.*/!!'`
-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 the LANG of FILE (LaTeX or Texinfo)
- -p, --pdf use pdftex or pdflatex for processing
- -t, --texinfo=CMD insert CMD after @setfilename in copy of input file
- multiple values accumulate
-
-The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO,
-TEX (or PDFTEX), and TEXINDEX environment variables are used to run
-those commands, if they are set.
-
-Email bug reports to <bug-texinfo@gnu.org>,
-general questions and discussion to <help-texinfo@gnu.org>.
-Texinfo home page: http://www.gnu.org/software/texinfo/"
+build_mode=${TEXI2DVI_BUILD_MODE:-local}
+build_dir=${TEXI2DVI_BUILD_DIRECTORY:-.}
# 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.
-batch=false # eval for batch mode
-clean=
-debug=
-escape='\'
-expand= # t for expansion via makeinfo
-miincludes= # makeinfo include path
-oformat=dvi
+action=compile
+batch=false # interact normally
+catcode_special=maybe
+debug=false
+escape="\\"
+expand=false # true for expansion via makeinfo
+includes=
+line_error=true # pass --file-line-error to TeX
+max_iters=7 # when to quit
oname= # --output
-quiet= # by default let the tools' message be displayed
+out_lang=dvi
+quiet=false # let the tools' message be displayed
set_language=
-textra=
-tmpdir=${TMPDIR:-/tmp}/t2d$$ # avoid collisions on 8.3 filesystems.
-txincludes= # TEXINPUTS extensions, with trailing colon
-txiprereq=19990129 # minimum texinfo.tex version to have macro expansion
-verbose=false # echo for verbose mode
+src_specials=
+shell_escape=
+latex2html=hevea # or set to tex4ht
+textra= # Extra TeX commands to insert in the input file.
+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
+# trailing blanks.
+space=' '
+tab=' '
+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.
-if test -n "$COMSPEC$ComSpec"; then
+# directories in TEXINPUTS -- except for Cygwin et al., where COMSPEC
+# might be inherited, but : is used.
+if test -n "$COMSPEC$ComSpec" \
+ && uname | $EGREP -iv 'cygwin|mingw|djgpp' >/dev/null; then
path_sep=";"
else
path_sep=":"
@@ -106,14 +98,1537 @@ fi
# Pacify verbose cds.
CDPATH=${ZSH_VERSION+.}$path_sep
-# In case someone crazy insists on using grep -E.
-: ${EGREP=egrep}
+# 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
+#
+# local foo="$bar"
+(
+ foo=bar
+ test_local () {
+ local foo=foo
+ }
+ test_local >/dev/null 2>&1
+ test $foo = bar
+) || eval '
+local () {
+ case $1 in
+ *=*) eval "$1";;
+ esac
+}
+'
+
+
+# cd_orig
+# -------
+# Return to the original directory.
+cd_orig ()
+{
+ # In case $orig_pwd is on a different drive (for DOS).
+ cd /
+
+ # Return to the original directory so that
+ # - the next file is processed in correct conditions
+ # - the temporary file can be removed
+ cd "$orig_pwd" || exit 1
+}
+
+# func_dirname FILE
+# -----------------
+# Return the directory part of FILE.
+func_dirname ()
+{
+ dirname "$1" 2>/dev/null \
+ || { echo "$1" | $SED 's!/[^/]*$!!;s!^$!.!'; }
+}
+
+
+# noexit FILE
+# -----------
+# Return FILE with one extension remove. foo.bar.baz -> foo.bar.
+noext ()
+{
+ echo "$1" | $SED -e 's/\.[^/.][^/.]*$//'
+}
+
+
+# absolute NAME -> ABS-NAME
+# -------------------------
+# Return an absolute path to NAME.
+absolute ()
+{
+ case $1 in
+ [\\/]* | ?:[\\/]*)
+ # 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")
+ else
+ error 1 "not a directory: $rel"
+ fi
+ ;;
+ esac
+}
+
+
+# ensure_dir DIR1 DIR2...
+# -----------------------
+# Make sure the directories exist.
+ensure_dir ()
+{
+ for dir
+ do
+ # Beware that in parallel builds we may have several concurrent
+ # attempts to create the directory. So fail only if "mkdir"
+ # failed *and* the directory still does not exist.
+ test -d "$dir" \
+ || mkdir "$dir" \
+ || test -d "$dir" \
+ || error 1 "cannot create directory: $dir"
+ done
+}
+
+
+# error EXIT_STATUS LINE1 LINE2...
+# --------------------------------
+# Report an error and exit with failure if EXIT_STATUS is non-null.
+error ()
+{
+ local s="$1"
+ shift
+ report "$@"
+ if test "$s" != 0; then
+ exit $s
+ fi
+}
+
+
+# findprog PROG
+# -------------
+# Return true if PROG is somewhere in PATH, else false.
+findprog ()
+{
+ local saveIFS="$IFS"
+ IFS=$path_sep # break path components at the path separator
+ for dir in $PATH; do
+ IFS=$saveIFS
+ # The basic test for an executable is `test -f $f && test -x $f'.
+ # (`test -x' is not enough, because it can also be true for directories.)
+ # We have to try this both for $1 and $1.exe.
+ #
+ # Note: On Cygwin and DJGPP, `test -x' also looks for .exe. On Cygwin,
+ # also `test -f' has this enhancement, but not on DJGPP. (Both are
+ # design decisions, so there is little chance to make them consistent.)
+ # Thusly, it seems to be difficult to make use of these enhancements.
+ #
+ if { test -f "$dir/$1" && test -x "$dir/$1"; } \
+ || { test -f "$dir/$1.exe" && test -x "$dir/$1.exe"; }; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+# report LINE1 LINE2...
+# ---------------------
+# Report some information on stderr.
+report ()
+{
+ for i in "$@"
+ do
+ echo >&2 "$0: $i"
+ done
+}
+
+
+# run COMMAND-LINE
+# ----------------
+# Run the COMMAND-LINE verbosely, and catching errors as failures.
+run ()
+{
+ verbose "Running $@"
+ "$@" 2>&5 1>&2 \
+ || error 1 "$1 failed"
+}
+
+
+# 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 ()
+{
+ if $verb; then
+ echo >&2 "$0: $@"
+ fi
+}
+
+
+# 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.
+list_append ()
+{
+ local la_l="$1"
+ shift
+ eval set X \$$la_l "$@"
+ shift
+ eval $la_l=\""$@"\"
+}
+
+
+# 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 ()
+{
+ local 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'"
+ save_IFS=$IFS
+ IFS=$path_sep
+ set x `echo "$2" | eval $SED $replace_EMPTY`; shift
+ IFS=$save_IFS
+ local dir
+ for dir
+ do
+ case $dir in
+ EMPTY)
+ list_append $lcd_list ""
+ ;;
+ *)
+ if test -d $dir; then
+ dir=`absolute "$dir"`
+ list_append $lcd_list "$dir"
+ fi
+ ;;
+ esac
+ done
+}
+
+
+# list_prefix LIST-NAME SEP -> STRING
+# -----------------------------------
+# Return a string that is composed of the LIST-NAME with each item
+# preceded by SEP.
+list_prefix ()
+{
+ local lp_p="$2"
+ eval set X \$$1
+ shift
+ local lp_res
+ for i
+ do
+ lp_res="$lp_res \"$lp_p\" \"$i\""
+ done
+ echo "$lp_res"
+}
+
+# list_infix LIST-NAME SEP -> STRING
+# ----------------------------------
+# Same as list_prefix, but a separator.
+list_infix ()
+{
+ eval set X \$$1
+ shift
+ local la_IFS="$IFS"
+ IFS=$path_sep
+ echo "$*"
+ IFS=$la_IFS
+}
+
+# list_dir_to_abs LIST-NAME
+# -------------------------
+# Convert the 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
+ shift
+ local ld_res
+ for dir
+ do
+ dir=`absolute "$dir"`
+ test -d "$dir" || continue
+ ld_res="$ld_res \"$dir\""
+ done
+ set X $ld_res; shift
+ eval $ld_l=\"$@\"
+}
-# Save this so we can construct a new TEXINPUTS path for each file.
-TEXINPUTS_orig="$TEXINPUTS"
-# Unfortunately makeindex does not read TEXINPUTS.
-INDEXSTYLE_orig="$INDEXSTYLE"
-export TEXINPUTS INDEXSTYLE
+
+## ------------------------------ ##
+## Language auxiliary functions. ##
+## ------------------------------ ##
+
+
+# out_lang_set LANG
+# -----------------
+out_lang_set ()
+{
+ case $1 in
+ dvi|dvipdf|html|info|pdf|ps|text) out_lang=$1;;
+ *) error 1 "invalid output format: $1";;
+ esac
+}
+
+
+# out_lang_tex
+# ------------
+# Return the tex output language (DVI or PDF) for $OUT_LANG.
+out_lang_tex ()
+{
+ case $out_lang in
+ dvi | ps | dvipdf ) echo dvi;;
+ pdf ) echo $out_lang;;
+ html | info | text ) echo $out_lang;;
+ *) error 1 "invalid out_lang: $1";;
+ esac
+}
+
+
+# out_lang_ext
+# ------------
+# Return the extension for $OUT_LANG.
+out_lang_ext ()
+{
+ case $out_lang in
+ dvipdf ) echo pdf;;
+ dvi | html | info | pdf | ps | text ) echo $out_lang;;
+ *) error 1 "invalid out_lang: $1";;
+ esac
+}
+
+
+## ------------------------- ##
+## 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 ".".
+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`
+ save_IFS=$IFS
+ IFS=$path_sep
+ set x $res; shift
+ res=.
+ for dir
+ do
+ case $dir in
+ EMPTY)
+ res=$res$path_sep
+ ;;
+ *)
+ if test -d "$dir"; then
+ res=$res$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
+ fi
+ ;;
+ esac
+ done
+ echo "$res"
+}
+
+
+# output_base_name FILE
+# ---------------------
+# The name of FILE, possibly renamed to satisfy --output.
+# FILE is local, there is no 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"
+ ;;
+ esac
+}
+
+
+# destdir
+# -------
+# Return the name of the directory where the output is expected.
+destdir ()
+{
+ case $oname in
+ '') echo "$orig_pwd";;
+ *) dirname "$oname";;
+ esac
+}
+
+
+# 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.)
+#
+# 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"
+
+ # If we built in place and have no output name, there is nothing to
+ # do, so just return.
+ case $tidy:$oname in
+ 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"`;;
+ esac
+
+ # We want to compare the source location and the output location,
+ # and if they are different, do the move. But if they are the
+ # same, we must preserve the source. Since we can't assume
+ # stat(1) or test -ef is available, resort to comparing the
+ # 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"
+ fi
+ done
+}
+
+
+## --------------------- ##
+## Managing xref files. ##
+## --------------------- ##
+
+# aux_file_p FILE
+# ---------------
+# Return with success if FILE is an aux file.
+aux_file_p ()
+{
+ test -f "$1" || return 1
+ case $1 in
+ *.aux) return 0;;
+ *) return 1;;
+ esac
+}
+
+# bibaux_file_p FILE
+# ------------------
+# Return with success if FILE is an aux file containing citation
+# requests.
+bibaux_file_p ()
+{
+ test -s "$1" || return 1
+ if (grep '^\\bibstyle[{]' "$1" \
+ && grep '^\\bibdata[{]' "$1" \
+ ## The following line is suspicious: fails when there
+ ## are citations in sub aux files. We need to be
+ ## smarter in this case.
+ ## && grep '^\\citation[{]' "$f"
+ ) >&6 2>&1;
+ then
+ return 0
+ fi
+ return 1
+}
+
+# index_file_p FILE
+# -----------------
+# Return with success if FILE is an index file.
+index_file_p ()
+{
+ test -f "$1" || return 1
+ 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
+ # passed to makeindex to produce the *.ind file. This sequence is
+ # 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;;
+
+ # When index.sty is used, there is a space before the brace.
+ latex:*:*:"\\indexentry{"*|latex:*:*:"\\indexentry {"*) return 0;;
+
+ texinfo:*:*:"\\entry{"*) return 0;;
+
+ *) return 1;;
+ esac
+}
+
+# xref_file_p FILE
+# ----------------
+# Return with success if FILE is an xref file (indexes, tables and lists).
+xref_file_p ()
+{
+ test -f "$1" || return 1
+ # If the file is not suitable to be an index or xref file, don't
+ # process it. It's suitable if the first character is a
+ # backslash or right quote or at, as long as the first line isn't
+ # \input texinfo.
+ case `$SED '1q' "$1"` in
+ "\\input texinfo"*) return 1;;
+ [\\''@]*) return 0;;
+ *) return 1;;
+ esac
+}
+
+
+# generated_files_get FILENAME-NOEXT [PREDICATE-FILTER]
+# -----------------------------------------------------
+# Return the list of files generated by the TeX compilation of FILENAME-NOEXT.
+generated_files_get ()
+{
+ local filter=true
+ if test -n "$2"; then
+ filter=$2
+ 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
+ fi
+ done |
+ sort |
+ # Some files are opened several times, e.g., listings.sty's *.vrb.
+ uniq
+}
+
+
+# xref_files_save
+# ---------------
+# Save the xref files.
+xref_files_save ()
+{
+ # Save copies of auxiliary files for later comparison.
+ xref_files_orig=`generated_files_get "$in_noext" xref_file_p`
+ 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"'
+ # by preserving the directory parts. Think of
+ # cp chap1/main.aux chap2/main.aux $work_bak.
+ #
+ # 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 -)
+ fi
+}
+
+
+# xref_files_changed
+# ------------------
+# Whether the xref files were changed since the previous run.
+xref_files_changed ()
+{
+ # LaTeX (and the package changebar) report in the LOG file if it
+ # should be rerun. This is needed for files included from
+ # subdirs, since texi2dvi does not try to compare xref files in
+ # subdirs. Performing xref files test is still good since LaTeX
+ # does not report changes in xref files.
+ if grep "Rerun to get" "$in_noext.log" >&6 2>&1; then
+ return 0
+ fi
+ # 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`
+ 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
+ return 0
+ fi
+
+ # Compare each file until we find a difference.
+ 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
+ verbose "xref file `echo $this_file | $SED 's|\./||g'` differed ..."
+ if $debug; then
+ diff -u "$work_bak/$this_file" "$this_file"
+ fi
+ 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 ()
+{
+ case $in_lang:$latex2html:`out_lang_tex` in
+ latex:*:dvi|latex:tex4ht:html)
+ tex=${LATEX:-latex};;
+ latex:*:pdf)
+ tex=${PDFLATEX:-pdflatex};;
+ texinfo:*:dvi)
+ # MetaPost also uses the TEX environment variable. If the user
+ # has set TEX=latex for that reason, don't bomb out.
+ case $TEX in
+ *latex) tex=tex;; # don't bother trying to find etex
+ *) 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
+ latex:true)
+ $SED -n 's|^[ ]*\\include{\(.*\)/.*}.*|\1|p' "$in_input" |
+ sort -u |
+ while read d
+ do
+ ensure_dir "$work_build/$d"
+ done
+ ;;
+ esac
+
+ # Note that this will be used via an eval: quote properly.
+ local cmd="$tex"
+
+ # If possible, make TeX report error locations in GNU format.
+ if $line_error; then
+ if test "${tex_help:+set}" != set; then
+ # Go to a temporary directory to try --help, since old versions that
+ # don't accept --help will generate a texput.log.
+ tex_help_dir=$t2ddir/tex_help
+ ensure_dir "$tex_help_dir"
+ tex_help=`cd "$tex_help_dir" >&6 && $tex --help </dev/null 2>&1 || true`
+ fi
+ # 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";;
+ esac
+ fi
+
+ # Tell TeX about TCX file, if specified.
+ test -n "$translate_file" && cmd="$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"
+
+ # 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
+
+ # 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'"
+ ;;
+
+ *)
+ cmd="$cmd '$in_input'"
+ ;;
+ esac
+
+ verbose "$0: Running $cmd ..."
+ if eval "$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."
+ 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
+#
+# 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),
+# but a single LOG, looking for missing citations in LOG is
+# easier, though we take the risk of matching false messages.
+run_bibtex ()
+{
+ case $in_lang in
+ latex) bibtex=${BIBTEX:-bibtex};;
+ texinfo) return;;
+ esac
+
+ # "Citation undefined" is for LaTeX, "Undefined citation" for btxmac.tex.
+ # The no .aux && \bibdata test is also for btxmac, in case it was the
+ # first run of a bibtex-using document. Otherwise, it's possible that
+ # bibtex would never be run.
+ if test -r "$in_noext.aux" \
+ && test -r "$in_noext.log" \
+ && ( (grep 'Warning:.*Citation.*undefined' "$in_noext.log" \
+ || grep '.*Undefined citation' "$in_noext.log" \
+ || grep 'No file .*\.bbl\.' "$in_noext.log") \
+ || (grep 'No \.aux file' "$in_noext.log" \
+ && grep '^\\bibdata' "$in_noext.aux") ) \
+ >&6 2>&1; \
+ then
+ bibtex_aux=`generated_files_get "$in_noext" bibaux_file_p`
+ for f in $bibtex_aux; do
+ run $bibtex "$f"
+ done
+ fi
+
+ # biber(+biblatex) check.
+ if test -r "$in_noext.bcf" \
+ && grep '</bcf:controlfile>' "$in_noext.bcf" >/dev/null; then
+ run ${BIBER:-biber} "$in_noext"
+ 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.
+run_index ()
+{
+ local index_files
+ index_files=`generated_files_get $in_noext index_file_p`
+ test -n "$index_files" \
+ || return 0
+
+ : ${MAKEINDEX:=makeindex}
+ : ${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
+ do
+ index_noext=`noext "$index_file"`
+ run tex \
+ '\def\filename{{'"$index_noext"'}{idx}{4dx}{ind}}
+ \input idxmake.4ht'
+ run $MAKEINDEX -o $index_noext.ind $index_noext.4dx
+ done
+ ;;
+
+ latex:*)
+ if $TEXINDY --version >&6 2>&1; then
+ run $TEXINDY $index_files
+ else
+ run $MAKEINDEX $index_files
+ fi
+ ;;
+
+ texinfo:*)
+ run $TEXINDEX $index_files
+ ;;
+ esac
+}
+
+
+# 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.
+run_tex4ht ()
+{
+ case $in_lang:$latex2html:`out_lang_tex` in
+ latex:tex4ht:html)
+ : ${TEX4HT:=tex4ht} ${T4HT:=t4ht}
+ run "$TEX4HT" "-f/$in_noext"
+ # Do not remove the / after the destdir.
+ run "$T4HT" "-d`destdir`/" "-f/$in_noext"
+ ;;
+ esac
+}
+
+
+# run_thumbpdf ()
+# ---------------
+run_thumbpdf ()
+{
+ if test `out_lang_tex` = pdf \
+ && test -r "$in_noext.log" \
+ && grep 'thumbpdf\.sty' "$in_noext.log" >&6 2>&1; \
+ then
+ thumbpdf=${THUMBPDF_CMD:-thumbpdf}
+ thumbcmd="$thumbpdf $in_dir/$in_noext"
+ verbose "Running $thumbcmd ..."
+ if $thumbcmd >&5; then
+ run_tex
+ else
+ report "$thumbpdf exited with bad status." \
+ "Ignoring its output."
+ fi
+ fi
+}
+
+
+# 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 findprog $i; then
+ dvipdf=$i
+ fi
+ done
+ fi
+ # These tools have varying interfaces, some 'input output', others
+ # 'input -o output'. They all seem to accept 'input' only,
+ # outputting using the expected file name.
+ run $dvipdf "$1"
+ if test ! -f `echo "$1" | $SED -e 's/\.dvi$/.pdf/'`; then
+ error 1 "cannot find output file"
+ fi
+}
+
+# run_tex_suite ()
+# ----------------
+# Run the TeX tools until a fix point is reached.
+run_tex_suite ()
+{
+ # Move to the working directory.
+ if $tidy; then
+ verbose "cd $work_build"
+ cd "$work_build" || exit 1
+ fi
+
+ # Count the number of cycles.
+ local cycle=0
+
+ while :; do
+ # check for probably LaTeX loop (e.g. varioref)
+ if test $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"
+
+ xref_files_save
+
+ # We run bibtex first, because it's more likely for the indexes
+ # to change after bibtex is run than the reverse, though either
+ # would be rare.
+ run_bibtex
+ run_index
+ run_core_conversion
+
+ xref_files_changed || break
+ done
+
+ # If we were using thumbpdf and producing PDF, then run thumbpdf
+ # and TeX one last time.
+ run_thumbpdf
+
+ # If we are using tex4ht, call it.
+ run_tex4ht
+
+ # Install the result if we didn't already (i.e., if the output is
+ # dvipdf or ps).
+ case $latex2html:$out_lang in
+ *:dvipdf)
+ run_dvipdf "$in_noext.`out_lang_tex`"
+ move_to_dest "$in_noext.`out_lang_ext`"
+ ;;
+ *:ps)
+ : ${DVIPS:=dvips}
+ run $DVIPS -o "$in_noext.`out_lang_ext`" "$in_noext.`out_lang_tex`"
+ move_to_dest "$in_noext.`out_lang_ext`"
+ ;;
+ esac
+
+ 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.
+#
+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
+# generates different output (arguably this is a bug in -E). Discard
+# main info output, the user asked to run TeX, not makeinfo.
+run_makeinfo ()
+{
+ test $in_lang = texinfo \
+ || return 0
+
+ # Unless required by the user, makeinfo expansion is wanted only
+ # if texinfo.tex is too old.
+ if $expand; then
+ makeinfo=${MAKEINFO:-makeinfo}
+ else
+ # Check if texinfo.tex performs macro expansion by looking for
+ # its version. The version is a date of the form YEAR-MO-DA.
+ # We don't need to use [0-9] to match the digits since anyway
+ # the comparison with $txiprereq, a number, will fail with non-digits.
+ # Run in a temporary directory to avoid leaving files.
+ version_test_dir=$t2ddir/version_test
+ ensure_dir "$version_test_dir"
+ if (
+ cd "$version_test_dir"
+ echo '\input texinfo.tex @bye' >txiversion.tex
+ # Be sure that if tex wants to fail, it is not interactive:
+ # close stdin.
+ $TEX txiversion.tex </dev/null >txiversion.out 2>txiversion.err
+ ); then :; else
+ report "texinfo.tex appears to be broken.
+This may be due to the environment variable TEX set to something
+other than (plain) tex, a corrupt texinfo.tex file, or
+to tex itself simply not working."
+ cat "$version_test_dir/txiversion.out"
+ cat "$version_test_dir/txiversion.err" >&2
+ error 1 "quitting."
+ fi
+ eval `$SED -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p' "$version_test_dir/txiversion.out"`
+ verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..."
+ if test "$txiprereq" -le "$txiversion" >&6 2>&1; then
+ makeinfo=
+ else
+ makeinfo=${MAKEINFO:-makeinfo}
+ fi
+ # If TeX is preloaded, offer the user this convenience:
+ if test "$txiformat" = Texinfo; then
+ escape=@
+ fi
+ fi
+
+ if test -n "$makeinfo"; then
+ # in_src: the file with macros expanded.
+ # Use the same basename to generate the same aux file names.
+ work_src=$workdir/src
+ ensure_dir "$work_src"
+ in_src=$work_src/$in_base
+ local miincludes
+ miincludes=`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 \
+ -o /dev/null --macro-expand=- \
+ | $SED "$uncomment_iftex" >"$in_src"
+ # Continue only if everything succeeded.
+ if test $? -ne 0 \
+ || test ! -r "$in_src"; then
+ verbose "Expansion failed, ignored...";
+ else
+ in_input=$in_src
+ fi
+ fi
+}
+
+# insert_commands ()
+# ------------------
+# Used most commonly for @finalout, @smallbook, etc.
+insert_commands ()
+{
+ if test -n "$textra"; then
+ # _xtr. The file with the user's extra commands.
+ work_xtr=$workdir/xtr
+ 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';;
+ *) error 1 "internal error, unknown language: $in_lang";;
+ esac
+ $SED "$textra_cmd\\
+$textra" "$in_input" >"$in_xtr"
+ in_input=$in_xtr
+ fi
+
+ case $in_lang:$latex2html:`out_lang_tex` in
+ latex:tex4ht:html)
+ # _tex4ht. The file with the added \usepackage{tex4ht}.
+ work_tex4ht=$workdir/tex4ht
+ in_tex4ht=$work_tex4ht/$in_base
+ ensure_dir "$work_tex4ht"
+ verbose "Inserting \\usepackage{tex4ht}"
+ perl -pe 's<\\documentclass(?:\[.*\])?{.*}>
+ <$&\\usepackage[xhtml]{tex4ht}>' \
+ "$in_input" >"$in_tex4ht"
+ in_input=$in_tex4ht
+ ;;
+ esac
+}
+
+# compute_language FILENAME
+# -------------------------
+# Return the short string describing the language in which FILENAME
+# is written: `texinfo' or `latex'.
+compute_language ()
+{
+ # If the user explicitly specified the language, use that.
+ # Otherwise, if the first line is \input texinfo, assume it's texinfo.
+ # Otherwise, guess from the file extension.
+ if test -n "$set_language"; then
+ echo $set_language
+ elif $SED 1q "$1" | grep 'input texinfo' >&6; then
+ echo texinfo
+ else
+ # Get the type of the file (latex or texinfo) from the given language
+ # we just guessed, or from the file extension if not set yet.
+ case $1 in
+ *.ltx | *.tex | *.drv | *.dtx) echo latex;;
+ *) echo texinfo;;
+ esac
+ fi
+}
+
+
+# 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
+# accented characters loose their accents.
+#
+# Don't pass `-o DEST' to hevea because in that case it leaves all its
+# auxiliary files there too... Too bad, because it means we will need
+# to handle images some day.
+run_hevea ()
+{
+ local hevea="${HEVEA:-hevea}"
+ local run_hevea="$hevea"
+
+ case $1 in
+ html) ;;
+ text|info) run_hevea="$run_hevea -$1";;
+ *) error 1 "run_hevea: 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'"
+
+ if $debug; then
+ run_hevea="$run_hevea -v -v"
+ fi
+
+ verbose "running $run_hevea"
+ if eval "$run_hevea" >&5; then
+ # hevea leaves trailing white spaces, this is annoying.
+ case $1 in text|info)
+ perl -pi -e 's/[ \t]+$//g' "$out_base"*;;
+ esac
+ case $1 in
+ html|text) move_to_dest "$out_base";;
+ info) # There can be foo.info-1, foo.info-2 etc.
+ move_to_dest "$out_base"*;;
+ esac
+ else
+ error 1 "$hevea exited with bad status, quitting."
+ fi
+}
+
+
+# run_core_conversion ()
+# ----------------------
+# Run the TeX (or HeVeA).
+run_core_conversion ()
+{
+ case $in_lang:$latex2html:`out_lang_tex` in
+ *:dvi|*:pdf|latex:tex4ht:html)
+ run_tex;;
+ latex:*:html|latex:*:text|latex:*:info)
+ run_hevea $out_lang;;
+ *)
+ error 1 "invalid input/output combination: $in_lang/$out_lang";;
+ esac
+}
+
+
+# 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.
+ 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"
+ #
+ for var in $tex_envvars; do
+ 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.
+ val=`absolute_filenames "$val"`
+ eval $var="\"$val\""
+ export $var
+ eval verbose \"$var=\'\$${var}\'\"
+ done
+
+ # --expand
+ run_makeinfo
+
+ # --command, --texinfo
+ insert_commands
+
+ # Run until a fix point is reached.
+ run_tex_suite
+}
+
+
+# remove FILES
+# ------------
+remove ()
+{
+ verbose "Removing" "$@"
+ rm -rf "$@"
+}
+
+
+# mostly_clean
+# ------------
+# Remove auxiliary files and directories. Changes the current 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"`
+ shift
+ }
+ remove ${1+"$@"}
+}
+
+
+# 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) ;;
+ esac
+}
+
+
+
+## ---------------------- ##
+## Command line parsing. ##
+## ---------------------- ##
# Push a token among the arguments that will be used to notice when we
# ended options/arguments parsing.
@@ -132,41 +1647,50 @@ while test x"$1" != x"$arg_sep"; do
# Handle --option=value by splitting apart and putting back on argv.
case "$1" in
--*=*)
- opt=`echo "$1" | sed -e 's/=.*//'`
- val=`echo "$1" | sed -e 's/[^=]*=//'`
+ opt=`echo "$1" | $SED -e 's/=.*//'`
+ val=`echo "$1" | $SED -e 's/[^=]*=//'`
shift
set dummy "$opt" "$val" ${1+"$@"}; shift
;;
esac
- # This recognizes --quark as --quiet. So what.
case "$1" in
-@ ) escape=@;;
+ -~ ) catcode_special=false;;
# Silently and without documentation accept -b and --b[atch] as synonyms.
- -b | --b*) batch=eval;;
- -q | -s | --q* | --s*) quiet=t; batch=eval;;
- -c | --c*) clean=t;;
- -D | --d*) debug=t;;
- -e | -E | --e*) expand=t;;
- -h | --h*) echo "$usage"; exit 0;;
- -I | --I*)
+ -b | --batch) batch=true;;
+ --build) shift; build_mode=$1;;
+ --build-dir) shift; build_dir=$1; build_mode=tidy;;
+ -c | --clean) build_mode=clean;;
+ -D | --debug) debug=true;;
+ -e | -E | --expand) expand=true;;
+ -h | --help) usage;;
+ -I) shift; list_concat_dirs includes "$1";;
+ -l | --lang | --language) shift; set_language=$1;;
+ --mostly-clean) action=mostly-clean;;
+ --no-line-error) line_error=false;;
+ --max-iterations) shift; max_iters=$1;;
+ -o | --out | --output)
shift
- miincludes="$miincludes -I $1"
- txincludes="$txincludes$1$path_sep"
- ;;
- -l | --l*) shift; set_language=$1;;
- -o | --o*)
- shift
- clean=t
- case "$1" in
- /* | ?:/*) oname=$1;;
- *) oname="$orig_pwd/$1";;
- esac;;
- -p | --p*) oformat=pdf;;
- -t | --t*) shift; textra="$textra\\
-$1";;
- -v | --vers*) echo "$version"; exit 0;;
- -V | --verb*) verbose=echo;;
+ # Make it absolute, just in case we also have --clean, or whatever.
+ oname=`absolute "$1"`;;
+
+ # Output formats.
+ -O|--output-format) shift; out_lang_set "$1";;
+ --dvi|--dvipdf|--html|--info|--pdf|--ps|--text)
+ out_lang_set `echo "x$1" | $SED 's/^x--//'`;;
+
+ -p) out_lang_set pdf;;
+ -q | -s | --quiet | --silent) quiet=true; batch=true;;
+ --src-specials) src_specials=--src-specials;;
+ --shell-escape) shell_escape=--shell-escape;;
+ --tex4ht) latex2html=tex4ht;;
+ -t | --texinfo | --command ) shift; textra="$textra\\
+"`echo "$1" | $SED 's/\\\\/\\\\\\\\/g'`;;
+ --translate-file ) shift; translate_file="$1";;
+ --tidy) build_mode=tidy;;
+ -v | --vers*) version;;
+ -V | --verb*) verb=true;;
--) # What remains are not options.
shift
while test x"$1" != x"$arg_sep"; do
@@ -175,9 +1699,9 @@ $1";;
done
break;;
-*)
- echo "$0: Unknown or ambiguous option \`$1'." >&2
- echo "$0: Try \`--help' for more information." >&2
- exit 1;;
+ error 1 "Unknown or ambiguous option \`$1'." \
+ "Try \`--help' for more information."
+ ;;
*) set dummy ${1+"$@"} "$1"; shift;;
esac
shift
@@ -185,103 +1709,59 @@ done
# Pop the token
shift
+# $tidy: compile in a t2d directory.
+# $clean: remove all the aux files.
+case $build_mode in
+ local) clean=false; tidy=false;;
+ tidy) clean=false; tidy=true;;
+ clean) clean=true; tidy=true;;
+ *) error 1 "invalid build mode: $build_mode";;
+esac
+
# Interpret remaining command line args as filenames.
case $# in
0)
- echo "$0: Missing file arguments." >&2
- echo "$0: Try \`--help' for more information." >&2
- exit 2
+ error 2 "Missing file arguments." "Try \`--help' for more information."
;;
1) ;;
*)
if test -n "$oname"; then
- echo "$0: Can't use option \`--output' with more than one argument." >&2
- exit 2
+ error 2 "Can't use option \`--output' with more than one argument."
fi
;;
esac
-# Prepare the temporary directory. Remove it at exit, unless debugging.
-if test -z "$debug"; then
- trap "cd / && rm -rf $tmpdir" 0 1 2 15
-fi
-# Create the temporary directory with strict rights
-(umask 077 && mkdir $tmpdir) || exit 1
+# We can't do much without tex.
+#
+if findprog ${TEX:-tex}; then :; else cat <<EOM
+You don't have a working TeX binary (${TEX:-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
+output for more details.
-# Prepare the tools we might need. This may be extra work in some
-# cases, but improves the readibility of the script.
-utildir=$tmpdir/utils
-mkdir $utildir || exit 1
+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
-# 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-ifhtml --no-ifinfo
-# doesn't work well enough (yet) to use that, so work around with sed.
-comment_iftex_sed=$utildir/comment.sed
-cat <<EOF >$comment_iftex_sed
-/^@tex/,/^@end tex/{
- s/^/@c texi2dvi/
-}
-/^@iftex/,/^@end iftex/{
- s/^/@c texi2dvi/
- /^@c texi2dvi@macro/,/^@c texi2dvi@end macro/{
- s/^@c texi2dvi//
- }
-}
-/^@html/,/^@end html/{
- s/^/@c (texi2dvi)/
-}
-/^@ifhtml/,/^@end ifhtml/{
- 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/
-EOF
-# Uncommenting is simple: Remove any leading `@c texi2dvi'.
-uncomment_iftex_sed=$utildir/uncomment.sed
-cat <<EOF >$uncomment_iftex_sed
-s/^@c texi2dvi//
-EOF
-# A shell script that computes the list of xref files.
-# Takes the filename (without extension) of which we look for xref
-# files as argument. The index files must be reported last.
-get_xref_files=$utildir/get_xref.sh
-cat <<\EOF >$get_xref_files
-#! /bin/sh
+# 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
+ if findprog etex; then TEX=etex; else TEX=tex; fi
+fi
+#
+if test -z "$PDFTEX"; then
+ if findprog pdfetex; then PDFTEX=pdfetex; else PDFTEX=pdftex; fi
+fi
-# Get list of xref files (indexes, tables and lists).
-# Find all files having root filename with a two-letter extension,
-# saves the ones that are really Texinfo-related files. .?o? catches
-# many files: .toc, .log, LaTeX tables and lists, FiXme's .lox, maybe more.
-for this_file in "$1".?o? "$1".aux "$1".?? "$1".idx; do
- # If file is empty, skip it.
- test -s "$this_file" || continue
- # If the file is not suitable to be an index or xref file, don't
- # process it. The file can't be if its first character is not a
- # backslash or single quote.
- first_character=`sed -n '1s/^\(.\).*$/\1/p;q' $this_file`
- if test "x$first_character" = "x\\" \
- || test "x$first_character" = "x'"; then
- xref_files="$xref_files ./$this_file"
- fi
-done
-echo "$xref_files"
-EOF
-chmod 500 $get_xref_files
# File descriptor usage:
# 0 standard input
@@ -290,369 +1770,175 @@ chmod 500 $get_xref_files
# 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.)
+
-# Tools' output. If quiet, discard, else redirect to the message flow.
-if test "$quiet" = t; then
+# Main tools' output (TeX, etc.) that TeX users are used to seeing.
+#
+# If quiet, discard, else redirect to the message flow.
+if $quiet; then
exec 5>/dev/null
else
exec 5>&1
fi
-# Enable tracing
-test "$debug" = t && set -x
+
+# Enable tracing, and auxiliary tools output.
+#
+# This fd should be used where you'd typically use /dev/null to throw
+# output away. But sometimes it is convenient to see that output (e.g.,
+# from a grep) to aid debugging. Especially debugging at distance, via
+# the user.
+#
+if $debug; then
+ exec 6>&1
+ set -vx
+else
+ exec 6>/dev/null
+fi
#
-# TeXify files.
-for command_line_filename in ${1+"$@"}; do
- $verbose "Processing $command_line_filename ..."
+# 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" | $EGREP '^(/|[A-z]:/)' >/dev/null \
+ 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.
- if test ! -r "$command_line_filename"; then
- echo "$0: Could not read $command_line_filename, skipping." >&2
- continue
- fi
+ test -r "$command_line_filename" \
+ || error 1 "cannot read $command_line_filename, skipping."
- # Get the name of the current directory. We want the full path
- # because in clean mode we are in tmp, in which case a relative
- # path has no meaning.
- filename_dir=`echo $command_line_filename | sed 's!/[^/]*$!!;s!^$!.!'`
- filename_dir=`cd "$filename_dir" >/dev/null && pwd`
+ # 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.
- filename_ext=`basename "$command_line_filename"`
+ in_base=`basename "$command_line_filename"`
# Strip extension.
- filename_noext=`echo "$filename_ext" | sed 's/\.[^.]*$//'`
- ext=`echo "$filename_ext" | sed 's/^.*\.//'`
-
- # _src. Use same basename since we want to generate aux files with
- # the same basename as the manual. If --expand, then output the
- # macro-expanded file to here, else copy the original file.
- tmpdir_src=$tmpdir/src
- filename_src=$tmpdir_src/$filename_noext.$ext
+ in_noext=`noext "$in_base"`
- # _xtr. The file with the user's extra commands.
- tmpdir_xtr=$tmpdir/xtr
- filename_xtr=$tmpdir_xtr/$filename_noext.$ext
+ # 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
- # _bak. Copies of the previous xref files (another round is run if
- # they differ from the new one).
- tmpdir_bak=$tmpdir/bak
- # Make all those directories and give up if we can't succeed.
- mkdir $tmpdir_src $tmpdir_xtr $tmpdir_bak || exit 1
-
- # 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 mode, where
- # we've cd'd to a temp directory.
- common="$orig_pwd$path_sep$filename_dir$path_sep$txincludes"
- TEXINPUTS="$common$TEXINPUTS_orig"
- INDEXSTYLE="$common$INDEXSTYLE_orig"
-
- # Convert relative paths to absolute paths, so we can run in another
- # directory (e.g., in --clean mode, or during the macro-support
- # detection.)
- #
- # Empty path components are meaningful to tex. We rewrite them
- # as `EMPTY' so they don't get lost when we split on $path_sep.
- TEXINPUTS=`echo $TEXINPUTS |sed 's/^:/EMPTY:/;s/:$/:EMPTY/;s/::/:EMPTY:/g'`
- INDEXSTYLE=`echo $INDEXSTYLE |sed 's/^:/EMPTY:/;s/:$/:EMPTY/;s/::/:EMPTY:/g'`
- save_IFS=$IFS
- IFS=$path_sep
- set x $TEXINPUTS; shift
- TEXINPUTS=.
- for dir
- do
- case $dir in
- EMPTY)
- TEXINPUTS=$TEXINPUTS$path_sep
- ;;
- [\\/]* | ?:[\\/]*) # Absolute paths don't need to be expansed.
- TEXINPUTS=$TEXINPUTS$path_sep$dir
- ;;
- *)
- abs=`cd "$dir" && pwd` && TEXINPUTS=$TEXINPUTS$path_sep$abs
- ;;
- esac
- done
- set x $INDEXSTYLE; shift
- INDEXSTYLE=.
- for dir
- do
- case $dir in
- EMPTY)
- INDEXSTYLE=$INDEXSTYLE$path_sep
- ;;
- [\\/]* | ?:[\\/]*) # Absolute paths don't need to be expansed.
- INDEXSTYLE=$INDEXSTYLE$path_sep$dir
- ;;
- *)
- abs=`cd "$dir" && pwd` && INDEXSTYLE=$INDEXSTYLE$path_sep$abs
- ;;
- esac
- done
- IFS=$save_IFS
-
- # If the user explicitly specified the language, use that.
- # Otherwise, if the first line is \input texinfo, assume it's texinfo.
- # Otherwise, guess from the file extension.
- if test -n "$set_language"; then
- language=$set_language
- elif sed 1q "$command_line_filename" | grep 'input texinfo' >/dev/null; then
- language=texinfo
+ # Compute the output file name.
+ if test x"$oname" != x; then
+ out_name=$oname
else
- language=
- fi
-
- # Get the type of the file (latex or texinfo) from the given language
- # we just guessed, or from the file extension if not set yet.
- case ${language:-$filename_ext} in
- [lL]a[tT]e[xX] | *.ltx | *.tex)
- # Assume a LaTeX file. LaTeX needs bibtex and uses latex for
- # compilation. No makeinfo.
- bibtex=${BIBTEX:-bibtex}
- makeinfo= # no point in running makeinfo on latex source.
- texindex=${MAKEINDEX:-makeindex}
- if test $oformat = dvi; then
- tex=${LATEX:-latex}
- else
- tex=${PDFLATEX:-pdflatex}
- fi
- ;;
-
- *)
- # Assume a Texinfo file. Texinfo files need makeinfo, texindex and tex.
- bibtex=
- texindex=${TEXINDEX:-texindex}
- if test $oformat = dvi; then
- tex=${TEX:-tex}
- else
- tex=${PDFTEX:-pdftex}
- fi
- # Unless required by the user, makeinfo expansion is wanted only
- # if texinfo.tex is too old.
- if test "$expand" = t; then
- makeinfo=${MAKEINFO:-makeinfo}
- else
- # Check if texinfo.tex performs macro expansion by looking for
- # its version. The version is a date of the form YEAR-MO-DA.
- # We don't need to use [0-9] to match the digits since anyway
- # the comparison with $txiprereq, a number, will fail with non
- # digits.
- txiversion_tex=txiversion.tex
- echo '\input texinfo.tex @bye' >$tmpdir/$txiversion_tex
- # Run in the tmpdir to avoid leaving files.
- eval `cd $tmpdir >/dev/null &&
- $tex $txiversion_tex 2>/dev/null |
- sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p'`
- $verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..."
- if test "$txiprereq" -le "$txiversion" >/dev/null 2>&1; then
- makeinfo=
- else
- makeinfo=${MAKEINFO:-makeinfo}
- fi
- # As long as we had to run TeX, offer the user this convenience
- if test "$txiformat" = Texinfo; then
- escape=@
- fi
- fi
- ;;
- esac
-
- # 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.
- if test -n "$makeinfo"; then
- $verbose "Macro-expanding $command_line_filename to $filename_src ..."
- sed -f $comment_iftex_sed "$command_line_filename" \
- | $makeinfo --footnote-style=end -I "$filename_dir" $miincludes \
- -o /dev/null --macro-expand=- \
- | sed -f $uncomment_iftex_sed >"$filename_src"
- filename_input=$filename_src
- fi
-
- # If makeinfo failed (or was not even run), use the original file as input.
- if test $? -ne 0 \
- || test ! -r "$filename_src"; then
- $verbose "Reverting to $command_line_filename ..."
- filename_input=$filename_dir/$filename_ext
- fi
-
- # Used most commonly for @finalout, @smallbook, etc.
- if test -n "$textra"; then
- $verbose "Inserting extra commands: $textra"
- sed '/^@setfilename/a\
-'"$textra" "$filename_input" >$filename_xtr
- filename_input=$filename_xtr
+ 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"`
+}
- # If clean mode was specified, then move to the temporary directory.
- if test "$clean" = t; then
- $verbose "cd $tmpdir_src"
- cd "$tmpdir_src" || exit 1
- fi
- while :; do # will break out of loop below
- orig_xref_files=`$get_xref_files "$filename_noext"`
+## -------------- ##
+## TeXify files. ##
+## -------------- ##
- # Save copies of originals for later comparison.
- if test -n "$orig_xref_files"; then
- $verbose "Backing up xref files: `echo $orig_xref_files | sed 's|\./||g'`"
- cp $orig_xref_files $tmpdir_bak
- fi
+for command_line_filename
+do
+ verbose "Processing $command_line_filename ..."
- # Run bibtex on current file.
- # - If its input (AUX) exists.
- # - If AUX contains both `\bibdata' and `\bibstyle'.
- # - If some citations are missing (LOG contains `Citation').
- # or the LOG complains of a missing .bbl
- #
- # We run bibtex first, because I can see reasons for the indexes
- # to change after bibtex is run, but I see no reason for the
- # converse.
- #
- # Don't try to be too smart. 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. 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 to match false messages.
- if test -n "$bibtex" \
- && test -r "$filename_noext.aux" \
- && test -r "$filename_noext.log" \
- && (grep '^\\bibdata[{]' "$filename_noext.aux" \
- && grep '^\\bibstyle[{]' "$filename_noext.aux" \
- && (grep 'Warning:.*Citation.*undefined' "$filename_noext.log" \
- || grep 'No file .*\.bbl\.' "$filename_noext.log")) \
- >/dev/null 2>&1; \
- then
- $verbose "Running $bibtex $filename_noext ..."
- if $bibtex "$filename_noext" >&5; then :; else
- echo "$0: $bibtex exited with bad status, quitting." >&2
- exit 1
- fi
- fi
+ input_file_name_decode
- # What we'll run texindex on -- exclude non-index files.
- # Since we know index files are last, it is correct to remove everything
- # before .aux and .?o?. But don't really do <anything>o<anything>
- # -- don't match whitespace as <anything>.
- # Otherwise, if orig_xref_files contains something like
- # foo.xo foo.whatever
- # the space after the o will get matched.
- index_files=`echo "$orig_xref_files" \
- | sed "s!.*\.aux!!g;
- s!./$filename_noext\.[^ ]o[^ ]!!g;
- s/^[ ]*//;s/[ ]*$//"`
- # Run texindex (or makeindex) 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.
- if test -n "$texindex" && test -n "$index_files"; then
- $verbose "Running $texindex $index_files ..."
- if $texindex $index_files 2>&5 1>&2; then :; else
- echo "$0: $texindex exited with bad status, quitting." >&2
- exit 1
- fi
- fi
+ # `texinfo' or `latex'?
+ in_lang=`compute_language "$command_line_filename"`
- # Finally, run TeX.
- # Prevent $ESCAPE from being interpreted by the shell if it happens
- # to be `/'.
- $batch tex_args="\\${escape}nonstopmode\ \\${escape}input"
- cmd="$tex $tex_args $filename_input"
- $verbose "Running $cmd ..."
- if $cmd >&5; then :; else
- echo "$0: $tex exited with bad status, quitting." >&2
- echo "$0: see $filename_noext.log for errors." >&2
- test "$clean" = t \
- && cp "$filename_noext.log" "$orig_pwd"
- exit 1
- fi
+ # An auxiliary directory used for all the auxiliary tasks involved
+ # in compiling this document.
+ case $build_dir in
+ '' | . ) t2ddir=$out_noext.t2d ;;
+ *) # Avoid collisions between multiple occurrences of the same
+ # file, so depend on the output path. Remove leading `./',
+ # at least to avoid creating a file starting with `.!', i.e.,
+ # an invisible file. The sed expression is fragile if the cwd
+ # has active characters. Transform / into ! so that we don't
+ # need `mkdir -p'. It might be something to reconsider.
+ t2ddir=$build_dir/`echo "$out_dir_abs/$out_noext.t2d" |
+ $SED "s,^$orig_pwd/,,;s,^\./,,;s,/,!,g"`
+ esac
+ # Remove it at exit if clean mode.
+ trap "cleanup" 0 1 2 15
+ ensure_dir "$build_dir" "$t2ddir"
- # Decide if looping again is needed.
- finished=t
+ # 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.
+ workdir=$t2ddir/`out_lang_tex`
+ ensure_dir "$workdir"
- # LaTeX (and the package changebar) report in the LOG file if it
- # should be rerun. This is needed for files included from
- # subdirs, since texi2dvi does not try to compare xref files in
- # subdirs. Performing xref files test is still good since LaTeX
- # does not report changes in xref files.
- if grep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then
- finished=
- fi
+ # _build. In a tidy build, where the auxiliary files are output.
+ if $tidy; then
+ work_build=$workdir/build
+ else
+ work_build=.
+ fi
- # Check if xref files changed.
- new_xref_files=`$get_xref_files "$filename_noext"`
- $verbose "Original xref files = `echo $orig_xref_files | sed 's|\./||g'`"
- $verbose "New xref files = `echo $new_xref_files | sed 's|\./||g'`"
-
- # If old and new lists don't at least have the same file list,
- # then one file or another has definitely changed.
- test "x$orig_xref_files" != "x$new_xref_files" && finished=
-
- # File list is the same. We must compare each file until we find
- # a difference.
- if test -n "$finished"; then
- for this_file in $new_xref_files; 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" "$tmpdir_bak/$this_file"; then :; else
- # We only need to keep comparing until we find one that
- # differs, because we'll have to run texindex & tex again no
- # matter how many more there might be.
- finished=
- $verbose "xref file `echo $this_file | sed 's|\./||g'` differed ..."
- test "$debug" = t && diff -c "$tmpdir_bak/$this_file" "$this_file"
- break
- fi
- done
- fi
+ # _bak. Copies of the previous auxiliary files (another round is
+ # run if they differ from the new ones).
+ work_bak=$workdir/bak
- # If finished, exit the loop, else rerun the loop.
- test -n "$finished" && break
- done
+ # Make those directories.
+ ensure_dir "$work_build" "$work_bak"
- # If we were in clean mode, compilation was in a tmp directory.
- # Copy the DVI (or PDF) file into the directory where the compilation
- # has been done. (The temp dir is about to get removed anyway.)
- # We also return to the original directory so that
- # - the next file is processed in correct conditions
- # - the temporary file can be removed
- if test -n "$clean"; then
- if test -n "$oname"; then
- dest=$oname
- else
- dest=$orig_pwd
- fi
- $verbose "Copying $oformat file from `pwd` to $dest"
- cp -p "./$filename_noext.$oformat" "$dest"
- cd / # in case $orig_pwd is on a different drive (for DOS)
- cd $orig_pwd || exit 1
- fi
+ case $action in
+ compile)
+ # Compile the document.
+ compile
+ cleanup
+ ;;
- # Remove temporary files.
- if test "x$debug" = "x"; then
- $verbose "Removing $tmpdir_src $tmpdir_xtr $tmpdir_bak ..."
- cd /
- rm -rf $tmpdir_src $tmpdir_xtr $tmpdir_bak
- fi
+ mostly-clean)
+ mostly_clean
+ ;;
+ esac
done
-$verbose "$0 done."
+verbose "done."
exit 0 # exit successfully, not however we ended the loop.
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index bfd765d..d494cce 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -3,11 +3,12 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2013-09-11.11}
+\def\texinfoversion{2015-11-22.14}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
+% Free Software Foundation, Inc.
%
% This texinfo.tex file is free software: you can redistribute it and/or
% modify it under the terms of the GNU General Public License as
@@ -96,7 +97,9 @@
\let\ptexraggedright=\raggedright
\let\ptexrbrace=\}
\let\ptexslash=\/
+\let\ptexsp=\sp
\let\ptexstar=\*
+\let\ptexsup=\sup
\let\ptext=\t
\let\ptextop=\top
{\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode
@@ -193,17 +196,6 @@
wide-spread wrap-around
}
-% Margin to add to right of even pages, to left of odd pages.
-\newdimen\bindingoffset
-\newdimen\normaloffset
-\newdimen\pagewidth \newdimen\pageheight
-
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
-%
-\def\finalout{\overfullrule=0pt }
-
% Sometimes it is convenient to have everything in the transcript file
% and nothing on the terminal. We don't just call \tracingall here,
% since that produces some useless output on the terminal. We also make
@@ -248,6 +240,15 @@
\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
\removelastskip\penalty-200\bigskip\fi\fi}
+% Output routine
+%
+
+% For a final copy, take out the rectangles
+% that mark overfull boxes (in case you have decided
+% that the text looks ok even though it passes the margin).
+%
+\def\finalout{\overfullrule=0pt }
+
% Do @cropmarks to get crop marks.
%
\newif\ifcropmarks
@@ -274,6 +275,7 @@
% described on page 260 of The TeXbook. It involves outputting two
% marks for the sectioning macros, one before the section break, and
% one after. I won't pretend I can describe this better than DEK...
+%
\def\domark{%
\toks0=\expandafter{\lastchapterdefs}%
\toks2=\expandafter{\lastsectiondefs}%
@@ -286,6 +288,9 @@
\noexpand\else \the\toks8 % 2: color marks
}%
}
+
+% \gettopheadingmarks, \getbottomheadingmarks - extract needed part of mark.
+%
% \topmark doesn't work for the very first chapter (after the title
% page or the contents), so we use \firstmark there -- this gets us
% the mark with the chapter defs, unless the user sneaks in, e.g.,
@@ -301,36 +306,75 @@
% Avoid "undefined control sequence" errors.
\def\lastchapterdefs{}
\def\lastsectiondefs{}
+\def\lastsection{}
\def\prevchapterdefs{}
\def\prevsectiondefs{}
\def\lastcolordefs{}
+% Margin to add to right of even pages, to left of odd pages.
+\newdimen\bindingoffset
+\newdimen\normaloffset
+\newdimen\pagewidth \newdimen\pageheight
+
% Main output routine.
+%
\chardef\PAGE = 255
\output = {\onepageout{\pagecontents\PAGE}}
\newbox\headlinebox
\newbox\footlinebox
-% \onepageout takes a vbox as an argument. Note that \pagecontents
-% does insertions, but you have to call it yourself.
+% \onepageout takes a vbox as an argument.
+% \shipout a vbox for a single page, adding an optional header, footer,
+% cropmarks, and footnote. This also causes index entries for this page
+% to be written to the auxiliary files.
+%
\def\onepageout#1{%
\ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
%
\ifodd\pageno \advance\hoffset by \bindingoffset
\else \advance\hoffset by -\bindingoffset\fi
%
+ % Common context changes for both heading and footing.
% Do this outside of the \shipout so @code etc. will be expanded in
% the headline as they should be, not taken literally (outputting ''code).
\def\commmonheadfootline{\let\hsize=\pagewidth \texinfochars}
%
- \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
- \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}%
+ % Retrieve the information for the headings from the marks in the page,
+ % and call Plain TeX's \makeheadline and \makefootline, which use the
+ % values in \headline and \footline.
%
+ % This is used to check if we are on the first page of a chapter.
+ \ifcase0\topmark\fi
+ \ifx\thischapter\empty
+ % See comment for \gettopheadingmarks
+ \ifcase0\firstmark\fi
+ \let\curchaptername\thischaptername
+ \ifcase1\firstmark\fi
+ \let\prevchaptername\thischaptername
+ \else
+ \let\curchaptername\thischaptername
+ \ifcase1\topmark\fi
+ \let\prevchaptername\thischaptername
+ \fi
+ %
+ \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
\ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
+ %
+ \ifx\curchaptername\prevchaptername
+ \let\thischapterheading\thischapter
+ \else
+ % \thischapterheading is the same as \thischapter except it is blank
+ % for the first page of a chapter. This is to prevent the chapter name
+ % being shown twice.
+ \def\thischapterheading{}%
+ \fi
+ %
+ \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}%
\global\setbox\footlinebox = \vbox{\commmonheadfootline \makefootline}%
%
{%
+ % Set context for writing to auxiliary files like index files.
% Have to do this stuff outside the \shipout because we want it to
% take effect in \write's, yet the group defined by the \vbox ends
% before the \shipout runs.
@@ -339,10 +383,10 @@
\normalturnoffactive % \ in index entries must not stay \, e.g., if
% the page break happens to be in the middle of an example.
% We don't want .vr (or whatever) entries like this:
- % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
+ % \entry{{\indexbackslash }acronym}{32}{\code {\acronym}}
% "\acronym" won't work when it's read back in;
% it needs to be
- % {\code {{\tt \backslashcurfont }acronym}
+ % {\code {{\backslashcurfont }acronym}
\shipout\vbox{%
% Do this early so pdf references go to the beginning of the page.
\ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
@@ -400,6 +444,7 @@
\newinsert\margin \dimen\margin=\maxdimen
+% Main part of page, including any footnotes
\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
{\catcode`\@ =11
\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
@@ -422,9 +467,13 @@
\def\nsbot{\vbox
{\hrule height\cornerlong depth\cornerthick width\cornerthick}}
+
+% Argument parsing
+
% Parse an argument, then pass it to #1. The argument is the rest of
% the input line (except we remove a trailing comment). #1 should be a
% macro which expects an ordinary undelimited TeX argument.
+% For example, \def\foo{\parsearg\fooxxx}.
%
\def\parsearg{\parseargusing{}}
\def\parseargusing#1#2{%
@@ -443,9 +492,11 @@
}%
}
-% First remove any @comment, then any @c comment.
+% First remove any @comment, then any @c comment. Also remove a @texinfoc
+% comment (see \scanmacro for details). Pass the result on to \argcheckspaces.
\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
-\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
+\def\argremovec#1\c#2\ArgTerm{\argremovetexinfoc #1\texinfoc\ArgTerm}
+\def\argremovetexinfoc#1\texinfoc#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
% Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
%
@@ -480,14 +531,13 @@
%
\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
+
+% \parseargdef - define a command taking an argument on the line
+%
% \parseargdef\foo{...}
% is roughly equivalent to
% \def\foo{\parsearg\Xfoo}
% \def\Xfoo#1{...}
-%
-% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my
-% favourite TeX trick. --kasal, 16nov03
-
\def\parseargdef#1{%
\expandafter \doparseargdef \csname\string#1\endcsname #1%
}
@@ -677,6 +727,12 @@
\endgraf % Not \par, as it may have been set to \lisppar.
\global\dimen1 = \prevdepth
\egroup % End the \vtop.
+ \addgroupbox
+ \prevdepth = \dimen1
+ \checkinserts
+}
+
+\def\addgroupbox{
% \dimen0 is the vertical size of the group's box.
\dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox
% \dimen2 is how much space is left on the page (more or less).
@@ -689,9 +745,8 @@
\fi
\fi
\box\groupbox
- \prevdepth = \dimen1
- \checkinserts
}
+
%
% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
% message, so this ends up printing `@group can only ...'.
@@ -934,12 +989,20 @@ where each line of input produces a line of output.}
% @c is the same as @comment
% @ignore ... @end ignore is another way to write a comment
%
-\def\comment{\begingroup \catcode`\^^M=\other%
+\def\comment{\begingroup \catcode`\^^M=\active%
+\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other\commentxxx}%
+
+{\catcode`\^^M=\active%
+\gdef\commentxxx#1^^M{\endgroup%
+\futurelet\nexttoken\commentxxxx}%
+\gdef\commentxxxx{\ifx\nexttoken\aftermacro\expandafter\comment\fi}%
+}
+
+\def\c{\begingroup \catcode`\^^M=\active%
\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
-\commentxxx}
-{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-%
-\let\c=\comment
+\cxxx}
+{\catcode`\^^M=\active \gdef\cxxx#1^^M{\endgroup}}
+% See comment in \scanmacro about why the definitions of @c and @comment differ
% @paragraphindent NCHARS
% We'll use ems for NCHARS, close enough.
@@ -1010,69 +1073,23 @@ where each line of input produces a line of output.}
% paragraph.
%
\gdef\dosuppressfirstparagraphindent{%
- \gdef\indent{%
- \restorefirstparagraphindent
- \indent
- }%
- \gdef\noindent{%
- \restorefirstparagraphindent
- \noindent
- }%
- \global\everypar = {%
- \kern -\parindent
- \restorefirstparagraphindent
- }%
+ \gdef\indent {\restorefirstparagraphindent \indent}%
+ \gdef\noindent{\restorefirstparagraphindent \noindent}%
+ \global\everypar = {\kern -\parindent \restorefirstparagraphindent}%
}
-
+%
\gdef\restorefirstparagraphindent{%
- \global \let \indent = \ptexindent
- \global \let \noindent = \ptexnoindent
- \global \everypar = {}%
+ \global\let\indent = \ptexindent
+ \global\let\noindent = \ptexnoindent
+ \global\everypar = {}%
}
% @refill is a no-op.
\let\refill=\relax
-% If working on a large document in chapters, it is convenient to
-% be able to disable indexing, cross-referencing, and contents, for test runs.
-% This is done with @novalidate (before @setfilename).
-%
-\newif\iflinks \linkstrue % by default we want the aux files.
-\let\novalidate = \linksfalse
-
-% @setfilename is done at the beginning of every texinfo file.
-% So open here the files we need to have open while reading the input.
-% This makes it possible to make a .fmt file for texinfo.
-\def\setfilename{%
- \fixbackslash % Turn off hack to swallow `\input texinfo'.
- \iflinks
- \tryauxfile
- % Open the new aux file. TeX will close it automatically at exit.
- \immediate\openout\auxfile=\jobname.aux
- \fi % \openindices needs to do some work in any case.
- \openindices
- \let\setfilename=\comment % Ignore extra @setfilename cmds.
- %
- % If texinfo.cnf is present on the system, read it.
- % Useful for site-wide @afourpaper, etc.
- \openin 1 texinfo.cnf
- \ifeof 1 \else \input texinfo.cnf \fi
- \closein 1
- %
- \comment % Ignore the actual filename.
-}
-
-% Called from \setfilename.
-%
-\def\openindices{%
- \newindex{cp}%
- \newcodeindex{fn}%
- \newcodeindex{vr}%
- \newcodeindex{tp}%
- \newcodeindex{ky}%
- \newcodeindex{pg}%
-}
+% @setfilename INFO-FILENAME - ignored
+\let\setfilename=\comment
% @bye.
\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
@@ -1090,6 +1107,7 @@ where each line of input produces a line of output.}
\newtoks\toksC
\newtoks\toksD
\newbox\boxA
+\newbox\boxB
\newcount\countA
\newif\ifpdf
\newif\ifpdfmakepagedest
@@ -1138,10 +1156,12 @@ output) for that.)}
\ifpdf
%
- % Color manipulation macros based on pdfcolor.tex,
+ % Color manipulation macros using ideas from pdfcolor.tex,
% except using rgb instead of cmyk; the latter is said to render as a
% very dark gray on-screen and a very dark halftone in print, instead
- % of actual black.
+ % of actual black. The dark red here is dark enough to print on paper as
+ % nearly black, but still distinguishable for online viewing. We use
+ % black by default, though.
\def\rgbDarkRed{0.50 0.09 0.12}
\def\rgbBlack{0 0 0}
%
@@ -1251,10 +1271,9 @@ output) for that.)}
% used to mark target names; must be expandable.
\def\pdfmkpgn#1{#1}
%
- % by default, use a color that is dark enough to print on paper as
- % nearly black, but still distinguishable for online viewing.
- \def\urlcolor{\rgbDarkRed}
- \def\linkcolor{\rgbDarkRed}
+ % by default, use black for everything.
+ \def\urlcolor{\rgbBlack}
+ \def\linkcolor{\rgbBlack}
\def\endlink{\setcolor{\maincolor}\pdfendlink}
%
% Adding outlines to PDF; macros for calculating structure of outlines
@@ -1825,8 +1844,10 @@ end
% A few fonts for @defun names and args.
\setfont\defbf\bfshape{10}{\magstep1}{OT1}
\setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
+\setfont\defsl\slshape{10}{\magstep1}{OT1TT}
\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
+\def\df{\let\tentt=\deftt \let\tenbf = \defbf
+\let\tenttsl=\defttsl \let\tensl=\defsl \bf}
% Fonts for indices, footnotes, small examples (9pt).
\def\smallnominalsize{9pt}
@@ -1887,6 +1908,7 @@ end
% Section fonts (14.4pt).
\def\secnominalsize{14pt}
\setfont\secrm\rmbshape{12}{\magstep1}{OT1}
+\setfont\secrmnotbold\rmshape{12}{\magstep1}{OT1}
\setfont\secit\itbshape{10}{\magstep2}{OT1IT}
\setfont\secsl\slbshape{10}{\magstep2}{OT1}
\setfont\sectt\ttbshape{12}{\magstep1}{OT1TT}
@@ -1956,8 +1978,10 @@ end
% A few fonts for @defun names and args.
\setfont\defbf\bfshape{10}{\magstephalf}{OT1}
\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
+\setfont\defsl\slshape{10}{\magstephalf}{OT1TT}
\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
+\def\df{\let\tentt=\deftt \let\tenbf = \defbf
+\let\tensl=\defsl \let\tenttsl=\defttsl \bf}
% Fonts for indices, footnotes, small examples (9pt).
\def\smallnominalsize{9pt}
@@ -2089,12 +2113,9 @@ end
\endgroup
}
-
% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families. Since
-% texinfo doesn't allow for producing subscripts and superscripts except
-% in the main text, we don't bother to reset \scriptfont and
-% \scriptscriptfont (which would also require loading a lot more fonts).
+% we have to define the \textfont of the standard families. We don't
+% bother to reset \scriptfont and \scriptscriptfont; awaiting user need.
%
\def\resetmathfonts{%
\textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
@@ -2108,8 +2129,8 @@ end
% \tenSTYLE to set the current font.
%
% Each font-changing command also sets the names \lsize (one size lower)
-% and \lllsize (three sizes lower). These relative commands are used in
-% the LaTeX logo and acronyms.
+% and \lllsize (three sizes lower). These relative commands are used
+% in, e.g., the LaTeX logo and acronyms.
%
% This all needs generalizing, badly.
%
@@ -2145,7 +2166,7 @@ end
\let\tenttsl=\secttsl
\def\curfontsize{sec}%
\def\lsize{subsec}\def\lllsize{reduced}%
- \resetmathfonts \setleading{16pt}}
+ \resetmathfonts \setleading{17pt}}
\def\subsecfonts{%
\let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
\let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
@@ -2574,37 +2595,21 @@ end
\let\file=\code
\let\option=\code
-% @uref (abbreviation for `urlref') takes an optional (comma-separated)
-% second argument specifying the text to display and an optional third
-% arg as text to display instead of (rather than in addition to) the url
-% itself. First (mandatory) arg is the url.
-% (This \urefnobreak definition isn't used now, leaving it for a while
-% for comparison.)
-\def\urefnobreak#1{\dourefnobreak #1,,,\finish}
-\def\dourefnobreak#1,#2,#3,#4\finish{\begingroup
- \unsepspaces
- \pdfurl{#1}%
- \setbox0 = \hbox{\ignorespaces #3}%
- \ifdim\wd0 > 0pt
- \unhbox0 % third arg given, show only that
- \else
- \setbox0 = \hbox{\ignorespaces #2}%
- \ifdim\wd0 > 0pt
- \ifpdf
- \unhbox0 % PDF: 2nd arg given, show only it
- \else
- \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
- \fi
- \else
- \code{#1}% only url given, so show it
- \fi
- \fi
- \endlink
-\endgroup}
+% @uref (abbreviation for `urlref') aka @url takes an optional
+% (comma-separated) second argument specifying the text to display and
+% an optional third arg as text to display instead of (rather than in
+% addition to) the url itself. First (mandatory) arg is the url.
+
+% TeX-only option to allow changing PDF output to show only the second
+% arg (if given), and not the url (which is then just the link target).
+\newif\ifurefurlonlylink
-% This \urefbreak definition is the active one.
+% The main macro is \urefbreak, which allows breaking at expected
+% places within the url. (There used to be another version, which
+% didn't support automatic breaking.)
\def\urefbreak{\begingroup \urefcatcodes \dourefbreak}
\let\uref=\urefbreak
+%
\def\dourefbreak#1{\urefbreakfinish #1,,,\finish}
\def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example
\unsepspaces
@@ -2613,12 +2618,19 @@ end
\ifdim\wd0 > 0pt
\unhbox0 % third arg given, show only that
\else
- \setbox0 = \hbox{\ignorespaces #2}%
+ \setbox0 = \hbox{\ignorespaces #2}% look for second arg
\ifdim\wd0 > 0pt
\ifpdf
- \unhbox0 % PDF: 2nd arg given, show only it
+ \ifurefurlonlylink
+ % PDF plus option to not display url, show just arg
+ \unhbox0
+ \else
+ % PDF, normally display both arg and url for consistency,
+ % visibility, if the pdf is eventually used to print, etc.
+ \unhbox0\ (\urefcode{#1})%
+ \fi
\else
- \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url
+ \unhbox0\ (\urefcode{#1})% DVI, always show arg and url
\fi
\else
\urefcode{#1}% only url given, so show it
@@ -2658,8 +2670,10 @@ end
% we put a little stretch before and after the breakable chars, to help
% line breaking of long url's. The unequal skips make look better in
% cmtt at least, especially for dots.
-\def\urefprestretch{\urefprebreak \hskip0pt plus.13em }
-\def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em }
+\def\urefprestretchamount{.13em}
+\def\urefpoststretchamount{.1em}
+\def\urefprestretch{\urefprebreak \hskip0pt plus\urefprestretchamount\relax}
+\def\urefpoststretch{\urefpostbreak \hskip0pt plus\urefprestretchamount\relax}
%
\def\urefcodeamp{\urefprestretch \&\urefpoststretch}
\def\urefcodedot{\urefprestretch .\urefpoststretch}
@@ -2786,11 +2800,6 @@ end
%
\def\dmn#1{\thinspace #1}
-% @l was never documented to mean ``switch to the Lisp font'',
-% and it is not used as such in any manual I can find. We need it for
-% Polish suppressed-l. --karl, 22sep96.
-%\def\l#1{{\li #1}\null}
-
% @acronym for "FBI", "NATO", and the like.
% We print this one point size smaller, since it's intended for
% all-uppercase.
@@ -2857,6 +2866,8 @@ end
\let\v=\check
\let\~=\tilde
\let\dotaccent=\dot
+ % have to provide another name for sup operator
+ \let\mathopsup=\sup
$\finishmath
}
\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
@@ -2880,8 +2891,17 @@ end
}
}
-% ctrl is no longer a Texinfo command, but leave this definition for fun.
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
+% for @sub and @sup, if in math mode, just do a normal sub/superscript.
+% If in text, use math to place as sub/superscript, but switch
+% into text mode, with smaller fonts. This is a different font than the
+% one used for real math sub/superscripts (8pt vs. 7pt), but let's not
+% fix it (significant additions to font machinery) until someone notices.
+%
+\def\sub{\ifmmode \expandafter\sb \else \expandafter\finishsub\fi}
+\def\finishsub#1{$\sb{\hbox{\selectfonts\lllsize #1}}$}%
+%
+\def\sup{\ifmmode \expandafter\ptexsp \else \expandafter\finishsup\fi}
+\def\finishsup#1{$\ptexsp{\hbox{\selectfonts\lllsize #1}}$}%
% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
@@ -3023,11 +3043,16 @@ end
\TeX
}
-% Some math mode symbols.
-\def\bullet{$\ptexbullet$}
-\def\geq{\ifmmode \ge\else $\ge$\fi}
-\def\leq{\ifmmode \le\else $\le$\fi}
-\def\minus{\ifmmode -\else $-$\fi}
+% Some math mode symbols. Define \ensuremath to switch into math mode
+% unless we are already there. Expansion tricks may not be needed here,
+% but safer, and can't hurt.
+\def\ensuremath{\ifmmode \expandafter\asis \else\expandafter\ensuredmath \fi}
+\def\ensuredmath#1{$\relax#1$}
+%
+\def\bullet{\ensuremath\ptexbullet}
+\def\geq{\ensuremath\ge}
+\def\leq{\ensuremath\le}
+\def\minus{\ensuremath-}
% @dots{} outputs an ellipsis using the current font.
% We do .5em per period so that it has the same spacing in the cm
@@ -3191,8 +3216,15 @@ end
\def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E}
\def\eogonek{{\ecfont \char"A6}}\def\macrochare{e}
%
-% Use the ec* fonts (cm-super in outline format) for non-CM glyphs.
-\def\ecfont{%
+% Use the European Computer Modern fonts (cm-super in outline format)
+% for non-CM glyphs. That is ec* for regular text and tc* for the text
+% companion symbols (LaTeX TS1 encoding). Both are part of the ec
+% package and follow the same conventions.
+%
+\def\ecfont{\etcfont{e}}
+\def\tcfont{\etcfont{t}}
+%
+\def\etcfont#1{%
% We can't distinguish serif/sans and italic/slanted, but this
% is used for crude hacks anyway (like adding French and German
% quotes to documents typeset with CM, where we lose kerning), so
@@ -3201,14 +3233,14 @@ end
\edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
\ifmonospace
% typewriter:
- \font\thisecfont = ectt\ecsize \space at \nominalsize
+ \font\thisecfont = #1ctt\ecsize \space at \nominalsize
\else
\ifx\curfontstyle\bfstylename
% bold:
- \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+ \font\thisecfont = #1cb\ifusingit{i}{x}\ecsize \space at \nominalsize
\else
% regular:
- \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+ \font\thisecfont = #1c\ifusingit{ti}{rm}\ecsize \space at \nominalsize
\fi
\fi
\thisecfont
@@ -3378,7 +3410,7 @@ end
\newtoks\evenfootline % footline on even pages
\newtoks\oddfootline % footline on odd pages
-% Now make TeX use those variables
+% Now make \makeheadline and \makefootline in Plain TeX use those variables
\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
\else \the\evenheadline \fi}}
\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
@@ -3434,6 +3466,10 @@ end
% @everyheadingmarks
% @everyfootingmarks
+% These define \getoddheadingmarks, \getevenheadingmarks,
+% \getoddfootingmarks, and \getevenfootingmarks, each to one of
+% \gettopheadingmarks, \getbottomheadingmarks.
+%
\def\evenheadingmarks{\headingmarks{even}{heading}}
\def\oddheadingmarks{\headingmarks{odd}{heading}}
\def\evenfootingmarks{\headingmarks{even}{footing}}
@@ -3481,7 +3517,7 @@ end
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapterheading\hfil\folio}}
\global\let\contentsalignmacro = \chapoddpage
}
\let\contentsalignmacro = \chappager
@@ -3492,8 +3528,8 @@ end
\global\pageno=1
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\evenheadline={\line{\thischapterheading\hfil\folio}}
+\global\oddheadline={\line{\thischapterheading\hfil\folio}}
\global\let\contentsalignmacro = \chappager
}
\def\HEADINGSon{\HEADINGSdouble}
@@ -3504,7 +3540,7 @@ end
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapterheading\hfil\folio}}
\global\let\contentsalignmacro = \chapoddpage
}
@@ -3512,8 +3548,8 @@ end
\def\HEADINGSsinglex{%
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\evenheadline={\line{\thischapterheading\hfil\folio}}
+\global\oddheadline={\line{\thischapterheading\hfil\folio}}
\global\let\contentsalignmacro = \chappager
}
@@ -3691,7 +3727,7 @@ end
\parskip=\smallskipamount
\ifdim\parskip=0pt \parskip=2pt \fi
%
- % Try typesetting the item mark that if the document erroneously says
+ % Try typesetting the item mark so that if the document erroneously says
% something like @itemize @samp (intending @table), there's an error
% right away at the @itemize. It's not the best error message in the
% world, but it's better than leaving it to the @item. This means if
@@ -3723,7 +3759,12 @@ end
\noindent
\hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
%
- \vadjust{\penalty 1200}}% not good to break after first line of item.
+ \ifinner\else
+ \vadjust{\penalty 1200}% not good to break after first line of item.
+ \fi
+ % We can be in inner vertical mode in a footnote, although an
+ % @itemize looks awful there.
+ }%
\flushcr
}
@@ -3941,19 +3982,23 @@ end
}
% multitable-only commands.
-%
-% @headitem starts a heading row, which we typeset in bold.
-% Assignments have to be global since we are inside the implicit group
-% of an alignment entry. \everycr resets \everytab so we don't have to
+%
+% @headitem starts a heading row, which we typeset in bold. Assignments
+% have to be global since we are inside the implicit group of an
+% alignment entry. \everycr below resets \everytab so we don't have to
% undo it ourselves.
\def\headitemfont{\b}% for people to use in the template row; not changeable
\def\headitem{%
\checkenv\multitable
\crcr
+ \gdef\headitemcrhook{\nobreak}% attempt to avoid page break after headings
\global\everytab={\bf}% can't use \headitemfont since the parsing differs
\the\everytab % for the first item
}%
%
+% default for tables with no headings.
+\let\headitemcrhook=\relax
+%
% A \tab used to include \hskip1sp. But then the space in a template
% line is not enough. That is bad. So let's go back to just `&' until
% we again encounter the problem the 1sp was intended to solve.
@@ -3984,15 +4029,15 @@ end
%
\everycr = {%
\noalign{%
- \global\everytab={}%
+ \global\everytab={}% Reset from possible headitem.
\global\colcount=0 % Reset the column counter.
- % Check for saved footnotes, etc.
+ %
+ % Check for saved footnotes, etc.:
\checkinserts
- % Keeps underfull box messages off when table breaks over pages.
- %\filbreak
- % Maybe so, but it also creates really weird page breaks when the
- % table breaks over pages. Wouldn't \vfil be better? Wait until the
- % problem manifests itself, so it can be fixed for real --karl.
+ %
+ % Perhaps a \nobreak, then reset:
+ \headitemcrhook
+ \global\let\headitemcrhook=\relax
}%
}%
%
@@ -4341,19 +4386,16 @@ end
% except not \outer, so it can be used within macros and \if's.
\edef\newwrite{\makecsname{ptexnewwrite}}
-% \newindex {foo} defines an index named foo.
-% It automatically defines \fooindex such that
-% \fooindex ...rest of line... puts an entry in the index foo.
-% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index. The file's extension is foo.
+% \newindex {foo} defines an index named IX.
+% It automatically defines \IXindex such that
+% \IXindex ...rest of line... puts an entry in the index IX.
+% It also defines \IXindfile to be the number of the output channel for
+% the file that accumulates this index. The file's extension is IX.
% The name of an index should be no more than 2 characters long
% for the sake of vms.
%
\def\newindex#1{%
- \iflinks
- \expandafter\newwrite \csname#1indfile\endcsname
- \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
- \fi
+ \expandafter\chardef\csname#1indfile\endcsname=0
\expandafter\xdef\csname#1index\endcsname{% % Define @#1index
\noexpand\doindex{#1}}
}
@@ -4367,14 +4409,19 @@ end
\def\defcodeindex{\parsearg\newcodeindex}
%
\def\newcodeindex#1{%
- \iflinks
- \expandafter\newwrite \csname#1indfile\endcsname
- \openout \csname#1indfile\endcsname \jobname.#1
- \fi
+ \expandafter\chardef\csname#1indfile\endcsname=0
\expandafter\xdef\csname#1index\endcsname{%
\noexpand\docodeindex{#1}}%
}
+% The default indices:
+\newindex{cp}% concepts,
+\newcodeindex{fn}% functions,
+\newcodeindex{vr}% variables,
+\newcodeindex{tp}% types,
+\newcodeindex{ky}% keys
+\newcodeindex{pg}% and programs.
+
% @synindex foo bar makes index foo feed into index bar.
% Do this instead of @defindex foo if you don't want it as a separate index.
@@ -4403,26 +4450,19 @@ end
\expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
}
-% Define \doindex, the driver for all \fooindex macros.
+% Define \doindex, the driver for all index macros.
% Argument #1 is generated by the calling \fooindex macro,
-% and it is "foo", the name of the index.
-
-% \doindex just uses \parsearg; it calls \doind for the actual work.
-% This is because \doind is more useful to call from other macros.
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
+% and it the two-letter name of the index.
-\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
-\def\singleindexer #1{\doind{\indexname}{#1}}
+\def\doindex#1{\edef\indexname{#1}\parsearg\doindexxxx}
+\def\doindexxxx #1{\doind{\indexname}{#1}}
% like the previous two, but they put @code around the argument.
-\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
-\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
+\def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx}
+\def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}}
-% Take care of Texinfo commands that can appear in an index entry.
-% Since there are some commands we want to expand, and others we don't,
-% we have to laboriously prevent expansion for those that we don't.
+% Used when writing an index entry out to an index file, to prevent
+% expansion of Texinfo commands that can appear in an index entry.
%
\def\indexdummies{%
\escapechar = `\\ % use backslash in output files.
@@ -4434,36 +4474,10 @@ end
% complicated, when \tex is in effect and \{ is a \delimiter again.
% We can't use \lbracecmd and \rbracecmd because texindex assumes
% braces and backslashes are used only as delimiters. Perhaps we
- % should define @lbrace and @rbrace commands a la @comma.
+ % should use @lbracechar and @rbracechar?
\def\{{{\tt\char123}}%
\def\}{{\tt\char125}}%
%
- % I don't entirely understand this, but when an index entry is
- % generated from a macro call, the \endinput which \scanmacro inserts
- % causes processing to be prematurely terminated. This is,
- % apparently, because \indexsorttmp is fully expanded, and \endinput
- % is an expandable command. The redefinition below makes \endinput
- % disappear altogether for that purpose -- although logging shows that
- % processing continues to some further point. On the other hand, it
- % seems \endinput does not hurt in the printed index arg, since that
- % is still getting written without apparent harm.
- %
- % Sample source (mac-idx3.tex, reported by Graham Percival to
- % help-texinfo, 22may06):
- % @macro funindex {WORD}
- % @findex xyz
- % @end macro
- % ...
- % @funindex commtest
- %
- % The above is not enough to reproduce the bug, but it gives the flavor.
- %
- % Sample whatsit resulting:
- % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
- %
- % So:
- \let\endinput = \empty
- %
% Do the redefinitions.
\commondummies
}
@@ -4487,7 +4501,6 @@ end
% Called from \indexdummies and \atdummies.
%
\def\commondummies{%
- %
% \definedummyword defines \#1 as \string\#1\space, thus effectively
% preventing its expansion. This is used only for control words,
% not control letters, because the \space would be incorrect for
@@ -4564,6 +4577,7 @@ end
\definedummyword\guilsinglright
\definedummyword\lbracechar
\definedummyword\leq
+ \definedummyword\mathopsup
\definedummyword\minus
\definedummyword\ogonek
\definedummyword\pounds
@@ -4577,6 +4591,8 @@ end
\definedummyword\quotesinglbase
\definedummyword\rbracechar
\definedummyword\result
+ \definedummyword\sub
+ \definedummyword\sup
\definedummyword\textdegree
%
% We want to disable all macros so that they are not expanded by \write.
@@ -4590,6 +4606,8 @@ end
}
% \commondummiesnofonts: common to \commondummies and \indexnofonts.
+% Define \definedumyletter, \definedummyaccent and \definedummyword before
+% using.
%
\def\commondummiesnofonts{%
% Control letters and accents.
@@ -4651,6 +4669,7 @@ end
\definedummyword\samp
\definedummyword\strong
\definedummyword\tie
+ \definedummyword\U
\definedummyword\uref
\definedummyword\url
\definedummyword\var
@@ -4659,6 +4678,52 @@ end
\definedummyword\xref
}
+% For testing: output @{ and @} in index sort strings as \{ and \}.
+\newif\ifusebracesinindexes
+
+\let\indexlbrace\relax
+\let\indexrbrace\relax
+
+{\catcode`\@=0
+\catcode`\\=13
+ @gdef@backslashdisappear{@def\{}}
+}
+
+{
+\catcode`\<=13
+\catcode`\-=13
+\catcode`\`=13
+ \gdef\indexnonalnumdisappear{%
+ \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax\else
+ % @set txiindexlquoteignore makes us ignore left quotes in the sort term.
+ % (Introduced for FSFS 2nd ed.)
+ \let`=\empty
+ \fi
+ %
+ \expandafter\ifx\csname SETtxiindexbackslashignore\endcsname\relax\else
+ \backslashdisappear
+ \fi
+ %
+ \expandafter\ifx\csname SETtxiindexhyphenignore\endcsname\relax\else
+ \def-{}%
+ \fi
+ \expandafter\ifx\csname SETtxiindexlessthanignore\endcsname\relax\else
+ \def<{}%
+ \fi
+ \expandafter\ifx\csname SETtxiindexatsignignore\endcsname\relax\else
+ \def\@{}%
+ \fi
+ }
+
+ \gdef\indexnonalnumreappear{%
+ \useindexbackslash
+ \let-\normaldash
+ \let<\normalless
+ \def\@{@}%
+ }
+}
+
+
% \indexnofonts is used when outputting the strings to sort the index
% by, and when constructing control sequence names. It eliminates all
% control sequences and just writes whatever the best ASCII sort string
@@ -4671,7 +4736,6 @@ end
\def\definedummyletter##1{\let##1\empty}%
% All control words become @asis by default; overrides below.
\let\definedummyword\definedummyaccent
- %
\commondummiesnofonts
%
% Don't no-op \tt, since it isn't a user-level command
@@ -4684,14 +4748,11 @@ end
\def\_{\normalunderscore}%
\def\-{}% @- shouldn't affect sorting
%
- % Unfortunately, texindex is not prepared to handle braces in the
- % content at all. So for index sorting, we map @{ and @} to strings
- % starting with |, since that ASCII character is between ASCII { and }.
- \def\{{|a}%
- \def\lbracechar{|a}%
+ \def\lbracechar{{\indexlbrace}}%
+ \def\rbracechar{{\indexrbrace}}%
+ \let\{=\lbracechar
+ \let\}=\rbracechar
%
- \def\}{|b}%
- \def\rbracechar{|b}%
%
% Non-English letters.
\def\AA{AA}%
@@ -4700,7 +4761,7 @@ end
\def\L{L}%
\def\OE{OE}%
\def\O{O}%
- \def\TH{ZZZ}%
+ \def\TH{TH}%
\def\aa{aa}%
\def\ae{ae}%
\def\dh{dzz}%
@@ -4712,7 +4773,7 @@ end
\def\o{o}%
\def\questiondown{?}%
\def\ss{ss}%
- \def\th{zzz}%
+ \def\th{th}%
%
\def\LaTeX{LaTeX}%
\def\TeX{TeX}%
@@ -4749,9 +4810,6 @@ end
\def\result{=>}%
\def\textdegree{o}%
%
- \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax
- \else \indexlquoteignore \fi
- %
% We need to get rid of all macros, leaving only the arguments (if present).
% Of course this is not nearly correct, but it is the best we can do for now.
% makeinfo does not expand macros in the argument to @deffn, which ends up
@@ -4765,19 +4823,18 @@ end
\macrolist
}
-% Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us
-% ignore left quotes in the sort term.
-{\catcode`\`=\active
- \gdef\indexlquoteignore{\let`=\empty}}
-\let\indexbackslash=0 %overridden during \printindex.
\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
% Most index entries go through here, but \dosubind is the general case.
% #1 is the index name, #2 is the entry text.
\def\doind#1#2{\dosubind{#1}{#2}{}}
-% Workhorse for all \fooindexes.
+% There is also \dosubind {index}{topic}{subtopic}
+% which makes an entry in a two-level index such as the operation index.
+% TODO: Two-level index? Operation index?
+
+% Workhorse for all indexes.
% #1 is name of index, #2 is stuff to put there, #3 is subentry --
% empty if called from \doind, as we usually are (the main exception
% is with most defuns, which call us directly).
@@ -4785,6 +4842,7 @@ end
\def\dosubind#1#2#3{%
\iflinks
{%
+ \requireopenindexfile{#1}%
% Store the main index entry text (including the third arg).
\toks0 = {#2}%
% If third arg is present, precede it with a space.
@@ -4800,7 +4858,49 @@ end
\fi
}
-% Write the entry in \toks0 to the index file:
+% Check if an index file has been opened, and if not, open it.
+\def\requireopenindexfile#1{%
+\ifnum\csname #1indfile\endcsname=0
+ \expandafter\newwrite \csname#1indfile\endcsname
+ \edef\suffix{#1}%
+ % A .fls suffix would conflict with the file extension for the output
+ % of -recorder, so use .f1s instead.
+ \ifx\suffix\indexisfl\def\suffix{f1}\fi
+ % Open the file
+ \immediate\openout\csname#1indfile\endcsname \jobname.\suffix
+ % Using \immediate here prevents an object entering into the current box,
+ % which could confound checks such as those in \safewhatsit for preceding
+ % skips.
+\fi}
+\def\indexisfl{fl}
+
+% Output \ as {\indexbackslash}, because \ is an escape character in
+% the index files.
+\let\indexbackslash=\relax
+{\catcode`\@=0 \catcode`\\=\active
+ @gdef@useindexbackslash{@def\{{@indexbackslash}}}
+}
+
+% Definition for writing index entry text.
+\def\sortas#1{\ignorespaces}%
+
+% Definition for writing index entry sort key. Should occur at the at
+% the beginning of the index entry, like
+% @cindex @sortas{september} \september
+% The \ignorespaces takes care of following space, but there's no way
+% to remove space before it.
+{
+\catcode`\-=13
+\gdef\indexwritesortas{%
+ \begingroup
+ \indexnonalnumreappear
+ \indexwritesortasxxx}
+\gdef\indexwritesortasxxx#1{%
+ \xdef\indexsortkey{#1}\endgroup}
+}
+
+
+% Write the entry in \toks0 to the index file.
%
\def\dosubindwrite{%
% Put the index entry in the margin if desired.
@@ -4810,14 +4910,20 @@ end
%
% Remember, we are within a group.
\indexdummies % Must do this here, since \bf, etc expand at this stage
- \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
- % so it will be output as is; and it will print as backslash.
- %
- % Process the index entry with all font commands turned off, to
- % get the string to sort by.
+ \useindexbackslash % \indexbackslash isn't defined now so it will be output
+ % as is; and it will print as backslash.
+ % Get the string to sort by, by processing the index entry with all
+ % font commands turned off.
{\indexnofonts
- \edef\temp{\the\toks0}% need full expansion
- \xdef\indexsorttmp{\temp}%
+ \indexnonalnumdisappear
+ \xdef\indexsortkey{}%
+ \let\sortas=\indexwritesortas
+ \edef\temp{\the\toks0}%
+ \setbox\dummybox = \hbox{\temp}% Make sure to execute any \sortas
+ \ifx\indexsortkey\empty
+ \xdef\indexsortkey{\temp}%
+ \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi
+ \fi
}%
%
% Set up the complete index entry, with both the sort key and
@@ -4827,10 +4933,11 @@ end
% sorted result.
\edef\temp{%
\write\writeto{%
- \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}%
+ \string\entry{\indexsortkey}{\noexpand\folio}{\the\toks0}}%
}%
\temp
}
+\newbox\dummybox % used above
% Take care of unwanted page breaks/skips around a whatsit:
%
@@ -4956,7 +5063,9 @@ end
% as its first line, TeX doesn't complain about mismatched braces
% (because it thinks @} is a control sequence).
\catcode`\@ = 11
- \openin 1 \jobname.#1s
+ % See comment in \requireopenindexfile.
+ \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi
+ \openin 1 \jobname.\indexname s
\ifeof 1
% \enddoublecolumns gets confused if there is no text in the index,
% and it loses the chapter title and the aux file entries for the
@@ -4964,43 +5073,96 @@ end
% there is some text.
\putwordIndexNonexistent
\else
+ \catcode`\\ = 0
+ \escapechar = `\\
%
% If the index file exists but is empty, then \openin leaves \ifeof
% false. We have to make TeX try to read something from the file, so
% it can discover if there is anything in it.
- \read 1 to \temp
+ \read 1 to \thisline
\ifeof 1
\putwordIndexIsEmpty
\else
% Index files are almost Texinfo source, but we use \ as the escape
% character. It would be better to use @, but that's too big a change
% to make right now.
- \def\indexbackslash{\backslashcurfont}%
- \catcode`\\ = 0
- \escapechar = `\\
+ \def\indexbackslash{\ttbackslash}%
+ \let\indexlbrace\{ % Likewise, set these sequences for braces
+ \let\indexrbrace\} % used in the sort key.
\begindoublecolumns
- \input \jobname.#1s
+ \let\entryorphanpenalty=\indexorphanpenalty
+ %
+ % Read input from the index file line by line.
+ \loopdo
+ \ifeof1
+ \let\firsttoken\relax
+ \else
+ \read 1 to \nextline
+ \edef\act{\gdef\noexpand\firsttoken{\getfirsttoken\nextline}}%
+ \act
+ \fi
+ \thisline
+ %
+ \ifeof1\else
+ \let\thisline\nextline
+ \repeat
+ %%
\enddoublecolumns
\fi
\fi
\closein 1
\endgroup}
+\def\getfirsttoken#1{\expandafter\getfirsttokenx#1\endfirsttoken}
+\long\def\getfirsttokenx#1#2\endfirsttoken{\noexpand#1}
+
+\def\loopdo#1\repeat{\def\body{#1}\loopdoxxx}
+\def\loopdoxxx{\let\next=\relax\body\let\next=\loopdoxxx\fi\next}
+
% These macros are used by the sorted index file itself.
% Change them to control the appearance of the index.
-\def\initial#1{{%
- % Some minor font changes for the special characters.
- \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
- %
+{\catcode`\/=13 \catcode`\-=13 \catcode`\^=13 \catcode`\~=13 \catcode`\_=13
+\catcode`\|=13 \catcode`\<=13 \catcode`\>=13 \catcode`\+=13 \catcode`\"=13
+\catcode`\$=3
+\gdef\initialglyphs{%
+ % Some changes for non-alphabetic characters. Using the glyphs from the
+ % math fonts looks more consistent than the typewriter font used elsewhere
+ % for these characters.
+ \def\indexbackslash{\math{\backslash}}%
+ \let\\=\indexbackslash
+ %
+ % Can't get bold backslash so don't use bold forward slash
+ \catcode`\/=13
+ \def/{{\secrmnotbold \normalslash}}%
+ \def-{{\normaldash\normaldash}}% en dash `--'
+ \def^{{\chapbf \normalcaret}}%
+ \def~{{\chapbf \normaltilde}}%
+ \def\_{%
+ \leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }%
+ \def|{$\vert$}%
+ \def<{$\less$}%
+ \def>{$\gtr$}%
+ \def+{$\normalplus$}%
+}}
+
+\def\initial{%
+ \bgroup
+ \initialglyphs
+ \initialx
+}
+
+\def\initialx#1{%
% Remove any glue we may have, we'll be inserting our own.
\removelastskip
%
% We like breaks before the index initials, so insert a bonus.
+ % The glue before the bonus allows a little bit of space at the
+ % bottom of a column to reduce an increase in inter-line spacing.
\nobreak
- \vskip 0pt plus 3\baselineskip
- \penalty 0
- \vskip 0pt plus -3\baselineskip
+ \vskip 0pt plus 5\baselineskip
+ \penalty -300
+ \vskip 0pt plus -5\baselineskip
%
% Typeset the initial. Making this add up to a whole number of
% baselineskips increases the chance of the dots lining up from column
@@ -5008,24 +5170,24 @@ end
% we need before each entry, but it's better.
%
% No shrink because it confuses \balancecolumns.
- \vskip 1.67\baselineskip plus .5\baselineskip
- \leftline{\secbf #1}%
+ \vskip 1.67\baselineskip plus 1\baselineskip
+ \leftline{\secfonts \kern-0.05em \secbf #1}%
+ % \secfonts is inside the argument of \leftline so that the change of
+ % \baselineskip will not affect any glue inserted before the vbox that
+ % \leftline creates.
% Do our best not to break after the initial.
\nobreak
\vskip .33\baselineskip plus .1\baselineskip
-}}
+ \egroup % \initialglyphs
+}
+
+\newdimen\entryrightmargin
+\entryrightmargin=0pt
% \entry typesets a paragraph consisting of the text (#1), dot leaders, and
% then page number (#2) flushed to the right margin. It is used for index
% and table of contents entries. The paragraph is indented by \leftskip.
%
-% A straightforward implementation would start like this:
-% \def\entry#1#2{...
-% But this freezes the catcodes in the argument, and can cause problems to
-% @code, which sets - active. This problem was fixed by a kludge---
-% ``-'' was active throughout whole index, but this isn't really right.
-% The right solution is to prevent \entry from swallowing the whole text.
-% --kasal, 21nov03
\def\entry{%
\begingroup
%
@@ -5033,38 +5195,18 @@ end
% affect previous text.
\par
%
- % Do not fill out the last line with white space.
- \parfillskip = 0in
- %
% No extra space above this paragraph.
\parskip = 0in
%
- % Do not prefer a separate line ending with a hyphen to fewer lines.
- \finalhyphendemerits = 0
- %
- % \hangindent is only relevant when the entry text and page number
- % don't both fit on one line. In that case, bob suggests starting the
- % dots pretty far over on the line. Unfortunately, a large
- % indentation looks wrong when the entry text itself is broken across
- % lines. So we use a small indentation and put up with long leaders.
- %
- % \hangafter is reset to 1 (which is the value we want) at the start
- % of each paragraph, so we need not do anything with that.
- \hangindent = 2em
- %
- % When the entry text needs to be broken, just fill out the first line
- % with blank space.
- \rightskip = 0pt plus1fil
- %
- % A bit of stretch before each entry for the benefit of balancing
- % columns.
- \vskip 0pt plus1pt
- %
% When reading the text of entry, convert explicit line breaks
% from @* into spaces. The user might give these in long section
% titles, for instance.
\def\*{\unskip\space\ignorespaces}%
- \def\entrybreak{\hfil\break}%
+ \def\entrybreak{\hfil\break}% An undocumented command
+ %
+ % A bit of stretch before each entry for the benefit of balancing
+ % columns.
+ \vskip 0pt plus0.5pt
%
% Swallow the left brace of the text (first parameter):
\afterassignment\doentry
@@ -5072,45 +5214,148 @@ end
}
\def\entrybreak{\unskip\space\ignorespaces}%
\def\doentry{%
+ % Save the text of the entry
+ \global\setbox\boxA=\hbox\bgroup
\bgroup % Instead of the swallowed brace.
\noindent
\aftergroup\finishentry
% And now comes the text of the entry.
+ % Not absorbing as a macro argument reduces the chance of problems
+ % with catcodes occurring.
}
-\def\finishentry#1{%
+{\catcode`\@=11
+\gdef\finishentry#1{%
+ \egroup % end box A
+ \dimen@ = \wd\boxA % Length of text of entry
+ \global\setbox\boxA=\hbox\bgroup\unhbox\boxA
% #1 is the page number.
%
- % The following is kludged to not output a line of dots in the index if
- % there are no page numbers. The next person who breaks this will be
- % cursed by a Unix daemon.
- \setbox\boxA = \hbox{#1}%
- \ifdim\wd\boxA = 0pt
- \ %
+ % Get the width of the page numbers, and only use
+ % leaders if they are present.
+ \global\setbox\boxB = \hbox{#1}%
+ \ifdim\wd\boxB = 0pt
+ \null\nobreak\hfill\ %
\else
%
- % If we must, put the page number on a line of its own, and fill out
- % this line with blank space. (The \hfil is overwhelmed with the
- % fill leaders glue in \indexdotfill if the page number does fit.)
- \hfil\penalty50
\null\nobreak\indexdotfill % Have leaders before the page number.
%
- % The `\ ' here is removed by the implicit \unskip that TeX does as
- % part of (the primitive) \par. Without it, a spurious underfull
- % \hbox ensues.
\ifpdf
- \pdfgettoks#1.%
- \ \the\toksA
+ \pdfgettoks#1.%
+ \hskip\skip\thinshrinkable\the\toksA
\else
- \ #1%
+ \hskip\skip\thinshrinkable #1%
\fi
\fi
- \par
+ \egroup % end \boxA
+ \ifdim\wd\boxB = 0pt
+ \global\setbox\entryindexbox=\box\boxA
+ \else
+ \global\setbox\entryindexbox=\vbox\bgroup\noindent
+ % We want the text of the entries to be aligned to the left, and the
+ % page numbers to be aligned to the right.
+ %
+ \advance\leftskip by 0pt plus 1fil
+ \advance\leftskip by 0pt plus -1fill
+ \rightskip = 0pt plus -1fil
+ \advance\rightskip by 0pt plus 1fill
+ % Cause last line, which could consist of page numbers on their own
+ % if the list of page numbers is long, to be aligned to the right.
+ \parfillskip=0pt plus -1fill
+ %
+ \hangindent=1em
+ %
+ \advance\rightskip by \entryrightmargin
+ % Determine how far we can stretch into the margin.
+ % This allows, e.g., "Appendix H GNU Free Documentation License" to
+ % fit on one line in @letterpaper format.
+ \ifdim\entryrightmargin>2.1em
+ \dimen@i=2.1em
+ \else
+ \dimen@i=0em
+ \fi
+ \advance \parfillskip by 0pt minus 1\dimen@i
+ %
+ \dimen@ii = \hsize
+ \advance\dimen@ii by -1\leftskip
+ \advance\dimen@ii by -1\entryrightmargin
+ \advance\dimen@ii by 1\dimen@i
+ \let\maybestrut=\relax
+ \ifdim\wd\boxA > \dimen@ii % If the entry doesn't fit in one line
+ \let\maybestrut=\strut
+ \ifdim\dimen@ > 0.8\dimen@ii % due to long index text
+ \dimen@ = 0.7\dimen@ % Try to split the text roughly evenly
+ \dimen@ii = \hsize
+ \advance \dimen@ii by -1em
+ \ifnum\dimen@>\dimen@ii
+ % If the entry is too long, use the whole line
+ \dimen@ = \dimen@ii
+ \fi
+ \advance\leftskip by 0pt plus 1fill % ragged right
+ \advance \dimen@ by 1\rightskip
+ \parshape = 2 0pt \dimen@ 1em \dimen@ii
+ % Ideally we'd add a finite glue at the end of the first line only, but
+ % TeX doesn't seem to provide a way to do such a thing.
+ \fi\fi
+ \maybestrut % Add a strut on the first and last lines
+ \unhbox\boxA
+ \maybestrut
+ %
+ % Do not prefer a separate line ending with a hyphen to fewer lines.
+ \finalhyphendemerits = 0
+ %
+ % Word spacing - no stretch
+ \spaceskip=\fontdimen2\font minus \fontdimen4\font
+ %
+ \linepenalty=1000 % Discourage line breaks.
+ \hyphenpenalty=5000 % Discourage hyphenation.
+ %
+ \par % format the paragraph
+ \egroup % The \vbox
+ \fi
\endgroup
+ % delay text of entry until after penalty
+ \bgroup\aftergroup\insertindexentrybox
+ \entryorphanpenalty
+}}
+
+\newskip\thinshrinkable
+\skip\thinshrinkable=.15em minus .15em
+
+\newbox\entryindexbox
+\def\insertindexentrybox{%
+\lineskip=0pt % This comes into effect when the \vbox has a large
+ % height due to the paragraph in it having several
+ % lines.
+\box\entryindexbox}
+
+% Default is no penalty
+\let\entryorphanpenalty\egroup
+
+% Used from \printindex. \firsttoken should be the first token
+% after the \entry. If it's not another \entry, we are at the last
+% line of a group of index entries, so insert a penalty to discourage
+% orphaned index entries.
+\long\def\indexorphanpenalty{%
+ \def\isentry{\entry}%
+ \ifx\firsttoken\isentry
+ \else
+ \unskip\penalty 9000
+ % The \unskip here stops breaking before the glue. It relies on the
+ % \vskip above being there, otherwise there is an error
+ % "You can't use `\unskip' in vertical mode". There has to be glue
+ % in the current vertical list that hasn't been added to the
+ % "current page". See Chapter 24 of the TeXbook. This contradicts
+ % Section 8.3.7 in "TeX by Topic," though.
+ \fi
+ \egroup % now comes the box added with \aftergroup
}
% Like plain.tex's \dotfill, except uses up at least 1 em.
+% The filll stretch here overpowers both the fil and fill stretch to push
+% the page number to the right.
\def\indexdotfill{\cleaders
- \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill}
+ \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1filll}
+
\def\primary #1{\line{#1\hfil}}
@@ -5136,6 +5381,11 @@ end
\newbox\partialpage
\newdimen\doublecolumnhsize
+\newdimen\doublecolumntopgap
+\doublecolumntopgap = 0pt
+
+\newtoks\savedtopmark % Used in \begindoublecolumns
+\newtoks\savedfirstmark
\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
% Grab any single-column material above us.
@@ -5157,9 +5407,23 @@ end
\unvbox\PAGE
\kern-\topskip \kern\baselineskip
}%
+ % Save \topmark and \firstmark
+ \global\savedtopmark=\expandafter{\topmark}%
+ \global\savedfirstmark=\expandafter{\firstmark}%
}%
\eject % run that output routine to set \partialpage
%
+ % We recover the two marks that the last output routine saved in order
+ % to propagate the information in marks added around a chapter heading,
+ % which could be otherwise be lost by the time the final page is output.
+ %
+ \mark{\the\savedtopmark}% Only mark in page passed to following \output.
+ \output = {%
+ \setbox0=\box\PAGE % clear box 255
+ }abc\eject
+ %
+ \mark{\the\savedfirstmark}%
+ %
% Use the double-column output routine for subsequent pages.
\output = {\doublecolumnout}%
%
@@ -5186,11 +5450,15 @@ end
%
% Double the \vsize as well. (We don't need a separate register here,
% since nobody clobbers \vsize.)
+ \global\doublecolumntopgap = \topskip
+ \global\advance\doublecolumntopgap by -1\baselineskip
+ \global\advance\vsize by -1\doublecolumntopgap
\vsize = 2\vsize
+ \topskip=0pt
}
% The double-column output routine for all double-column pages except
-% the last.
+% the last, which is done by \balancecolumns.
%
\def\doublecolumnout{%
\splittopskip=\topskip \splitmaxdepth=\maxdepth
@@ -5215,10 +5483,13 @@ end
%
\hsize = \doublecolumnhsize
\wd0=\hsize \wd2=\hsize
- \hbox to\pagewidth{\box0\hfil\box2}%
+ \vbox{%
+ \vskip\doublecolumntopgap
+ \hbox to\pagewidth{\box0\hfil\box2}}%
}
-%
-% All done with double columns.
+
+
+% Finished with with double columns.
\def\enddoublecolumns{%
% The following penalty ensures that the page builder is exercised
% _before_ we change the output routine. This is necessary in the
@@ -5272,28 +5543,47 @@ end
\pagegoal = \vsize
}
%
-% Called at the end of the double column material.
+% Only called for the last of the double column material. \doublecolumnout
+% does the others.
\def\balancecolumns{%
\setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
\dimen@ = \ht0
\advance\dimen@ by \topskip
\advance\dimen@ by-\baselineskip
- \divide\dimen@ by 2 % target to split to
- %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
- \splittopskip = \topskip
- % Loop until we get a decent breakpoint.
- {%
- \vbadness = 10000
- \loop
- \global\setbox3 = \copy0
- \global\setbox1 = \vsplit3 to \dimen@
- \ifdim\ht3>\dimen@
- \global\advance\dimen@ by 1pt
- \repeat
- }%
- %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
- \setbox0=\vbox to\dimen@{\unvbox1}%
- \setbox2=\vbox to\dimen@{\unvbox3}%
+ \ifdim\dimen@<14\baselineskip
+ % Don't split a short final column in two.
+ \setbox2=\vbox{}%
+ \else
+ \divide\dimen@ by 2 % target to split to
+ \dimen@ii = \dimen@
+ \splittopskip = \topskip
+ % Loop until the second column is no higher than the first
+ {%
+ \vbadness = 10000
+ \loop
+ \global\setbox3 = \copy0
+ \global\setbox1 = \vsplit3 to \dimen@
+ % Remove glue from bottom of first column to
+ % make sure it is higher than the second.
+ \global\setbox1 = \vbox{\unvbox1\unpenalty\unskip}%
+ \ifdim\ht3>\ht1
+ \global\advance\dimen@ by 1pt
+ \repeat
+ }%
+ \multiply\dimen@ii by 4
+ \divide\dimen@ii by 5
+ \ifdim\ht3<\dimen@ii
+ % Column heights are too different, so don't make their bottoms
+ % flush with each other. The glue at the end of the second column
+ % allows a second column to stretch, reducing the difference in
+ % height between the two.
+ \setbox0=\vbox to\dimen@{\unvbox1\vfill}%
+ \setbox2=\vbox to\dimen@{\unvbox3\vskip 0pt plus 0.3\ht0}%
+ \else
+ \setbox0=\vbox to\dimen@{\unvbox1}%
+ \setbox2=\vbox to\dimen@{\unvbox3}%
+ \fi
+ \fi
%
\pagesofar
}
@@ -5314,6 +5604,10 @@ end
\let\lastnode=\empty % no node to associate with
\writetocentry{part}{#1}{}% but put it in the toc
\headingsoff % no headline or footline on the part page
+ % This outputs a mark at the end of the page that clears \thischapter
+ % and \thissection, as is done in \startcontents.
+ \let\pchapsepmacro\relax
+ \chapmacro{}{Yomitfromtoc}{}%
\chapoddpage
\endgroup
}
@@ -5558,9 +5852,6 @@ end
% @centerchap is like @unnumbered, but the heading is centered.
\outer\parseargdef\centerchap{%
- % Well, we could do the following in a group, but that would break
- % an assumption that \chapmacro is called at the outermost level.
- % Thus we are safer this way: --kasal, 24feb04
\let\centerparametersmaybe = \centerparameters
\unnmhead0{#1}%
\let\centerparametersmaybe = \relax
@@ -5684,7 +5975,11 @@ end
% Define plain chapter starts, and page on/off switching for it.
\def\chapbreak{\dobreak \chapheadingskip {-4000}}
+
+% Start a new page
\def\chappager{\par\vfill\supereject}
+
+% \chapoddpage - start on an odd page for a new chapter
% Because \domark is called before \chapoddpage, the filler page will
% get the headings for the next chapter, which is wrong. But we don't
% care -- we just disable all headings on the filler page.
@@ -5720,17 +6015,20 @@ end
\CHAPPAGon
-% Chapter opening.
+% \chapmacro - Chapter opening.
%
% #1 is the text, #2 is the section type (Ynumbered, Ynothing,
% Yappendix, Yomitfromtoc), #3 the chapter number.
+% Not used for @heading series.
%
% To test against our argument.
\def\Ynothingkeyword{Ynothing}
-\def\Yomitfromtockeyword{Yomitfromtoc}
\def\Yappendixkeyword{Yappendix}
+\def\Yomitfromtockeyword{Yomitfromtoc}
%
\def\chapmacro#1#2#3{%
+ \checkenv{}% chapters, etc., should not start inside an environment.
+ %
% Insert the first mark before the heading break (see notes for \domark).
\let\prevchapterdefs=\lastchapterdefs
\let\prevsectiondefs=\lastsectiondefs
@@ -5783,6 +6081,7 @@ end
%
{%
\chapfonts \rmisbold
+ \let\footnote=\errfootnoteheading % give better error message
%
% Have to define \lastsection before calling \donoderef, because the
% xref code eventually uses it. On the other hand, it has to be called
@@ -5876,22 +6175,29 @@ end
% Print any size, any type, section title.
%
-% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
-% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
-% section number.
+% #1 is the text of the title,
+% #2 is the section level (sec/subsec/subsubsec),
+% #3 is the section type (Ynumbered, Ynothing, Yappendix, Yomitfromtoc),
+% #4 is the section number.
%
\def\seckeyword{sec}
%
\def\sectionheading#1#2#3#4{%
{%
- \checkenv{}% should not be in an environment.
+ \def\sectionlevel{#2}%
+ \def\temptype{#3}%
+ %
+ % It is ok for the @heading series commands to appear inside an
+ % environment (it's been historically allowed, though the logic is
+ % dubious), but not the others.
+ \ifx\temptype\Yomitfromtockeyword\else
+ \checkenv{}% non-@*heading should not be in an environment.
+ \fi
+ \let\footnote=\errfootnoteheading
%
% Switch to the right set of fonts.
\csname #2fonts\endcsname \rmisbold
%
- \def\sectionlevel{#2}%
- \def\temptype{#3}%
- %
% Insert first mark before the heading break (see notes for \domark).
\let\prevsectiondefs=\lastsectiondefs
\ifx\temptype\Ynothingkeyword
@@ -6103,7 +6409,7 @@ end
\savepageno = \pageno
\begingroup % Set up to handle contents files properly.
\raggedbottom % Worry more about breakpoints than the bottom.
- \advance\hsize by -\contentsrightmargin % Don't use the full line length.
+ \entryrightmargin=\contentsrightmargin % Don't use the full line length.
%
% Roman numerals for page numbers.
\ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
@@ -6208,7 +6514,7 @@ end
% Chapters, in the main contents.
\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
-%
+
% Chapters, in the short toc.
% See comments in \dochapentry re vbox and related settings.
\def\shortchapentry#1#2#3#4{%
@@ -6223,7 +6529,7 @@ end
\setbox0 = \hbox{\putwordAppendix{} M}%
\hbox to \wd0{\putwordAppendix{} #1\hss}}
%
-\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}}
+\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\hskip.7em#1}{#4}}
% Unnumbered chapters.
\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
@@ -6256,6 +6562,8 @@ end
\def\dochapentry#1#2{%
\penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
\begingroup
+ % Move the page numbers slightly to the right
+ \advance\entryrightmargin by -0.05em
\chapentryfonts
\tocentry{#1}{\dopageno\bgroup#2\egroup}%
\endgroup
@@ -6318,6 +6626,7 @@ end
% other math active characters (just in case), to plain's definitions.
\mathactive
%
+ % Inverse of the list at the beginning of the file.
\let\b=\ptexb
\let\bullet=\ptexbullet
\let\c=\ptexc
@@ -6333,7 +6642,9 @@ end
\let\+=\tabalign
\let\}=\ptexrbrace
\let\/=\ptexslash
+ \let\sp=\ptexsp
\let\*=\ptexstar
+ %\let\sup=\ptexsup % do not redefine, we want @sup to work in math mode
\let\t=\ptext
\expandafter \let\csname top\endcsname=\ptextop % we've made it outer
\let\frenchspacing=\plainfrenchspacing
@@ -6372,6 +6683,24 @@ end
\endgraf
\ifdim\lastskip<\envskipamount
\removelastskip
+ \ifnum\lastpenalty<10000
+ % Penalize breaking before the environment, because preceding text
+ % often leads into it.
+ \penalty100
+ \fi
+ \vskip\envskipamount
+ \fi
+ \fi
+}}
+
+\def\afterenvbreak{{%
+ % =10000 instead of <10000 because of a special case in \itemzzz and
+ % \sectionheading, q.v.
+ \ifnum \lastpenalty=10000 \else
+ \advance\envskipamount by \parskip
+ \endgraf
+ \ifdim\lastskip<\envskipamount
+ \removelastskip
% it's not a good place to break if the last penalty was \nobreak
% or better ...
\ifnum\lastpenalty<10000 \penalty-50 \fi
@@ -6380,8 +6709,6 @@ end
\fi
}}
-\let\afterenvbreak = \aboveenvbreak
-
% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will
% also clear it, so that its embedded environments do the narrowing again.
\let\nonarrowing=\relax
@@ -6419,15 +6746,13 @@ end
% side, and for 6pt waste from
% each corner char, and rule thickness
\normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
- % Flag to tell @lisp, etc., not to narrow margin.
- \let\nonarrowing = t%
%
% If this cartouche directly follows a sectioning command, we need the
% \parskip glue (backspaced over by default) or the cartouche can
% collide with the section heading.
\ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi
%
- \vbox\bgroup
+ \setbox\groupbox=\vbox\bgroup
\baselineskip=0pt\parskip=0pt\lineskip=0pt
\carttop
\hbox\bgroup
@@ -6451,6 +6776,7 @@ end
\egroup
\cartbot
\egroup
+ \addgroupbox
\checkinserts
}
@@ -6587,9 +6913,13 @@ end
% @raggedright does more-or-less normal line breaking but no right
-% justification. From plain.tex.
+% justification. From plain.tex. Don't stretch around special
+% characters in urls in this environment, since the stretch at the right
+% should be enough.
\envdef\raggedright{%
- \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax
+ \rightskip0pt plus2.4em \spaceskip.3333em \xspaceskip.5em\relax
+ \def\urefprestretchamount{0pt}%
+ \def\urefpoststretchamount{0pt}%
}
\let\Eraggedright\par
@@ -6829,7 +7159,7 @@ end
% typesetting commands (@smallbook, font changes, etc.) have to be done
% beforehand -- and a) we want @copying to be done first in the source
% file; b) letting users define the frontmatter in as flexible order as
-% possible is very desirable.
+% possible is desirable.
%
\def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
@@ -6924,7 +7254,7 @@ end
\temp
}
-% \domakedefun \deffn \deffnx \deffnheader
+% \domakedefun \deffn \deffnx \deffnheader { (defn. of \deffnheader) }
%
% Define \deffn and \deffnx, without parameters.
% \deffnheader has to be defined explicitly.
@@ -7262,34 +7592,42 @@ end
}
\fi
-\def\scanmacro#1{\begingroup
+\let\aftermacroxxx\relax
+\def\aftermacro{\aftermacroxxx}
+
+% alias because \c means cedilla in @tex or @math
+\let\texinfoc=\c
+
+% Used at the time of macro expansion.
+% Argument is macro body with arguments substituted
+\def\scanmacro#1{%
\newlinechar`\^^M
- \let\xeatspaces\eatspaces
- %
- % Undo catcode changes of \startcontents and \doprintindex
- % When called from @insertcopying or (short)caption, we need active
- % backslash to get it printed correctly. Previously, we had
- % \catcode`\\=\other instead. We'll see whether a problem appears
- % with macro expansion. --kasal, 19aug04
- \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
+ \def\xprocessmacroarg{\eatspaces}%
%
- % ... and for \example:
- \spaceisspace
+ % Process the macro body under the current catcode regime.
+ \scantokens{#1\texinfoc}\aftermacro%
%
- % The \empty here causes a following catcode 5 newline to be eaten as
- % part of reading whitespace after a control sequence. It does not
- % eat a catcode 13 newline. There's no good way to handle the two
- % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX
- % would then have different behavior). See the Macro Details node in
- % the manual for the workaround we recommend for macros and
- % line-oriented commands.
- %
- \scantokens{#1\empty}%
-\endgroup}
+ % The \c is to remove the \newlinechar added by \scantokens, and
+ % can be noticed by \parsearg.
+ % The \aftermacro allows a \comment at the end of the macro definition
+ % to duplicate itself past the final \newlinechar added by \scantokens:
+ % this is used in the definition of \group to comment out a newline. We
+ % don't do the same for \c to support Texinfo files with macros that ended
+ % with a @c, which should no longer be necessary.
+ % We avoid surrounding the call to \scantokens with \bgroup and \egroup
+ % to allow macros to open or close groups themselves.
+}
\def\scanexp#1{%
+ \bgroup
+ % Undo catcode changes of \startcontents and \printindex
+ % When called from @insertcopying or (short)caption, we need active
+ % backslash to get it printed correctly.
+ % FIXME: This may not be needed.
+ %\catcode`\@=0 \catcode`\\=\active \escapechar=`\@
\edef\temp{\noexpand\scanmacro{#1}}%
\temp
+ \egroup
}
\newcount\paramno % Count of parameters
@@ -7355,7 +7693,6 @@ end
\catcode`\+=\other
\catcode`\<=\other
\catcode`\>=\other
- \catcode`\@=\other
\catcode`\^=\other
\catcode`\_=\other
\catcode`\|=\other
@@ -7365,38 +7702,36 @@ end
\def\scanargctxt{% used for copying and captions, not macros.
\scanctxt
+ \catcode`\@=\other
\catcode`\\=\other
\catcode`\^^M=\other
}
\def\macrobodyctxt{% used for @macro definitions
\scanctxt
+ \catcode`\ =\other
+ \catcode`\@=\other
\catcode`\{=\other
\catcode`\}=\other
\catcode`\^^M=\other
\usembodybackslash
}
-\def\macroargctxt{% used when scanning invocations
+% Used when scanning braced macro arguments. Note, however, that catcode
+% changes here are ineffectual if the macro invocation was nested inside
+% an argument to another Texinfo command.
+\def\macroargctxt{%
\scanctxt
- \catcode`\\=0
+ \catcode`\ =\active
+ \catcode`\^^M=\other
+ \catcode`\\=\active
}
-% why catcode 0 for \ in the above? To recognize \\ \{ \} as "escapes"
-% for the single characters \ { }. Thus, we end up with the "commands"
-% that would be written @\ @{ @} in a Texinfo document.
-%
-% We already have @{ and @}. For @\, we define it here, and only for
-% this purpose, to produce a typewriter backslash (so, the @\ that we
-% define for @math can't be used with @macro calls):
-%
-\def\\{\normalbackslash}%
-%
-% We would like to do this for \, too, since that is what makeinfo does.
-% But it is not possible, because Texinfo already has a command @, for a
-% cedilla accent. Documents must use @comma{} instead.
-%
-% \anythingelse will almost certainly be an error of some kind.
+\def\macrolineargctxt{% used for whole-line arguments without braces
+ \scanctxt
+ \catcode`\{=\other
+ \catcode`\}=\other
+}
% \mbodybackslash is the definition of \ in @macro bodies.
% It maps \foo\ => \csname macarg.foo\endcsname => #N
@@ -7468,57 +7803,36 @@ end
\fi
}
-% This makes use of the obscure feature that if the last token of a
-% <parameter list> is #, then the preceding argument is delimited by
-% an opening brace, and that opening brace is not consumed.
+% \getargs -- Parse the arguments to a @macro line. Set \macname to
+% the name of the macro, and \argl to the braced argument list.
\def\getargs#1{\getargsxxx#1{}}
\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
\def\getmacname#1 #2\relax{\macname={#1}}
\def\getmacargs#1{\def\argl{#1}}
+% This made use of the feature that if the last token of a
+% <parameter list> is #, then the preceding argument is delimited by
+% an opening brace, and that opening brace is not consumed.
-% For macro processing make @ a letter so that we can make Texinfo private macro names.
-\edef\texiatcatcode{\the\catcode`\@}
-\catcode `@=11\relax
-
-% Parse the optional {params} list. Set up \paramno and \paramlist
-% so \defmacro knows what to do. Define \macarg.BLAH for each BLAH
-% in the params list to some hook where the argument si to be expanded. If
-% there are less than 10 arguments that hook is to be replaced by ##N where N
+% Parse the optional {params} list to @macro or @rmacro.
+% Set \paramno to the number of arguments,
+% and \paramlist to a parameter text for the macro (e.g. #1,#2,#3 for a
+% three-param macro.) Define \macarg.BLAH for each BLAH in the params
+% list to some hook where the argument is to be expanded. If there are
+% less than 10 arguments that hook is to be replaced by ##N where N
% is the position in that list, that is to say the macro arguments are to be
% defined `a la TeX in the macro body.
%
% That gets used by \mbodybackslash (above).
%
-% We need to get `macro parameter char #' into several definitions.
-% The technique used is stolen from LaTeX: let \hash be something
-% unexpandable, insert that wherever you need a #, and then redefine
-% it to # just before using the token list produced.
-%
-% The same technique is used to protect \eatspaces till just before
-% the macro is used.
+% If there are 10 or more arguments, a different technique is used: see
+% \parsemmanyargdef.
%
-% If there are 10 or more arguments, a different technique is used, where the
-% hook remains in the body, and when macro is to be expanded the body is
-% processed again to replace the arguments.
-%
-% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the
-% argument N value and then \edef the body (nothing else will expand because of
-% the catcode regime underwhich the body was input).
-%
-% If you compile with TeX (not eTeX), and you have macros with 10 or more
-% arguments, you need that no macro has more than 256 arguments, otherwise an
-% error is produced.
\def\parsemargdef#1;{%
\paramno=0\def\paramlist{}%
\let\hash\relax
- \let\xeatspaces\relax
+ % \hash is redefined to `#' later to get it into definitions
+ \let\processmacroarg\relax
\parsemargdefxxx#1,;,%
- % In case that there are 10 or more arguments we parse again the arguments
- % list to set new definitions for the \macarg.BLAH macros corresponding to
- % each BLAH argument. It was anyhow needed to parse already once this list
- % in order to count the arguments, and as macros with at most 9 arguments
- % are by far more frequent than macro with 10 or more arguments, defining
- % twice the \macarg.BLAH macros does not cost too much processing power.
\ifnum\paramno<10\relax\else
\paramno0\relax
\parsemmanyargdef@@#1,;,% 10 or more arguments
@@ -7529,10 +7843,47 @@ end
\else \let\next=\parsemargdefxxx
\advance\paramno by 1
\expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
- {\xeatspaces{\hash\the\paramno}}%
+ {\processmacroarg{\hash\the\paramno}}%
\edef\paramlist{\paramlist\hash\the\paramno,}%
\fi\next}
+% \parsemacbody, \parsermacbody
+%
+% Read recursive and nonrecursive macro bodies. (They're different since
+% rec and nonrec macros end differently.)
+%
+% We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro
+% body to be transformed.
+% Set \macrobody to the body of the macro, and call \defmacro.
+%
+{\catcode`\ =\other\long\gdef\parsemacbody#1@end macro{%
+\xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}%
+{\catcode`\ =\other\long\gdef\parsermacbody#1@end rmacro{%
+\xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}%
+
+% Make @ a letter, so that we can make private-to-Texinfo macro names.
+\edef\texiatcatcode{\the\catcode`\@}
+\catcode `@=11\relax
+
+%%%%%%%%%%%%%% Code for > 10 arguments only %%%%%%%%%%%%%%%%%%
+
+% If there are 10 or more arguments, a different technique is used, where the
+% hook remains in the body, and when macro is to be expanded the body is
+% processed again to replace the arguments.
+%
+% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the
+% argument N value and then \edef the body (nothing else will expand because of
+% the catcode regime under which the body was input).
+%
+% If you compile with TeX (not eTeX), and you have macros with 10 or more
+% arguments, no macro can have more than 256 arguments (else error).
+%
+% In case that there are 10 or more arguments we parse again the arguments
+% list to set new definitions for the \macarg.BLAH macros corresponding to
+% each BLAH argument. It was anyhow needed to parse already once this list
+% in order to count the arguments, and as macros with at most 9 arguments
+% are by far more frequent than macro with 10 or more arguments, defining
+% twice the \macarg.BLAH macros does not cost too much processing power.
\def\parsemmanyargdef@@#1,{%
\if#1;\let\next=\relax
\else
@@ -7548,16 +7899,6 @@ end
\advance\paramno by 1\relax
\fi\next}
-% These two commands read recursive and nonrecursive macro bodies.
-% (They're different since rec and nonrec macros end differently.)
-%
-
-\catcode `\@\texiatcatcode
-\long\def\parsemacbody#1@end macro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-\long\def\parsermacbody#1@end rmacro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-\catcode `\@=11\relax
\let\endargs@\relax
\let\nil@\relax
@@ -7565,7 +7906,7 @@ end
\long\def\nillm@{\nil@}%
% This macro is expanded during the Texinfo macro expansion, not during its
-% definition. It gets all the arguments values and assigns them to macros
+% definition. It gets all the arguments' values and assigns them to macros
% macarg.ARGNAME
%
% #1 is the macro name
@@ -7586,8 +7927,6 @@ end
\getargvals@@
\fi
}
-
-%
\def\getargvals@@{%
\ifx\paramlist\nilm@
% Some sanity check needed here that \argvaluelist is also empty.
@@ -7631,7 +7970,8 @@ end
}
% Replace arguments by their values in the macro body, and place the result
-% in macro \@tempa
+% in macro \@tempa.
+%
\def\macvalstoargs@{%
% To do this we use the property that token registers that are \the'ed
% within an \edef expand only once. So we are going to place all argument
@@ -7655,8 +7995,9 @@ end
\expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
}
+% Define the named-macro outside of this group and then close this group.
+%
\def\macargexpandinbody@{%
- %% Define the named-macro outside of this group and then close this group.
\expandafter
\endgroup
\macargdeflist@
@@ -7693,14 +8034,8 @@ end
\next
}
-% Save the token stack pointer into macro #1
-\def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}}
-% Restore the token stack pointer from number in macro #1
-\def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax}
-% newtoks that can be used non \outer .
-\def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi}
-
-% Tailing missing arguments are set to empty
+% Trailing missing arguments are set to empty.
+%
\def\setemptyargvalues@{%
\ifx\paramlist\nilm@
\let\next\macargexpandinbody@
@@ -7730,99 +8065,244 @@ end
\long\def#2{#4}%
}
-% This defines a Texinfo @macro. There are eight cases: recursive and
-% nonrecursive macros of zero, one, up to nine, and many arguments.
-% Much magic with \expandafter here.
+
+%%%%%%%%%%%%%% End of code for > 10 arguments %%%%%%%%%%%%%%%%%%
+
+
+
+% Remove following spaces at the expansion stage.
+% This works because spaces are discarded before each argument when TeX is
+% getting the arguments for a macro.
+% This must not be immediately followed by a }.
+\long\def\gobblespaces#1{#1}
+
+% This defines a Texinfo @macro or @rmacro, called by \parsemacbody.
+% \macrobody has the body of the macro in it, with placeholders for
+% its parameters, looking like "\processmacroarg{\hash 1}".
+% \paramno is the number of parameters
+% \paramlist is a TeX parameter text, e.g. "#1,#2,#3,"
+% There are eight cases: recursive and nonrecursive macros of zero, one,
+% up to nine, and many arguments.
% \xdef is used so that macro definitions will survive the file
-% they're defined in; @include reads the file inside a group.
+% they're defined in: @include reads the file inside a group.
%
\def\defmacro{%
\let\hash=##% convert placeholders to macro parameter chars
- \ifrecursive
+ \ifnum\paramno=1
+ \def\processmacroarg{\gobblespaces}%
+ % This removes the pair of braces around the argument. We don't
+ % use \eatspaces, because this can cause ends of lines to be lost
+ % when the argument to \eatspaces is read, leading to line-based
+ % commands like "@itemize" not being read correctly.
+ \else
+ \def\processmacroarg{\xprocessmacroarg}%
+ \let\xprocessmacroarg\relax
+ \fi
+ \ifrecursive %%%%%%%%%%%%%% Recursive %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifcase\paramno
% 0
\expandafter\xdef\csname\the\macname\endcsname{%
- \noexpand\scanmacro{\temp}}%
+ \noexpand\scanmacro{\macrobody}}%
\or % 1
\expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
+ \bgroup
\noexpand\braceorline
- \expandafter\noexpand\csname\the\macname xxx\endcsname}%
- \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
- \egroup\noexpand\scanmacro{\temp}}%
+ \expandafter\noexpand\csname\the\macname @@@\endcsname}%
+ \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname @@@@\endcsname{%
+ \noexpand\gobblespaces##1\empty}%
+ % The \empty is for \gobblespaces in case #1 is empty
+ }%
+ \expandafter\xdef\csname\the\macname @@@@\endcsname##1{%
+ \egroup\noexpand\scanmacro{\macrobody}}%
\else
\ifnum\paramno<10\relax % at most 9
+ % See non-recursive section below for comments
\expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \bgroup
+ \noexpand\expandafter
+ \noexpand\macroargctxt
+ \noexpand\expandafter
+ \expandafter\noexpand\csname\the\macname @@\endcsname}%
+ \expandafter\xdef\csname\the\macname @@\endcsname##1{%
+ \noexpand\passargtomacro
+ \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}%
+ \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}%
\expandafter\expandafter
\expandafter\xdef
\expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+ \csname\the\macname @@@@\endcsname\paramlist{%
+ \egroup\noexpand\scanmacro{\macrobody}}%
\else % 10 or more
\expandafter\xdef\csname\the\macname\endcsname{%
\noexpand\getargvals@{\the\macname}{\argl}%
}%
- \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
+ \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody
\global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble
\fi
\fi
- \else
+ \else %%%%%%%%%%%%%%%%%%%%%% Non-recursive %%%%%%%%%%%%%%%%%%%%%%%%%%
\ifcase\paramno
% 0
\expandafter\xdef\csname\the\macname\endcsname{%
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
+ \noexpand\scanmacro{\macrobody}}%
\or % 1
\expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
+ \bgroup
\noexpand\braceorline
- \expandafter\noexpand\csname\the\macname xxx\endcsname}%
- \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname @@@\endcsname}%
+ \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname @@@@\endcsname{%
+ \noexpand\gobblespaces##1\empty}%
+ % The \empty is for \gobblespaces in case #1 is empty
+ }%
+ \expandafter\xdef\csname\the\macname @@@@\endcsname##1{%
\egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
+ \noexpand\scanmacro{\macrobody}%
+ }%
\else % at most 9
\ifnum\paramno<10\relax
+ % @MACNAME sets the context for reading the macro argument
+ % @MACNAME@@ gets the argument, processes backslashes and appends a
+ % comma.
+ % @MACNAME@@@ removes braces surrounding the argument list.
+ % @MACNAME@@@@ scans the macro body with arguments substituted.
\expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \expandafter\noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \bgroup
+ \noexpand\expandafter % This \expandafter skip any spaces after the
+ \noexpand\macroargctxt % macro before we change the catcode of space.
+ \noexpand\expandafter
+ \expandafter\noexpand\csname\the\macname @@\endcsname}%
+ \expandafter\xdef\csname\the\macname @@\endcsname##1{%
+ \noexpand\passargtomacro
+ \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}%
+ \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}%
\expandafter\expandafter
\expandafter\xdef
\expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{%
- \egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
+ \csname\the\macname @@@@\endcsname\paramlist{%
+ \egroup\noexpand\scanmacro{\macrobody}}%
\else % 10 or more:
\expandafter\xdef\csname\the\macname\endcsname{%
\noexpand\getargvals@{\the\macname}{\argl}%
}%
- \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
+ \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody
\global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse
\fi
\fi
\fi}
-\catcode `\@\texiatcatcode\relax
+\catcode `\@\texiatcatcode\relax % end private-to-Texinfo catcodes
\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
-% \braceorline decides whether the next nonwhitespace character is a
-% {. If so it reads up to the closing }, if not, it reads the whole
-% line. Whatever was read is then fed to the next control sequence
-% as an argument (by \parsebrace or \parsearg).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+{\catcode`\@=0 \catcode`\\=13 % We need to manipulate \ so use @ as escape
+@catcode`@_=11 % private names
+@catcode`@!=11 % used as argument separator
+
+% \passargtomacro#1#2 -
+% Call #1 with a list of tokens #2, with any doubled backslashes in #2
+% compressed to one.
+%
+% This implementation works by expansion, and not execution (so we cannot use
+% \def or similar). This reduces the risk of this failing in contexts where
+% complete expansion is done with no execution (for example, in writing out to
+% an auxiliary file for an index entry).
+%
+% State is kept in the input stream: the argument passed to
+% @look_ahead, @gobble_and_check_finish and @add_segment is
+%
+% THE_MACRO ARG_RESULT ! {PENDING_BS} NEXT_TOKEN (... rest of input)
+%
+% where:
+% THE_MACRO - name of the macro we want to call
+% ARG_RESULT - argument list we build to pass to that macro
+% PENDING_BS - either a backslash or nothing
+% NEXT_TOKEN - used to look ahead in the input stream to see what's coming next
+
+@gdef@passargtomacro#1#2{%
+ @add_segment #1!{}@relax#2\@_finish\%
+}
+@gdef@_finish{@_finishx} @global@let@_finishx@relax
+
+% #1 - THE_MACRO ARG_RESULT
+% #2 - PENDING_BS
+% #3 - NEXT_TOKEN
+% #4 used to look ahead
+%
+% If the next token is not a backslash, process the rest of the argument;
+% otherwise, remove the next token.
+@gdef@look_ahead#1!#2#3#4{%
+ @ifx#4\%
+ @expandafter@gobble_and_check_finish
+ @else
+ @expandafter@add_segment
+ @fi#1!{#2}#4#4%
+}
+
+% #1 - THE_MACRO ARG_RESULT
+% #2 - PENDING_BS
+% #3 - NEXT_TOKEN
+% #4 should be a backslash, which is gobbled.
+% #5 looks ahead
+%
+% Double backslash found. Add a single backslash, and look ahead.
+@gdef@gobble_and_check_finish#1!#2#3#4#5{%
+ @add_segment#1\!{}#5#5%
+}
+
+@gdef@is_fi{@fi}
+
+% #1 - THE_MACRO ARG_RESULT
+% #2 - PENDING_BS
+% #3 - NEXT_TOKEN
+% #4 is input stream until next backslash
+%
+% Input stream is either at the start of the argument, or just after a
+% backslash sequence, either a lone backslash, or a doubled backslash.
+% NEXT_TOKEN contains the first token in the input stream: if it is \finish,
+% finish; otherwise, append to ARG_RESULT the segment of the argument up until
+% the next backslash. PENDING_BACKSLASH contains a backslash to represent
+% a backslash just before the start of the input stream that has not been
+% added to ARG_RESULT.
+@gdef@add_segment#1!#2#3#4\{%
+@ifx#3@_finish
+ @call_the_macro#1!%
+@else
+ % append the pending backslash to the result, followed by the next segment
+ @expandafter@is_fi@look_ahead#1#2#4!{\}@fi
+ % this @fi is discarded by @look_ahead.
+ % we can't get rid of it with \expandafter because we don't know how
+ % long #4 is.
+}
+
+% #1 - THE_MACRO
+% #2 - ARG_RESULT
+% #3 discards the res of the conditional in @add_segment, and @is_fi ends the
+% conditional.
+@gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}}
+
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \braceorline MAC is used for a one-argument macro MAC. It checks
+% whether the next non-whitespace character is a {. It sets the context
+% for reading the argument (slightly different in the two cases). Then,
+% to read the argument, in the whole-line case, it then calls the regular
+% \parsearg MAC; in the lbrace case, it calls \passargtomacro MAC.
%
\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
\def\braceorlinexxx{%
- \ifx\nchar\bgroup\else
- \expandafter\parsearg
+ \ifx\nchar\bgroup
+ \macroargctxt
+ \expandafter\passargtomacro
+ \else
+ \macrolineargctxt\expandafter\parsearg
\fi \macnamexxx}
@@ -7904,6 +8384,7 @@ end
\pdfmkdest{#1}%
\iflinks
{%
+ \requireauxfile
\atdummies % preserve commands, but don't expand them
\edef\writexrdef##1##2{%
\write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
@@ -7943,9 +8424,12 @@ end
% node name, #4 the name of the Info file, #5 the name of the printed
% manual. All but the node name can be omitted.
%
-\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
-\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
-\def\ref#1{\xrefX[#1,,,,,,,]}
+\def\pxref{\putwordsee{} \xrefXX}
+\def\xref{\putwordSee{} \xrefXX}
+\def\ref{\xrefXX}
+
+\def\xrefXX#1{\def\xrefXXarg{#1}\futurelet\tokenafterxref\xrefXXX}
+\def\xrefXXX{\expandafter\xrefX\expandafter[\xrefXXarg,,,,,,,]}
%
\newbox\toprefbox
\newbox\printedrefnamebox
@@ -8089,6 +8573,12 @@ end
%
% output the `page 3'.
\turnoffactive \putwordpage\tie\refx{#1-pg}{}%
+ \ifx,\tokenafterxref
+ \else\ifx.\tokenafterxref
+ \else\ifx;\tokenafterxref
+ \else\ifx)\tokenafterxref
+ \else,% add a , if xref not followed by punctuation
+ \fi\fi\fi\fi
\fi\fi
\fi
\endlink
@@ -8159,6 +8649,7 @@ end
% If its value is nonempty, SUFFIX is output afterward.
%
\def\refx#1#2{%
+ \requireauxfile
{%
\indexnofonts
\otherbackslash
@@ -8222,6 +8713,23 @@ end
\fi
}
+% If working on a large document in chapters, it is convenient to
+% be able to disable indexing, cross-referencing, and contents, for test runs.
+% This is done with @novalidate at the beginning of the file.
+%
+\newif\iflinks \linkstrue % by default we want the aux files.
+\let\novalidate = \linksfalse
+
+% Used when writing to the aux file, or when using data from it.
+\def\requireauxfile{%
+ \iflinks
+ \tryauxfile
+ % Open the new aux file. TeX will close it automatically at exit.
+ \immediate\openout\auxfile=\jobname.aux
+ \fi
+ \global\let\requireauxfile=\relax % Only do this once.
+}
+
% Read the last existing aux file, if any. No error if none exists.
%
\def\tryauxfile{%
@@ -8301,14 +8809,7 @@ end
\catcode`\\=\other
%
% Make the characters 128-255 be printing characters.
- {%
- \count1=128
- \def\loop{%
- \catcode\count1=\other
- \advance\count1 by 1
- \ifnum \count1<256 \loop \fi
- }%
- }%
+ {\setnonasciicharscatcodenonglobal\other}%
%
% @ is our escape character in .aux files, and we need braces.
\catcode`\{=1
@@ -8342,8 +8843,6 @@ end
%
% Auto-number footnotes. Otherwise like plain.
\gdef\footnote{%
- \let\indent=\ptexindent
- \let\noindent=\ptexnoindent
\global\advance\footnoteno by \@ne
\edef\thisfootno{$^{\the\footnoteno}$}%
%
@@ -8367,6 +8866,11 @@ end
%
\gdef\dofootnote{%
\insert\footins\bgroup
+ %
+ % Nested footnotes are not supported in TeX, that would take a lot
+ % more work. (\startsavinginserts does not suffice.)
+ \let\footnote=\errfootnotenest
+ %
% We want to typeset this text as a normal paragraph, even if the
% footnote reference occurs in (for example) a display environment.
% So reset some parameters.
@@ -8404,13 +8908,24 @@ end
}
}%end \catcode `\@=11
+\def\errfootnotenest{%
+ \errhelp=\EMsimple
+ \errmessage{Nested footnotes not supported in texinfo.tex,
+ even though they work in makeinfo; sorry}
+}
+
+\def\errfootnoteheading{%
+ \errhelp=\EMsimple
+ \errmessage{Footnotes in chapters, sections, etc., are not supported}
+}
+
% In case a @footnote appears in a vbox, save the footnote text and create
% the real \insert just after the vbox finished. Otherwise, the insertion
% would be lost.
% Similarly, if a @footnote appears inside an alignment, save the footnote
% text to a box and make the \insert when a row of the table is finished.
% And the same can be done for other insert classes. --kasal, 16nov03.
-
+%
% Replace the \insert primitive by a cheating macro.
% Deeper inside, just make sure that the saved insertions are not spilled
% out prematurely.
@@ -8508,6 +9023,7 @@ end
\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
\catcode`\^^M = 5 % in case we're inside an example
\normalturnoffactive % allow _ et al. in names
+ \def\xprocessmacroarg{\eatspaces}% in case we are being used via a macro
% If the image is by itself, center it.
\ifvmode
\imagevmodetrue
@@ -8688,6 +9204,7 @@ end
% \floatlabel-lof. Besides \floatident, we include the short
% caption if specified, else the full caption if specified, else nothing.
{%
+ \requireauxfile
\atdummies
%
% since we read the caption text in the macro world, where ^^M
@@ -8827,20 +9344,20 @@ end
{
\catcode`\_ = \active
\globaldefs=1
-\parseargdef\documentlanguage{\begingroup
- \let_=\normalunderscore % normal _ character for filenames
+\parseargdef\documentlanguage{%
\tex % read txi-??.tex file in plain TeX.
% Read the file by the name they passed if it exists.
+ \let_ = \normalunderscore % normal _ character for filename test
\openin 1 txi-#1.tex
\ifeof 1
- \documentlanguagetrywithoutunderscore{#1_\finish}%
+ \documentlanguagetrywithoutunderscore #1_\finish
\else
\globaldefs = 1 % everything in the txi-LL files needs to persist
\input txi-#1.tex
\fi
\closein 1
\endgroup % end raw TeX
-\endgroup}
+}
%
% If they passed de_DE, and txi-de_DE.tex doesn't exist,
% try txi-de.tex.
@@ -8910,7 +9427,8 @@ directory should work if nowhere else does.}
% @documentencoding sets the definition of non-ASCII characters
% according to the specified encoding.
%
-\parseargdef\documentencoding{%
+\def\documentencoding{\parseargusing\filenamecatcodes\documentencodingzzz}
+\def\documentencodingzzz#1{%
% Encoding being declared for the document.
\def\declaredencoding{\csname #1.enc\endcsname}%
%
@@ -8939,10 +9457,12 @@ directory should work if nowhere else does.}
%
\else \ifx \declaredencoding \utfeight
\setnonasciicharscatcode\active
- \utfeightchardefs
+ % since we already invoked \utfeightchardefs at the top level
+ % (below), do not re-invoke it, then our check for duplicated
+ % definitions triggers. Making non-ascii chars active is enough.
%
\else
- \message{Unknown document encoding #1, ignoring.}%
+ \message{Ignoring unknown document encoding: #1.}%
%
\fi % utfeight
\fi % latnine
@@ -8951,10 +9471,11 @@ directory should work if nowhere else does.}
\fi % ascii
}
+% emacs-page
% A message to be logged when using a character that isn't available
% the default font encoding (OT1).
%
-\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
+\def\missingcharmsg#1{\message{Character missing, sorry: #1.}}
% Take account of \c (plain) vs. \, (Texinfo) difference.
\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
@@ -8968,17 +9489,17 @@ directory should work if nowhere else does.}
\def\latonechardefs{%
\gdef^^a0{\tie}
\gdef^^a1{\exclamdown}
- \gdef^^a2{\missingcharmsg{CENT SIGN}}
- \gdef^^a3{{\pounds}}
- \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
- \gdef^^a5{\missingcharmsg{YEN SIGN}}
- \gdef^^a6{\missingcharmsg{BROKEN BAR}}
+ \gdef^^a2{{\tcfont \char162}} % cent
+ \gdef^^a3{\pounds}
+ \gdef^^a4{{\tcfont \char164}} % currency
+ \gdef^^a5{{\tcfont \char165}} % yen
+ \gdef^^a6{{\tcfont \char166}} % broken bar
\gdef^^a7{\S}
\gdef^^a8{\"{}}
\gdef^^a9{\copyright}
\gdef^^aa{\ordf}
\gdef^^ab{\guillemetleft}
- \gdef^^ac{$\lnot$}
+ \gdef^^ac{\ensuremath\lnot}
\gdef^^ad{\-}
\gdef^^ae{\registeredsymbol}
\gdef^^af{\={}}
@@ -8990,12 +9511,10 @@ directory should work if nowhere else does.}
\gdef^^b4{\'{}}
\gdef^^b5{$\mu$}
\gdef^^b6{\P}
- %
- \gdef^^b7{$^.$}
+ \gdef^^b7{\ensuremath\cdot}
\gdef^^b8{\cedilla\ }
\gdef^^b9{$^1$}
\gdef^^ba{\ordm}
- %
\gdef^^bb{\guillemetright}
\gdef^^bc{$1\over4$}
\gdef^^bd{$1\over2$}
@@ -9250,6 +9769,18 @@ directory should work if nowhere else does.}
\UTFviiiLoop
\endgroup
+\def\globallet{\global\let} % save some \expandafter's below
+
+% @U{xxxx} to produce U+xxxx, if we support it.
+\def\U#1{%
+ \expandafter\ifx\csname uni:#1\endcsname \relax
+ \errhelp = \EMsimple
+ \errmessage{Unicode character U+#1 not supported, sorry}%
+ \else
+ \csname uni:#1\endcsname
+ \fi
+}
+
\begingroup
\catcode`\"=12
\catcode`\<=12
@@ -9258,7 +9789,6 @@ directory should work if nowhere else does.}
\catcode`\;=12
\catcode`\!=12
\catcode`\~=13
-
\gdef\DeclareUnicodeCharacter#1#2{%
\countUTFz = "#1\relax
%\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
@@ -9273,6 +9803,13 @@ directory should work if nowhere else does.}
\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\expandafter
\gdef\UTFviiiTmp{#2}%
+ %
+ \expandafter\ifx\csname uni:#1\endcsname \relax \else
+ \message{Internal error, already defined: #1}%
+ \fi
+ %
+ % define an additional control sequence for this code point.
+ \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp
\endgroup}
\gdef\parseXMLCharref{%
@@ -9310,23 +9847,53 @@ directory should work if nowhere else does.}
\uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
\endgroup
+% https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_M
+% U+0000..U+007F = https://en.wikipedia.org/wiki/Basic_Latin_(Unicode_block)
+% U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)
+% U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A
+% U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B
+%
+% Many of our renditions are less than wonderful, and all the missing
+% characters are available somewhere. Loading the necessary fonts
+% awaits user request. We can't truly support Unicode without
+% reimplementing everything that's been done in LaTeX for many years,
+% plus probably using luatex or xetex, and who knows what else.
+% We won't be doing that here in this simple file. But we can try to at
+% least make most of the characters not bomb out.
+%
\def\utfeightchardefs{%
\DeclareUnicodeCharacter{00A0}{\tie}
\DeclareUnicodeCharacter{00A1}{\exclamdown}
+ \DeclareUnicodeCharacter{00A2}{{\tcfont \char162}}% 0242=cent
\DeclareUnicodeCharacter{00A3}{\pounds}
+ \DeclareUnicodeCharacter{00A4}{{\tcfont \char164}}% 0244=currency
+ \DeclareUnicodeCharacter{00A5}{{\tcfont \char165}}% 0245=yen
+ \DeclareUnicodeCharacter{00A6}{{\tcfont \char166}}% 0246=brokenbar
+ \DeclareUnicodeCharacter{00A7}{\S}
\DeclareUnicodeCharacter{00A8}{\"{ }}
\DeclareUnicodeCharacter{00A9}{\copyright}
\DeclareUnicodeCharacter{00AA}{\ordf}
\DeclareUnicodeCharacter{00AB}{\guillemetleft}
+ \DeclareUnicodeCharacter{00AC}{\ensuremath\lnot}
\DeclareUnicodeCharacter{00AD}{\-}
\DeclareUnicodeCharacter{00AE}{\registeredsymbol}
\DeclareUnicodeCharacter{00AF}{\={ }}
\DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
+ \DeclareUnicodeCharacter{00B1}{\ensuremath\pm}
+ \DeclareUnicodeCharacter{00B2}{$^2$}
+ \DeclareUnicodeCharacter{00B3}{$^3$}
\DeclareUnicodeCharacter{00B4}{\'{ }}
+ \DeclareUnicodeCharacter{00B5}{$\mu$}
+ \DeclareUnicodeCharacter{00B6}{\P}
+ \DeclareUnicodeCharacter{00B7}{\ensuremath\cdot}
\DeclareUnicodeCharacter{00B8}{\cedilla{ }}
+ \DeclareUnicodeCharacter{00B9}{$^1$}
\DeclareUnicodeCharacter{00BA}{\ordm}
\DeclareUnicodeCharacter{00BB}{\guillemetright}
+ \DeclareUnicodeCharacter{00BC}{$1\over4$}
+ \DeclareUnicodeCharacter{00BD}{$1\over2$}
+ \DeclareUnicodeCharacter{00BE}{$3\over4$}
\DeclareUnicodeCharacter{00BF}{\questiondown}
\DeclareUnicodeCharacter{00C0}{\`A}
@@ -9353,6 +9920,7 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{00D4}{\^O}
\DeclareUnicodeCharacter{00D5}{\~O}
\DeclareUnicodeCharacter{00D6}{\"O}
+ \DeclareUnicodeCharacter{00D7}{\ensuremath\times}
\DeclareUnicodeCharacter{00D8}{\O}
\DeclareUnicodeCharacter{00D9}{\`U}
\DeclareUnicodeCharacter{00DA}{\'U}
@@ -9386,6 +9954,7 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{00F4}{\^o}
\DeclareUnicodeCharacter{00F5}{\~o}
\DeclareUnicodeCharacter{00F6}{\"o}
+ \DeclareUnicodeCharacter{00F7}{\ensuremath\div}
\DeclareUnicodeCharacter{00F8}{\o}
\DeclareUnicodeCharacter{00F9}{\`u}
\DeclareUnicodeCharacter{00FA}{\'u}
@@ -9405,20 +9974,23 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{0107}{\'c}
\DeclareUnicodeCharacter{0108}{\^C}
\DeclareUnicodeCharacter{0109}{\^c}
- \DeclareUnicodeCharacter{0118}{\ogonek{E}}
- \DeclareUnicodeCharacter{0119}{\ogonek{e}}
\DeclareUnicodeCharacter{010A}{\dotaccent{C}}
\DeclareUnicodeCharacter{010B}{\dotaccent{c}}
\DeclareUnicodeCharacter{010C}{\v{C}}
\DeclareUnicodeCharacter{010D}{\v{c}}
\DeclareUnicodeCharacter{010E}{\v{D}}
+ \DeclareUnicodeCharacter{010F}{d'}
+ \DeclareUnicodeCharacter{0110}{\DH}
+ \DeclareUnicodeCharacter{0111}{\dh}
\DeclareUnicodeCharacter{0112}{\=E}
\DeclareUnicodeCharacter{0113}{\=e}
\DeclareUnicodeCharacter{0114}{\u{E}}
\DeclareUnicodeCharacter{0115}{\u{e}}
\DeclareUnicodeCharacter{0116}{\dotaccent{E}}
\DeclareUnicodeCharacter{0117}{\dotaccent{e}}
+ \DeclareUnicodeCharacter{0118}{\ogonek{E}}
+ \DeclareUnicodeCharacter{0119}{\ogonek{e}}
\DeclareUnicodeCharacter{011A}{\v{E}}
\DeclareUnicodeCharacter{011B}{\v{e}}
\DeclareUnicodeCharacter{011C}{\^G}
@@ -9428,14 +10000,20 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{0120}{\dotaccent{G}}
\DeclareUnicodeCharacter{0121}{\dotaccent{g}}
+ \DeclareUnicodeCharacter{0122}{\cedilla{G}}
+ \DeclareUnicodeCharacter{0123}{\cedilla{g}}
\DeclareUnicodeCharacter{0124}{\^H}
\DeclareUnicodeCharacter{0125}{\^h}
+ \DeclareUnicodeCharacter{0126}{\missingcharmsg{H WITH STROKE}}
+ \DeclareUnicodeCharacter{0127}{\missingcharmsg{h WITH STROKE}}
\DeclareUnicodeCharacter{0128}{\~I}
\DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
\DeclareUnicodeCharacter{012A}{\=I}
\DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
\DeclareUnicodeCharacter{012C}{\u{I}}
\DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
+ \DeclareUnicodeCharacter{012E}{\ogonek{I}}
+ \DeclareUnicodeCharacter{012F}{\ogonek{i}}
\DeclareUnicodeCharacter{0130}{\dotaccent{I}}
\DeclareUnicodeCharacter{0131}{\dotless{i}}
@@ -9443,15 +10021,29 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{0133}{ij}
\DeclareUnicodeCharacter{0134}{\^J}
\DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
+ \DeclareUnicodeCharacter{0136}{\cedilla{K}}
+ \DeclareUnicodeCharacter{0137}{\cedilla{k}}
+ \DeclareUnicodeCharacter{0138}{\ensuremath\kappa}
\DeclareUnicodeCharacter{0139}{\'L}
\DeclareUnicodeCharacter{013A}{\'l}
+ \DeclareUnicodeCharacter{013B}{\cedilla{L}}
+ \DeclareUnicodeCharacter{013C}{\cedilla{l}}
+ \DeclareUnicodeCharacter{013D}{L'}% should kern
+ \DeclareUnicodeCharacter{013E}{l'}% should kern
+ \DeclareUnicodeCharacter{013F}{L\U{00B7}}
+ \DeclareUnicodeCharacter{0140}{l\U{00B7}}
\DeclareUnicodeCharacter{0141}{\L}
\DeclareUnicodeCharacter{0142}{\l}
\DeclareUnicodeCharacter{0143}{\'N}
\DeclareUnicodeCharacter{0144}{\'n}
+ \DeclareUnicodeCharacter{0145}{\cedilla{N}}
+ \DeclareUnicodeCharacter{0146}{\cedilla{n}}
\DeclareUnicodeCharacter{0147}{\v{N}}
\DeclareUnicodeCharacter{0148}{\v{n}}
+ \DeclareUnicodeCharacter{0149}{'n}
+ \DeclareUnicodeCharacter{014A}{\missingcharmsg{ENG}}
+ \DeclareUnicodeCharacter{014B}{\missingcharmsg{eng}}
\DeclareUnicodeCharacter{014C}{\=O}
\DeclareUnicodeCharacter{014D}{\=o}
\DeclareUnicodeCharacter{014E}{\u{O}}
@@ -9463,6 +10055,8 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{0153}{\oe}
\DeclareUnicodeCharacter{0154}{\'R}
\DeclareUnicodeCharacter{0155}{\'r}
+ \DeclareUnicodeCharacter{0156}{\cedilla{R}}
+ \DeclareUnicodeCharacter{0157}{\cedilla{r}}
\DeclareUnicodeCharacter{0158}{\v{R}}
\DeclareUnicodeCharacter{0159}{\v{r}}
\DeclareUnicodeCharacter{015A}{\'S}
@@ -9474,10 +10068,12 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{0160}{\v{S}}
\DeclareUnicodeCharacter{0161}{\v{s}}
- \DeclareUnicodeCharacter{0162}{\cedilla{t}}
- \DeclareUnicodeCharacter{0163}{\cedilla{T}}
+ \DeclareUnicodeCharacter{0162}{\cedilla{T}}
+ \DeclareUnicodeCharacter{0163}{\cedilla{t}}
\DeclareUnicodeCharacter{0164}{\v{T}}
-
+ \DeclareUnicodeCharacter{0165}{\v{t}}
+ \DeclareUnicodeCharacter{0166}{\missingcharmsg{H WITH STROKE}}
+ \DeclareUnicodeCharacter{0167}{\missingcharmsg{h WITH STROKE}}
\DeclareUnicodeCharacter{0168}{\~U}
\DeclareUnicodeCharacter{0169}{\~u}
\DeclareUnicodeCharacter{016A}{\=U}
@@ -9489,6 +10085,8 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{0170}{\H{U}}
\DeclareUnicodeCharacter{0171}{\H{u}}
+ \DeclareUnicodeCharacter{0172}{\ogonek{U}}
+ \DeclareUnicodeCharacter{0173}{\ogonek{u}}
\DeclareUnicodeCharacter{0174}{\^W}
\DeclareUnicodeCharacter{0175}{\^w}
\DeclareUnicodeCharacter{0176}{\^Y}
@@ -9500,6 +10098,7 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{017C}{\dotaccent{z}}
\DeclareUnicodeCharacter{017D}{\v{Z}}
\DeclareUnicodeCharacter{017E}{\v{z}}
+ \DeclareUnicodeCharacter{017F}{\missingcharmsg{LONG S}}
\DeclareUnicodeCharacter{01C4}{D\v{Z}}
\DeclareUnicodeCharacter{01C5}{D\v{z}}
@@ -9556,6 +10155,83 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{02DB}{\ogonek{ }}
+ % Greek letters upper case
+ \DeclareUnicodeCharacter{0391}{{\it A}}
+ \DeclareUnicodeCharacter{0392}{{\it B}}
+ \DeclareUnicodeCharacter{0393}{\ensuremath{\mit\Gamma}}
+ \DeclareUnicodeCharacter{0394}{\ensuremath{\mit\Delta}}
+ \DeclareUnicodeCharacter{0395}{{\it E}}
+ \DeclareUnicodeCharacter{0396}{{\it Z}}
+ \DeclareUnicodeCharacter{0397}{{\it H}}
+ \DeclareUnicodeCharacter{0398}{\ensuremath{\mit\Theta}}
+ \DeclareUnicodeCharacter{0399}{{\it I}}
+ \DeclareUnicodeCharacter{039A}{{\it K}}
+ \DeclareUnicodeCharacter{039B}{\ensuremath{\mit\Lambda}}
+ \DeclareUnicodeCharacter{039C}{{\it M}}
+ \DeclareUnicodeCharacter{039D}{{\it N}}
+ \DeclareUnicodeCharacter{039E}{\ensuremath{\mit\Xi}}
+ \DeclareUnicodeCharacter{039F}{{\it O}}
+ \DeclareUnicodeCharacter{03A0}{\ensuremath{\mit\Pi}}
+ \DeclareUnicodeCharacter{03A1}{{\it P}}
+ %\DeclareUnicodeCharacter{03A2}{} % none - corresponds to final sigma
+ \DeclareUnicodeCharacter{03A3}{\ensuremath{\mit\Sigma}}
+ \DeclareUnicodeCharacter{03A4}{{\it T}}
+ \DeclareUnicodeCharacter{03A5}{\ensuremath{\mit\Upsilon}}
+ \DeclareUnicodeCharacter{03A6}{\ensuremath{\mit\Phi}}
+ \DeclareUnicodeCharacter{03A7}{{\it X}}
+ \DeclareUnicodeCharacter{03A8}{\ensuremath{\mit\Psi}}
+ \DeclareUnicodeCharacter{03A9}{\ensuremath{\mit\Omega}}
+
+ % Vowels with accents
+ \DeclareUnicodeCharacter{0390}{\ensuremath{\ddot{\acute\iota}}}
+ \DeclareUnicodeCharacter{03AC}{\ensuremath{\acute\alpha}}
+ \DeclareUnicodeCharacter{03AD}{\ensuremath{\acute\epsilon}}
+ \DeclareUnicodeCharacter{03AE}{\ensuremath{\acute\eta}}
+ \DeclareUnicodeCharacter{03AF}{\ensuremath{\acute\iota}}
+ \DeclareUnicodeCharacter{03B0}{\ensuremath{\acute{\ddot\upsilon}}}
+
+ % Standalone accent
+ \DeclareUnicodeCharacter{0384}{\ensuremath{\acute{\ }}}
+
+ % Greek letters lower case
+ \DeclareUnicodeCharacter{03B1}{\ensuremath\alpha}
+ \DeclareUnicodeCharacter{03B2}{\ensuremath\beta}
+ \DeclareUnicodeCharacter{03B3}{\ensuremath\gamma}
+ \DeclareUnicodeCharacter{03B4}{\ensuremath\delta}
+ \DeclareUnicodeCharacter{03B5}{\ensuremath\epsilon}
+ \DeclareUnicodeCharacter{03B6}{\ensuremath\zeta}
+ \DeclareUnicodeCharacter{03B7}{\ensuremath\eta}
+ \DeclareUnicodeCharacter{03B8}{\ensuremath\theta}
+ \DeclareUnicodeCharacter{03B9}{\ensuremath\iota}
+ \DeclareUnicodeCharacter{03BA}{\ensuremath\kappa}
+ \DeclareUnicodeCharacter{03BB}{\ensuremath\lambda}
+ \DeclareUnicodeCharacter{03BC}{\ensuremath\mu}
+ \DeclareUnicodeCharacter{03BD}{\ensuremath\nu}
+ \DeclareUnicodeCharacter{03BE}{\ensuremath\xi}
+ \DeclareUnicodeCharacter{03BF}{{\it o}} % omicron
+ \DeclareUnicodeCharacter{03C0}{\ensuremath\pi}
+ \DeclareUnicodeCharacter{03C1}{\ensuremath\rho}
+ \DeclareUnicodeCharacter{03C2}{\ensuremath\varsigma}
+ \DeclareUnicodeCharacter{03C3}{\ensuremath\sigma}
+ \DeclareUnicodeCharacter{03C4}{\ensuremath\tau}
+ \DeclareUnicodeCharacter{03C5}{\ensuremath\upsilon}
+ \DeclareUnicodeCharacter{03C6}{\ensuremath\phi}
+ \DeclareUnicodeCharacter{03C7}{\ensuremath\chi}
+ \DeclareUnicodeCharacter{03C8}{\ensuremath\psi}
+ \DeclareUnicodeCharacter{03C9}{\ensuremath\omega}
+
+ % More Greek vowels with accents
+ \DeclareUnicodeCharacter{03CA}{\ensuremath{\ddot\iota}}
+ \DeclareUnicodeCharacter{03CB}{\ensuremath{\ddot\upsilon}}
+ \DeclareUnicodeCharacter{03CC}{\ensuremath{\acute o}}
+ \DeclareUnicodeCharacter{03CD}{\ensuremath{\acute\upsilon}}
+ \DeclareUnicodeCharacter{03CE}{\ensuremath{\acute\omega}}
+
+ % Variant Greek letters
+ \DeclareUnicodeCharacter{03D1}{\ensuremath\vartheta}
+ \DeclareUnicodeCharacter{03D6}{\ensuremath\varpi}
+ \DeclareUnicodeCharacter{03F1}{\ensuremath\varrho}
+
\DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
\DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
\DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
@@ -9683,6 +10359,7 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{1EF8}{\~Y}
\DeclareUnicodeCharacter{1EF9}{\~y}
+ % Punctuation
\DeclareUnicodeCharacter{2013}{--}
\DeclareUnicodeCharacter{2014}{---}
\DeclareUnicodeCharacter{2018}{\quoteleft}
@@ -9691,26 +10368,227 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{201C}{\quotedblleft}
\DeclareUnicodeCharacter{201D}{\quotedblright}
\DeclareUnicodeCharacter{201E}{\quotedblbase}
+ \DeclareUnicodeCharacter{2020}{\ensuremath\dagger}
+ \DeclareUnicodeCharacter{2021}{\ensuremath\ddagger}
\DeclareUnicodeCharacter{2022}{\bullet}
+ \DeclareUnicodeCharacter{202F}{\thinspace}
\DeclareUnicodeCharacter{2026}{\dots}
\DeclareUnicodeCharacter{2039}{\guilsinglleft}
\DeclareUnicodeCharacter{203A}{\guilsinglright}
+
\DeclareUnicodeCharacter{20AC}{\euro}
\DeclareUnicodeCharacter{2192}{\expansion}
\DeclareUnicodeCharacter{21D2}{\result}
+ % Mathematical symbols
+ \DeclareUnicodeCharacter{2200}{\ensuremath\forall}
+ \DeclareUnicodeCharacter{2203}{\ensuremath\exists}
+ \DeclareUnicodeCharacter{2208}{\ensuremath\in}
\DeclareUnicodeCharacter{2212}{\minus}
- \DeclareUnicodeCharacter{2217}{\point}
+ \DeclareUnicodeCharacter{2217}{\ast}
+ \DeclareUnicodeCharacter{221E}{\ensuremath\infty}
+ \DeclareUnicodeCharacter{2225}{\ensuremath\parallel}
+ \DeclareUnicodeCharacter{2227}{\ensuremath\wedge}
+ \DeclareUnicodeCharacter{2229}{\ensuremath\cap}
\DeclareUnicodeCharacter{2261}{\equiv}
+ \DeclareUnicodeCharacter{2264}{\ensuremath\leq}
+ \DeclareUnicodeCharacter{2265}{\ensuremath\geq}
+ \DeclareUnicodeCharacter{2282}{\ensuremath\subset}
+ \DeclareUnicodeCharacter{2287}{\ensuremath\supseteq}
+
+ \DeclareUnicodeCharacter{2016}{\ensuremath\Vert}
+ \DeclareUnicodeCharacter{2032}{\ensuremath\prime}
+ \DeclareUnicodeCharacter{210F}{\ensuremath\hbar}
+ \DeclareUnicodeCharacter{2111}{\ensuremath\Im}
+ \DeclareUnicodeCharacter{2113}{\ensuremath\ell}
+ \DeclareUnicodeCharacter{2118}{\ensuremath\wp}
+ \DeclareUnicodeCharacter{211C}{\ensuremath\Re}
+ \DeclareUnicodeCharacter{2127}{\ensuremath\mho}
+ \DeclareUnicodeCharacter{2135}{\ensuremath\aleph}
+ \DeclareUnicodeCharacter{2190}{\ensuremath\leftarrow}
+ \DeclareUnicodeCharacter{2191}{\ensuremath\uparrow}
+ \DeclareUnicodeCharacter{2193}{\ensuremath\downarrow}
+ \DeclareUnicodeCharacter{2194}{\ensuremath\leftrightarrow}
+ \DeclareUnicodeCharacter{2195}{\ensuremath\updownarrow}
+ \DeclareUnicodeCharacter{2196}{\ensuremath\nwarrow}
+ \DeclareUnicodeCharacter{2197}{\ensuremath\nearrow}
+ \DeclareUnicodeCharacter{2198}{\ensuremath\searrow}
+ \DeclareUnicodeCharacter{2199}{\ensuremath\swarrow}
+ \DeclareUnicodeCharacter{21A6}{\ensuremath\mapsto}
+ \DeclareUnicodeCharacter{21A9}{\ensuremath\hookleftarrow}
+ \DeclareUnicodeCharacter{21AA}{\ensuremath\hookrightarrow}
+ \DeclareUnicodeCharacter{21BC}{\ensuremath\leftharpoonup}
+ \DeclareUnicodeCharacter{21BD}{\ensuremath\leftharpoondown}
+ \DeclareUnicodeCharacter{21BE}{\ensuremath\upharpoonright}
+ \DeclareUnicodeCharacter{21C0}{\ensuremath\rightharpoonup}
+ \DeclareUnicodeCharacter{21C1}{\ensuremath\rightharpoondown}
+ \DeclareUnicodeCharacter{21CC}{\ensuremath\rightleftharpoons}
+ \DeclareUnicodeCharacter{21D0}{\ensuremath\Leftarrow}
+ \DeclareUnicodeCharacter{21D1}{\ensuremath\Uparrow}
+ \DeclareUnicodeCharacter{21D3}{\ensuremath\Downarrow}
+ \DeclareUnicodeCharacter{21D4}{\ensuremath\Leftrightarrow}
+ \DeclareUnicodeCharacter{21D5}{\ensuremath\Updownarrow}
+ \DeclareUnicodeCharacter{21DD}{\ensuremath\leadsto}
+ \DeclareUnicodeCharacter{2201}{\ensuremath\complement}
+ \DeclareUnicodeCharacter{2202}{\ensuremath\partial}
+ \DeclareUnicodeCharacter{2205}{\ensuremath\emptyset}
+ \DeclareUnicodeCharacter{2207}{\ensuremath\nabla}
+ \DeclareUnicodeCharacter{2209}{\ensuremath\notin}
+ \DeclareUnicodeCharacter{220B}{\ensuremath\owns}
+ \DeclareUnicodeCharacter{220F}{\ensuremath\prod}
+ \DeclareUnicodeCharacter{2210}{\ensuremath\coprod}
+ \DeclareUnicodeCharacter{2211}{\ensuremath\sum}
+ \DeclareUnicodeCharacter{2213}{\ensuremath\mp}
+ \DeclareUnicodeCharacter{2218}{\ensuremath\circ}
+ \DeclareUnicodeCharacter{221A}{\ensuremath\surd}
+ \DeclareUnicodeCharacter{221D}{\ensuremath\propto}
+ \DeclareUnicodeCharacter{2220}{\ensuremath\angle}
+ \DeclareUnicodeCharacter{2223}{\ensuremath\mid}
+ \DeclareUnicodeCharacter{2228}{\ensuremath\vee}
+ \DeclareUnicodeCharacter{222A}{\ensuremath\cup}
+ \DeclareUnicodeCharacter{222B}{\ensuremath\smallint}
+ \DeclareUnicodeCharacter{222E}{\ensuremath\oint}
+ \DeclareUnicodeCharacter{223C}{\ensuremath\sim}
+ \DeclareUnicodeCharacter{2240}{\ensuremath\wr}
+ \DeclareUnicodeCharacter{2243}{\ensuremath\simeq}
+ \DeclareUnicodeCharacter{2245}{\ensuremath\cong}
+ \DeclareUnicodeCharacter{2248}{\ensuremath\approx}
+ \DeclareUnicodeCharacter{224D}{\ensuremath\asymp}
+ \DeclareUnicodeCharacter{2250}{\ensuremath\doteq}
+ \DeclareUnicodeCharacter{2260}{\ensuremath\neq}
+ \DeclareUnicodeCharacter{226A}{\ensuremath\ll}
+ \DeclareUnicodeCharacter{226B}{\ensuremath\gg}
+ \DeclareUnicodeCharacter{227A}{\ensuremath\prec}
+ \DeclareUnicodeCharacter{227B}{\ensuremath\succ}
+ \DeclareUnicodeCharacter{2283}{\ensuremath\supset}
+ \DeclareUnicodeCharacter{2286}{\ensuremath\subseteq}
+ \DeclareUnicodeCharacter{228E}{\ensuremath\uplus}
+ \DeclareUnicodeCharacter{228F}{\ensuremath\sqsubset}
+ \DeclareUnicodeCharacter{2290}{\ensuremath\sqsupset}
+ \DeclareUnicodeCharacter{2291}{\ensuremath\sqsubseteq}
+ \DeclareUnicodeCharacter{2292}{\ensuremath\sqsupseteq}
+ \DeclareUnicodeCharacter{2293}{\ensuremath\sqcap}
+ \DeclareUnicodeCharacter{2294}{\ensuremath\sqcup}
+ \DeclareUnicodeCharacter{2295}{\ensuremath\oplus}
+ \DeclareUnicodeCharacter{2296}{\ensuremath\ominus}
+ \DeclareUnicodeCharacter{2297}{\ensuremath\otimes}
+ \DeclareUnicodeCharacter{2298}{\ensuremath\oslash}
+ \DeclareUnicodeCharacter{2299}{\ensuremath\odot}
+ \DeclareUnicodeCharacter{22A2}{\ensuremath\vdash}
+ \DeclareUnicodeCharacter{22A3}{\ensuremath\dashv}
+ \DeclareUnicodeCharacter{22A4}{\ensuremath\ptextop}
+ \DeclareUnicodeCharacter{22A5}{\ensuremath\bot}
+ \DeclareUnicodeCharacter{22A8}{\ensuremath\models}
+ \DeclareUnicodeCharacter{22B4}{\ensuremath\unlhd}
+ \DeclareUnicodeCharacter{22B5}{\ensuremath\unrhd}
+ \DeclareUnicodeCharacter{22C0}{\ensuremath\bigwedge}
+ \DeclareUnicodeCharacter{22C1}{\ensuremath\bigvee}
+ \DeclareUnicodeCharacter{22C2}{\ensuremath\bigcap}
+ \DeclareUnicodeCharacter{22C3}{\ensuremath\bigcup}
+ \DeclareUnicodeCharacter{22C4}{\ensuremath\diamond}
+ \DeclareUnicodeCharacter{22C5}{\ensuremath\cdot}
+ \DeclareUnicodeCharacter{22C6}{\ensuremath\star}
+ \DeclareUnicodeCharacter{22C8}{\ensuremath\bowtie}
+ \DeclareUnicodeCharacter{2308}{\ensuremath\lceil}
+ \DeclareUnicodeCharacter{2309}{\ensuremath\rceil}
+ \DeclareUnicodeCharacter{230A}{\ensuremath\lfloor}
+ \DeclareUnicodeCharacter{230B}{\ensuremath\rfloor}
+ \DeclareUnicodeCharacter{2322}{\ensuremath\frown}
+ \DeclareUnicodeCharacter{2323}{\ensuremath\smile}
+
+ \DeclareUnicodeCharacter{25A1}{\ensuremath\Box}
+ \DeclareUnicodeCharacter{25B3}{\ensuremath\triangle}
+ \DeclareUnicodeCharacter{25B7}{\ensuremath\triangleright}
+ \DeclareUnicodeCharacter{25BD}{\ensuremath\bigtriangledown}
+ \DeclareUnicodeCharacter{25C1}{\ensuremath\triangleleft}
+ \DeclareUnicodeCharacter{25C7}{\ensuremath\Diamond}
+ \DeclareUnicodeCharacter{2660}{\ensuremath\spadesuit}
+ \DeclareUnicodeCharacter{2661}{\ensuremath\heartsuit}
+ \DeclareUnicodeCharacter{2662}{\ensuremath\diamondsuit}
+ \DeclareUnicodeCharacter{2663}{\ensuremath\clubsuit}
+ \DeclareUnicodeCharacter{266D}{\ensuremath\flat}
+ \DeclareUnicodeCharacter{266E}{\ensuremath\natural}
+ \DeclareUnicodeCharacter{266F}{\ensuremath\sharp}
+ \DeclareUnicodeCharacter{26AA}{\ensuremath\bigcirc}
+ \DeclareUnicodeCharacter{27B9}{\ensuremath\rangle}
+ \DeclareUnicodeCharacter{27C2}{\ensuremath\perp}
+ \DeclareUnicodeCharacter{27E8}{\ensuremath\langle}
+ \DeclareUnicodeCharacter{27F5}{\ensuremath\longleftarrow}
+ \DeclareUnicodeCharacter{27F6}{\ensuremath\longrightarrow}
+ \DeclareUnicodeCharacter{27F7}{\ensuremath\longleftrightarrow}
+ \DeclareUnicodeCharacter{27FC}{\ensuremath\longmapsto}
+ \DeclareUnicodeCharacter{29F5}{\ensuremath\setminus}
+ \DeclareUnicodeCharacter{2A00}{\ensuremath\bigodot}
+ \DeclareUnicodeCharacter{2A01}{\ensuremath\bigoplus}
+ \DeclareUnicodeCharacter{2A02}{\ensuremath\bigotimes}
+ \DeclareUnicodeCharacter{2A04}{\ensuremath\biguplus}
+ \DeclareUnicodeCharacter{2A06}{\ensuremath\bigsqcup}
+ \DeclareUnicodeCharacter{2A1D}{\ensuremath\Join}
+ \DeclareUnicodeCharacter{2A3F}{\ensuremath\amalg}
+ \DeclareUnicodeCharacter{2AAF}{\ensuremath\preceq}
+ \DeclareUnicodeCharacter{2AB0}{\ensuremath\succeq}
+
+ \global\mathchardef\checkmark="1370 % actually the square root sign
+ \DeclareUnicodeCharacter{2713}{\ensuremath\checkmark}
}% end of \utfeightchardefs
-
% US-ASCII character definitions.
\def\asciichardefs{% nothing need be done
\relax
}
+% Latin1 (ISO-8859-1) character definitions.
+\def\nonasciistringdefs{%
+ \setnonasciicharscatcode\active
+ \def\defstringchar##1{\def##1{\string##1}}%
+ %
+ \defstringchar^^80\defstringchar^^81\defstringchar^^82\defstringchar^^83%
+ \defstringchar^^84\defstringchar^^85\defstringchar^^86\defstringchar^^87%
+ \defstringchar^^88\defstringchar^^89\defstringchar^^8a\defstringchar^^8b%
+ \defstringchar^^8c\defstringchar^^8d\defstringchar^^8e\defstringchar^^8f%
+ %
+ \defstringchar^^90\defstringchar^^91\defstringchar^^92\defstringchar^^93%
+ \defstringchar^^94\defstringchar^^95\defstringchar^^96\defstringchar^^97%
+ \defstringchar^^98\defstringchar^^99\defstringchar^^9a\defstringchar^^9b%
+ \defstringchar^^9c\defstringchar^^9d\defstringchar^^9e\defstringchar^^9f%
+ %
+ \defstringchar^^a0\defstringchar^^a1\defstringchar^^a2\defstringchar^^a3%
+ \defstringchar^^a4\defstringchar^^a5\defstringchar^^a6\defstringchar^^a7%
+ \defstringchar^^a8\defstringchar^^a9\defstringchar^^aa\defstringchar^^ab%
+ \defstringchar^^ac\defstringchar^^ad\defstringchar^^ae\defstringchar^^af%
+ %
+ \defstringchar^^b0\defstringchar^^b1\defstringchar^^b2\defstringchar^^b3%
+ \defstringchar^^b4\defstringchar^^b5\defstringchar^^b6\defstringchar^^b7%
+ \defstringchar^^b8\defstringchar^^b9\defstringchar^^ba\defstringchar^^bb%
+ \defstringchar^^bc\defstringchar^^bd\defstringchar^^be\defstringchar^^bf%
+ %
+ \defstringchar^^c0\defstringchar^^c1\defstringchar^^c2\defstringchar^^c3%
+ \defstringchar^^c4\defstringchar^^c5\defstringchar^^c6\defstringchar^^c7%
+ \defstringchar^^c8\defstringchar^^c9\defstringchar^^ca\defstringchar^^cb%
+ \defstringchar^^cc\defstringchar^^cd\defstringchar^^ce\defstringchar^^cf%
+ %
+ \defstringchar^^d0\defstringchar^^d1\defstringchar^^d2\defstringchar^^d3%
+ \defstringchar^^d4\defstringchar^^d5\defstringchar^^d6\defstringchar^^d7%
+ \defstringchar^^d8\defstringchar^^d9\defstringchar^^da\defstringchar^^db%
+ \defstringchar^^dc\defstringchar^^dd\defstringchar^^de\defstringchar^^df%
+ %
+ \defstringchar^^e0\defstringchar^^e1\defstringchar^^e2\defstringchar^^e3%
+ \defstringchar^^e4\defstringchar^^e5\defstringchar^^e6\defstringchar^^e7%
+ \defstringchar^^e8\defstringchar^^e9\defstringchar^^ea\defstringchar^^eb%
+ \defstringchar^^ec\defstringchar^^ed\defstringchar^^ee\defstringchar^^ef%
+ %
+ \defstringchar^^f0\defstringchar^^f1\defstringchar^^f2\defstringchar^^f3%
+ \defstringchar^^f4\defstringchar^^f5\defstringchar^^f6\defstringchar^^f7%
+ \defstringchar^^f8\defstringchar^^f9\defstringchar^^fa\defstringchar^^fb%
+ \defstringchar^^fc\defstringchar^^fd\defstringchar^^fe\defstringchar^^ff%
+}
+
+
+% define all the unicode characters we know about, for the sake of @U.
+\utfeightchardefs
+
+
% Make non-ASCII characters printable again for compatibility with
% existing Texinfo documents that may use them, even without declaring a
% document encoding.
@@ -9979,8 +10857,8 @@ directory should work if nowhere else does.}
\def\activedoublequote{{\tt\char34}}
\let"=\activedoublequote
\catcode`\~=\active \def\activetilde{{\tt\char126}} \let~ = \activetilde
-\chardef\hat=`\^
-\catcode`\^=\active \def\activehat{{\tt \hat}} \let^ = \activehat
+\chardef\hatchar=`\^
+\catcode`\^=\active \def\activehat{{\tt \hatchar}} \let^ = \activehat
\catcode`\_=\active
\def_{\ifusingtt\normalunderscore\_}
@@ -9997,6 +10875,8 @@ directory should work if nowhere else does.}
\catcode`\>=\active \def\activegtr{{\tt \gtr}}\let> = \activegtr
\catcode`\+=\active \def+{{\tt \char 43}}
\catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+\catcode`\-=\active \let-=\normaldash
+
% used for headline/footline in the output routine, in case the page
% breaks in the middle of an @tex block.
@@ -10011,12 +10891,6 @@ directory should work if nowhere else does.}
% in principle, all other definitions in \tex have to be undone too.
}
-% If a .fmt file is being used, characters that might appear in a file
-% name cannot be active until we have parsed the command line.
-% So turn them off again, and have \everyjob (or @setfilename) turn them on.
-% \otherifyactive is called near the end of this file.
-\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
-
% Used sometimes to turn off (effectively) the active characters even after
% parsing them.
\def\turnoffactive{%
@@ -10035,23 +10909,22 @@ directory should work if nowhere else does.}
% \doublebackslash is two of them (for the pdf outlines).
{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
-% In texinfo, backslash is an active character; it prints the backslash
+% In Texinfo, backslash is an active character; it prints the backslash
% in fixed width font.
\catcode`\\=\active % @ for escape char from now on.
-% The story here is that in math mode, the \char of \backslashcurfont
-% ends up printing the roman \ from the math symbol font (because \char
-% in math mode uses the \mathcode, and plain.tex sets
-% \mathcode`\\="026E). It seems better for @backslashchar{} to always
-% print a typewriter backslash, hence we use an explicit \mathchar,
+% Print a typewriter backslash. For math mode, we can't simply use
+% \backslashcurfont: the story here is that in math mode, the \char
+% of \backslashcurfont ends up printing the roman \ from the math symbol
+% font (because \char in math mode uses the \mathcode, and plain.tex
+% sets \mathcode`\\="026E). Hence we use an explicit \mathchar,
% which is the decimal equivalent of "715c (class 7, e.g., use \fam;
% ignored family value; char position "5C). We can't use " for the
% usual hex value because it has already been made active.
-@def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}}
-@let@backslashchar = @normalbackslash % @backslashchar{} is for user documents.
-% On startup, @fixbackslash assigns:
-% @let \ = @normalbackslash
+@def@ttbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}}
+@let@backslashchar = @ttbackslash % @backslashchar{} is for user documents.
+
% \rawbackslash defines an active \ to do \backslashcurfont.
% \otherbackslash defines an active \ to be a literal `\' character with
% catcode other. We switch back and forth between these.
@@ -10059,51 +10932,77 @@ directory should work if nowhere else does.}
@gdef@otherbackslash{@let\=@realbackslash}
% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
-% the literal character `\'. Also revert - to its normal character, in
-% case the active - from code has slipped in.
+% the literal character `\'.
%
{@catcode`- = @active
@gdef@normalturnoffactive{%
+ @nonasciistringdefs
@let-=@normaldash
@let"=@normaldoublequote
@let$=@normaldollar %$ font-lock fix
@let+=@normalplus
@let<=@normalless
@let>=@normalgreater
- @let\=@normalbackslash
@let^=@normalcaret
@let_=@normalunderscore
@let|=@normalverticalbar
@let~=@normaltilde
+ @let\=@ttbackslash
@markupsetuplqdefault
@markupsetuprqdefault
@unsepspaces
}
}
-% Make _ and + \other characters, temporarily.
-% This is canceled by @fixbackslash.
-@otherifyactive
+% If a .fmt file is being used, characters that might appear in a file
+% name cannot be active until we have parsed the command line.
+% So turn them off again, and have @fixbackslash turn them back on.
+@catcode`+=@other @catcode`@_=@other
+% \enablebackslashhack - allow file to begin `\input texinfo'
+%
% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
% That is what \eatinput is for; after that, the `\' should revert to printing
% a backslash.
-%
-@gdef@eatinput input texinfo{@fixbackslash}
-@global@let\ = @eatinput
+% If the file did not have a `\input texinfo', then it is turned off after
+% the first line; otherwise the first `\' in the file would cause an error.
+% This is used on the very last line of this file, texinfo.tex.
+% We also use @c to call @fixbackslash, in case ends of lines are hidden.
+{
+@catcode`@^=7
+@catcode`@^^M=13@gdef@enablebackslashhack{%
+ @global@let\ = @eatinput%
+ @catcode`@^^M=13%
+ @def@c{@fixbackslash@c}%
+ @def ^^M{@let^^M@secondlinenl}%
+ @gdef @secondlinenl{@let^^M@thirdlinenl}%
+ @gdef @thirdlinenl{@fixbackslash}%
+}}
+
+{@catcode`@^=7 @catcode`@^^M=13%
+@gdef@eatinput input texinfo#1^^M{@fixbackslash}}
-% On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\' in the file would cause an error. This macro tries to fix
-% that, assuming it is called before the first `\' could plausibly occur.
-% Also turn back on active characters that might appear in the input
-% file name, in case not using a pre-dumped format.
-%
@gdef@fixbackslash{%
- @ifx\@eatinput @let\ = @normalbackslash @fi
+ @ifx\@eatinput @let\ = @ttbackslash @fi
+ @catcode13=5 % regular end of line
+ @let@c=@texinfoc
+ % Also turn back on active characters that might appear in the input
+ % file name, in case not using a pre-dumped format.
@catcode`+=@active
@catcode`@_=@active
+ %
+ % If texinfo.cnf is present on the system, read it.
+ % Useful for site-wide @afourpaper, etc. This macro, @fixbackslash, gets
+ % called at the beginning of every Texinfo file. Not opening texinfo.cnf
+ % directly in this file, texinfo.tex, makes it possible to make a format
+ % file for Texinfo.
+ %
+ @openin 1 texinfo.cnf
+ @ifeof 1 @else @input texinfo.cnf @fi
+ @closein 1
}
+
% Say @foo, not \foo, in error messages.
@escapechar = `@@
@@ -10132,7 +11031,7 @@ directory should work if nowhere else does.}
@c Local variables:
@c eval: (add-hook 'write-file-hooks 'time-stamp)
-@c page-delimiter: "^\\\\message"
+@c page-delimiter: "^\\\\message\\|emacs-page"
@c time-stamp-start: "def\\\\texinfoversion{"
@c time-stamp-format: "%:y-%02m-%02d.%02H"
@c time-stamp-end: "}"
@@ -10143,3 +11042,4 @@ directory should work if nowhere else does.}
@ignore
arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
@end ignore
+@enablebackslashhack
diff --git a/doc/version.texi b/doc/version.texi
index 70b6658..9dc2998 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,10 +1,10 @@
@ignore
-Copyright (C) 1988-2014 Free Software Foundation, Inc.
+Copyright (C) 1988-2016 Free Software Foundation, Inc.
@end ignore
-@set EDITION 6.3
-@set VERSION 6.3
-@set UPDATED 6 January 2014
-@set UPDATED-MONTH January 2014
+@set EDITION 7.0
+@set VERSION 7.0
+@set UPDATED 16 July 2016
+@set UPDATED-MONTH July 2016
-@set LASTCHANGE Mon Jan 6 16:26:51 EST 2014
+@set LASTCHANGE Sat Jul 16 13:43:15 EDT 2016
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 04399ce..5094c6c 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -53,11 +53,9 @@ CPPFLAGS = @CPPFLAGS@
INCLUDES = -I$(srcdir) -I$(top_srcdir) -I..
-CCFLAGS = $(DEFS) $(LOCAL_CFLAGS) $(CPPFLAGS) $(INCLUDES) $(CFLAGS)
+CCFLAGS = $(DEFS) $(LOCAL_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
LDFLAGS = -g -L.. @LDFLAGS@
-PURIFY = @PURIFY@
-
READLINE_LIB = ../libreadline.a
HISTORY_LIB = ../libhistory.a
@@ -68,16 +66,16 @@ TERMCAP_LIB = @TERMCAP_LIB@
$(CC) $(CCFLAGS) -c $<
SOURCES = excallback.c fileman.c histexamp.c manexamp.c rl-fgets.c rl.c \
- rlcat.c rlevent.c rlptytest.c rltest.c rlversion.c \
+ rlbasic.c rlcat.c rlevent.c rlptytest.c rltest.c rlversion.c \
rl-callbacktest.c hist_erasedups.c hist_purgecmd.c
EXECUTABLES = fileman$(EXEEXT) rltest$(EXEEXT) rl$(EXEEXT) rlcat$(EXEEXT) \
rlevent$(EXEEXT) rlversion$(EXEEXT) histexamp$(EXEEXT) \
- rl-callbacktest$(EXEEXT) \
+ rl-callbacktest$(EXEEXT) rlbasic$(EXEEXT) \
hist_erasedups$(EXEEXT) hist_purgecmd$(EXEEXT)
OBJECTS = fileman.o rltest.o rl.o rlevent.o rlcat.o rlversion.o histexamp.o \
- rl-callbacktest.o hist_erasedups.o hist_purgecmd.o
+ rl-callbacktest.o rlbasic.o hist_erasedups.o hist_purgecmd.o
OTHEREXE = rlptytest$(EXEEXT)
OTHEROBJ = rlptytest.o
@@ -104,37 +102,40 @@ uninstall:
-rmdir $(DESTDIR)$(installdir)
rl$(EXEEXT): rl.o $(READLINE_LIB)
- $(PURIFY) $(CC) $(LDFLAGS) -o $@ rl.o $(READLINE_LIB) $(TERMCAP_LIB)
+ $(CC) $(LDFLAGS) -o $@ rl.o $(READLINE_LIB) $(TERMCAP_LIB)
+
+rlbasic$(EXEEXT): rlbasic.o $(READLINE_LIB)
+ $(CC) $(LDFLAGS) -o $@ rlbasic.o $(READLINE_LIB) $(TERMCAP_LIB)
rlcat$(EXEEXT): rlcat.o $(READLINE_LIB)
- $(PURIFY) $(CC) $(LDFLAGS) -o $@ rlcat.o $(READLINE_LIB) $(TERMCAP_LIB)
+ $(CC) $(LDFLAGS) -o $@ rlcat.o $(READLINE_LIB) $(TERMCAP_LIB)
rlevent$(EXEEXT): rlevent.o $(READLINE_LIB)
- $(PURIFY) $(CC) $(LDFLAGS) -o $@ rlevent.o $(READLINE_LIB) $(TERMCAP_LIB)
+ $(CC) $(LDFLAGS) -o $@ rlevent.o $(READLINE_LIB) $(TERMCAP_LIB)
fileman$(EXEEXT): fileman.o $(READLINE_LIB)
- $(PURIFY) $(CC) $(LDFLAGS) -o $@ fileman.o $(READLINE_LIB) $(TERMCAP_LIB)
+ $(CC) $(LDFLAGS) -o $@ fileman.o $(READLINE_LIB) $(TERMCAP_LIB)
rltest$(EXEEXT): rltest.o $(READLINE_LIB)
- $(PURIFY) $(CC) $(LDFLAGS) -o $@ rltest.o $(READLINE_LIB) $(TERMCAP_LIB)
+ $(CC) $(LDFLAGS) -o $@ rltest.o $(READLINE_LIB) $(TERMCAP_LIB)
rl-callbacktest$(EXEEXT): rl-callbacktest.o $(READLINE_LIB)
- $(PURIFY) $(CC) $(LDFLAGS) -o $@ rl-callbacktest.o $(READLINE_LIB) $(TERMCAP_LIB)
+ $(CC) $(LDFLAGS) -o $@ rl-callbacktest.o $(READLINE_LIB) $(TERMCAP_LIB)
rlptytest$(EXEEXT): rlptytest.o $(READLINE_LIB)
- $(PURIFY) $(CC) $(LDFLAGS) -o $@ rlptytest.o $(READLINE_LIB) $(TERMCAP_LIB)
+ $(CC) $(LDFLAGS) -o $@ rlptytest.o $(READLINE_LIB) $(TERMCAP_LIB) $(LIBUTIL)
rlversion$(EXEEXT): rlversion.o $(READLINE_LIB)
$(CC) $(LDFLAGS) -o $@ rlversion.o $(READLINE_LIB) $(TERMCAP_LIB)
histexamp$(EXEEXT): histexamp.o $(HISTORY_LIB)
- $(PURIFY) $(CC) $(LDFLAGS) -o $@ histexamp.o -lhistory $(TERMCAP_LIB)
+ $(CC) $(LDFLAGS) -o $@ histexamp.o -lhistory $(TERMCAP_LIB)
hist_erasedups$(EXEEXT): hist_erasedups.o $(HISTORY_LIB)
- $(PURIFY) $(CC) $(LDFLAGS) -o $@ hist_erasedups.o -lhistory $(TERMCAP_LIB)
+ $(CC) $(LDFLAGS) -o $@ hist_erasedups.o -lhistory $(TERMCAP_LIB)
hist_purgecmd$(EXEEXT): hist_purgecmd.o $(HISTORY_LIB)
- $(PURIFY) $(CC) $(LDFLAGS) -o $@ hist_purgecmd.o -lhistory $(TERMCAP_LIB)
+ $(CC) $(LDFLAGS) -o $@ hist_purgecmd.o -lhistory $(TERMCAP_LIB)
clean mostlyclean:
$(RM) $(OBJECTS) $(OTHEROBJ)
@@ -150,6 +151,7 @@ rlversion.o: rlversion.c
histexamp.o: histexamp.c
hist_erasedups.o: hist_erasedups.c
hist_purgecmd.o: hist_purgecmd.c
+rlbasic.o: rlbasic.c
rlcat.o: rlcat.c
rlptytest.o: rlptytest.c
rl-callbacktest.o: rl-callbacktest.c
@@ -161,6 +163,7 @@ rlversion.o: $(top_srcdir)/readline.h
histexamp.o: $(top_srcdir)/history.h
hist_erasedups.o: $(top_srcdir)/history.h
hist_purgecmd.o: $(top_srcdir)/history.h
+rlbasic.o: $(top_srcdir)/readline.h $(top_srcdir)/history.h
rlcat.o: $(top_srcdir)/readline.h $(top_srcdir)/history.h
rlptytest.o: $(top_srcdir)/readline.h $(top_srcdir)/history.h
rl-callbacktest.o: $(top_srcdir)/readline.h $(top_srcdir)/history.h
diff --git a/examples/fileman.c b/examples/fileman.c
index f7eed8a..c821df0 100644
--- a/examples/fileman.c
+++ b/examples/fileman.c
@@ -63,6 +63,12 @@
extern char *xmalloc PARAMS((size_t));
+void initialize_readline PARAMS((void));
+void too_dangerous PARAMS((char *));
+
+int execute_line PARAMS((char *));
+int valid_argument PARAMS((char *, char *));
+
/* The names of functions that actually do the manipulation. */
int com_list PARAMS((char *));
int com_view PARAMS((char *));
@@ -119,6 +125,7 @@ dupstr (s)
return (r);
}
+int
main (argc, argv)
int argc;
char **argv;
@@ -241,6 +248,7 @@ char **fileman_completion PARAMS((const char *, int, int));
/* Tell the GNU Readline library how to complete. We want to try to complete
on command names if this is the first word in the line, or on filenames
if not. */
+void
initialize_readline ()
{
/* Allow conditional parsing of the ~/.inputrc file. */
@@ -317,6 +325,7 @@ command_generator (text, state)
static char syscom[1024];
/* List the file(s) named in arg. */
+int
com_list (arg)
char *arg;
{
@@ -327,6 +336,7 @@ com_list (arg)
return (system (syscom));
}
+int
com_view (arg)
char *arg;
{
@@ -342,6 +352,7 @@ com_view (arg)
return (system (syscom));
}
+int
com_rename (arg)
char *arg;
{
@@ -349,6 +360,7 @@ com_rename (arg)
return (1);
}
+int
com_stat (arg)
char *arg;
{
@@ -377,6 +389,7 @@ com_stat (arg)
return (0);
}
+int
com_delete (arg)
char *arg;
{
@@ -386,6 +399,7 @@ com_delete (arg)
/* Print out help for ARG, or for all of the commands if ARG is
not present. */
+int
com_help (arg)
char *arg;
{
@@ -425,6 +439,7 @@ com_help (arg)
}
/* Change to the directory ARG. */
+int
com_cd (arg)
char *arg;
{
@@ -439,6 +454,7 @@ com_cd (arg)
}
/* Print out the current working directory. */
+int
com_pwd (ignore)
char *ignore;
{
@@ -456,6 +472,7 @@ com_pwd (ignore)
}
/* The user wishes to quit using this program. Just set DONE non-zero. */
+int
com_quit (arg)
char *arg;
{
@@ -464,6 +481,7 @@ com_quit (arg)
}
/* Function which tells you that you can't do this. */
+void
too_dangerous (caller)
char *caller;
{
diff --git a/examples/hist_erasedups.c b/examples/hist_erasedups.c
index 02d617e..2ecee89 100644
--- a/examples/hist_erasedups.c
+++ b/examples/hist_erasedups.c
@@ -38,8 +38,6 @@
#define STREQN(a, b, n) ((n == 0) ? (1) \
: ((a)[0] == (b)[0] && strncmp(a, b, n) == 0))
-extern int history_offset;
-
static void
usage()
{
diff --git a/examples/hist_purgecmd.c b/examples/hist_purgecmd.c
index 94becd8..d836d14 100644
--- a/examples/hist_purgecmd.c
+++ b/examples/hist_purgecmd.c
@@ -41,8 +41,6 @@
#define STREQN(a, b, n) ((n == 0) ? (1) \
: ((a)[0] == (b)[0] && strncmp(a, b, n) == 0))
-extern int history_offset;
-
#define PURGE_REGEXP 0x01
static void
diff --git a/examples/rl-callbacktest.c b/examples/rl-callbacktest.c
index 87a781d..3525ffd 100644
--- a/examples/rl-callbacktest.c
+++ b/examples/rl-callbacktest.c
@@ -2,11 +2,15 @@
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
+#include <locale.h>
/* Used for select(2) */
#include <sys/types.h>
#include <sys/select.h>
+#include <signal.h>
+
+#include <errno.h>
#include <stdio.h>
/* Standard readline include files. */
@@ -18,11 +22,22 @@
# include <readline/history.h>
#endif
+extern int errno;
+
static void cb_linehandler (char *);
+static void signandler (int);
-int running;
+int running, sigwinch_received;
const char *prompt = "rltest$ ";
+/* Handle SIGWINCH and window size changes when readline is not active and
+ reading a character. */
+static void
+sighandler (int sig)
+{
+ sigwinch_received = 1;
+}
+
/* Callback function called for each line when accept-line executed, EOF
seen, or EOF character read. This sets a flag and returns; it could
also call exit(3). */
@@ -57,6 +72,12 @@ main (int c, char **v)
fd_set fds;
int r;
+
+ setlocale (LC_ALL, "");
+
+ /* Handle SIGWINCH */
+ signal (SIGWINCH, sighandler);
+
/* Install the line handler. */
rl_callback_handler_install (prompt, cb_linehandler);
@@ -71,12 +92,19 @@ main (int c, char **v)
FD_SET (fileno (rl_instream), &fds);
r = select (FD_SETSIZE, &fds, NULL, NULL, NULL);
- if (r < 0)
+ if (r < 0 && errno != EINTR)
{
perror ("rltest: select");
rl_callback_handler_remove ();
break;
}
+ if (sigwinch_received)
+ {
+ rl_resize_terminal ();
+ sigwinch_received = 0;
+ }
+ if (r < 0)
+ continue;
if (FD_ISSET (fileno (rl_instream), &fds))
rl_callback_read_char ();
diff --git a/examples/rl.c b/examples/rl.c
index 845a4b1..a5cf276 100644
--- a/examples/rl.c
+++ b/examples/rl.c
@@ -28,6 +28,7 @@
# include <config.h>
#endif
+#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
diff --git a/examples/rlbasic.c b/examples/rlbasic.c
new file mode 100644
index 0000000..6a9601f
--- /dev/null
+++ b/examples/rlbasic.c
@@ -0,0 +1,29 @@
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+
+#if defined (READLINE_LIBRARY)
+# include "readline.h"
+# include "history.h"
+#else
+# include <readline/readline.h>
+# include <readline/history.h>
+#endif
+
+int
+main (int c, char **v)
+{
+ char *input;
+
+ for (;;) {
+ input = readline ((char *)NULL);
+ if (input == 0)
+ break;
+ printf ("%s\n", input);
+ if (strcmp (input, "exit") == 0)
+ break;
+ free (input);
+ }
+ exit (0);
+}
diff --git a/examples/rlptytest.c b/examples/rlptytest.c
index 0699e86..9c42f8a 100644
--- a/examples/rlptytest.c
+++ b/examples/rlptytest.c
@@ -48,6 +48,13 @@ sigint (s)
exit (0);
}
+void
+sigwinch (s)
+ int s;
+{
+ rl_resize_terminal ();
+}
+
static int
user_input()
{
@@ -316,6 +323,7 @@ main()
if (val == -1)
return -1;
+ signal (SIGWINCH, sigwinch);
signal (SIGINT, sigint);
val = init_readline (slavefd, slavefd);
diff --git a/examples/rlversion.c b/examples/rlversion.c
index 88f4cd7..f36567b 100644
--- a/examples/rlversion.c
+++ b/examples/rlversion.c
@@ -41,6 +41,7 @@ extern void exit();
# include <readline/readline.h>
#endif
+int
main()
{
printf ("%s\n", rl_library_version ? rl_library_version : "unknown");
diff --git a/funmap.c b/funmap.c
index 363507b..34b1d6b 100644
--- a/funmap.c
+++ b/funmap.c
@@ -1,6 +1,6 @@
/* funmap.c -- attach names to functions. */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2016 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.
@@ -68,6 +68,7 @@ static const FUNMAP default_funmap[] = {
{ "backward-word", rl_backward_word },
{ "beginning-of-history", rl_beginning_of_history },
{ "beginning-of-line", rl_beg_of_line },
+ { "bracketed-paste-begin", rl_bracketed_paste_begin },
{ "call-last-kbd-macro", rl_call_last_kbd_macro },
{ "capitalize-word", rl_capitalize_word },
{ "character-search", rl_char_search },
@@ -115,7 +116,7 @@ static const FUNMAP default_funmap[] = {
{ "non-incremental-reverse-search-history-again", rl_noninc_reverse_search_again },
{ "old-menu-complete", rl_old_menu_complete },
{ "overwrite-mode", rl_overwrite_mode },
-#ifdef __CYGWIN__
+#if defined (_WIN32)
{ "paste-from-clipboard", rl_paste_from_clipboard },
#endif
{ "possible-completions", rl_possible_completions },
@@ -177,7 +178,7 @@ static const FUNMAP default_funmap[] = {
{ "vi-fword", rl_vi_fword },
{ "vi-goto-mark", rl_vi_goto_mark },
{ "vi-insert-beg", rl_vi_insert_beg },
- { "vi-insertion-mode", rl_vi_insertion_mode },
+ { "vi-insertion-mode", rl_vi_insert_mode },
{ "vi-match", rl_vi_match },
{ "vi-movement-mode", rl_vi_movement_mode },
{ "vi-next-word", rl_vi_next_word },
@@ -193,7 +194,9 @@ static const FUNMAP default_funmap[] = {
{ "vi-set-mark", rl_vi_set_mark },
{ "vi-subst", rl_vi_subst },
{ "vi-tilde-expand", rl_vi_tilde_expand },
+ { "vi-unix-word-rubout", rl_vi_unix_word_rubout },
{ "vi-yank-arg", rl_vi_yank_arg },
+ { "vi-yank-pop", rl_vi_yank_pop },
{ "vi-yank-to", rl_vi_yank_to },
#endif /* VI_MODE */
diff --git a/histexpand.c b/histexpand.c
index 4899b9d..b84a6b8 100644
--- a/histexpand.c
+++ b/histexpand.c
@@ -1,6 +1,6 @@
/* histexpand.c -- history expansion. */
-/* Copyright (C) 1989-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2015 Free Software Foundation, Inc.
This file contains the GNU History Library (History), a set of
routines for managing the text of previously typed lines.
@@ -44,12 +44,14 @@
#include "history.h"
#include "histlib.h"
+#include "chardefs.h"
#include "rlshell.h"
#include "xmalloc.h"
#define HISTORY_WORD_DELIMITERS " \t\n;&()|<>"
#define HISTORY_QUOTE_CHARACTERS "\"'`"
+#define HISTORY_EVENT_DELIMITERS "^$*%-"
#define slashify_in_quotes "\\`\"$"
@@ -62,6 +64,10 @@ static char *subst_rhs;
static int subst_lhs_len;
static int subst_rhs_len;
+/* Characters that delimit history event specifications and separate event
+ specifications from word designators. Static for now */
+static char *history_event_delimiter_chars = HISTORY_EVENT_DELIMITERS;
+
static char *get_history_word_specifier PARAMS((char *, char *, int *));
static int history_tokenize_word PARAMS((const char *, int));
static char **history_tokenize_internal PARAMS((const char *, int, int *));
@@ -112,7 +118,6 @@ rl_linebuf_func_t *history_inhibit_expansion_function;
/* The last string searched for by a !?string? search. */
static char *search_string;
-
/* The last string matched by a !?string? search. */
static char *search_match;
@@ -225,6 +230,7 @@ get_history_event (string, caller_index, 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)) ||
string[i] == '\n' ||
@@ -873,7 +879,7 @@ history_expand_internal (string, start, qc, end_index_ptr, ret_string, current_l
1) If expansions did take place
2) If the `p' modifier was given and the caller should print the result
- If an error ocurred in expansion, then OUTPUT contains a descriptive
+ If an error occurred in expansion, then OUTPUT contains a descriptive
error message. */
#define ADD_STRING(s) \
@@ -991,6 +997,7 @@ history_expand (hstring, output)
history expansion performed on it.
Skip the rest of the line and break out of the loop. */
if (history_comment_char && string[i] == history_comment_char &&
+ dquote == 0 &&
(i == 0 || member (string[i - 1], history_word_delimiters)))
{
while (string[i])
@@ -1149,7 +1156,8 @@ history_expand (hstring, output)
}
case -2: /* history_comment_char */
- if (i == 0 || member (string[i - 1], history_word_delimiters))
+ if ((dquote == 0 || history_quotes_inhibit_expansion == 0) &&
+ (i == 0 || member (string[i - 1], history_word_delimiters)))
{
temp = (char *)xmalloc (l - i + 1);
strcpy (temp, string + i);
@@ -1213,7 +1221,7 @@ history_expand (hstring, output)
ADD_STRING (temp);
xfree (temp);
}
- only_printing = r == 1;
+ only_printing += r == 1;
i = eindex;
}
break;
@@ -1414,7 +1422,7 @@ history_tokenize_word (string, ind)
const char *string;
int ind;
{
- register int i;
+ register int i, j;
int delimiter, nestdelim, delimopen;
i = ind;
@@ -1426,6 +1434,22 @@ history_tokenize_word (string, ind)
return i;
}
+ if (ISDIGIT (string[i]))
+ {
+ j = i;
+ while (string[j] && ISDIGIT (string[j]))
+ j++;
+ if (string[j] == 0)
+ return (j);
+ if (string[j] == '<' || string[j] == '>')
+ i = j; /* digit sequence is a file descriptor */
+ else
+ {
+ i = j;
+ goto get_word; /* digit sequence is part of a word */
+ }
+ }
+
if (member (string[i], "<>;&|$"))
{
int peek = string[i + 1];
@@ -1439,8 +1463,16 @@ history_tokenize_word (string, ind)
i += 2;
return i;
}
- else if ((peek == '&' && (string[i] == '>' || string[i] == '<')) ||
- (peek == '>' && string[i] == '&'))
+ else if (peek == '&' && (string[i] == '>' || string[i] == '<'))
+ {
+ j = i + 2;
+ while (string[j] && ISDIGIT (string[j])) /* file descriptor */
+ j++;
+ if (string[j] =='-') /* <&[digits]-, >&[digits]- */
+ j++;
+ return j;
+ }
+ else if ((peek == '>' && string[i] == '&') || (peek == '|' && string[i] == '>'))
{
i += 2;
return i;
diff --git a/histfile.c b/histfile.c
index bb74315..5b057cd 100644
--- a/histfile.c
+++ b/histfile.c
@@ -1,6 +1,6 @@
/* histfile.c - functions to manipulate the history file. */
-/* Copyright (C) 1989-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2016 Free Software Foundation, Inc.
This file contains the GNU History Library (History), a set of
routines for managing the text of previously typed lines.
@@ -35,6 +35,10 @@
#include <stdio.h>
+#if defined (HAVE_LIMITS_H)
+# include <limits.h>
+#endif
+
#include <sys/types.h>
#if ! defined (_MINIX) && defined (HAVE_SYS_FILE_H)
# include <sys/file.h>
@@ -99,12 +103,41 @@ extern int errno;
#include "rlshell.h"
#include "xmalloc.h"
+#if !defined (PATH_MAX)
+# define PATH_MAX 1024 /* default */
+#endif
+
+extern void _hs_append_history_line PARAMS((int, const char *));
+
+/* history file version; currently unused */
+int history_file_version = 1;
+
/* If non-zero, we write timestamps to the history file in history_do_write() */
int history_write_timestamps = 0;
+/* If non-zero, we assume that a history file that starts with a timestamp
+ uses timestamp-delimited entries and can include multi-line history
+ entries. Used by read_history_range */
+int history_multiline_entries = 0;
+
+/* Immediately after a call to read_history() or read_history_range(), this
+ will return the number of lines just read from the history file in that
+ call. */
+int history_lines_read_from_file = 0;
+
+/* Immediately after a call to write_history() or history_do_write(), this
+ will return the number of lines just written to the history file in that
+ call. This also works with history_truncate_file. */
+int history_lines_written_to_file = 0;
+
/* Does S look like the beginning of a history timestamp entry? Placeholder
for more extensive tests. */
-#define HIST_TIMESTAMP_START(s) (*(s) == history_comment_char && isdigit ((s)[1]) )
+#define HIST_TIMESTAMP_START(s) (*(s) == history_comment_char && isdigit ((unsigned char)(s)[1]) )
+
+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 *));
/* Return the string that should be used in the place of this
filename. This only matters when you don't specify the
@@ -123,6 +156,10 @@ history_filename (filename)
return (return_val);
home = sh_get_env_value ("HOME");
+#if defined (_WIN32)
+ if (home == 0)
+ home = sh_get_env_value ("APPDATA");
+#endif
if (home == 0)
return (NULL);
@@ -145,17 +182,71 @@ static char *
history_backupfile (filename)
const char *filename;
{
- char *ret;
+ const char *fn;
+ char *ret, linkbuf[PATH_MAX+1];
size_t len;
-
- len = strlen (filename);
+ ssize_t n;
+ struct stat fs;
+
+ fn = filename;
+#if defined (HAVE_READLINK)
+ /* Follow symlink to avoid backing up symlink itself; call will fail if
+ not a symlink */
+ if ((n = readlink (filename, linkbuf, sizeof (linkbuf) - 1)) > 0)
+ {
+ linkbuf[n] = '\0';
+ fn = linkbuf;
+ }
+#endif
+
+ len = strlen (fn);
ret = xmalloc (len + 2);
- strcpy (ret, filename);
+ strcpy (ret, fn);
ret[len] = '-';
ret[len+1] = '\0';
return ret;
}
+static char *
+history_tempfile (filename)
+ const char *filename;
+{
+ const char *fn;
+ char *ret, linkbuf[PATH_MAX+1];
+ size_t len;
+ ssize_t n;
+ struct stat fs;
+ int pid;
+
+ fn = filename;
+#if defined (HAVE_READLINK)
+ /* Follow symlink so tempfile created in the same directory as any symlinked
+ history file; call will fail if not a symlink */
+ if ((n = readlink (filename, linkbuf, sizeof (linkbuf) - 1)) > 0)
+ {
+ linkbuf[n] = '\0';
+ fn = linkbuf;
+ }
+#endif
+
+ len = strlen (fn);
+ ret = xmalloc (len + 11);
+ strcpy (ret, fn);
+
+ pid = (int)getpid ();
+
+ /* filename-PID.tmp */
+ ret[len] = '-';
+ ret[len+1] = (pid / 10000 % 10) + '0';
+ ret[len+2] = (pid / 1000 % 10) + '0';
+ ret[len+3] = (pid / 100 % 10) + '0';
+ ret[len+4] = (pid / 10 % 10) + '0';
+ ret[len+5] = (pid % 10) + '0';
+ strcpy (ret + len + 6, ".tmp");
+
+ return ret;
+}
+
/* Add the contents of FILENAME to the history list, a line at a time.
If FILENAME is NULL, then read from ~/.history. Returns 0 if
successful, or errno if not. */
@@ -178,7 +269,7 @@ read_history_range (filename, from, to)
{
register char *line_start, *line_end, *p;
char *input, *buffer, *bufend, *last_ts;
- int file, current_line, chars_read;
+ int file, current_line, chars_read, has_timestamps, reset_comment_char;
struct stat finfo;
size_t file_size;
#if defined (EFBIG)
@@ -189,6 +280,8 @@ read_history_range (filename, from, to)
int overflow_errno = EIO;
#endif
+ history_lines_read_from_file = 0;
+
buffer = last_ts = (char *)NULL;
input = history_filename (filename);
file = input ? open (input, O_RDONLY|O_BINARY, 0666) : -1;
@@ -253,6 +346,19 @@ read_history_range (filename, from, to)
bufend = buffer + chars_read;
current_line = 0;
+ /* Heuristic: the history comment character rarely changes, so assume we
+ have timestamps if the buffer starts with `#[:digit:]' and temporarily
+ set history_comment_char so timestamp parsing works right */
+ reset_comment_char = 0;
+ if (history_comment_char == '\0' && buffer[0] == '#' && isdigit ((unsigned char)buffer[1]))
+ {
+ history_comment_char = '#';
+ reset_comment_char = 1;
+ }
+
+ has_timestamps = HIST_TIMESTAMP_START (buffer);
+ history_multiline_entries += has_timestamps && history_write_timestamps;
+
/* Skip lines until we are at FROM. */
for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++)
if (*line_end == '\n')
@@ -279,7 +385,10 @@ read_history_range (filename, from, to)
{
if (HIST_TIMESTAMP_START(line_start) == 0)
{
- add_history (line_start);
+ if (last_ts == NULL && history_multiline_entries)
+ _hs_append_history_line (history_length - 1, line_start);
+ else
+ add_history (line_start);
if (last_ts)
{
add_history_time (last_ts);
@@ -301,6 +410,10 @@ read_history_range (filename, from, to)
line_start = line_end + 1;
}
+ history_lines_read_from_file = current_line;
+ if (reset_comment_char)
+ history_comment_char = '\0';
+
FREE (input);
#ifndef HISTORY_USE_MMAP
FREE (buffer);
@@ -311,23 +424,68 @@ read_history_range (filename, from, to)
return (0);
}
+/* Save FILENAME to BACK, handling case where FILENAME is a symlink
+ (e.g., ~/.bash_history -> .histfiles/.bash_history.$HOSTNAME) */
+static int
+histfile_backup (filename, back)
+ const char *filename;
+ const char *back;
+{
+#if defined (HAVE_READLINK)
+ char linkbuf[PATH_MAX+1];
+ ssize_t n;
+
+ /* Follow to target of symlink to avoid renaming symlink itself */
+ if ((n = readlink (filename, linkbuf, sizeof (linkbuf) - 1)) > 0)
+ {
+ linkbuf[n] = '\0';
+ return (rename (linkbuf, back));
+ }
+#endif
+ return (rename (filename, back));
+}
+
+/* Restore ORIG from BACKUP handling case where ORIG is a symlink
+ (e.g., ~/.bash_history -> .histfiles/.bash_history.$HOSTNAME) */
+static int
+histfile_restore (backup, orig)
+ const char *backup;
+ const char *orig;
+{
+#if defined (HAVE_READLINK)
+ char linkbuf[PATH_MAX+1];
+ ssize_t n;
+
+ /* Follow to target of symlink to avoid renaming symlink itself */
+ if ((n = readlink (orig, linkbuf, sizeof (linkbuf) - 1)) > 0)
+ {
+ linkbuf[n] = '\0';
+ return (rename (backup, linkbuf));
+ }
+#endif
+ return (rename (backup, orig));
+}
+
/* Truncate the history file FNAME, leaving only LINES trailing lines.
- If FNAME is NULL, then use ~/.history. Returns 0 on success, errno
- on failure. */
+ 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. */
int
history_truncate_file (fname, lines)
const char *fname;
int lines;
{
- char *buffer, *filename, *bp, *bp1; /* bp1 == bp+1 */
- int file, chars_read, rv;
+ char *buffer, *filename, *tempname, *bp, *bp1; /* bp1 == bp+1 */
+ int file, chars_read, rv, orig_lines, exists, r;
struct stat finfo;
size_t file_size;
+ history_lines_written_to_file = 0;
+
buffer = (char *)NULL;
filename = history_filename (fname);
+ tempname = 0;
file = filename ? open (filename, O_RDONLY|O_BINARY, 0666) : -1;
- rv = 0;
+ rv = exists = 0;
/* Don't try to truncate non-regular files. */
if (file == -1 || fstat (file, &finfo) == -1)
@@ -337,6 +495,7 @@ history_truncate_file (fname, lines)
close (file);
goto truncate_exit;
}
+ exists = 1;
if (S_ISREG (finfo.st_mode) == 0)
{
@@ -368,6 +527,7 @@ history_truncate_file (fname, lines)
buffer = (char *)malloc (file_size + 1);
if (buffer == 0)
{
+ rv = errno;
close (file);
goto truncate_exit;
}
@@ -381,6 +541,7 @@ history_truncate_file (fname, lines)
goto truncate_exit;
}
+ orig_lines = lines;
/* Count backwards from the end of buffer until we have passed
LINES lines. bp1 is set funny initially. But since bp[1] can't
be a comment character (since it's off the end) and *bp can't be
@@ -409,29 +570,56 @@ history_truncate_file (fname, lines)
/* Write only if there are more lines in the file than we want to
truncate to. */
- if (bp > buffer && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0600)) != -1))
+ if (bp <= buffer)
+ {
+ rv = 0;
+ /* No-op if LINES == 0 at this point */
+ history_lines_written_to_file = orig_lines - lines;
+ goto truncate_exit;
+ }
+
+ tempname = history_tempfile (filename);
+
+ if ((file = open (tempname, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0600)) != -1)
{
if (write (file, bp, chars_read - (bp - buffer)) < 0)
rv = errno;
-#if defined (__BEOS__)
- /* BeOS ignores O_TRUNC. */
- ftruncate (file, chars_read - (bp - buffer));
-#endif
-
if (close (file) < 0 && rv == 0)
rv = errno;
}
+ else
+ rv = errno;
truncate_exit:
-
FREE (buffer);
+ history_lines_written_to_file = orig_lines - lines;
+
+ if (rv == 0 && filename && tempname)
+ rv = histfile_restore (tempname, filename);
+
+ if (rv != 0)
+ {
+ if (tempname)
+ unlink (tempname);
+ history_lines_written_to_file = 0;
+ }
+
+ /* Make sure the new filename is owned by the same user as the old. If one
+ 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)
+ r = chown (filename, finfo.st_uid, finfo.st_gid);
+
xfree (filename);
+ FREE (tempname);
+
return rv;
}
-/* Workhorse function for writing history. Writes NELEMENT entries
+/* Workhorse function for writing history. Writes the last NELEMENT entries
from the history list to FILENAME. OVERWRITE is non-zero if you
wish to replace FILENAME with the entries. */
static int
@@ -440,20 +628,23 @@ history_do_write (filename, nelements, overwrite)
int nelements, overwrite;
{
register int i;
- char *output, *bakname;
- int file, mode, rv;
+ char *output, *tempname, *histname;
+ int file, mode, rv, exists;
+ struct stat finfo;
#ifdef HISTORY_USE_MMAP
size_t cursize;
+ history_lines_written_to_file = 0;
+
mode = overwrite ? O_RDWR|O_CREAT|O_TRUNC|O_BINARY : O_RDWR|O_APPEND|O_BINARY;
#else
mode = overwrite ? O_WRONLY|O_CREAT|O_TRUNC|O_BINARY : O_WRONLY|O_APPEND|O_BINARY;
#endif
- output = history_filename (filename);
- bakname = (overwrite && output) ? history_backupfile (output) : 0;
+ histname = history_filename (filename);
+ exists = histname ? (stat (histname, &finfo) == 0) : 0;
- if (output && bakname)
- rename (output, bakname);
+ tempname = (overwrite && exists && S_ISREG (finfo.st_mode)) ? history_tempfile (histname) : 0;
+ output = tempname ? tempname : histname;
file = output ? open (output, mode, 0600) : -1;
rv = 0;
@@ -461,10 +652,8 @@ history_do_write (filename, nelements, overwrite)
if (file == -1)
{
rv = errno;
- if (output && bakname)
- rename (bakname, output);
- FREE (output);
- FREE (bakname);
+ FREE (histname);
+ FREE (tempname);
return (rv);
}
@@ -506,10 +695,10 @@ history_do_write (filename, nelements, overwrite)
mmap_error:
rv = errno;
close (file);
- if (output && bakname)
- rename (bakname, output);
- FREE (output);
- FREE (bakname);
+ if (tempname)
+ unlink (tempname);
+ FREE (histname);
+ FREE (tempname);
return rv;
}
#else
@@ -518,10 +707,10 @@ mmap_error:
{
rv = errno;
close (file);
- if (output && bakname)
- rename (bakname, output);
- FREE (output);
- FREE (bakname);
+ if (tempname)
+ unlink (tempname);
+ FREE (histname);
+ FREE (tempname);
return rv;
}
#endif
@@ -540,7 +729,7 @@ mmap_error:
}
#ifdef HISTORY_USE_MMAP
- if (msync (buffer, buffer_size, 0) != 0 || munmap (buffer, buffer_size) != 0)
+ if (msync (buffer, buffer_size, MS_ASYNC) != 0 || munmap (buffer, buffer_size) != 0)
rv = errno;
#else
if (write (file, buffer, buffer_size) < 0)
@@ -549,16 +738,30 @@ mmap_error:
#endif
}
+ history_lines_written_to_file = nelements;
+
if (close (file) < 0 && rv == 0)
rv = errno;
- if (rv != 0 && output && bakname)
- rename (bakname, output);
- else if (rv == 0 && bakname)
- unlink (bakname);
+ if (rv == 0 && histname && tempname)
+ rv = histfile_restore (tempname, histname);
+
+ if (rv != 0)
+ {
+ if (tempname)
+ unlink (tempname);
+ history_lines_written_to_file = 0;
+ }
+
+ /* Make sure the new filename is owned by the same user as the old. If one
+ 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)
+ mode = chown (histname, finfo.st_uid, finfo.st_gid);
- FREE (output);
- FREE (bakname);
+ FREE (histname);
+ FREE (tempname);
return (rv);
}
diff --git a/histlib.h b/histlib.h
index c938a10..28cad14 100644
--- a/histlib.h
+++ b/histlib.h
@@ -76,7 +76,4 @@ extern char *strchr ();
#define HISTORY_APPEND 0
#define HISTORY_OVERWRITE 1
-/* Some variable definitions shared across history source files. */
-extern int history_offset;
-
#endif /* !_HISTLIB_H_ */
diff --git a/history.c b/history.c
index 1181e7c..3b8dbc5 100644
--- a/history.c
+++ b/history.c
@@ -1,6 +1,6 @@
/* history.c -- standalone history library */
-/* Copyright (C) 1989-2011 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2015 Free Software Foundation, Inc.
This file contains the GNU History Library (History), a set of
routines for managing the text of previously typed lines.
@@ -43,11 +43,20 @@
# include <unistd.h>
#endif
+#include <errno.h>
+
#include "history.h"
#include "histlib.h"
#include "xmalloc.h"
+#if !defined (errno)
+extern int errno;
+#endif
+
+/* How big to make the_history when we first allocate it. */
+#define DEFAULT_HISTORY_INITIAL_SIZE 502
+
/* The number of slots to increase the_history by. */
#define DEFAULT_HISTORY_GROW_SIZE 50
@@ -236,7 +245,10 @@ history_get_time (hist)
ts = hist->timestamp;
if (ts[0] != history_comment_char)
return 0;
+ errno = 0;
t = (time_t) strtol (ts + 1, (char **)NULL, 10); /* XXX - should use strtol() here */
+ if (errno == ERANGE)
+ return (time_t)0;
return t;
}
@@ -279,9 +291,14 @@ add_history (string)
if (the_history[0])
(void) free_history_entry (the_history[0]);
- /* Copy the rest of the entries, moving down one slot. */
+ /* Copy the rest of the entries, moving down one slot. Copy includes
+ trailing NULL. */
+#if 0
for (i = 0; i < history_length; i++)
the_history[i] = the_history[i + 1];
+#else
+ memmove (the_history, the_history + 1, history_length * sizeof (HIST_ENTRY *));
+#endif
history_base++;
}
@@ -289,7 +306,10 @@ add_history (string)
{
if (history_size == 0)
{
- history_size = DEFAULT_HISTORY_GROW_SIZE;
+ if (history_stifled && history_max_entries > 0)
+ history_size = history_max_entries + 2;
+ else
+ history_size = DEFAULT_HISTORY_INITIAL_SIZE;
the_history = (HIST_ENTRY **)xmalloc (history_size * sizeof (HIST_ENTRY *));
history_length = 1;
}
@@ -305,7 +325,7 @@ add_history (string)
}
}
- temp = alloc_history_entry (string, hist_inittime ());
+ temp = alloc_history_entry ((char *)string, hist_inittime ());
the_history[history_length] = (HIST_ENTRY *)NULL;
the_history[history_length - 1] = temp;
@@ -387,6 +407,30 @@ replace_history_entry (which, line, data)
return (old_value);
}
+/* Append LINE to the history line at offset WHICH, adding a newline to the
+ end of the current line first. This can be used to construct multi-line
+ history entries while reading lines from the history file. */
+void
+_hs_append_history_line (which, line)
+ int which;
+ const char *line;
+{
+ HIST_ENTRY *hent;
+ size_t newlen, curlen;
+ char *newline;
+
+ hent = the_history[which];
+ curlen = strlen (hent->line);
+ newlen = curlen + strlen (line) + 2;
+ newline = realloc (hent->line, newlen);
+ if (newline)
+ {
+ hent->line = newline;
+ hent->line[curlen++] = '\n';
+ strcpy (hent->line + curlen, line);
+ }
+}
+
/* Replace the DATA in the specified history entries, replacing OLD with
NEW. WHICH says which one(s) to replace: WHICH == -1 means to replace
all of the history entries where entry->data == OLD; WHICH == -2 means
@@ -394,7 +438,7 @@ replace_history_entry (which, line, data)
WHICH >= 0 means to replace that particular history entry's data, as
long as it matches OLD. */
void
-replace_history_data (which, old, new)
+_hs_replace_history_data (which, old, new)
int which;
histdata_t *old, *new;
{
diff --git a/history.h b/history.h
index c8af47e..8ce7c80 100644
--- a/history.h
+++ b/history.h
@@ -1,6 +1,6 @@
/* history.h -- the names of functions that you can call in history. */
-/* Copyright (C) 1989-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2015 Free Software Foundation, Inc.
This file contains the GNU History Library (History), a set of
routines for managing the text of previously typed lines.
@@ -91,6 +91,13 @@ extern void add_history_time PARAMS((const char *));
elements are numbered from 0. */
extern HIST_ENTRY *remove_history PARAMS((int));
+/* Allocate a history entry consisting of STRING and TIMESTAMP and return
+ a pointer to it. */
+extern HIST_ENTRY *alloc_history_entry PARAMS((char *, char *));
+
+/* Copy the history entry H, but not the (opaque) data pointer */
+extern HIST_ENTRY *copy_history_entry PARAMS((HIST_ENTRY *));
+
/* Free the history entry H and return any application-specific data
associated with it. */
extern histdata_t free_history_entry PARAMS((HIST_ENTRY *));
@@ -241,6 +248,11 @@ extern char **history_tokenize PARAMS((const char *));
extern int history_base;
extern int history_length;
extern int history_max_entries;
+extern int history_offset;
+
+extern int history_lines_read_from_file;
+extern int history_lines_written_to_file;
+
extern char history_expansion_char;
extern char history_subst_char;
extern char *history_word_delimiters;
@@ -251,6 +263,10 @@ extern int history_quotes_inhibit_expansion;
extern int history_write_timestamps;
+/* These two are undocumented; the second is reserved for future use */
+extern int history_multiline_entries;
+extern int history_file_version;
+
/* Backwards compatibility */
extern int max_input_history;
diff --git a/input.c b/input.c
index f3f6d59..286897d 100644
--- a/input.c
+++ b/input.c
@@ -1,6 +1,6 @@
/* input.c -- character input functions for readline. */
-/* Copyright (C) 1994-2013 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2015 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.
@@ -95,6 +95,22 @@ static int ibuffer_space PARAMS((void));
static int rl_get_char PARAMS((int *));
static int rl_gather_tyi PARAMS((void));
+/* Windows isatty returns true for every character device, including the null
+ device, so we need to perform additional checks. */
+#if defined (_WIN32) && !defined (__CYGWIN__)
+#include <io.h>
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+
+int
+win32_isatty (int fd)
+{
+ return (_isatty (fd) ? ((((long) (HANDLE) _get_osfhandle (fd)) & 3) == 3) : 0);
+}
+
+#define isatty(x) win32_isatty(x)
+#endif
+
/* **************************************************************** */
/* */
/* Character Input Buffering */
@@ -185,6 +201,7 @@ rl_gather_tyi ()
#endif
chars_avail = 0;
+ input = 0;
tty = fileno (rl_instream);
#if defined (HAVE_SELECT)
@@ -199,11 +216,13 @@ rl_gather_tyi ()
#endif
result = -1;
-#if defined (FIONREAD)
errno = 0;
+#if defined (FIONREAD)
result = ioctl (tty, FIONREAD, &chars_avail);
if (result == -1 && errno == EIO)
return -1;
+ if (result == -1)
+ chars_avail = 0;
#endif
#if defined (O_NDELAY)
@@ -217,6 +236,8 @@ rl_gather_tyi ()
fcntl (tty, F_SETFL, tem);
if (chars_avail == -1 && errno == EAGAIN)
return 0;
+ if (chars_avail == -1 && errno == EIO)
+ return -1;
if (chars_avail == 0) /* EOF */
{
rl_stuff_char (EOF);
@@ -445,7 +466,7 @@ rl_read_key ()
if ((r = rl_gather_tyi ()) < 0) /* XXX - EIO */
{
rl_done = 1;
- return ('\n');
+ return (errno == EIO ? (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF) : '\n');
}
else if (r > 0) /* read something */
continue;
@@ -474,6 +495,10 @@ rl_getc (stream)
{
int result;
unsigned char c;
+#if defined (HAVE_PSELECT)
+ sigset_t empty_set;
+ fd_set readfds;
+#endif
while (1)
{
@@ -483,9 +508,17 @@ rl_getc (stream)
#if defined (__MINGW32__)
if (isatty (fileno (stream)))
- return (getch ());
+ return (_getch ()); /* "There is no error return." */
#endif
- result = read (fileno (stream), &c, sizeof (unsigned char));
+ result = 0;
+#if defined (HAVE_PSELECT)
+ sigemptyset (&empty_set);
+ FD_ZERO (&readfds);
+ FD_SET (fileno (stream), &readfds);
+ result = pselect (fileno (stream) + 1, &readfds, NULL, NULL, NULL, &empty_set);
+#endif
+ if (result >= 0)
+ result = read (fileno (stream), &c, sizeof (unsigned char));
if (result == sizeof (unsigned char))
return (c);
@@ -524,26 +557,42 @@ rl_getc (stream)
/* fprintf(stderr, "rl_getc: result = %d errno = %d\n", result, errno); */
+handle_error:
/* If the error that we received was EINTR, then try again,
this is simply an interrupted system call to read (). We allow
- the read to be interrupted if we caught SIGHUP or SIGTERM (but
- not SIGINT; let the signal handler deal with that), but if the
+ the read to be interrupted if we caught SIGHUP, SIGTERM, or any
+ of the other signals readline treats specially. If the
application sets an event hook, call it for other signals.
Otherwise (not EINTR), some error occurred, also signifying EOF. */
if (errno != EINTR)
return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF);
+ /* fatal signals of interest */
+#if defined (SIGHUP)
else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM)
+#else
+ else if (_rl_caught_signal == SIGTERM)
+#endif
return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF);
/* keyboard-generated signals of interest */
+#if defined (SIGQUIT)
else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT)
+#else
+ else if (_rl_caught_signal == SIGINT)
+#endif
RL_CHECK_SIGNALS ();
/* non-keyboard-generated signals of interest */
+#if defined (SIGWINCH)
+ else if (_rl_caught_signal == SIGWINCH)
+ RL_CHECK_SIGNALS ();
+#endif /* SIGWINCH */
+#if defined (SIGALRM)
else if (_rl_caught_signal == SIGALRM
-#if defined (SIGVTALRM)
+# if defined (SIGVTALRM)
|| _rl_caught_signal == SIGVTALRM
-#endif
+# endif
)
RL_CHECK_SIGNALS ();
+#endif /* SIGALRM */
if (rl_signal_event_hook)
(*rl_signal_event_hook) ();
diff --git a/isearch.c b/isearch.c
index 6f6a7a6..819fcbc 100644
--- a/isearch.c
+++ b/isearch.c
@@ -6,7 +6,7 @@
/* */
/* **************************************************************** */
-/* Copyright (C) 1987-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2015 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.
@@ -66,7 +66,6 @@ static int rl_search_history PARAMS((int, int));
static _rl_search_cxt *_rl_isearch_init PARAMS((int));
static void _rl_isearch_fini PARAMS((_rl_search_cxt *));
-static int _rl_isearch_cleanup PARAMS((_rl_search_cxt *, int));
/* Last line found by the current incremental search, so we don't `find'
identical lines many times in a row. Now part of isearch context. */
@@ -553,8 +552,20 @@ add_character:
do until we have a real isearch-undo. */
if (cxt->search_string_index == 0)
rl_ding ();
- else
+ else if (MB_CUR_MAX == 1 || rl_byte_oriented)
cxt->search_string[--cxt->search_string_index] = '\0';
+ else
+ {
+ wstart = _rl_find_prev_mbchar (cxt->search_string, cxt->search_string_index, MB_FIND_NONZERO);
+ if (wstart >= 0)
+ cxt->search_string[cxt->search_string_index = wstart] = '\0';
+ else
+ cxt->search_string[cxt->search_string_index = 0] = '\0';
+ }
+
+ if (cxt->search_string_index == 0)
+ rl_ding ();
+
break;
case -4: /* C-G, abort */
@@ -647,6 +658,12 @@ add_character:
for (cxt->sflags &= ~(SF_FOUND|SF_FAILED);; )
{
+ if (cxt->search_string_index == 0)
+ {
+ cxt->sflags |= SF_FAILED;
+ break;
+ }
+
limit = cxt->sline_len - cxt->search_string_index + 1;
/* Search the current line. */
@@ -716,7 +733,7 @@ add_character:
return 1;
}
-static int
+int
_rl_isearch_cleanup (cxt, r)
_rl_search_cxt *cxt;
int r;
diff --git a/kill.c b/kill.c
index 1a78783..696f193 100644
--- a/kill.c
+++ b/kill.c
@@ -1,6 +1,6 @@
/* kill.c -- kill ring management. */
-/* Copyright (C) 1994 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2015 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.
@@ -97,7 +97,7 @@ _rl_copy_to_kill_ring (text, append)
int slot;
/* First, find the slot to work with. */
- if (_rl_last_command_was_kill == 0)
+ if (_rl_last_command_was_kill == 0 || rl_kill_ring == 0)
{
/* Get a new slot. */
if (rl_kill_ring == 0)
@@ -278,7 +278,7 @@ rl_backward_kill_line (direction, ignore)
return (rl_kill_line (1, ignore));
else
{
- if (!rl_point)
+ if (rl_point == 0)
rl_ding ();
else
{
@@ -506,7 +506,7 @@ rl_yank (count, ignore)
if (rl_kill_ring == 0)
{
_rl_abort_internal ();
- return -1;
+ return 1;
}
_rl_set_mark_at_pos (rl_point);
@@ -528,7 +528,7 @@ rl_yank_pop (count, key)
!rl_kill_ring)
{
_rl_abort_internal ();
- return -1;
+ return 1;
}
l = strlen (rl_kill_ring[rl_kill_index]);
@@ -546,10 +546,44 @@ rl_yank_pop (count, key)
else
{
_rl_abort_internal ();
- return -1;
+ return 1;
}
}
+#if defined (VI_MODE)
+int
+rl_vi_yank_pop (count, key)
+ int count, key;
+{
+ int l, n;
+
+ if (((rl_last_func != rl_vi_yank_pop) && (rl_last_func != rl_vi_put)) ||
+ !rl_kill_ring)
+ {
+ _rl_abort_internal ();
+ return 1;
+ }
+
+ l = strlen (rl_kill_ring[rl_kill_index]);
+ n = rl_point - l;
+ if (n >= 0 && STREQN (rl_line_buffer + n, rl_kill_ring[rl_kill_index], l))
+ {
+ rl_delete_text (n, rl_point);
+ rl_point = n;
+ rl_kill_index--;
+ if (rl_kill_index < 0)
+ rl_kill_index = rl_kill_ring_length - 1;
+ rl_vi_put (1, 'p');
+ return 0;
+ }
+ else
+ {
+ _rl_abort_internal ();
+ return 1;
+ }
+}
+#endif /* VI_MODE */
+
/* Yank the COUNTh argument from the previous history line, skipping
HISTORY_SKIP lines before looking for the `previous line'. */
static int
@@ -575,7 +609,7 @@ rl_yank_nth_arg_internal (count, ignore, history_skip)
if (entry == 0)
{
rl_ding ();
- return -1;
+ return 1;
}
arg = history_arg_extract (count, count, entry->line);
@@ -583,7 +617,7 @@ rl_yank_nth_arg_internal (count, ignore, history_skip)
{
rl_ding ();
FREE (arg);
- return -1;
+ return 1;
}
rl_begin_undo_group ();
@@ -656,8 +690,58 @@ rl_yank_last_arg (count, key)
return retval;
}
-/* A special paste command for users of Cygnus's cygwin32. */
-#if defined (__CYGWIN__)
+/* 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. */
+int
+rl_bracketed_paste_begin (count, key)
+ int count, key;
+{
+ int retval, c;
+ size_t len, cap;
+ char *buf;
+
+ retval = 1;
+ len = 0;
+ buf = xmalloc (cap = 64);
+
+ RL_SETSTATE (RL_STATE_MOREINPUT);
+ while ((c = rl_read_key ()) >= 0)
+ {
+ if (RL_ISSTATE (RL_STATE_MACRODEF))
+ _rl_add_macro_char (c);
+
+ if (c == '\r') /* XXX */
+ c = '\n';
+
+ if (len == cap)
+ buf = xrealloc (buf, cap *= 2);
+
+ buf[len++] = c;
+ if (len >= BRACK_PASTE_SLEN && c == BRACK_PASTE_LAST &&
+ STREQN (buf + len - BRACK_PASTE_SLEN, BRACK_PASTE_SUFF, BRACK_PASTE_SLEN))
+ {
+ len -= BRACK_PASTE_SLEN;
+ break;
+ }
+ }
+ RL_UNSETSTATE (RL_STATE_MOREINPUT);
+
+ if (c >= 0)
+ {
+ if (len == cap)
+ buf = xrealloc (buf, cap + 1);
+ buf[len] = '\0';
+ retval = rl_insert_text (buf);
+ }
+
+ xfree (buf);
+ return (retval);
+}
+
+/* A special paste command for Windows users.. */
+#if defined (_WIN32)
#include <windows.h>
int
@@ -691,4 +775,4 @@ rl_paste_from_clipboard (count, key)
}
return (0);
}
-#endif /* __CYGWIN__ */
+#endif /* _WIN32 */
diff --git a/macro.c b/macro.c
index b99a1a6..c7017cc 100644
--- a/macro.c
+++ b/macro.c
@@ -219,7 +219,7 @@ rl_start_kbd_macro (ignore1, ignore2)
if (RL_ISSTATE (RL_STATE_MACRODEF))
{
_rl_abort_internal ();
- return -1;
+ return 1;
}
if (rl_explicit_arg)
@@ -244,7 +244,7 @@ rl_end_kbd_macro (count, ignore)
if (RL_ISSTATE (RL_STATE_MACRODEF) == 0)
{
_rl_abort_internal ();
- return -1;
+ return 1;
}
current_macro_index -= rl_key_sequence_length;
diff --git a/mbutil.c b/mbutil.c
index b036e0c..314a49b 100644
--- a/mbutil.c
+++ b/mbutil.c
@@ -1,6 +1,6 @@
/* mbutil.c -- readline multibyte character utility functions */
-/* Copyright (C) 2001-2009 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2015 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.
@@ -145,7 +145,7 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero)
return point;
}
-static int
+/*static*/ int
_rl_find_prev_mbchar_internal (string, seed, find_non_zero)
char *string;
int seed, find_non_zero;
diff --git a/misc.c b/misc.c
index a890cda..f7acdee 100644
--- a/misc.c
+++ b/misc.c
@@ -1,6 +1,6 @@
/* misc.c -- miscellaneous bindable readline functions. */
-/* Copyright (C) 1987-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2015 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.
@@ -56,8 +56,6 @@
static int rl_digit_loop PARAMS((void));
static void _rl_history_set_point PARAMS((void));
-extern int history_offset;
-
/* Forward declarations used in this file */
void _rl_free_history_entry PARAMS((HIST_ENTRY *));
@@ -128,7 +126,7 @@ _rl_arg_dispatch (cxt, c)
/* If we see a key bound to `universal-argument' after seeing digits,
it ends the argument but is otherwise ignored. */
- if (_rl_keymap[c].type == ISFUNC && _rl_keymap[c].function == rl_universal_argument)
+ if (c >= 0 && _rl_keymap[c].type == ISFUNC && _rl_keymap[c].function == rl_universal_argument)
{
if ((cxt & NUM_SAWDIGITS) == 0)
{
@@ -268,6 +266,8 @@ _rl_arg_callback (cxt)
int c, r;
c = _rl_arg_getchar ();
+ if (c < 0)
+ return (1); /* EOF */
if (_rl_argcxt & NUM_READONE)
{
diff --git a/parens.c b/parens.c
index 9c98488..ecc465c 100644
--- a/parens.c
+++ b/parens.c
@@ -1,6 +1,6 @@
/* parens.c -- implementation of matching parentheses feature. */
-/* Copyright (C) 1987, 1989, 1992-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987, 1989, 1992-2015 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,11 +57,7 @@ static int find_matching_open PARAMS((char *, int, int));
/* Non-zero means try to blink the matching open parenthesis when the
close parenthesis is inserted. */
-#if defined (HAVE_SELECT)
-int rl_blink_matching_paren = 1;
-#else /* !HAVE_SELECT */
int rl_blink_matching_paren = 0;
-#endif /* !HAVE_SELECT */
static int _paren_blink_usec = 500000;
@@ -72,16 +68,32 @@ _rl_enable_paren_matching (on_or_off)
int on_or_off;
{
if (on_or_off)
- { /* ([{ */
+ {
+ /* ([{ */
rl_bind_key_in_map (')', rl_insert_close, emacs_standard_keymap);
rl_bind_key_in_map (']', rl_insert_close, emacs_standard_keymap);
rl_bind_key_in_map ('}', rl_insert_close, emacs_standard_keymap);
+
+#if defined (VI_MODE)
+ /* ([{ */
+ rl_bind_key_in_map (')', rl_insert_close, vi_insertion_keymap);
+ rl_bind_key_in_map (']', rl_insert_close, vi_insertion_keymap);
+ rl_bind_key_in_map ('}', rl_insert_close, vi_insertion_keymap);
+#endif
}
else
- { /* ([{ */
+ {
+ /* ([{ */
rl_bind_key_in_map (')', rl_insert, emacs_standard_keymap);
rl_bind_key_in_map (']', rl_insert, emacs_standard_keymap);
rl_bind_key_in_map ('}', rl_insert, emacs_standard_keymap);
+
+#if defined (VI_MODE)
+ /* ([{ */
+ rl_bind_key_in_map (')', rl_insert, vi_insertion_keymap);
+ rl_bind_key_in_map (']', rl_insert, vi_insertion_keymap);
+ rl_bind_key_in_map ('}', rl_insert, vi_insertion_keymap);
+#endif
}
}
@@ -117,7 +129,7 @@ rl_insert_close (count, invoking_key)
/* Emacs might message or ring the bell here, but I don't. */
if (match_point < 0)
- return -1;
+ return 1;
FD_ZERO (&readfds);
FD_SET (fileno (rl_instream), &readfds);
diff --git a/patchlevel b/patchlevel
index 6c10f12..d8c9df7 100644
--- a/patchlevel
+++ b/patchlevel
@@ -1,3 +1,3 @@
# Do not edit -- exists only for use by patch
-8
+0
diff --git a/posixjmp.h b/posixjmp.h
index 98cf718..9c7e99e 100644
--- a/posixjmp.h
+++ b/posixjmp.h
@@ -1,6 +1,6 @@
/* posixjmp.h -- wrapper for setjmp.h with changes for POSIX systems. */
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
+/* Copyright (C) 1987,1991-2015 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -27,16 +27,20 @@
#if defined (HAVE_POSIX_SIGSETJMP)
# define procenv_t sigjmp_buf
-# if !defined (__OPENNT)
-# undef setjmp
-# define setjmp(x) sigsetjmp((x), 1)
-# define setjmp_nosigs(x) sigsetjmp((x), 0)
-# undef longjmp
-# define longjmp(x, n) siglongjmp((x), (n))
-# endif /* !__OPENNT */
+
+# define setjmp_nosigs(x) sigsetjmp((x), 0)
+# define setjmp_sigs(x) sigsetjmp((x), 1)
+
+# define _rl_longjmp(x, n) siglongjmp((x), (n))
+# define sh_longjmp(x, n) siglongjmp((x), (n))
#else
# define procenv_t jmp_buf
-# define setjmp_nosigs setjmp
+
+# define setjmp_nosigs setjmp
+# define setjmp_sigs setjmp
+
+# define _rl_longjmp(x, n) longjmp((x), (n))
+# define sh_longjmp(x, n) longjmp((x), (n))
#endif
#endif /* _POSIXJMP_H_ */
diff --git a/readline.c b/readline.c
index abb29a0..e51df4f 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-2013 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2016 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.
@@ -94,6 +94,8 @@ static void readline_initialize_everything PARAMS((void));
static void bind_arrow_keys_internal PARAMS((Keymap));
static void bind_arrow_keys PARAMS((void));
+static void bind_bracketed_paste_prefix PARAMS((void));
+
static void readline_default_bindings PARAMS((void));
static void reset_default_bindings PARAMS((void));
@@ -149,7 +151,7 @@ static int running_in_emacs;
#endif
/* Flags word encapsulating the current readline state. */
-int rl_readline_state = RL_STATE_NONE;
+unsigned long rl_readline_state = RL_STATE_NONE;
/* The current offset in the current input line. */
int rl_point;
@@ -306,6 +308,11 @@ int _rl_echo_control_chars = 1;
the editing mode: @ for emacs, : for vi-command, + for vi-insert. */
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;
+
/* **************************************************************** */
/* */
/* Top Level Functions */
@@ -379,7 +386,7 @@ readline (prompt)
RL_SETSTATE (RL_STATE_CALLBACK);
#endif
-#if HAVE_DECL_AUDIT_TTY && defined (ENABLE_TTY_AUDIT_SUPPORT)
+#if HAVE_DECL_AUDIT_USER_TTY && defined (HAVE_LIBAUDIT_H) && defined (ENABLE_TTY_AUDIT_SUPPORT)
if (value)
_rl_audit_tty (value);
#endif
@@ -525,10 +532,10 @@ readline_internal_charloop ()
static int lastc, eof_found;
int c, code, lk;
- lastc = -1;
- eof_found = 0;
+ lastc = EOF;
#if !defined (READLINE_CALLBACKS)
+ eof_found = 0;
while (rl_done == 0)
{
#endif
@@ -556,8 +563,7 @@ readline_internal_charloop ()
{
/* Then initialize the argument and number of keys read. */
_rl_reset_argument ();
- rl_key_sequence_length = 0;
- rl_executing_keyseq[0] = 0;
+ rl_executing_keyseq[rl_key_sequence_length = 0] = '\0';
}
RL_SETSTATE(RL_STATE_READCMD);
@@ -579,15 +585,36 @@ readline_internal_charloop ()
#endif
}
- /* EOF typed to a non-blank line is a <NL>. If we want to change this,
- to force any existing line to be ignored when read(2) reads EOF,
- for example, this is the place to change. */
+ /* EOF typed to a non-blank line is ^D the first time, EOF the second
+ time in a row. This won't return any partial line read from the tty.
+ If we want to change this, to force any existing line to be returned
+ when read(2) reads EOF, for example, this is the place to change. */
if (c == EOF && rl_end)
- c = NEWLINE;
+ {
+ if (RL_SIG_RECEIVED ())
+ {
+ RL_CHECK_SIGNALS ();
+ if (rl_signal_event_hook)
+ (*rl_signal_event_hook) (); /* XXX */
+ }
+
+ /* XXX - reading two consecutive EOFs returns EOF */
+ if (RL_ISSTATE (RL_STATE_TERMPREPPED))
+ {
+ if (lastc == _rl_eof_char || lastc == EOF)
+ rl_end = 0;
+ else
+ c = _rl_eof_char;
+ }
+ else
+ c = NEWLINE;
+ }
/* The character _rl_eof_char typed to blank line, and not as the
- previous character is interpreted as EOF. */
- if (((c == _rl_eof_char && lastc != c) || c == EOF) && !rl_end)
+ previous character is interpreted as EOF. This doesn't work when
+ READLINE_CALLBACKS is defined, so hitting a series of ^Ds will
+ erase all the chars on the line and then return EOF. */
+ if (((c == _rl_eof_char && lastc != c) || c == EOF) && rl_end == 0)
{
#if defined (READLINE_CALLBACKS)
RL_SETSTATE(RL_STATE_DONE);
@@ -818,7 +845,7 @@ _rl_dispatch_subseq (key, map, got_subseq)
/* Special case rl_do_lowercase_version (). */
if (func == rl_do_lowercase_version)
/* Should we do anything special if key == ANYOTHERKEY? */
- return (_rl_dispatch (_rl_to_lower (key), map));
+ return (_rl_dispatch (_rl_to_lower ((unsigned char)key), map));
rl_executing_keymap = map;
rl_executing_key = key;
@@ -888,8 +915,10 @@ _rl_dispatch_subseq (key, map, got_subseq)
default) or a timeout determined by the value of `keyseq-timeout' */
/* _rl_keyseq_timeout specified in milliseconds; _rl_input_queued
takes microseconds, so multiply by 1000 */
- if (rl_editing_mode == vi_mode && key == ESC && map == vi_insertion_keymap
- && _rl_input_queued ((_rl_keyseq_timeout > 0) ? _rl_keyseq_timeout*1000 : 0) == 0)
+ if (rl_editing_mode == vi_mode && key == ESC && map == vi_insertion_keymap &&
+ (RL_ISSTATE (RL_STATE_INPUTPENDING|RL_STATE_MACROINPUT) == 0) &&
+ _rl_pushed_input_available () == 0 &&
+ _rl_input_queued ((_rl_keyseq_timeout > 0) ? _rl_keyseq_timeout*1000 : 0) == 0)
return (_rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key)));
#endif
@@ -900,6 +929,16 @@ _rl_dispatch_subseq (key, map, got_subseq)
/* Allocate new context here. Use linked contexts (linked through
cxt->ocxt) to simulate recursion */
#if defined (READLINE_CALLBACKS)
+# if defined (VI_MODE)
+ /* If we're redoing a vi mode command and we know there is a shadowed
+ function corresponding to this key, just call it -- all the redoable
+ vi mode commands already have all the input they need, and rl_vi_redo
+ assumes that one call to rl_dispatch is sufficient to complete the
+ command. */
+ if (_rl_vi_redoing && RL_ISSTATE (RL_STATE_CALLBACK) &&
+ map[ANYOTHERKEY].function != 0)
+ return (_rl_subseq_result (-2, map, key, got_subseq));
+# endif
if (RL_ISSTATE (RL_STATE_CALLBACK))
{
/* Return 0 only the first time, to indicate success to
@@ -947,7 +986,7 @@ _rl_dispatch_subseq (key, map, got_subseq)
}
else
{
- _rl_abort_internal ();
+ _rl_abort_internal (); /* XXX */
return -1;
}
break;
@@ -962,6 +1001,7 @@ _rl_dispatch_subseq (key, map, got_subseq)
}
break;
}
+
#if defined (VI_MODE)
if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
key != ANYOTHERKEY &&
@@ -994,22 +1034,27 @@ _rl_subseq_result (r, map, key, got_subseq)
type = m[ANYOTHERKEY].type;
func = m[ANYOTHERKEY].function;
if (type == ISFUNC && func == rl_do_lowercase_version)
- r = _rl_dispatch (_rl_to_lower (key), map);
- else if (type == ISFUNC && func == rl_insert)
+ r = _rl_dispatch (_rl_to_lower ((unsigned char)key), map);
+ else if (type == ISFUNC)
{
- /* If the function that was shadowed was self-insert, we
- somehow need a keymap with map[key].func == self-insert.
- Let's use this one. */
+ /* If we shadowed a function, whatever it is, we somehow need a
+ keymap with map[key].func == shadowed-function.
+ Let's use this one. Then we can dispatch using the original
+ key, since there are commands (e.g., in vi mode) for which it
+ matters. */
nt = m[key].type;
nf = m[key].function;
m[key].type = type;
m[key].function = func;
- r = _rl_dispatch (key, m);
+ /* Don't change _rl_dispatching_keymap, set it here */
+ _rl_dispatching_keymap = map; /* previous map */
+ r = _rl_dispatch_subseq (key, m, 0);
m[key].type = nt;
m[key].function = nf;
}
else
+ /* We probably shadowed a keymap, so keep going. */
r = _rl_dispatch (ANYOTHERKEY, m);
}
else if (r && map[ANYOTHERKEY].function)
@@ -1179,13 +1224,17 @@ readline_initialize_everything ()
/* Try to bind a common arrow key prefix, if not already bound. */
bind_arrow_keys ();
+ /* Bind the bracketed paste prefix assuming that the user will enable
+ it on terminals that support it. */
+ bind_bracketed_paste_prefix ();
+
/* If the completion parser's default word break characters haven't
been set yet, then do so now. */
if (rl_completer_word_break_characters == (char *)NULL)
rl_completer_word_break_characters = (char *)rl_basic_word_break_characters;
#if defined (COLOR_SUPPORT)
- if (_rl_colored_stats)
+ if (_rl_colored_stats || _rl_colored_completion_prefix)
_rl_parse_colors ();
#endif
@@ -1289,6 +1338,22 @@ bind_arrow_keys ()
#endif
}
+static void
+bind_bracketed_paste_prefix ()
+{
+ Keymap xkeymap;
+
+ xkeymap = _rl_keymap;
+
+ _rl_keymap = emacs_standard_keymap;
+ rl_bind_keyseq_if_unbound (BRACK_PASTE_PREF, rl_bracketed_paste_begin);
+
+ _rl_keymap = vi_insertion_keymap;
+ rl_bind_keyseq_if_unbound (BRACK_PASTE_PREF, rl_bracketed_paste_begin);
+
+ _rl_keymap = xkeymap;
+}
+
/* **************************************************************** */
/* */
/* Saving and Restoring Readline's state */
@@ -1317,6 +1382,7 @@ rl_save_state (sp)
sp->lastfunc = rl_last_func;
sp->insmode = rl_insert_mode;
sp->edmode = rl_editing_mode;
+ sp->kseq = rl_executing_keyseq;
sp->kseqlen = rl_key_sequence_length;
sp->inf = rl_instream;
sp->outf = rl_outstream;
@@ -1326,6 +1392,12 @@ rl_save_state (sp)
sp->catchsigs = rl_catch_signals;
sp->catchsigwinch = rl_catch_sigwinch;
+ sp->entryfunc = rl_completion_entry_function;
+ sp->menuentryfunc = rl_menu_completion_entry_function;
+ sp->ignorefunc = rl_ignore_some_completions_function;
+ sp->attemptfunc = rl_attempted_completion_function;
+ sp->wordbreakchars = rl_completer_word_break_characters;
+
return (0);
}
@@ -1351,6 +1423,7 @@ rl_restore_state (sp)
rl_last_func = sp->lastfunc;
rl_insert_mode = sp->insmode;
rl_editing_mode = sp->edmode;
+ rl_executing_keyseq = sp->kseq;
rl_key_sequence_length = sp->kseqlen;
rl_instream = sp->inf;
rl_outstream = sp->outf;
@@ -1360,5 +1433,11 @@ rl_restore_state (sp)
rl_catch_signals = sp->catchsigs;
rl_catch_sigwinch = sp->catchsigwinch;
+ rl_completion_entry_function = sp->entryfunc;
+ rl_menu_completion_entry_function = sp->menuentryfunc;
+ rl_ignore_some_completions_function = sp->ignorefunc;
+ rl_attempted_completion_function = sp->attemptfunc;
+ rl_completer_word_break_characters = sp->wordbreakchars;
+
return (0);
}
diff --git a/readline.h b/readline.h
index 08dcd2b..924bbfb 100644
--- a/readline.h
+++ b/readline.h
@@ -1,6 +1,6 @@
/* Readline.h -- the names of functions callable from within readline. */
-/* Copyright (C) 1987-2013 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2016 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 0x0603 /* Readline 6.3 */
-#define RL_VERSION_MAJOR 6
-#define RL_VERSION_MINOR 3
+#define RL_READLINE_VERSION 0x0700 /* Readline 7.0 */
+#define RL_VERSION_MAJOR 7
+#define RL_VERSION_MINOR 0
/* Readline data structures. */
@@ -172,8 +172,9 @@ extern int rl_yank PARAMS((int, int));
extern int rl_yank_pop PARAMS((int, int));
extern int rl_yank_nth_arg PARAMS((int, int));
extern int rl_yank_last_arg PARAMS((int, int));
-/* Not available unless __CYGWIN__ is defined. */
-#ifdef __CYGWIN__
+extern int rl_bracketed_paste_begin PARAMS((int, int));
+/* Not available unless _WIN32 is defined. */
+#if defined (_WIN32)
extern int rl_paste_from_clipboard PARAMS((int, int));
#endif
@@ -219,6 +220,7 @@ extern int rl_insert_close PARAMS((int, int));
extern void rl_callback_handler_install PARAMS((const char *, rl_vcpfunc_t *));
extern void rl_callback_read_char PARAMS((void));
extern void rl_callback_handler_remove PARAMS((void));
+extern void rl_callback_sigcleanup PARAMS((void));
/* Things for vi mode. Not available unless readline is compiled -DVI_MODE. */
/* VI-mode bindable commands. */
@@ -247,9 +249,11 @@ extern int rl_vi_column PARAMS((int, int));
extern int rl_vi_delete_to PARAMS((int, int));
extern int rl_vi_change_to PARAMS((int, int));
extern int rl_vi_yank_to PARAMS((int, int));
+extern int rl_vi_yank_pop PARAMS((int, int));
extern int rl_vi_rubout PARAMS((int, int));
extern int rl_vi_delete PARAMS((int, int));
extern int rl_vi_back_to_indent PARAMS((int, int));
+extern int rl_vi_unix_word_rubout PARAMS((int, int));
extern int rl_vi_first_print PARAMS((int, int));
extern int rl_vi_char_search PARAMS((int, int));
extern int rl_vi_match PARAMS((int, int));
@@ -375,6 +379,7 @@ extern void rl_redisplay PARAMS((void));
extern int rl_on_new_line PARAMS((void));
extern int rl_on_new_line_with_prompt PARAMS((void));
extern int rl_forced_update_display PARAMS((void));
+extern int rl_clear_visible_line PARAMS((void));
extern int rl_clear_message PARAMS((void));
extern int rl_reset_line_state PARAMS((void));
extern int rl_crlf PARAMS((void));
@@ -389,6 +394,7 @@ extern int rl_show_char PARAMS((int));
/* Undocumented in texinfo manual. */
extern int rl_character_len PARAMS((int, int));
+extern void rl_redraw_prompt_last_line PARAMS((void));
/* Save and restore internal prompt redisplay information. */
extern void rl_save_prompt PARAMS((void));
@@ -436,6 +442,8 @@ extern void rl_cleanup_after_signal PARAMS((void));
extern void rl_reset_after_signal PARAMS((void));
extern void rl_free_line_state PARAMS((void));
+extern int rl_pending_signal PARAMS((void));
+
extern void rl_echo_signal_char PARAMS((int));
extern int rl_set_paren_blink_timeout PARAMS((int));
@@ -489,7 +497,7 @@ extern int rl_readline_version; /* e.g., 0x0402 */
extern int rl_gnu_readline_p;
/* Flags word encapsulating the current readline state. */
-extern int rl_readline_state;
+extern unsigned long rl_readline_state;
/* Says which editing mode readline is currently using. 1 means emacs mode;
0 means vi mode. */
@@ -634,7 +642,7 @@ extern rl_compentry_func_t *rl_completion_entry_function;
/* Optional generator for menu completion. Default is
rl_completion_entry_function (rl_filename_completion_function). */
- extern rl_compentry_func_t *rl_menu_completion_entry_function;
+extern rl_compentry_func_t *rl_menu_completion_entry_function;
/* If rl_ignore_some_completions_function is non-NULL it is the address
of a function to call after all of the possible matches have been
@@ -826,6 +834,14 @@ extern int rl_ignore_completion_duplicates;
completion character will be inserted as any other. */
extern int rl_inhibit_completion;
+/* Applications can set this to non-zero to have readline's signal handlers
+ installed during the entire duration of reading a complete line, as in
+ readline-6.2. This should be used with care, because it can result in
+ readline receiving signals and not handling them until it's called again
+ via rl_callback_read_char, thereby stealing them from the application.
+ By default, signal handlers are only active while readline is active. */
+extern int rl_persistent_signal_handlers;
+
/* Input error; can be returned by (*rl_getc_function) if readline is reading
a top-level command (RL_ISSTATE (RL_STATE_READCMD)). */
#define READERR (-2)
@@ -866,9 +882,10 @@ extern int rl_inhibit_completion;
#define RL_STATE_VIMOTION 0x0100000 /* reading vi motion arg */
#define RL_STATE_MULTIKEY 0x0200000 /* reading multiple-key command */
#define RL_STATE_VICMDONCE 0x0400000 /* entered vi command mode at least once */
-#define RL_STATE_REDISPLAYING 0x0800000 /* updating terminal display */
+#define RL_STATE_CHARSEARCH 0x0800000 /* vi mode char search */
+#define RL_STATE_REDISPLAYING 0x1000000 /* updating terminal display */
-#define RL_STATE_DONE 0x1000000 /* done; accepted line */
+#define RL_STATE_DONE 0x2000000 /* done; accepted line */
#define RL_SETSTATE(x) (rl_readline_state |= (x))
#define RL_UNSETSTATE(x) (rl_readline_state &= ~(x))
@@ -879,8 +896,8 @@ struct readline_state {
int point;
int end;
int mark;
- char *buffer;
int buflen;
+ char *buffer;
UNDO_LIST *ul;
char *prompt;
@@ -893,10 +910,12 @@ struct readline_state {
rl_command_func_t *lastfunc;
int insmode;
int edmode;
+ char *kseq;
int kseqlen;
+
+ int pendingin;
FILE *inf;
FILE *outf;
- int pendingin;
char *macro;
/* signal state */
@@ -906,9 +925,16 @@ struct readline_state {
/* search state */
/* completion state */
+ rl_compentry_func_t *entryfunc;
+ rl_compentry_func_t *menuentryfunc;
+ rl_compignore_func_t *ignorefunc;
+ rl_completion_func_t *attemptfunc;
+ char *wordbreakchars;
/* options state */
+ /* hook state */
+
/* reserved for future expansion, so the struct size doesn't change */
char reserved[64];
};
diff --git a/readline.pc.in b/readline.pc.in
new file mode 100644
index 0000000..fbfca8a
--- /dev/null
+++ b/readline.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: Readline
+Description: Gnu Readline library for command line editing
+URL: http://tiswww.cwru.edu/php/chet/readline/rltop.html
+Version: @LIBVERSION@
+Requires.private: tinfo
+Libs: -L${libdir} -lreadline
+Cflags: -I${includedir}/readline
diff --git a/rlconf.h b/rlconf.h
index 1a40afc..98c970a 100644
--- a/rlconf.h
+++ b/rlconf.h
@@ -1,6 +1,6 @@
/* rlconf.h -- readline configuration definitions */
-/* Copyright (C) 1992-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2015 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.
@@ -64,6 +64,16 @@
/* Define this if you want to enable code that talks to the Linux kernel
tty auditing system. */
-#define ENABLE_TTY_AUDIT_SUPPORT
+/* #define ENABLE_TTY_AUDIT_SUPPORT */
+
+/* Defaults for the various editing mode indicators, inserted at the beginning
+ of the last (maybe only) line of the prompt if show-mode-in-prompt is on */
+#define RL_EMACS_MODESTR_DEFAULT "@"
+#define RL_EMACS_MODESTR_DEFLEN 1
+
+#define RL_VI_INS_MODESTR_DEFAULT "(ins)"
+#define RL_VI_INS_MODESTR_DEFLEN 5
+#define RL_VI_CMD_MODESTR_DEFAULT "(cmd)"
+#define RL_VI_CMD_MODESTR_DEFLEN 5
#endif /* _RLCONF_H_ */
diff --git a/rlmbutil.h b/rlmbutil.h
index 06d85ab..4748a61 100644
--- a/rlmbutil.h
+++ b/rlmbutil.h
@@ -1,6 +1,6 @@
/* rlmbutil.h -- utility functions for multibyte characters. */
-/* Copyright (C) 2001-2009 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2015 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.
@@ -123,13 +123,53 @@ extern int _rl_walphabetic PARAMS((wchar_t));
#define MB_INVALIDCH(x) ((x) == (size_t)-1 || (x) == (size_t)-2)
#define MB_NULLWCH(x) ((x) == 0)
+/* Try and shortcut the printable ascii characters to cut down the number of
+ calls to a libc wcwidth() */
+static inline int
+_rl_wcwidth (wc)
+ wchar_t wc;
+{
+ switch (wc)
+ {
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': case '*':
+ case '+': case ',': case '-': case '.': case '/':
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>':
+ case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E':
+ case 'F': case 'G': case 'H': case 'I': case 'J':
+ case 'K': case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X': case 'Y':
+ case 'Z':
+ case '[': case '\\': case ']': case '^': case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j':
+ case 'k': case 'l': case 'm': case 'n': case 'o':
+ case 'p': case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x': case 'y':
+ case 'z': case '{': case '|': case '}': case '~':
+ return 1;
+ default:
+ return wcwidth (wc);
+ }
+}
+
/* Unicode combining characters range from U+0300 to U+036F */
#define UNICODE_COMBINING_CHAR(x) ((x) >= 768 && (x) <= 879)
#if defined (WCWIDTH_BROKEN)
-# define WCWIDTH(wc) ((_rl_utf8locale && UNICODE_COMBINING_CHAR(wc)) ? 0 : wcwidth(wc))
+# define WCWIDTH(wc) ((_rl_utf8locale && UNICODE_COMBINING_CHAR(wc)) ? 0 : _rl_wcwidth(wc))
+#else
+# define WCWIDTH(wc) _rl_wcwidth(wc)
+#endif
+
+#if defined (WCWIDTH_BROKEN)
+# define IS_COMBINING_CHAR(x) (WCWIDTH(x) == 0 && iswcntrl(x) == 0)
#else
-# define WCWIDTH(wc) wcwidth(wc)
+# define IS_COMBINING_CHAR(x) (WCWIDTH(x) == 0)
#endif
#else /* !HANDLE_MULTIBYTE */
diff --git a/rlprivate.h b/rlprivate.h
index 14a370d..fc3856a 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-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2015 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.
@@ -44,6 +44,7 @@
#define RL_SIG_RECEIVED() (_rl_caught_signal != 0)
#define RL_SIGINT_RECEIVED() (_rl_caught_signal == SIGINT)
+#define RL_SIGWINCH_RECEIVED() (_rl_caught_signal == SIGWINCH)
#define CUSTOM_REDISPLAY_FUNC() (rl_redisplay_function != rl_redisplay)
#define CUSTOM_INPUT_FUNC() (rl_getc_function != rl_getc)
@@ -124,10 +125,11 @@ typedef struct __rl_keyseq_context
int flags;
int subseq_arg;
int subseq_retval; /* XXX */
- Keymap dmap;
+ int okey;
+ Keymap dmap;
Keymap oldmap;
- int okey;
+
struct __rl_keyseq_context *ocxt;
int childval;
} _rl_keyseq_cxt;
@@ -185,6 +187,7 @@ extern int rl_visible_stats;
#endif /* VISIBLE_STATS */
#if defined (COLOR_SUPPORT)
extern int _rl_colored_stats;
+extern int _rl_colored_completion_prefix;
#endif
/* readline.c */
@@ -290,9 +293,20 @@ extern void _rl_scxt_dispose PARAMS((_rl_search_cxt *, int));
extern int _rl_isearch_dispatch PARAMS((_rl_search_cxt *, int));
extern int _rl_isearch_callback PARAMS((_rl_search_cxt *));
+extern int _rl_isearch_cleanup PARAMS((_rl_search_cxt *, int));
extern int _rl_search_getchar PARAMS((_rl_search_cxt *));
+/* kill.c */
+#define BRACK_PASTE_PREF "\033[200~"
+#define BRACK_PASTE_SUFF "\033[201~"
+
+#define BRACK_PASTE_LAST '~'
+#define BRACK_PASTE_SLEN 6
+
+#define BRACK_PASTE_INIT "\033[?2004h"
+#define BRACK_PASTE_FINI "\033[?2004l"
+
/* macro.c */
extern void _rl_with_macro_input PARAMS((char *));
extern int _rl_next_macro_key PARAMS((void));
@@ -334,6 +348,7 @@ extern int _rl_restore_tty_signals PARAMS((void));
/* search.c */
extern int _rl_nsearch_callback PARAMS((_rl_search_cxt *));
+extern int _rl_nsearch_cleanup PARAMS((_rl_search_cxt *, int));
/* signals.c */
extern void _rl_signal_handler PARAMS((int));
@@ -410,8 +425,10 @@ extern void _rl_vi_initialize_line PARAMS((void));
extern void _rl_vi_reset_last PARAMS((void));
extern void _rl_vi_set_last PARAMS((int, int, int));
extern int _rl_vi_textmod_command PARAMS((int));
+extern int _rl_vi_motion_command PARAMS((int));
extern void _rl_vi_done_inserting PARAMS((void));
extern int _rl_vi_domove_callback PARAMS((_rl_vimotion_cxt *));
+extern int _rl_vi_domove_motion_cleanup PARAMS((int, _rl_vimotion_cxt *));
/*************************************************************************
* Undocumented private variables *
@@ -446,6 +463,13 @@ extern int _rl_last_c_pos;
extern int _rl_suppress_redisplay;
extern int _rl_want_redisplay;
+extern char *_rl_emacs_mode_str;
+extern int _rl_emacs_modestr_len;
+extern char *_rl_vi_ins_mode_str;
+extern int _rl_vi_ins_modestr_len;
+extern char *_rl_vi_cmd_mode_str;
+extern int _rl_vi_cmd_modestr_len;
+
/* isearch.c */
extern char *_rl_isearch_terminators;
@@ -475,6 +499,7 @@ extern int _rl_bind_stty_chars;
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 char *_rl_comment_begin;
extern unsigned char _rl_parsing_conditionalized_out;
extern Keymap _rl_keymap;
@@ -524,12 +549,16 @@ extern int _rl_screenchars;
extern int _rl_terminal_can_insert;
extern int _rl_term_autowrap;
+/* text.c */
+extern int _rl_optimize_typeahead;
+
/* undo.c */
extern int _rl_doing_an_undo;
extern int _rl_undo_group_level;
/* vi_mode.c */
extern int _rl_vi_last_command;
+extern int _rl_vi_redoing;
extern _rl_vimotion_cxt *_rl_vimvcxt;
#endif /* _RL_PRIVATE_H_ */
diff --git a/rltty.c b/rltty.c
index 908bae1..b1c7929 100644
--- a/rltty.c
+++ b/rltty.c
@@ -1,10 +1,10 @@
/* rltty.c -- functions to prepare and restore the terminal for readline's
use. */
-/* Copyright (C) 1992-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2016 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.
+ for reading lines of text with interactive input and history editing.
Readline is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -37,11 +37,11 @@
#include "rldefs.h"
-#if defined (GWINSZ_IN_SYS_IOCTL)
-# include <sys/ioctl.h>
-#endif /* GWINSZ_IN_SYS_IOCTL */
-
#include "rltty.h"
+#if defined (HAVE_SYS_IOCTL_H)
+# include <sys/ioctl.h> /* include for declaration of ioctl */
+#endif
+
#include "readline.h"
#include "rlprivate.h"
@@ -60,7 +60,13 @@ static void set_winsize PARAMS((int));
/* */
/* **************************************************************** */
-/* Non-zero means that the terminal is in a prepped state. */
+/* Non-zero means that the terminal is in a prepped state. There are several
+ flags that are OR'd in to denote whether or not we have sent various
+ init strings to the terminal. */
+#define TPX_PREPPED 0x01
+#define TPX_BRACKPASTE 0x02
+#define TPX_METAKEY 0x04
+
static int terminal_prepped;
static _RL_TTY_CHARS _rl_tty_chars, _rl_last_tty_chars;
@@ -595,7 +601,7 @@ void
rl_prep_terminal (meta_flag)
int meta_flag;
{
- int tty;
+ int tty, nprep;
TIOTYPE tio;
if (terminal_prepped)
@@ -642,7 +648,7 @@ rl_prep_terminal (meta_flag)
/* If editing in vi mode, make sure we set the bindings in the
insertion keymap no matter what keymap we ended up in. */
if (rl_editing_mode == vi_mode)
- _rl_bind_tty_special_chars (vi_insertion_keymap, tio);
+ _rl_bind_tty_special_chars (vi_insertion_keymap, tio);
else
#endif
_rl_bind_tty_special_chars (_rl_keymap, tio);
@@ -659,8 +665,16 @@ rl_prep_terminal (meta_flag)
if (_rl_enable_keypad)
_rl_control_keypad (1);
+ nprep = TPX_PREPPED;
+
+ if (_rl_enable_bracketed_paste)
+ {
+ fprintf (rl_outstream, BRACK_PASTE_INIT);
+ nprep |= TPX_BRACKPASTE;
+ }
+
fflush (rl_outstream);
- terminal_prepped = 1;
+ terminal_prepped = nprep;
RL_SETSTATE(RL_STATE_TERMPREPPED);
_rl_release_sigint ();
@@ -672,7 +686,7 @@ rl_deprep_terminal ()
{
int tty;
- if (!terminal_prepped)
+ if (terminal_prepped == 0)
return;
/* Try to keep this function from being interrupted. */
@@ -680,6 +694,9 @@ rl_deprep_terminal ()
tty = rl_instream ? fileno (rl_instream) : fileno (stdin);
+ if (terminal_prepped & TPX_BRACKPASTE)
+ fprintf (rl_outstream, BRACK_PASTE_FINI);
+
if (_rl_enable_keypad)
_rl_control_keypad (0);
@@ -697,6 +714,19 @@ rl_deprep_terminal ()
_rl_release_sigint ();
}
#endif /* !NO_TTY_DRIVER */
+
+/* Set readline's idea of whether or not it is echoing output to the terminal,
+ returning the old value. */
+int
+rl_tty_set_echoing (u)
+ int u;
+{
+ int o;
+
+ o = _rl_echoing_p;
+ _rl_echoing_p = u;
+ return o;
+}
/* **************************************************************** */
/* */
@@ -859,6 +889,11 @@ _rl_bind_tty_special_chars (kmap, ttybuff)
# endif /* VLNEXT && TERMIOS_TTY_DRIVER */
# if defined (VWERASE) && defined (TERMIOS_TTY_DRIVER)
+# if defined (VI_MODE)
+ if (rl_editing_mode == vi_mode)
+ SET_SPECIAL (VWERASE, rl_vi_unix_word_rubout);
+ else
+# endif
SET_SPECIAL (VWERASE, rl_unix_word_rubout);
# endif /* VWERASE && TERMIOS_TTY_DRIVER */
}
diff --git a/search.c b/search.c
index 028c250..45d95d2 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-2013 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2015 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.
@@ -58,7 +58,7 @@ _rl_search_cxt *_rl_nscxt = 0;
extern HIST_ENTRY *_rl_saved_line_for_history;
/* Functions imported from the rest of the library. */
-extern int _rl_free_history_entry PARAMS((HIST_ENTRY *));
+extern void _rl_free_history_entry PARAMS((HIST_ENTRY *));
static char *noninc_search_string = (char *) NULL;
static int noninc_history_pos;
@@ -80,7 +80,6 @@ static int rl_history_search_internal PARAMS((int, int));
static void rl_history_search_reinit PARAMS((int));
static _rl_search_cxt *_rl_nsearch_init PARAMS((int, int));
-static int _rl_nsearch_cleanup PARAMS((_rl_search_cxt *, int));
static void _rl_nsearch_abort PARAMS((_rl_search_cxt *));
static int _rl_nsearch_dispatch PARAMS((_rl_search_cxt *, int));
@@ -224,7 +223,7 @@ _rl_nsearch_init (dir, pchar)
return cxt;
}
-static int
+int
_rl_nsearch_cleanup (cxt, r)
_rl_search_cxt *cxt;
int r;
@@ -411,7 +410,7 @@ rl_noninc_forward_search_again (count, key)
if (!noninc_search_string)
{
rl_ding ();
- return (-1);
+ return (1);
}
r = noninc_dosearch (noninc_search_string, 1);
return (r != 1);
@@ -428,7 +427,7 @@ rl_noninc_reverse_search_again (count, key)
if (!noninc_search_string)
{
rl_ding ();
- return (-1);
+ return (1);
}
r = noninc_dosearch (noninc_search_string, -1);
return (r != 1);
diff --git a/shlib/Makefile.in b/shlib/Makefile.in
index eb16211..f2ec3e4 100644
--- a/shlib/Makefile.in
+++ b/shlib/Makefile.in
@@ -107,7 +107,7 @@ SHLIB_MINOR= .@SHLIB_MINOR@
# For libraries which include headers from other libraries.
INCLUDES = -I. -I.. -I$(topdir)
-CCFLAGS = $(DEFS) $(LOCAL_DEFS) $(CPPFLAGS) $(INCLUDES) $(LOCAL_CFLAGS) $(CFLAGS)
+CCFLAGS = $(DEFS) $(LOCAL_DEFS) $(INCLUDES) $(CPPFLAGS) $(LOCAL_CFLAGS) $(CFLAGS)
.SUFFIXES: .so
@@ -135,7 +135,7 @@ CSOURCES = $(topdir)/readline.c $(topdir)/funmap.c $(topdir)/keymaps.c \
$(topdir)/shell.c $(topdir)/savestring.c $(topdir)/tilde.c \
$(topdir)/text.c $(topdir)/misc.c $(topdir)/compat.c \
$(topdir)/colors.c $(topdir)/parse-colors.c \
- $(topdir)/mbutil.c $(topdir)/xfree.c
+ $(topdir)/mbutil.c
# The header files for this library.
HSOURCES = $(topdir)/readline.h $(topdir)/rldefs.h $(topdir)/chardefs.h \
@@ -229,7 +229,8 @@ bind.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
bind.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
bind.so: $(topdir)/rltypedefs.h
bind.so: $(topdir)/tilde.h $(topdir)/history.h
-compat.so: $(topdir)/rlstdc.h
+compat.so: ${BUILD_DIR}/config.h
+compat.so: $(topdir)/rlstdc.h $(topdir)/rltypedefs.h
callback.so: $(topdir)/rlconf.h
callback.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h
callback.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
@@ -303,6 +304,7 @@ rltty.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
rltty.so: $(topdir)/rltty.h $(topdir)/tilde.h
rltty.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
rltty.so: $(topdir)/rltypedefs.h
+savestring.so: ${BUILD_DIR}/config.h
search.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
search.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
search.so: $(topdir)/ansi_stdlib.h $(topdir)/history.h $(topdir)/tilde.h
@@ -377,7 +379,7 @@ terminal.so: $(topdir)/rlprivate.h
text.so: $(topdir)/rlprivate.h
undo.so: $(topdir)/rlprivate.h
util.so: $(topdir)/rlprivate.h
-vi_mode.so: $(topdir)/
+vi_mode.so: $(topdir)/rlprivate.h
colors.so: $(topdir)/rlprivate.h
parse-colors.so: $(topdir)/rlprivate.h
diff --git a/signals.c b/signals.c
index 61f02f9..927f532 100644
--- a/signals.c
+++ b/signals.c
@@ -1,6 +1,6 @@
/* signals.c -- signal handling support for readline. */
-/* Copyright (C) 1987-2011 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2016 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.
@@ -213,15 +213,31 @@ _rl_handle_signal (sig)
case SIGINT:
_rl_reset_completion_state ();
rl_free_line_state ();
+#if defined (READLINE_CALLBACKS)
+ rl_callback_sigcleanup ();
+#endif
+
/* FALLTHROUGH */
- case SIGTERM:
- case SIGHUP:
#if defined (SIGTSTP)
case SIGTSTP:
- case SIGTTOU:
case SIGTTIN:
+# 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);
+ sigaddset (&set, SIGTTOU);
+ sigprocmask (SIG_BLOCK, &set, (sigset_t *)NULL);
+# endif
+ case SIGTTOU:
#endif /* SIGTSTP */
+ case SIGTERM:
+#if defined (SIGHUP)
+ case SIGHUP:
+#endif
#if defined (SIGALRM)
case SIGALRM:
#endif
@@ -232,6 +248,10 @@ _rl_handle_signal (sig)
rl_cleanup_after_signal ();
#if defined (HAVE_POSIX_SIGNALS)
+ /* Unblock SIGTTOU blocked above */
+ if (sig == SIGTTIN || sig == SIGTSTP)
+ sigprocmask (SIG_UNBLOCK, &set, (sigset_t *)NULL);
+
sigemptyset (&set);
sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &set);
sigdelset (&set, sig);
@@ -397,7 +417,9 @@ rl_set_signals ()
sigaddset (&bset, SIGINT);
sigaddset (&bset, SIGTERM);
+#if defined (SIGHUP)
sigaddset (&bset, SIGHUP);
+#endif
#if defined (SIGQUIT)
sigaddset (&bset, SIGQUIT);
#endif
@@ -426,7 +448,9 @@ rl_set_signals ()
rl_maybe_set_sighandler (SIGINT, rl_signal_handler, &old_int);
rl_maybe_set_sighandler (SIGTERM, rl_signal_handler, &old_term);
+#if defined (SIGHUP)
rl_maybe_set_sighandler (SIGHUP, rl_signal_handler, &old_hup);
+#endif
#if defined (SIGQUIT)
rl_maybe_set_sighandler (SIGQUIT, rl_signal_handler, &old_quit);
#endif
@@ -491,7 +515,9 @@ rl_clear_signals ()
overhead */
rl_maybe_restore_sighandler (SIGINT, &old_int);
rl_maybe_restore_sighandler (SIGTERM, &old_term);
+#if defined (SIGHUP)
rl_maybe_restore_sighandler (SIGHUP, &old_hup);
+#endif
#if defined (SIGQUIT)
rl_maybe_restore_sighandler (SIGQUIT, &old_quit);
#endif
@@ -567,6 +593,11 @@ rl_free_line_state ()
_rl_reset_argument ();
}
+int
+rl_pending_signal ()
+{
+ return (_rl_caught_signal);
+}
#endif /* HANDLE_SIGNALS */
/* **************************************************************** */
diff --git a/tcap.h b/tcap.h
index 9d09b7a..859e6ee 100644
--- a/tcap.h
+++ b/tcap.h
@@ -1,6 +1,6 @@
/* tcap.h -- termcap library functions and variables. */
-/* Copyright (C) 1996-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2015 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.
@@ -31,6 +31,8 @@
# include "rltty.h"
# endif
# include <termcap.h>
+#elif defined (HAVE_NCURSES_TERMCAP_H)
+# include <ncurses/termcap.h>
#else
/* On Solaris2, sys/types.h #includes sys/reg.h, which #defines PC.
diff --git a/terminal.c b/terminal.c
index 1212ec4..ef2884e 100644
--- a/terminal.c
+++ b/terminal.c
@@ -1,6 +1,6 @@
/* terminal.c -- controlling the terminal with termcap. */
-/* Copyright (C) 1996-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2015 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.
@@ -51,15 +51,14 @@
/* System-specific feature definitions and include files. */
#include "rldefs.h"
-#if defined (GWINSZ_IN_SYS_IOCTL) && !defined (TIOCGWINSZ)
-# include <sys/ioctl.h>
-#endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */
-
#ifdef __MSDOS__
# include <pc.h>
#endif
#include "rltty.h"
+#if defined (HAVE_SYS_IOCTL_H)
+# include <sys/ioctl.h> /* include for declaration of ioctl */
+#endif
#include "tcap.h"
/* Some standard library routines. */
diff --git a/text.c b/text.c
index f29adf8..c353252 100644
--- a/text.c
+++ b/text.c
@@ -1,6 +1,6 @@
/* text.c -- text handling commands for readline. */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2016 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.
@@ -71,6 +71,8 @@ static int _rl_char_search_callback PARAMS((_rl_callback_generic_arg *));
rl_insert_text. Text blocks larger than this are divided. */
#define TEXT_COUNT_MAX 1024
+int _rl_optimize_typeahead = 1; /* rl_insert tries to read typeahead */
+
/* **************************************************************** */
/* */
/* Insert and Delete */
@@ -570,7 +572,7 @@ rl_refresh_line (ignore1, ignore2)
_rl_clear_to_eol (0); /* arg of 0 means to not use spaces */
- rl_forced_update_display ();
+ rl_redraw_prompt_last_line ();
rl_display_fixed = 1;
return 0;
@@ -608,7 +610,7 @@ rl_skip_csi_sequence (count, key)
while (ch >= 0x20 && ch < 0x40);
RL_UNSETSTATE (RL_STATE_MOREINPUT);
- return 0;
+ return (ch < 0);
}
int
@@ -620,6 +622,8 @@ rl_arrow_keys (count, c)
RL_SETSTATE(RL_STATE_MOREINPUT);
ch = rl_read_key ();
RL_UNSETSTATE(RL_STATE_MOREINPUT);
+ if (ch < 0)
+ return (1);
switch (_rl_to_upper (ch))
{
@@ -890,8 +894,49 @@ int
rl_insert (count, c)
int count, c;
{
- return (rl_insert_mode == RL_IM_INSERT ? _rl_insert_char (count, c)
- : _rl_overwrite_char (count, c));
+ int r, n, x;
+
+ r = (rl_insert_mode == RL_IM_INSERT) ? _rl_insert_char (count, c) : _rl_overwrite_char (count, c);
+
+ /* XXX -- attempt to batch-insert pending input that maps to self-insert */
+ x = 0;
+ n = (unsigned short)-2;
+ while (_rl_optimize_typeahead &&
+ (RL_ISSTATE (RL_STATE_INPUTPENDING|RL_STATE_MACROINPUT) == 0) &&
+ _rl_pushed_input_available () == 0 &&
+ _rl_input_queued (0) &&
+ (n = rl_read_key ()) > 0 &&
+ _rl_keymap[(unsigned char)n].type == ISFUNC &&
+ _rl_keymap[(unsigned char)n].function == rl_insert)
+ {
+ r = (rl_insert_mode == RL_IM_INSERT) ? _rl_insert_char (1, n) : _rl_overwrite_char (1, n);
+ /* _rl_insert_char keeps its own set of pending characters to compose a
+ complete multibyte character, and only returns 1 if it sees a character
+ that's part of a multibyte character but too short to complete one. We
+ can try to read another character in the hopes that we will get the
+ next one or just punt. Right now we try to read another character.
+ We don't want to call rl_insert_next if _rl_insert_char has already
+ stored the character in the pending_bytes array because that will
+ result in doubled input. */
+ n = (unsigned short)-2;
+ x++; /* count of bytes of typeahead read, currently unused */
+ if (r == 1) /* read partial multibyte character */
+ continue;
+ if (rl_done || r != 0)
+ break;
+ }
+
+ if (n != (unsigned short)-2) /* -2 = sentinel value for having inserted N */
+ {
+ /* setting rl_pending_input inhibits setting rl_last_func so we do it
+ ourselves here */
+ rl_last_func = rl_insert;
+ _rl_reset_argument ();
+ rl_executing_keyseq[rl_key_sequence_length = 0] = '\0';
+ r = rl_execute_next (n);
+ }
+
+ return r;
}
/* Insert the next typed character verbatim. */
@@ -906,7 +951,7 @@ _rl_insert_next (count)
RL_UNSETSTATE(RL_STATE_MOREINPUT);
if (c < 0)
- return -1;
+ return 1;
if (RL_ISSTATE (RL_STATE_MACRODEF))
_rl_add_macro_char (c);
@@ -1066,7 +1111,7 @@ rl_rubout (count, key)
if (!rl_point)
{
rl_ding ();
- return -1;
+ return 1;
}
if (rl_insert_mode == RL_IM_OVERWRITE)
@@ -1089,7 +1134,7 @@ _rl_rubout_char (count, key)
if (rl_point == 0)
{
rl_ding ();
- return -1;
+ return 1;
}
orig_point = rl_point;
@@ -1103,7 +1148,7 @@ _rl_rubout_char (count, key)
c = rl_line_buffer[--rl_point];
rl_delete_text (rl_point, orig_point);
/* The erase-at-end-of-line hack is of questionable merit now. */
- if (rl_point == rl_end && ISPRINT (c) && _rl_last_c_pos)
+ if (rl_point == rl_end && ISPRINT ((unsigned char)c) && _rl_last_c_pos)
{
int l;
l = rl_character_len (c, rl_point);
@@ -1133,7 +1178,7 @@ rl_delete (count, key)
if (rl_point == rl_end)
{
rl_ding ();
- return -1;
+ return 1;
}
if (count > 1 || rl_explicit_arg)
@@ -1303,7 +1348,7 @@ rl_change_case (count, op)
if (op != UpCase && op != DownCase && op != CapCase)
{
rl_ding ();
- return -1;
+ return 1;
}
if (count < 0)
@@ -1337,7 +1382,7 @@ rl_change_case (count, op)
}
else
nop = op;
- if (MB_CUR_MAX == 1 || rl_byte_oriented || isascii (c))
+ if (MB_CUR_MAX == 1 || rl_byte_oriented || isascii ((unsigned char)c))
{
nc = (nop == UpCase) ? _rl_to_upper (c) : _rl_to_lower (c);
rl_line_buffer[start] = nc;
@@ -1403,7 +1448,7 @@ rl_transpose_words (count, key)
{
rl_ding ();
rl_point = orig_point;
- return -1;
+ return 1;
}
/* Get the text of the words. */
@@ -1456,7 +1501,7 @@ rl_transpose_chars (count, key)
if (!rl_point || rl_end < 2)
{
rl_ding ();
- return -1;
+ return 1;
}
rl_begin_undo_group ();
@@ -1519,7 +1564,7 @@ _rl_char_search_internal (count, dir, schar)
#endif
if (dir == 0)
- return -1;
+ return 1;
pos = rl_point;
inc = (dir < 0) ? -1 : 1;
@@ -1528,7 +1573,7 @@ _rl_char_search_internal (count, dir, schar)
if ((dir < 0 && pos <= 0) || (dir > 0 && pos >= rl_end))
{
rl_ding ();
- return -1;
+ return 1;
}
#if defined (HANDLE_MULTIBYTE)
@@ -1583,7 +1628,7 @@ _rl_char_search (count, fdir, bdir)
mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX);
if (mb_len <= 0)
- return -1;
+ return 1;
if (count < 0)
return (_rl_char_search_internal (-count, bdir, mbchar, mb_len));
@@ -1602,7 +1647,7 @@ _rl_char_search (count, fdir, bdir)
RL_UNSETSTATE(RL_STATE_MOREINPUT);
if (c < 0)
- return -1;
+ return 1;
if (count < 0)
return (_rl_char_search_internal (-count, bdir, c));
@@ -1671,7 +1716,7 @@ _rl_set_mark_at_pos (position)
int position;
{
if (position > rl_end)
- return -1;
+ return 1;
rl_mark = position;
return 0;
@@ -1696,7 +1741,7 @@ rl_exchange_point_and_mark (count, key)
if (rl_mark == -1)
{
rl_ding ();
- return -1;
+ return 1;
}
else
SWAP (rl_point, rl_mark);
diff --git a/tilde.c b/tilde.c
index 1c53a45..95bc421 100644
--- a/tilde.c
+++ b/tilde.c
@@ -236,7 +236,11 @@ tilde_expand (string)
string += end;
expansion = tilde_expand_word (tilde_word);
- xfree (tilde_word);
+
+ if (expansion == 0)
+ expansion = tilde_word;
+ else
+ xfree (tilde_word);
len = strlen (expansion);
#ifdef __CYGWIN__
@@ -360,6 +364,10 @@ tilde_expand_word (filename)
{
/* Prefix $HOME to the rest of the string. */
expansion = sh_get_env_value ("HOME");
+#if defined (_WIN32)
+ if (expansion == 0)
+ expansion = sh_get_env_value ("APPDATA");
+#endif
/* If there is no HOME variable, look up the directory in
the password database. */
diff --git a/undo.c b/undo.c
index e9369b1..5836304 100644
--- a/undo.c
+++ b/undo.c
@@ -1,7 +1,6 @@
-/* readline.c -- a general facility for reading lines of input
- with emacs style editing and completion. */
+/* undo.c - manage list of changes to lines, offering opportunity to undo them */
-/* Copyright (C) 1987-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2015 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.
@@ -50,7 +49,7 @@
#include "rlprivate.h"
#include "xmalloc.h"
-extern void replace_history_data PARAMS((int, histdata_t *, histdata_t *));
+extern void _hs_replace_history_data PARAMS((int, histdata_t *, histdata_t *));
/* Non-zero tells rl_delete_text and rl_insert_text to not add to
the undo list. */
@@ -129,7 +128,7 @@ rl_free_undo_list ()
orig_list = rl_undo_list;
_rl_free_undo_list (rl_undo_list);
rl_undo_list = (UNDO_LIST *)NULL;
- replace_history_data (-1, (histdata_t *)orig_list, (histdata_t *)NULL);
+ _hs_replace_history_data (-1, (histdata_t *)orig_list, (histdata_t *)NULL);
}
UNDO_LIST *
@@ -245,7 +244,7 @@ rl_do_undo ()
xfree (temp);
}
- replace_history_data (-1, (histdata_t *)release, (histdata_t *)rl_undo_list);
+ _hs_replace_history_data (-1, (histdata_t *)release, (histdata_t *)rl_undo_list);
xfree (release);
}
diff --git a/util.c b/util.c
index 58b55e2..4589c61 100644
--- a/util.c
+++ b/util.c
@@ -1,6 +1,6 @@
/* util.c -- readline utility functions */
-/* Copyright (C) 1987-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2015 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.
@@ -55,6 +55,7 @@
#include "rlprivate.h"
#include "xmalloc.h"
+#include "rlshell.h"
/* **************************************************************** */
/* */
@@ -107,12 +108,11 @@ _rl_abort_internal ()
while (rl_executing_macro)
_rl_pop_executing_macro ();
+ RL_UNSETSTATE (RL_STATE_MULTIKEY); /* XXX */
+
rl_last_func = (rl_command_func_t *)NULL;
-#if defined (HAVE_POSIX_SIGSETJMP)
- siglongjmp (_rl_top_level, 1);
-#else
- longjmp (_rl_top_level, 1);
-#endif
+
+ _rl_longjmp (_rl_top_level, 1);
return (0);
}
@@ -198,12 +198,14 @@ rl_tilde_expand (ignore, key)
xfree (homedir);
return (0);
}
- else if (rl_line_buffer[start] != '~')
+ else if (start >= 0 && rl_line_buffer[start] != '~')
{
for (; !whitespace (rl_line_buffer[start]) && start >= 0; start--)
;
start++;
}
+ else if (start < 0)
+ start = 0;
end = start;
do
@@ -512,11 +514,18 @@ _rl_trace (va_alist)
int
_rl_tropen ()
{
- char fnbuf[128];
+ char fnbuf[128], *x;
if (_rl_tracefp)
fclose (_rl_tracefp);
- sprintf (fnbuf, "/var/tmp/rltrace.%ld", (long)getpid());
+#if defined (_WIN32) && !defined (__CYGWIN__)
+ x = sh_get_env_value ("TEMP");
+ if (x == 0)
+ x = ".";
+#else
+ x = "/var/tmp";
+#endif
+ sprintf (fnbuf, "%s/rltrace.%ld", x, (long)getpid());
unlink(fnbuf);
_rl_tracefp = fopen (fnbuf, "w+");
return _rl_tracefp != 0;
@@ -542,8 +551,9 @@ _rl_settracefp (fp)
#endif /* DEBUG */
-#if HAVE_DECL_AUDIT_USER_TTY && defined (ENABLE_TTY_AUDIT_SUPPORT)
+#if HAVE_DECL_AUDIT_USER_TTY && defined (HAVE_LIBAUDIT_H) && defined (ENABLE_TTY_AUDIT_SUPPORT)
#include <sys/socket.h>
+#include <libaudit.h>
#include <linux/audit.h>
#include <linux/netlink.h>
@@ -552,42 +562,33 @@ void
_rl_audit_tty (string)
char *string;
{
+ struct audit_message req;
struct sockaddr_nl addr;
- struct msghdr msg;
- struct nlmsghdr nlm;
- struct iovec iov[2];
size_t size;
int fd;
- fd = socket (AF_NETLINK, SOCK_RAW, NETLINK_AUDIT);
+ fd = socket (PF_NETLINK, SOCK_RAW, NETLINK_AUDIT);
if (fd < 0)
return;
size = strlen (string) + 1;
- nlm.nlmsg_len = NLMSG_LENGTH (size);
- nlm.nlmsg_type = AUDIT_USER_TTY;
- nlm.nlmsg_flags = NLM_F_REQUEST;
- nlm.nlmsg_seq = 0;
- nlm.nlmsg_pid = 0;
+ if (NLMSG_SPACE (size) > MAX_AUDIT_MESSAGE_LENGTH)
+ return;
- iov[0].iov_base = &nlm;
- iov[0].iov_len = sizeof (nlm);
- iov[1].iov_base = string;
- iov[1].iov_len = size;
+ memset (&req, 0, sizeof(req));
+ req.nlh.nlmsg_len = NLMSG_SPACE (size);
+ req.nlh.nlmsg_type = AUDIT_USER_TTY;
+ req.nlh.nlmsg_flags = NLM_F_REQUEST;
+ req.nlh.nlmsg_seq = 0;
+ if (size && string)
+ memcpy (NLMSG_DATA(&req.nlh), string, size);
+ memset (&addr, 0, sizeof(addr));
addr.nl_family = AF_NETLINK;
addr.nl_pid = 0;
addr.nl_groups = 0;
- msg.msg_name = &addr;
- msg.msg_namelen = sizeof (addr);
- msg.msg_iov = iov;
- msg.msg_iovlen = 2;
- msg.msg_control = NULL;
- msg.msg_controllen = 0;
- msg.msg_flags = 0;
-
- (void)sendmsg (fd, &msg, 0);
+ sendto (fd, &req, req.nlh.nlmsg_len, 0, (struct sockaddr*)&addr, sizeof(addr));
close (fd);
}
#endif
diff --git a/vi_keymap.c b/vi_keymap.c
index 60c925d..e5da2e0 100644
--- a/vi_keymap.c
+++ b/vi_keymap.c
@@ -1,6 +1,6 @@
/* vi_keymap.c -- the keymap for vi_mode in readline (). */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2016 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.
@@ -55,7 +55,7 @@ KEYMAP_ENTRY_ARRAY vi_movement_keymap = {
{ ISFUNC, rl_transpose_chars }, /* Control-t */
{ ISFUNC, rl_unix_line_discard }, /* Control-u */
{ ISFUNC, rl_quoted_insert }, /* Control-v */
- { ISFUNC, rl_unix_word_rubout }, /* Control-w */
+ { ISFUNC, rl_vi_unix_word_rubout }, /* Control-w */
{ ISFUNC, (rl_command_func_t *)0x0 }, /* Control-x */
{ ISFUNC, rl_yank }, /* Control-y */
{ ISFUNC, (rl_command_func_t *)0x0 }, /* Control-z */
@@ -334,7 +334,7 @@ KEYMAP_ENTRY_ARRAY vi_insertion_keymap = {
{ ISFUNC, rl_transpose_chars }, /* Control-t */
{ ISFUNC, rl_unix_line_discard }, /* Control-u */
{ ISFUNC, rl_quoted_insert }, /* Control-v */
- { ISFUNC, rl_unix_word_rubout }, /* Control-w */
+ { ISFUNC, rl_vi_unix_word_rubout }, /* Control-w */
{ ISFUNC, rl_insert }, /* Control-x */
{ ISFUNC, rl_yank }, /* Control-y */
{ ISFUNC, rl_insert }, /* Control-z */
diff --git a/vi_mode.c b/vi_mode.c
index 0864192..56d2e72 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-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2016 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.
@@ -67,6 +67,9 @@ int _rl_vi_last_command = 'i'; /* default `.' puts you in insert mode */
_rl_vimotion_cxt *_rl_vimvcxt = 0;
+/* Non-zero indicates we are redoing a vi-mode command with `.' */
+int _rl_vi_redoing;
+
/* Non-zero means enter insertion mode. */
static int _rl_vi_doing_insert;
@@ -100,8 +103,6 @@ static int _rl_vi_last_replacement;
static int _rl_vi_last_key_before_insert;
-static int vi_redoing;
-
/* Text modification commands. These are the `redoable' commands. */
static const char * const vi_textmod = "_*\\AaIiCcDdPpYyRrSsXx~";
@@ -192,6 +193,13 @@ _rl_vi_textmod_command (c)
return (member (c, vi_textmod));
}
+int
+_rl_vi_motion_command (c)
+ int c;
+{
+ return (member (c, vi_motion));
+}
+
static void
_rl_vi_replace_insert (count)
int count;
@@ -234,7 +242,7 @@ rl_vi_redo (count, c)
}
r = 0;
- vi_redoing = 1;
+ _rl_vi_redoing = 1;
/* If we're redoing an insert with `i', stuff in the inserted text
and do not go into insertion mode. */
if (_rl_vi_last_command == 'i' && vi_insert_buffer && *vi_insert_buffer)
@@ -280,7 +288,8 @@ rl_vi_redo (count, c)
}
else
r = _rl_dispatch (_rl_vi_last_command, _rl_keymap);
- vi_redoing = 0;
+
+ _rl_vi_redoing = 0;
return (r);
}
@@ -464,7 +473,7 @@ rl_vi_end_word (count, key)
if (count < 0)
{
rl_ding ();
- return -1;
+ return 1;
}
if (_rl_uppercase_p (key))
@@ -1089,28 +1098,55 @@ static int
rl_domove_motion_callback (m)
_rl_vimotion_cxt *m;
{
- int c, save, r;
- int old_end;
+ int c;
_rl_vi_last_motion = c = m->motion;
/* Append a blank character temporarily so that the motion routines
- work right at the end of the line. */
- old_end = rl_end;
+ work right at the end of the line. Original value of rl_end is saved
+ as m->end. */
rl_line_buffer[rl_end++] = ' ';
rl_line_buffer[rl_end] = '\0';
_rl_dispatch (c, _rl_keymap);
- /* Remove the blank that we added. */
- rl_end = old_end;
+#if defined (READLINE_CALLBACKS)
+ if (RL_ISSTATE (RL_STATE_CALLBACK))
+ {
+ /* Messy case where char search can be vi motion command; see rest of
+ details in callback.c. vi_char_search and callback_char_search just
+ set and unset the CHARSEARCH state. This is where any vi motion
+ command that needs to set its own state should be handled, with any
+ corresponding code to manage that state in callback.c */
+ if (RL_ISSTATE (RL_STATE_CHARSEARCH))
+ return 0;
+ else
+ return (_rl_vi_domove_motion_cleanup (c, m));
+ }
+#endif
+
+ return (_rl_vi_domove_motion_cleanup (c, m));
+}
+
+int
+_rl_vi_domove_motion_cleanup (c, m)
+ int c;
+ _rl_vimotion_cxt *m;
+{
+ int r;
+
+ /* 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;
/* No change in position means the command failed. */
if (rl_mark == rl_point)
- return (-1);
+ {
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
+ return (-1);
+ }
/* rl_vi_f[wW]ord () leaves the cursor on the first character of the next
word. If we are not at the end of the line, and we are on a
@@ -1244,8 +1280,8 @@ _rl_vi_domove_callback (m)
int c, r;
m->motion = c = rl_vi_domove_getchar (m);
- /* XXX - what to do if this returns -1? Should we return 1 for eof to
- callback code? */
+ if (c < 0)
+ return 1; /* EOF */
r = rl_domove_read_callback (m);
return ((r == 0) ? r : 1); /* normalize return values */
@@ -1301,12 +1337,12 @@ rl_vi_delete_to (count, key)
_rl_vimvcxt->motion = '$';
r = rl_domove_motion_callback (_rl_vimvcxt);
}
- else if (vi_redoing && _rl_vi_last_motion != 'd') /* `dd' is special */
+ else if (_rl_vi_redoing && _rl_vi_last_motion != 'd') /* `dd' is special */
{
_rl_vimvcxt->motion = _rl_vi_last_motion;
r = rl_domove_motion_callback (_rl_vimvcxt);
}
- else if (vi_redoing) /* handle redoing `dd' here */
+ else if (_rl_vi_redoing) /* handle redoing `dd' here */
{
_rl_vimvcxt->motion = _rl_vi_last_motion;
rl_mark = rl_end;
@@ -1351,7 +1387,7 @@ vi_change_dispatch (m)
if ((_rl_to_upper (m->motion) == 'W') && rl_point < m->start)
rl_point = m->start;
- if (vi_redoing)
+ if (_rl_vi_redoing)
{
if (vi_insert_buffer && *vi_insert_buffer)
rl_begin_undo_group ();
@@ -1391,12 +1427,12 @@ rl_vi_change_to (count, key)
_rl_vimvcxt->motion = '$';
r = rl_domove_motion_callback (_rl_vimvcxt);
}
- else if (vi_redoing && _rl_vi_last_motion != 'c') /* `cc' is special */
+ else if (_rl_vi_redoing && _rl_vi_last_motion != 'c') /* `cc' is special */
{
_rl_vimvcxt->motion = _rl_vi_last_motion;
r = rl_domove_motion_callback (_rl_vimvcxt);
}
- else if (vi_redoing) /* handle redoing `cc' here */
+ else if (_rl_vi_redoing) /* handle redoing `cc' here */
{
_rl_vimvcxt->motion = _rl_vi_last_motion;
rl_mark = rl_end;
@@ -1460,12 +1496,12 @@ rl_vi_yank_to (count, key)
_rl_vimvcxt->motion = '$';
r = rl_domove_motion_callback (_rl_vimvcxt);
}
- else if (vi_redoing && _rl_vi_last_motion != 'y') /* `yy' is special */
+ else if (_rl_vi_redoing && _rl_vi_last_motion != 'y') /* `yy' is special */
{
_rl_vimvcxt->motion = _rl_vi_last_motion;
r = rl_domove_motion_callback (_rl_vimvcxt);
}
- else if (vi_redoing) /* handle redoing `yy' here */
+ else if (_rl_vi_redoing) /* handle redoing `yy' here */
{
_rl_vimvcxt->motion = _rl_vi_last_motion;
rl_mark = rl_end;
@@ -1534,7 +1570,7 @@ rl_vi_rubout (count, key)
if (rl_point == 0)
{
rl_ding ();
- return -1;
+ return 1;
}
opoint = rl_point;
@@ -1565,7 +1601,7 @@ rl_vi_delete (count, key)
if (rl_end == 0)
{
rl_ding ();
- return -1;
+ return 1;
}
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
@@ -1584,6 +1620,62 @@ rl_vi_delete (count, key)
return (0);
}
+/* This does what Posix specifies vi-mode C-w to do: using whitespace and
+ punctuation characters as the word boundaries. */
+
+#define vi_unix_word_boundary(c) (whitespace(c) || ispunct(c))
+
+int
+rl_vi_unix_word_rubout (count, key)
+ int count, key;
+{
+ int orig_point;
+
+ if (rl_point == 0)
+ rl_ding ();
+ else
+ {
+ orig_point = rl_point;
+ if (count <= 0)
+ count = 1;
+
+ while (count--)
+ {
+ /* This isn't quite what ksh93 does but it seems to match what the
+ Posix description of sh specifies, with a few accommodations
+ for sequences of whitespace characters between words and at
+ the end of the line. */
+
+ /* Skip over whitespace at the end of the line as a special case */
+ if (rl_point > 0 && (rl_line_buffer[rl_point] == 0) &&
+ whitespace (rl_line_buffer[rl_point - 1]))
+ while (--rl_point > 0 && whitespace (rl_line_buffer[rl_point]))
+ ;
+
+ /* If we're at the start of a word, move back to word boundary so we
+ move back to the `preceding' word */
+ if (rl_point > 0 && (vi_unix_word_boundary (rl_line_buffer[rl_point]) == 0) &&
+ vi_unix_word_boundary (rl_line_buffer[rl_point - 1]))
+ rl_point--;
+
+ /* If we are at a word boundary (whitespace/punct), move backward
+ past a sequence of word boundary characters. If we are at the
+ end of a word (non-word boundary), move back to a word boundary */
+ if (rl_point > 0 && vi_unix_word_boundary (rl_line_buffer[rl_point]))
+ while (rl_point && vi_unix_word_boundary (rl_line_buffer[rl_point - 1]))
+ rl_point--;
+ else if (rl_point > 0 && vi_unix_word_boundary (rl_line_buffer[rl_point]) == 0)
+ while (rl_point && (vi_unix_word_boundary (rl_line_buffer[rl_point - 1]) == 0))
+ rl_point--;
+ }
+
+ rl_kill_text (orig_point, rl_point);
+ }
+
+ return 0;
+}
+
+
int
rl_vi_back_to_indent (count, key)
int count, key;
@@ -1618,7 +1710,10 @@ _rl_vi_callback_char_search (data)
#endif
if (c <= 0)
- return -1;
+ {
+ RL_UNSETSTATE (RL_STATE_CHARSEARCH);
+ return -1;
+ }
#if !defined (HANDLE_MULTIBYTE)
_rl_vi_last_search_char = c;
@@ -1626,6 +1721,7 @@ _rl_vi_callback_char_search (data)
_rl_callback_func = 0;
_rl_want_redisplay = 1;
+ RL_UNSETSTATE (RL_STATE_CHARSEARCH);
#if defined (HANDLE_MULTIBYTE)
return (_rl_char_search_internal (data->count, _rl_cs_dir, _rl_vi_last_search_mbchar, _rl_vi_last_search_mblen));
@@ -1650,13 +1746,13 @@ rl_vi_char_search (count, key)
if (key == ';' || key == ',')
{
if (_rl_cs_orig_dir == 0)
- return -1;
+ return 1;
#if defined (HANDLE_MULTIBYTE)
if (_rl_vi_last_search_mblen == 0)
- return -1;
+ return 1;
#else
if (_rl_vi_last_search_char == 0)
- return -1;
+ return 1;
#endif
_rl_cs_dir = (key == ';') ? _rl_cs_orig_dir : -_rl_cs_orig_dir;
}
@@ -1681,7 +1777,7 @@ rl_vi_char_search (count, key)
break;
}
- if (vi_redoing)
+ if (_rl_vi_redoing)
{
/* set target and tlen below */
}
@@ -1690,7 +1786,9 @@ rl_vi_char_search (count, key)
{
_rl_callback_data = _rl_callback_data_alloc (count);
_rl_callback_data->i1 = _rl_cs_dir;
+ _rl_callback_data->i2 = key;
_rl_callback_func = _rl_vi_callback_char_search;
+ RL_SETSTATE (RL_STATE_CHARSEARCH);
return (0);
}
#endif
@@ -1755,7 +1853,7 @@ rl_vi_match (ignore, key)
{
rl_point = pos;
rl_ding ();
- return -1;
+ return 1;
}
}
@@ -1785,7 +1883,7 @@ rl_vi_match (ignore, key)
else
{
rl_ding ();
- return -1;
+ return 1;
}
}
}
@@ -1809,7 +1907,7 @@ rl_vi_match (ignore, key)
else
{
rl_ding ();
- return -1;
+ return 1;
}
}
}
@@ -1915,7 +2013,7 @@ rl_vi_change_char (count, key)
int c;
char mb[MB_LEN_MAX];
- if (vi_redoing)
+ if (_rl_vi_redoing)
{
c = _rl_vi_last_replacement;
mb[0] = c;
@@ -1943,7 +2041,7 @@ rl_vi_subst (count, key)
int count, key;
{
/* If we are redoing, rl_vi_change_to will stuff the last motion char */
- if (vi_redoing == 0)
+ if (_rl_vi_redoing == 0)
rl_stuff_char ((key == 'S') ? 'c' : 'l'); /* `S' == `cc', `s' == `cl' */
return (rl_vi_change_to (count, 'c'));
@@ -2083,7 +2181,7 @@ _rl_vi_set_mark ()
if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
{
rl_ding ();
- return -1;
+ return 1;
}
ch -= 'a';
vi_mark_chars[ch] = rl_point;
@@ -2135,14 +2233,14 @@ _rl_vi_goto_mark ()
else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
{
rl_ding ();
- return -1;
+ return 1;
}
ch -= 'a';
if (vi_mark_chars[ch] == -1)
{
rl_ding ();
- return -1;
+ return 1;
}
rl_point = vi_mark_chars[ch];
return 0;